PanCake の使い方


IchigoJam BASIC 1.1 以降で使用する場合

IchigoJam BASIC 1.1 以降(開発版では 1.0.2 beta 9 以降)より、

IchigoJam BASIC では LOCATE・SCROLL・CLS でコントロールコードを送出する仕様になりました。

これは PanCake 1.0 で考慮されていないため、誤動作を起こす場合があります。

コマンドを受け入れられずに表示がおかしくなったり、最悪固まって以後のコマンドを受け付けなくなります。

PanCake 1.0 は IchigoJam BASIC 1.0 の時に公開されています。

 

PanCake のコマンドを実行する前に予め UART 1 または UART 3 を実行して、コントロールコードを送出しないように設定して下さい。

プログラムでは次のコマンドをプログラムの頭部分で入れておくと良いです。

 

IF VER()>11000 UART 1

 

IchigoCake BASIC+PanCake で使用する場合

IchigoCake BASIC+PanCake でも同じ問題が発生しますが、

独自に拡張されている PC.~ コマンドは UART に関係なく BASIC→PanCake の送出を行います。

そのため、PC.~ コマンド を使用する前提の場合は UART 0 にして回避できます。

ただし、起動直後は何だかの文字列を受け取っている場合があり、改行を含めて、?:UART 0 が確実そうです。
PC.~ コマンド では BASIC 画面にコマンドが出力されないため、BASIC の画面も使用する事が可能です。

 

UART 0 は MixJuice や USB-シリアル からコマンドなどの受け付けも無効にします。

シリアル送受する場合は UART 0 を用いたプログラムを実行した後 UART 1 を実行して下さい。


PanCake と BASIC を1画面で使う

PanCake は通常 BASIC とは別に専用に映像・音声出力を行います。
そのため、テレビなどが BASIC とは別にもう1台必要ですが、ディスプレイが1台しかない場合もあるでしょう。

そのため、PanCake と BASIC の画面を切り替えて使用する事もできるようになっています。

 

PanCake プリント基板

映像出力端子近くの J1 ショートピン接続で設定できます。

  • 1-2 ショートにした場合
    PanCake と IchigoJam を別々に出力
    PanCake と IchigoJam それぞれにモニタ等を接続します。
  • 2-3 ショートにした場合
    PanCake と IchigoJam の出力を合わせる
    IchigoJam の映像へモニタを接続するのがおすすめです。
    PanCake 側の場合は IchigoJam の映像が
    おかしくなる場合があります。

IchigoCake

j2 ショートピン接続で設定できます。

  • 1-2 ショートにした場合
    JC1-I は BASIC・JavaScript の出力
    JC3-P は PanCake の出力になります。
    それぞれモニタなどを接続します。
  • 2-3 ショートにした場合
    コマンドにより JC1-I で BASIC・JavaScript と
    PanCake の出力を切り替えできます。

PanCake ブレッドボード

PanCake の VIDEO1〜4 を束ねた部分を

IchigoJam の VIDEO2 に入れます。

下画像の黄色いジャンパワイヤです。

ai.cafe

ai.cafe は基板上でこの考慮がされていませんが、

R11 の 100Ω 抵抗を ジャンパ または 0Ω 抵抗にし、

VIDEO 端子を IchigoJam の VIDEO2 に接続する事で

実現できます。

 

モニタ側での対応

ビデオ入力が 2 端子あるモニタ(4.3 インチが主流)は

白い端子 AV 2 を優先表示させます。

AV 1(黄)に BASIC・JavaScript 側のビデオ出力端子、

AV 2(白)に PanCake 側のビデオ出力端子を差し込み、

?"PANCAKE VIDEO 00 で BASIC へ切り替え、
?”PANCAKE VIDEO 01 で PanCake へ切り替え、

echo PANCAKE VIDEO 00> uart で JavaScript へ切り替え、

echo PANCAKE VIDEO 01> uart で PanCake へ切り替えです。


PanCake 側のビデオ出力へ接続すると、表示がおかしくなる場合があります。

その場合は BASIC・JS 側のビデオ出力へ接続してみて下さい。

 

この状態で PanCake と BASIC・JS を同時に起動した場合、PanCake は BASIC・JS の起動を検出し、

PanCake は映像出力を非表示にするため、BASIC・JS の画面が優先表示されます。

両方出力されて画面が乱れる場合は、慌てずに ?"PANCAKE VIDEO 00 と入力して下さい。

PanCake 1.0 以降(PanCakeプチコン3号Edition を含む)では ?"PC VIDEO 00 と省略できます。
IchigoCake BASIC では PC.VIDEO 0 も使用できます。

