M1(Appleシリコン)Macで、ファミコンソフトプログラミング。 サクッと開発環境準備編
2021.03.21
この記事は最終更新日から1年以上が経過しています。
どもです。
最近、ゲーム作りたい欲も久々に湧いてきまして、いい加減Unityを始めようかと思いましたが、
ファミコンのエミュレータ作りたい事もあって、(前からやると行って未だ着手できていない。。)ファミコンのゲームが良いなと思って初めて見ました。
ファミコンのゲーム作成やエミュレータ作成に関しての情報はネットでも沢山ありますが、M1Macでの作成事例はまだ無さそうな雰囲気もあって、人柱的に靄ってみようかなと。
そもそも出来るのかと調べたら、なんかいけそうですね。
という事で、早速、開発環境作成していきましょう。
環境
- Mac mini (M1, 2020)
- Mac OS 11.2.3
- Apple clang version 12.0.0
開発ツール インストール
ファミコンのゲーム作成に必要なアセンブラとエミュレータをインストールしていきます。
アセンブラとエミュレータは色々存在しますが、アセンブラには、「nesasm」エミュレータには「fceux」を使用していきます。
nesasm
nesasmは、ファミコン開発用のアセンブラとなります。こちらを使って、ファミコンソフトが実行できるnes形式ファイルの、.nes形式にアセンブルできます。
nesasm github
https://github.com/camsaul/nesasm
こちらのファイルをダウンロードします。
https://github.com/camsaul/nesasm/archive/refs/heads/master.zip
sourceフォルダに移動して、makeコマンドと、sudo make installを実行してインストールします。
インストール
$ cd source && make && sudo make install
エラーがなく、無事インストールできたら徐に、nesasmコマンドを実行。
$ nesasm NES Assembler (v3.1) s/S : show segment usage -l # : listing file output level (0-3) -m : force macro expansion in listing -raw : prevent adding a ROM header -srec : create a Motorola S-record file infile : file to be assembled
このように表示すれば成功。ふむ良いですね。
エミュレータ インストール
続いてエミュレータをインストールしていきます。
実行環境となるエミュレータですが、遊ぶだけであればなんでも良いのですが、開発となるとデバッグ機能などが備わっていると非常に便利なので、皆さん使用されている「FCEUX」をインストールしていきます。
FCEUX
公式
http://fceux.com/web/home.html
github
https://github.com/TASVideos/fceux
ダウンロード
http://fceux.com/web/download.html
Homebrew
https://formulae.brew.sh/formula/fceux
こちらは、Homebrewを使ってサクッとインストールしていきます。
Homebrewのページでも確認できるように、しっかり、Apple Siliconはオッケーマーク出てますね。
その他、インストールされるパッケージは、以下の様なパッケージとなっております。
- qt@5 5.15.2
- sdl2 2.0.14
- cmake 3.19.7
- pkg-config 0.29.2
それでは、brewコマンドでインストール。
$ brew install fceux
インストール終了後、パスも通ってますので、fceuxコマンドを叩きますと、
はい。きた。
では、「HelloWorld」を表示していきましょう。
ファミコン開発で有名なサイトの「NES研究室」さんからサンプルファイルをダウンロードします。
NES研究室
http://hp.vector.co.jp/authors/VA042397/nes/sample.html
ダウンロードすると、「HELLO, WORLD!」を表示させる実行ファイルsample1.nesがあるので、FCEUXのFileから読み込むと
はい。表示したぁ!
「HELLO, WORLD!」実行したらこちらのものですね。あとはひたすら作成していくのみ。
ファミコンの仕様やスペックやアセンブラなどに関しては、以下のサイトなどを参考に。
その他、色々と情報がありますので、詳細は割愛しつつ、何か作っていきたいと思います。
NES研究室
http://hp.vector.co.jp/authors/VA042397/nes/index.html
ギコ猫でもわかるファミコンプログラミング
あと、ファミコン世代じゃないでファミコンのゲームなんてよく知らないわ。って方も、この辺の書籍はオススメです。
当時、少ないスペックで、工夫してゲームを作成していた様子がわかります。
今回はとりあえず、サクッと開発環境を用意してみました。
次回から作成していきますー。ではではぁ。