Macで作る、ファミコンソフトプログラミング。アセンブラでハローワールド編このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。Macで作る、ファミコンソフトプログラミング。アセンブラでハローワールド編Game2021.11.08この記事は最終更新日から1年以上が経過しています。前回のこちらの記事に引き続きファミコンプログラミングでもと。WORLD」を表示させたのですが、今回は実際にアセンブラでプログラムを書いて作って行こうかと思います。WORLD」の文字を画面に出したい。WORLD」の文字列を出すだけなら簡単でしょ。思いそうですが、昔々のがファミコン時代の頃には文字列というのもなく、端的に言うと文字を出すのも画像(スプライト)を作る必要がある訳なのです。Macの環境でファミコンゲームの作成を行って行きましょう。13.0.0スプライト画像作成という訳で、スプライト画像の作成から行って行くのですが、それには「YYCHR」というツールを用いて作成していきます。Wineをインストールしそちらで起動します。YYCHR.exe起動すると、この様な表示になるかと思います。今回は、「YYCHR」の使い方詳細は割愛させていただきます。いつか機会があれば書いていきたいとは思いますが、こちらのYYCHRのWikiに使用方法など書かれているので、そちらを使用方法は確認していただけると理解できるかと思います。Amazon調べ-詳細)Amazon楽天市場Yahooショッピングという事で、上記の書籍を参考に以下の様にスプライトの作成。作成したスプライトは、character.chrファイルとして書き出しを行います。WORLD」と表示される様に、hello.asmファイルのアセンブラプログラムを作成します。作成するアセンブラプログラムは以下の様な感じです。"character.chr"色々書かれていますが、全部説明となると途方もないので、とりあえず、bank2に先程作成したスプライトのcharacter.chrを読み込んで、.loadSpritePaletteでスプライトの種類、位置を設定して画面に配置しております。それでは、上記のアセンブラプログラムを元に、ファミコン実行ファイル「.nes」形式にアセンブルするために「nesasm」をインストールしていきます。assemblyをアセンブルするため「nesasm」をインストールしていきます。「nesasm」のソースはgithubに上がっております。clone行うかしローカルにファイルをダウンロードします。以下のコマンドを実行nesasmをインストールします。installインストール完了後、nesasmコマンド実行し、以下の様に表示すれば問題なくインストール完了です。assembled先程の作成したスプライトのcharacter.chrファイルと、hello.asmが置かれたディレクトリにて以下のコマンドを実行します。hello.asmすると、新しく「hello.fns」と「hello.nes」ファイルが生成されます。「hello.nes」ファイルが実行ファイルとなりますので、エミュレーターを使ってデバッグしてみましょう。シミュレータでデバッグファミコンシミュレータは沢山存在します。開発用として重宝されている有名な「fceux」でデバッグを行うと。問題なく表示されていますね。Emu」でデバッグしてみると。Emuおや、「LD」の2文字が表示されません。思われがちですが、ファミコンの仕様としてはこちらが正解。スプライトは、同時に8個以上並べられない仕様なのです。8個以上並べると表示されなくなります。Ultraからフォークされて拡張された「fceux」では仕様通りではないって感じでしょうか。(検証してみた感想)という訳で、仕様に沿って文字表示されたいとなると、Wからの文字をずらしたりすると良いでしょうか。Y座標を10ずらしてみます。WORLD」と認識できました。この手法はなにか見覚えありますね。チャレンジャーのゲーム中によく出てくる文字表示の表現だ!仕様に沿って、8個以上文字が並ばないように、少しずつずらして、文字を表示されているのがわかりますね。当時はおしゃれでやっているのかと思っておりましたが、そういった理由があったのですね。C言語などでも作成できるようになっておりますので、今後は開発する際はそちらでやって行こうかなとか思っております。やることいっぱいなので、後になっていくのだろうなぁと思っております。