IchigoLatte の場合は起動直後であれば echo > uart を一度実行し、
echo PANCAKE VIDEO 00> uart または echo PC VIDEO 00> uart とします。

 

あとは必要に応じて表示を切り替えます。

 

IchigoJam・IchigoCake BASIC

  • PanCake を表示する場合
    VIDEO 0:?"PANCAKE VIDEO 01
  • BASIC を表示する場合
    VIDEO 1:?"PANCAKE VIDEO 00

IchigoLatte・IchigoCake JavaScript

ms または vi などで有効です。

  • PanCake を表示する場合
    video(0);
    uart("PANCAKE VIDEO 01\n");
  • JavaScript を表示する場合
    video(1);
    uart("PANCAKE VIDEO 00\n");

IchigoLatte Ruby

nuby または vi などで有効です。

  • PanCake を表示する場合
    video 0
    uart "PANCAKE VIDEO 01\n"
  • Ruby を表示する場合
    video 1
    uart "PANCAKE VIDEO 00\n"

IchigoLatte FORTH

ts または vi などで有効です。

IchigoLatte FORTH 0.4.0D 現在では
バイナリーコマンドを使用します。

  • PanCake を表示する場合
    0 video
    12 uartw 
    4 uartw 5 uartw 1 uartw

  • FORTH を表示する場合
    1 video
    12 uartw 4 uartw 5 uartw 0 uartw

IchigoLatte Python

ny または vi などで有効です。

  • PanCake を表示する場合
    video(0)
    uart("PANCAKE VIDEO 01\n")
  • Python を表示する場合
    video(1)
    uart("PANCAKE VIDEO 00\n")

ただし BASIC は VIDEO 0 にすると処理速度が上がるため、

PanCake 側はコマンドを処理しきれなくなり、コマンドを読み落とす可能性があります。

PRINT(?)間に WAIT を入れるなどして調整して下さい。

運営者が実際に使っている感じでは、読み落としは確認していません。

PanCake 1.0 からは対策として BPS コマンドが用意されています。

 

公式サイトで公開している「りんごでさっちゃん」や PCN 発売の ダンブンゲーム は

PanCake 単独のテレビで動作するように作られています。

PanCake プリント基板では J1 を 1-2 接続にして、端子を直接切り替えるのが良いでしょう。

(2-3 接続での動作は WAIT を増やすなど、プログラムの改良が必要です)

 

運営者公開の PanCake+IchigoJam プログラム は1画面に対応しています。代わりに実行時は BASIC が非表示になります。


動作方法

電源を入れた段階で、番号 0 の画像が表示されます。

PanCake と PanCakeプチコン3号Edition では画像が異なります。PanCake はこの画面でバージョンが把握できます。

 

PanCake C 1.2.1 (この画面でバージョンが把握できます)

PanCakeプチコン3号Edition


  

「PanCake と BASIC を1画面で使う」を行っている場合は BASIC の画面が表示される状態で正常です。

BASIC と PanCake が合成されておかしい表示になる場合は ?"PANCAKE VIDEO 00 と入力して下さい。

PanCake 1.0 以降および PanCakeプチコン3号Edition では ?"PC VIDEO 00 と省略できます。

更に IchigoCake BASIC では PC.VIDEO 0 も使用できます。

 

また音声出力を接続している場合、起動音が音声出力されます。これで正常に起動できています。

テレビによっては色が薄かったり、白黒だったり、ブレがあったり、最悪何も映らない事もあります。

出力するテレビを変えたり、電源を変えると改善したりします。

PanCake プリント基板 は発色に問題がある場合、C5 のトリマコンデンサを調整してみて下さい。

 

PanCake へはシリアル信号でコマンドを送ります。主に下記2種類の確認方法となるでしょう。

PanCake プリント基板は IchigoJam・IchigoLatte の上に重ねます。

または TXD・GND・VCC・VIDEO2 の各端子を付属のジャンパワイヤで接続します。
(PanCake ブレッドボード版や ai.cake は RXD を IchigoJam の TXD と接続します。他3端子は同じ)

 

BASIC で操作する

通信速度は 115200bps にします。

(BPS 0。初期状態なので、変更してなければ問題なし)

 

IchigoJam BASIC が 1.1.0 以降の場合

予め UART 1 または UART 3 を実行して
シリアルにコントロールコードを流さないようにして下さい。

IchigoCake BASIC では PC.~ コマンドを使用する場合

 

UART 0 を使用する事もできます。

 

PRINT "PANCAKE IMAGE 05

 

として画面が変化すれば正常です。

 

IchigoJam web + PanCake では

 

