2020-02-23
テレビの世界を自在に操れることに衝撃を受けたファミコン。そのファミコンのゲームをつくりたくて買ってもらおうとしたファミリーベーシック。母親が買ってきたのは、MSX。

今こそ作ってみよう、ファミコンゲーム! 分かりやすい入門記事を発見「suzukiplan/mgp-fc: ファミコンで始める ~ 6502マシン語ゲームプログラミング」。 GitHubに公開された、サンプルゲーム「COSMIC SHOOTER」「Battle Marine」もステキ! MOS6502のマシン語は「モジュール 6502」を参照。


「Kawakudari for NES」src for NESASM on GitHub
画面、操作、音、ゲームの基本的なところをまず試すために「かわくだりゲーム for IchigoJam」をファミコンへ移植! RAM容量は、IchigoJamと同じ4KB(RAM2KB、VRAM2KB)、52色カラーの背景とスプライトを絶妙に使った省メモリ設計が見事!(参考、ファミコンのグラフィックスの省メモリ化テクニックとは? | POSTD
*NES = Nintendo Entertainment System (ファミコンの英語名)


JavaScriptで作られたファミコンエミュレーター、JSNESでも、サクッと動く。(nesファイルをダウンロードして、ドロップすればOK!)

sprite_put: lda #30 ; Y sta SP_CAT + 0 lda #236 ; cat sta SP_CAT + 1 lda #0; T sta SP_CAT + 2 lda #120 ; X sta SP_CAT + 3 rts

マシン語プログラムの一部、ネコ表示(IchigoJam的にかくと LC 120,30:?CHR$(236))。ファミコン、MSX、PanCakeにはあるけど、IchigoJamにはないスプライト。4byte使って座標とキャラクター番号、左右上下反転、パレットを設定すれば表示される。 6502のコンパクトな8bitマシン語が心地よい。


細かい挙動が気になったら、ソースコードで確認もでき、あれこれデバッグするためのツールを作ったりも、自由に自在なオープンソース!(src on GitHub


手軽にファミコンカセットにする方法、模索中。

links
- suzukiplan/mgp-fc: ファミコンで始める ~ 6502マシン語ゲームプログラミング
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1(上記が難しかったらこちらや BASIC から遊びましょう)
- 高橋名人緊急参戦! 高専や技術の先生向け、トラ技ジュニア読者限定セミナー 直伝プログラミング実習(ファミリーベーシック入門の著書!)

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS