とわ君に独り言2(痛)

MSXやエレキギターが好きなおっさんの戯言。妻が白血病で亡くなり、3人の子供達と暮らしてます。昔のブログ→id:TOWA0104

■小技裏技その他メモ■MSX BASIC入門 ゲーム制作〜番外編〜

●2023/10/10追記※そのうち整理します。
■MSXゲーム裏技集■オマケ▽作者不明

本題
MSXの1ドットの縦横比は1:1ではなく、わずかに横が長い。

●PRINT文のみでカーソル位置を決める
・CHR$(27) "Y"CHR$(32 + y)CHR$(32 + x)

●SCREEN1を25行表示 POKE &HF3B1,25
(画面上の表示は24行だが見えない25行目が発生、24行目で改行しても画面がスクロールせずカーソルが見えない25行目になり、普段より1行だけ多くリスト表示出来る。26にするとPRINT文で24行末尾までリスト表示可)※スプライトアトリビュートテーブルに掛かっているので、「OK」の後ろにスプライトアトリビュートデータのゴミが出てしまう場合あり💦

■スプライトの衝突判定 VDP(8)AND64 が0でなければ衝突■

■スプライト非表示
・消したいスプライトのY座標を208にする
(スプライトモード2は場合は216)
・指定したスプライト以降を全て非表示にするには
Y座標を209(モード2では217)にする
※2023/10/10追記

■ワークエリア等■
●FB40hが0ならPLAY文が鳴っていない。
●システムタイマー●BASIC起動中は、FC9Ehからの2バイトが常にインクリメントして入っている。

●USRTAB(F39AH, 20)
初期値 FCERR
・USR関数のマシン語プログラム(0~9)の開始番地、機械語プログラム定義前の値はすべてエラールーチンFCERR(475AH)を指す
●CMD命令飛び先はFE0DH

●TRGFLG(F3E8H, 1)
初期値 FFH
ジョイスティックのトリガボタンの状態
0=押されている 1=押されていない
bit 0=SPACE キー
bit 4=ポート 1・A ボタン
bit 5=ポート 1・B ボタン
bit 6=ポート 2・A ボタン
bit 7=ポート 2・B ボタン

●GXPOS(FCB3H, 2)
・X座標
●GYPOS(FCB5H, 2)
・Y座標
●(F3DCH,1)CSRY
・カーソル Y 座標 一番上は 1
●(F3DDH,1)CSRX
・カーソル X 座標 一番左は 1

●(F922H,2)NAMBAS
・今のパターンネームテーブルの開始番地
●(F924H,2)CGPBAS
・今のパターンジェネレータテーブルの開始番地
●(F926H,2)PATBAS
・今のスプライトジェネレータテーブルの開始番地
●(F928H,2)ATRBAS
・今のスプライトアトリビュートテーブルの開始番地


■機種依存■

●RAM8KB機だとページ3のC000~DFFFは固定FFで埋まっており利用出来ず、E000~FFFFにRAMがある


●カラーコード0を透明色から別の色にして使う(MSX2以降)
VDP(9)=VDP(9)OR&H20
COLOR=(0,r,g,b)

PanasonicのFS-A1FXとWXとWSXは、
OUT64,8:OUT65,0と入力すると5.37Mhzモード(高速)になる。
「OUT65,154」でもOK?

●TurboRモードにチェンジDEFUSR=&H180:A=USR(0)


■BASIC内部構造関連■
●中間コード表→http://ja.linkdata.org/view/rdf1s1094i
http://ngs.no.coocan.jp/doc/wiki.cgi/datapack?page=%C3%E6%B4%D6%A5%B3%A1%BC%A5%C9%B0%EC%CD%F7%C9%BD
●TXTTAB(F676H, 2)
・BASICテキストエリアの先頭番地
●(F6C6H,2)STREND
BASIC がテキスト等で使用してるメモリ最後番地
●(FBB2H,24)LINTTB
・ラインターミナルテーブル 画面各行の情報を保存
●DOT(F6B5H, 2)
・画面に表示された、あるいは入力された最新の行番号
●F6B6
●VARPTR
・変数の入っている開始アドレス
●(FBB1H, 1)BASROM
・BASICテキストの存在場所を示す(0=RAM上、0以外=ROM上)

■スプライト■
●スプライトの衝突判定 VDP(8)AND64 が0でなければ衝突
 
■PSG関連■
●PSGの初期化BIOS
・GICINI(0090H,1)

■モニタ■
小さめのRCA(ピンプラグ)入力のモニタを安く探すなら、オクでポータブルDVDプレーヤが3000円以下で落札がお得(4:3対応機種に限る)


※度々更新します。