?"PC IMAGE 05

 

として下さい。

IchigoLatte で操作する (全言語共通)

通信速度は 115200bps にします。

(BPS(0); 初期状態なので、変更してなければ問題なし)

 

lash>echo > uart;echo PANCAKE IMAGE 05> uart

 

として、画面が変化すれば正常です。

意図しないコードを PanCake の LPC1114 が
受け取っている可能性があるため、
echo > uart で改行を送信する事で
確実にコマンドを受け付けできるようにします。

 

シリアル経由で操作する

USB-シリアルモジュール の TXD と

PanCake プリント基板は TXD、他は RXD を接続します。

通信速度は 115200bps で、

その他 IchigoJam と設定は共通です。( PC 接続 参照)

 

ターミナルソフトより行単位で

 

PANCAKE IMAGE 05[Enter]

 

を送信して画面が変化すれば正常です。 



CakeRes のリソース切り替え

CakeRes は接続しただけでは変化しません。コマンドでリソースを切り替える必要があります。

CakeRes を CN7 に接続します。基板に記載している端子の印字が一致します。

更に TXD のランドに付属のジャンパワイヤを接続し、CN3 の RXD へ接続します。

この状態で次のコマンドを入れてリソースを切り替えて下さい。

 

CakeRes 内のリソースへ切り替える

IchigoCake BASIC

 

?"PC !RESUP! 01

 

IchigoCake JavaScript (IchigoLatte W)

 

lash>echo PC !RESUP! 01> uart;cat uart

PanCake デフォルトのリソースへ戻す

IchigoCake BASIC

 

?"PC !RESUP! 00

 

IchigoCake JavaScript (IchigoLatte W)

 

lash>echo PC !RESUP! 00> uart;cat uart


 

その後 CakeRes を外して、再起動(電源切→入)し、PanCake の画面が変化している事を確認して下さい。

プログラムなどでの使用時は CakeRes を接続する必要ありません。


サンプル

「PanCake と IchigoJam を1画面で使う」を行っている場合は

PanCake + IchigoJam プログラム を使用すると便利です。全プログラムで対応しています。

 

直接 PanCake を操作する場合

 

PANCAKE SPRITE CREATE 00 49

PANCAKE SPRITE MOVE 00 25 13

PANCAKE SPRITE START 05

 

BASIC 経由で PanCake を操作する場合

 

PRINT "PANCAKE SPRITE CREATE 00 49

PRINT "PANCAKE SPRITE MOVE 00 25 13

PRINT "PANCAKE SPRITE START 05

 

IchigoLatte の lash 経由で PanCake を操作する場合

 

echo PANCAKE SPRITE CREATE 00 49> uart

echo PANCAKE SPRITE MOVE 00 25 13> uart

echo PANCAKE SPRITE START 05> uart

 

IchigoLatte JavaScript 経由で PanCake を操作する場合

 

uart("PANCAKE SPRITE CREATE 00 49\n");

uart("PANCAKE SPRITE MOVE 00 25 13\n");

uart("PANCAKE SPRITE START 05\n");

 

IchigoLatte Ruby 経由で PanCake を操作する場合

 

uart "PANCAKE SPRITE CREATE 00 49\n"

uart "PANCAKE SPRITE MOVE 00 25 13\n"

uart "PANCAKE SPRITE START 05\n"

 

IchigoLatte Python 経由で PanCake を操作する場合

 

uart("PANCAKE SPRITE CREATE 00 49\n")

uart("PANCAKE SPRITE MOVE 00 25 13\n")

uart("PANCAKE SPRITE START 05\n")

 

IchigoJam web + PanCake の場合

 

IchigoJam web + PanCake でサンプルを実行する

 

動作の考慮上プログラムにしてあります。

 

IchigoLatte FORTH 経由で PanCake を操作する場合

(IchigoLatte FORTH 0.3.0D 以降)

 

128 uartw 5 uartw 7 uartw
0 uartw 0x49 uartw

 

128 uartw 6 uartw 8 uartw

0 uartw 37 uartw 19 uartw

 

128 uartw 4 uartw 6 uartw

5 uartw

 

※ 日本語 JIS キーボードの場合、\ は ¥ キーで入力できます。

 

空に風船が飛んだ画像になれば正常です。

ふっ、ふっ、ふうせんぅ〜〜〜 🎈😍←風船大好き

 

※プチコン3号Edition・CakeRes×レトロゲームズ では
背景・スプライトが異なるため、この表示にはなりません。

 

BASIC プログラム/風船 に対応版を掲載しています。

 


IchigoJam BASIC からのサンプルプログラムは
このような感じです。

