はじめに

本書をお手にとっていただきありがとうございます!

本書では、アセンブラやコンパイラなどを使用せず、echoコマンドのバイナリ出力やddコマンドなどを駆使して、シェルスクリプトでゲームボーイのROMファイルを生成します。

そのためには、ゲームボーイのCPUの各機械語命令について、そのバイナリ列をecho等で生成する処理をシェル関数で一つ一つ用意して、というような、正にアセンブラを作る作業をすることになります。

ただ、本書では、筆者が個人の開発で使っている自作のライブラリ群を使います。このライブラリ群自身も単なるシェルスクリプトで、sourceコマンドで読み込むことで、ゲームボーイのCPUの機械語命令やカートリッジヘッダ等のバイナリ列を生成するいくつものシェル関数が使えるようになります。

本書では、このように、予め用意したシェル関数を活用してシェルからバイナリを直接吐くことでROMファイルを生成します。

具体的なやり方はこのあと本文で紹介しますが、「シェルスクリプトのみでやる」というのは手軽さもある反面、とても強い縛りでもあるので、少々トリッキーなやり方が登場するのはご了承ください。。

本書の構成

本書は以下の3章構成です。

  • 第1章 開発環境構築と最初のプログラム
    • 開発に使用するスクリプトやエミュレータを紹介しながら、最初のプログラムとして「無限ループするだけ」のROMファイルを生成します
  • 第2章 背景にタイルを配置
    • 画面描画の入門として、ゲームボーイの画面描画方式を紹介し、背景にタイルを配置してみます
  • 第3章 キー入力を試す
    • 入力取得の方法と、割り込みを使用する方法を紹介し、キー入力取得を試します

PDF/HTML版や本書の更新情報について

本書のPDF/HTML版は筆者のウェブページで公開しています。

本書の内容について訂正や更新があった場合もこちらのページに記載しますので、何かおかしな点などあった場合はまずはこちらのページをご覧ください。

サンプルについて

本文でも紹介しますが、本書のサンプルは以下のリポジトリで公開しています。

本文中、コードリストを掲載する際は、このリポジトリ内のファイルパスをキャプションに記載していますので、適宜参考にしてみてください。