(IchigoJam BASIC 0.9.8〜、PanCake 0.8〜
 PanCakeプチコン3号・CakeRes✕レトロゲーム対応)

 

10 PRINT "PANCAKE CLEAR 00

20 PRINT "PANCAKE LINE 00 00 ";

30 PRINT HEX$(RND(80),2);" ";

40 PRINT HEX$(RND(45),2);" ";

50 PRINT HEX$(RND(16),2)

60 GOTO 20

 

IchigoJam web + PanCake でプログラム実行

 

IchigoJam BASIC 0.9.8 で16進数表記に変換する
HEX$ に対応したため、シンプルなプログラムで

PanCake を操作できるようになりました。

正式版は IchigoJam BASIC 1.0.0 以降です。

 

IchigoCake BASIC では専用命令を使用できます。
BASIC 画面にコマンドが表示されないため、BASIC 画面も使用できるメリットがあります。

 

10 PC.CLEAR 0

20 X=RND(80)

30 Y=RND(45)

40 C=RND(16)

50 PC.LINE 0,0,X,Y,C

60 GOTO 20

 

これは福野さんがブログで紹介していたプログラム
(PanCake 0.5 向けで現在のバージョンでは動作しません)を
最新バージョンで動作するようにしたものです。

 

IchigoJamカラー!サードパーティー製グラボ、PanCake登場! | 福野泰介の一日一創

 

IchigoLatte では 16 進数変換出力(BASIC の HEX)がありませんが、

PanCake のコマンドを画面出力しないため、IchigoLatte の画面も使用できるメリットがあります。

(以下 IchigoLatte 0.7〜、PanCake 0.8〜、PanCakeプチコン3号・CakeRes×レトロゲームズ対応)

 

例えば 2 桁 16 進数をシリアル出力する hex 関数を作成した場合
関数が増えている分、プログラムが長くなってしまいます。

 

function hex(num){

 hexout(num/16);

 hexout(num%16);

}

 

function hexout(num){

 var lchr=num;

 

 if(lchr>9){

  lchr=lchr+7

 }

 lchr=lchr+48;

 uart(lchr);

}

 

uart("\n");

uart("PANCAKE CLEAR 00\n");

 

while(1){

 uart("PANCAKE LINE 00 00 ");

 hex(rnd(80));

 uart(" ");

 hex(rnd(45));

 uart(" ");

 hex(rnd(16));

 uart("\n");

}

 

STAMP・STAMP1・MUSIC SCORE・SPRITE USER は

バイナリーコマンドを使用するよりも、

この方法を使うのが、分かりやすく、使いやすいでしょう。

両方のコマンドを混在させる事も可能です。

 

プログラム開始直後の uart("\n") および uart(10) は
起動直後に何だかのコードを PanCake の LPC1114 が

受け取っているのを改行コードを送出する事で飛ばして、

確実にコマンドを実行できるようにしています。

バイナリーコマンドを使用すると uart へ直接出力できるため、
プログラムを短くできます。これが実用的ですが、
見た目では何をしているか分かりづらくなってしまいます。

 

uart("\n");

uart(0x80,4,0x00,0x00)

 

while(1){

 uart(0x80,8,0x01,0,0,rnd(80),rnd(45),rnd(16));

}

 

関数を作って分かりやすくするのが解決手段です。

 

function pc-init(){

 uart(10);

}

 

function pc-clear(cn){

 uart(128,4,0,cn);

}

 

function pc-line(x1,y1,x2,y2,cn){

 uart(128,8,1,x1,y1,x2,y2,cn);

}

 

pc-init();

pc-clear(0);

 

while(1){

 pc-line(0,0,rnd(80),rnd(45),rnd(16));

}

 

IchigoCake JavaScript を使用する場合は、
専用コマンドを使用する事で、短く、わかりやすくなります。

 

var pc = new PanCake();

 

uart(10);

pc.clear(0);

 

while(1){

 pc.line(0,0,rnd(80),rnd(45),rnd(16));

}

 


IchigoLatte で PanCake を操作しやすくするように関数を作成してみました。

そのまま全て入れると長くなってしまうので、必要なコマンドの関数だけを含めて下さい。

 

IchigoLatte PanCake ライブラリ | Kidspod;

IchigoLatte PanCake ライブラリ | GitHub Gist

CC0

CC0 1.0・パブリックドメイン としています。自由にご利用下さい。著作表記も不要です。


 

IchigoCake JavaScript に近い形式にしていますが、一部違いがあります。

  • pc-stamps: fs(反転)・ca(回転) は指定必須です。0 が初期値相当です。
  • pc-mPlay: ch(チャンネル) は指定必須です。4 以上(省略値相当)にすると全チャンネルで音を出します。
  • MUSIC SCORE・SPRITE USER・STAMP・STAMP1 は関数を作成していません。
    例えば uart("PANCAKE MUSIC SCORE 00 01 30 CDEFGAB>C\n"); と直接 uart コマンドで送出させて下さい。

IchigoLatte Ruby も JavaScript 同様に HEX のメソッドを作成するか、バイナリーコマンドを使用する必要があります。

IchigoLatte Forth は前記しているとおり、現状では文字列送出がないため、バイナリーコマンドでの送出が実用的になります。


PanCake の仕様

PanCake の仕様は次のとおりです。

  • IchigoJam とは別画面
    PanCake 用にビデオ出力端子があります。そのため IchigoJam・PanCake で 2 画面必要です。
    またはコマンドで IchigoJam と 1 画面切り替えて表示する事も可能です。
  • 画面サイズ 80✕45 ドット
    16 進数表記(10 進数表記)で横は 00~4F(0~79)、縦は 00~2C(0~44)となります。
    左上が 00 00 です。だいぶ横長の表示です。上下は黒表示固定になっています。
  • 色数 16 色
    16 進数表記 00~0F。色は固定しています。
  • 固定画像 8 背景(CakeRes✕レトロゲームズ 16 背景)
    16 進数表記 00~07 で最初から入っている背景があります。これとは別に固定色 00~0F も指定できます。
    CakeRes✕レトロゲームズ は 00~0F です。
  • 同時発音数 4
    0~3。それぞれ音色とノイズを再生できます。音声出力端子があります。
  • スプライト数 176 種類+オリジナル 2 種類(CakeRes✕レトロゲームズ 240 背景)
    16 進数表記 00~AF。新しいバージョンでは FE・FF でオリジナルのスプライトを設定・表示できます。
    CakeRes✕レトロゲームズは 00~EF+FE・FF になります。
  • スプライト最大同時表示 16 パターン

コマンドと応用

PanCake のコマンドは最小限です。でも工夫次第で、様々な表示や出力を行う事ができます。

ここでは BASIC+PanCake の場合で、
IchigoLatte・JavaScript+PanCake、IchigoCake 専用コマンドではコマンド名が異なります。

PanCake/コマンド一覧 内にリンクしていますので、そちらと 

PanCake 公式サイトPanCakeプチコン3号Edition 公式サイトIchigoCake の REFERENCE と共に参照して下さい。

 

初期状態に戻す(リセット)

?"PANCAKE RESET

 

電源を入れた直後同様、固定画像 0 の表示に戻ります。

 

通信速度を設定する

?"PANCAKE BPS 0000

 

PanCake 1.0 以降・プチコン3号Edition では
通信速度を指定できます。4 桁 16 進数です。

0000 で 115200bps になります。

 


画面をクリアする・線を描く

?"PANCAKE CLEAR 00

?"PANCAKE LINE 0A 0A 1F 1F 01

 

ここで使われている 2 桁の英数は 0〜9・A〜F の

16 進数表記になります。

16 進数「0A」は 10 進数で 10、

16 進数「1F」は 10 進数で 31 です。
IchigoJam BASIC では HEX$(値,2) で

簡単に出力させる事ができます。

 

PANCAKE CLEAR

 

画面を 色 でクリアします。
色の指定は 16進数 00(10 進数 0)〜0F(15) です。

特に記載がないところでは基本的に ?"PANCAKE CLEAR 00

を行っている前提です。

 

PANCAKE LINE 開始横 開始縦 終了横 終了縦 色

 

開始座標から終了座標へ 色 で線を線画します。

 

背景を固定画像にする

?"PANCAKE IMAGE 03

?"PANCAKE LINE 0A 0A 1F 1F 02

 

CLEAR の代わりに IMAGE を用いると、
PanCake に内蔵された画像を使用する事ができます。

画像の値は 16 進数 00(10進数 0)〜07(7)です。

CakeRes✕レトロゲームは 00(0)~0F(15)になります。

PanCakeプチコン3号Edition および
CakeRes✕レトロゲーム では異なる画像が入っています。

画像にした場合でも線画は同様に行えます。

 

点を描く

?"PANCAKE LINE 0A 0A 0A 0A 01

 

LINE で開始座標と終了座標を同じにする事で、点になります。

 

四角を描く

?"PANCAKE LINE 0A 0A 1F 0A 01

?"PANCAKE LINE 0A 0A 0A 1F 01

?"PANCAKE LINE 1F 0A 1F 1F 01

?"PANCAKE LINE 0A 1F 1F 1F 01

 

単に 4 辺それぞれの辺を LINE を描きます。

 

塗りつぶした四角を描く

FOR Y=#0A TO #1F

?"PANCAKE LINE 0A ";HEX$(Y,2);" 1F ";HEX$(Y,2);" 01

NEXT

 

FOR NEXT を用いて 1 行ずつ線画していきます。

 


円を描く

?"PANCAKE CIRCLE 1A 1A 0F 01

 

CIRCLE コマンドで円を描きます。

 

PANCAKE CIRCLE 中心横 中心縦 半径 色

 

塗りつぶした円を描く

FOR R=#01 TO #0F

?"PANCAKE CIRCLE 1A 1A ";HEX$(R,2);" 01

?"PANCAKE CIRCLE 1A 1B ";HEX$(R,2);" 01

NEXT

 

指定座標と、中心を 1 ピクセル分ずらした座標で

16 進数 01(10 進数 1)から指定半径まで線画すると

塗りつぶした円を描く事ができます。

 


8×8 のキャラクターを1色で線画する

?"PANCAKE STAMP1 0A 0A 01 0E1F1F1F0E0810E0

 

1色の線画は STAMP1 を用いて線画できます。

 

PANCAKE STAMP1 横 縦 色 データ

 

座標は左上基点です。
データは上から16進数2桁を8行分空白を入れずに並べます

  8 4 2 1 8 4 2 1 0E  
  8 4 2 1 8 4 2 1 1F  
  8 4 2 1 8 4 2 1 1F  
  8 4 2 1 8 4 2 1 1F  
  8 4 2 1 8 4 2 1 0E  
  8 4 2 1 8 4 2 1 08  
  8 4 2 1 8 4 2 1 10  
  8 4 2 1 8 4 2 1 E0  

上のデータは 0E1F1F1F0E0810E0 となります。

 

IchigoJam BASIC の文字を線画する

C=ASC("イ")

?"PANCAKE STAMP1 0A 0A 01 ";

FOR I=0 TO 7

? HEX$(PEEK(C*8+I),2);

NEXT

?

 

BASIC から PEEK でキャラクタを取り出し、

STAMP1 で線画を行う事が可能です。

 

8×8 のキャラクターを多色で線画する

?"PANCAKE STAMP 0A 0A 00";

?"00002220";

?"00022222";

?"00022222";

?"00022222";

?"00002220";

?"00001000";

?"00010000";

?"11100000

 

STAMP を用いると、直接色を指定して線画できます。

 

PANCAKE STAMP 横 縦 透明色 データ

 

透明色は 00〜0F で、データにその色が含まれると透過します。

データは 1 文字が 1 ピクセルの色 0〜F です。

上の例では透明色が 0 となっています。

 


スプライトを線画する

?"PANCAKE SPRITE START 10

?"PANCAKE SPRITE CREATE 00 49

?"PANCAKE MOVE 00 0F 0F 

 

PANCAKE SPRITE START で
スプライトモードと線画モードを切り替えます。

PANCAKE CREATE でスプライトのキャラクターを指定します。

再度用いてキャラクターの変更も可能です。

PANCAKE MOVE でスプライトの表示座標を指定します。

再度用いるとスプライトが移動します。

 

PANCAKE SPRITE START パターン

 

パターンは 00〜07 が 固定画像 0〜7、10〜1F が色 0〜F、

(CakeRes✕レトロゲームは 00~0F=固定画像 0~F)

FF がスプライトモードを終了して、線画モードへ戻します。

 

PANCAKE SPRITE CREATE 番号 キャラクタ

 

番号は 16 進数 00(10 進数 0)〜0F(15)です。
番号が大きい程手前に線画されます。(重なると前に表示されます)

キャラクターは 00〜AF です。公式サイトなどをご参照下さい。

CakeRes✕レトロゲームは 00~EF です。

 

PANCAKE SPRITE MOVE 番号 横 縦

 

横・縦はスプライト左上の座標です。

 

スプライトを自作する

?"PANCAKE SPRITE USER FE 00 ";

?"00002220";

?"00022222";

?"00022222";

?"00022222";

?"00002220";

?"00001000";

?"00010000";

?"11100000

?"PANCAKE CREATE 00 FE

?"PANCAKE MOVE 00 0F 0F

 

PanCake 1.0 以降および PanCake プチコン3号Edition では 

スプライトを自作する事が可能です。

 

PANCAKE SPRITE USER 番号 透明色 データ

 

番号は FD または FE の2つ、他は STAMP と同等です。

 


スプライトを左右反転する

?"PANCAKE SPRITE FLIP 00 01

 

SPRITE FLIP で左右を反転できます。

 

PANCAKE SPRITE FLIP 番号 反転

 

反転を 01 にすると左右反転です。00 で元の状態になります。

 

スプライトを回転する

?"PANCAKE SPRITE ROTATE 00 01

 

SPRITE ROTATE でスプライトの回転を行います

 

PANCAKE SPRITE ROTATE 番号 回転

 

回転 は 01=時計回り 90 度、02=180 度。

03=反時計回り 90 度、00=0 度 となります。

 

スプライトを上下反転する

?"PANCAKE SPRITE FLIP 00 01

?"PANCAKE SPRITE ROTATE 00 02

 

上下反転はコマンド上存在しませんが、SPRITE FLIP で左右反転し、

SPRITE ROTATE で 180 度回転する事で上下反転にできます。

 

スプライトを描く

?"PANCAKE STAMPS 0F 0F 49

 

PanCake 1.1 より PANCAKE SPRITE STAMPS を使用すると、
スプライトを STAMP 同等に線画します。

 

PANCAKE STAMPS 横 縦 キャラクタ

PANCAKE STAMPS 横 縦 キャラクタ 反転 回転

 

※ スプライトの画面に表示されている 風船(キャラクター 49)は

(スプライトを自作するを除き)

 

PanCakeプチコン3号Edition・CakeRes✕レトロゲーム では
異なるキャラクターになります。

 


音を出す

?"PANCAKE SOUND 04 00 04 FF 04 FF 05 FF

?"PANCAKE SOUND 04 00 04 04 04 FF 05 FF

?"PANCAKE SOUND 04 00 04 04 04 07 05 FF

?"PANCAKE SOUND 04 00 04 04 04 07 05 00

?"PANCAKE SOUND 04 FF 04 FF 04 FF 05 FF

 

最大 4 重で音を出す事ができます。

 

PANCAKE SOUND 0オク 0音 1オク 1音 2オク 2音 3オク 3音

 

0〜3 がチャンネルです。チャンネル毎に指定します。

オクはオクターブで、00〜07、04 が標準となります。

音は 00〜0B・0E・FF です。00 より
ド・ド#・レ・レ#・ミ・ファ・ファ#・ソ・ソ#・ラ・ラ#・シ

です。0E はノイズ音です。オクターブで音程が変わります。

FF は音がでなくなります。(休符)

 

一つずつ音を出す

?"PANCAKE SOUND1 00 04 00

?"PANCAKE SOUND1 01 04 04

?"PANCAKE SOUND1 02 04 07

?"PANCAKE SOUND1 03 05 00

?"PANCAKE SOUND 04 FF 04 FF 04 FF 05 FF

 

SOUND1 を用いると 1 つのチャンネルで音を指定できます。

 

PANCAKE SOUND1 チャンネル オクターブ

 

チャンネルは 00〜03 です。SOUND の 0〜3 と共通します。

 


MML で音を出す

?"PANCAKE MUSIC SCORE 00 01 70 CDEFGAB>C

 

MUSIC SCORE で MML 指定によって音を出します。

 

PANCAKE MUSIC SCORE チャンネル 再生 テンポ・音色 MML

 

再生 は 01 ですぐに再生します。

テンポ・音色は左の 0〜F がテンポです。大きい程遅くなります。

右の 0〜3 が音色です。0=方形波 1=正弦波 2=80's 3=バイオリン

MML は CDEFGAB-+ の音程指定、~ で伸ばす、R で休符です。

N でノイズ音になります。(オクターブで変調指定可)
<> は > →1オクターブ「高」くするです。

先頭に $ を付けると、繰り返し再生にできます。

 

MML で一斉に音を出す

?"PANCAKE MUSIC SCORE 00 00 70 $C

?"PANCAKE MUSIC SCORE 01 00 70 $E

?"PANCAKE MUSIC SCORE 02 00 70 $G

?"PANCAKE MUSIC SCORE 03 00 70 $>C

?"PANCAKE MUSIC PLAY 01

?"PANCAKE MUSIC PLAY 00

 

MUSIC SCORE の 再生 を 00 にしておく事で

すぐに再生せず、MML を貯めた状態になります。

これで各チャンネルの MML を登録した後、

MUSIC PLAY 01 で再生する事ができます。 

MUSIC PLAY 00 で停止できます。

 


OUT ポートの状態を変更する

?"PANCAKE OUT FF

 

PanCake 固有の OUT1〜8 の出力状態を変更します。

PanCake プリント基板の場合は CN3 へ接続します。

PanCake ブレッドボードや ai.cake は CPU の該当端子です。

 

PANCAKE OUT 状態

 

状態は OUT1〜8 が 16進数 01 02 04 08 10 20 40 80

(10進数 1 2 4 8 16 32 64 128)となります。

これらを加算した値で設定します。

リソースを切り替える

?"PC !RESUP! 01

 

IchigoCake で CakeRes を使用している場合に

内蔵の画像・スプライト・音楽を変更します。

 

CakeRes を CN7 端子へ接続し、
CakeRes の TXD と CN3 の RXD を
ジャンパワイヤで接続します。

 

PC !RESUP! リソース

 

00 がデフォルト、01 が CakeRes へ切り替えます。

約 20~30 秒要します。メッセージが表示されます。
終了後は再起動(電源切→入)して下さい。 



バイナリーコマンド

通常 PanCake では

 

?"PANCAKE CLEAR 00

?"PC CLEAR 00 (PanCake 1.0〜・PanCake プチコン3号Edition で有効)

 

と記載しますが、代わりにバイナリーコマンドを使用する事で、プログラムを短くできます。

 

?CHR$(#80,#04,#00,#00)

?CHR$(128,4,0,0)

 

プログラムからバイナリーコマンドを解析しやすいよう、コマンド ID の順番で一覧にしてみました。
バイナリーコマンド1コマンド最大の長さは96バイトです。MUSIC SCORE は特にご注意下さい。

  • 開始 = 開始コード。128(#80)で PanCake はバイナリーコマンドの開始を判断します。
  • 無さ = コマンドの長さ。開始コードからのバイト数です。
  • ID = コマンド ID。コマンド毎に割り当てられています。
  • 値 = コマンド毎に入れる場合。多くは長さが決まっていますが、MUSIC SCORE は可変です。

コマンド部分は コマンド一覧 内の各コマンドにリンクしています。

 

PDF 形式による印刷版を用意しています。

 

ツール/PanCake バイナリーコマンド

 

コマンド 開始 長さ ID 値 1 値 2 値 3 値 4 値 5 値 6 値 7

値 8

0 #00

CLEAR

128

#80

4

#04

0

#00

色番号

             

1 #01

LINE

128

#80

8

#08

1

#01

開始

横座標

開始

縦座標

終了

横座標

終了

縦座標

色番号

     

2 #02

STAMP

128

#80

38

#26

2

#02

横座標

縦座標

透明色

データ

32バイト

3 #03

STAMP1

128

#80

14

#0E

3

#03

横座標

縦座標

透明色

データ

8バイト

4 #04

IMAGE

128

#80

4

#04

4

#04

画像

番号

             

5 #05

VIDEO

128

#80

4

#04

5

#05

表示

非表示

             

6 #06

SPRITE START

128

#80

4

#04

6

#06

画像

色番号

             

7 #07

SPRITE CREATE

128

#80

5

#05

7

#07

番号 パターン            

8 #08

SPRITE MOVE

128

#80

6

#06

8

#08

番号

横座標

縦座標

         

9 #09

SOUND

128

#80

11

#0B

9

#09

0 オクターブ

0

音程

オクターブ

1

音程

オクターブ

2

音程

オクターブ

3

音程

10 #0A

SOUND1

128

#80

6

#06

10

#0A

チャンネル オクターブ 音程          

11 #0B

MUSIC SCORE

128

#80

可変

11

#0B

チャンネル

再生

方法

速さ
音色

MML 可変

(255 #FF を最後に)

12 #0C

MUSIC PLAY

128

#80 

4

#04

12

#0C

再生

停止

             

13 #0D

RESET

128

#80

3

#03

13

#0D

               

14 #0E

CIRCLE

128

#80

7

#07

14

#0E

中心

横座標

中心

縦座標

半径

色番号

       

15 #0F

OUT

128

#80

4

#04

15

#0F

出力値

             

16 #10

SPRITE FLIP

128

#80

5

#05

16

#10

番号 反転            

17 #11

SPRITE ROTATE

128

#80

5

#05

17

#11

番号

角度

           

18 #12

SPRITE USER

128

#80

37

#25

18

#12

パターン

透明色

データ
32バイト

19 #13

BPS

128

#80

5
#05

19

#13

通信速度

0=115200bps

           

20 #14

STAMPS

128

#80

可変

20

#14

横座標 縦座標 パターン 反転
(省略可)
回転
(省略可)
     

21 #15

MUSIC LOAD

128

#80

5

#05

21

#15

チャンネル            

22 #16

欠番

 

 

 

               

23 #17

WBUF

128

#80

4

#04

22

#17

有効

無効