#この記事の概要
1985年にファミコンで発売されたスーパーマリオブラザーズの容量は40KBでした。
ではその40KBにどのようなソースコードが詰まっていたのでしょうか。
実際にスーパーマリオブラザーズのソースコードを見ることはできない為、
この記事ではオープンソースで公開されているファミコンソフトウェアを紹介します。
#この記事の対象者
- ファミコンソフトウェアがどのようなソースコードで書かれているか見てみたい方
- ファミコンソフトウェア開発をしてみたいが、0からのスタートではなく何かをベース(参考)にして初めて見たい方
#一覧
ソフトウェア名 | 作成者 | ジャンル | 容量 | アセンブラ |
---|---|---|---|---|
Tiger Jenny | Ludosity 氏 | アクション | 40KB | CC65 |
Lan Master | Shiru 氏 | パズル | 40KB | NESASM |
Lawn Mower | Shiru 氏 | アクション | 24KB | NESASM |
Alter Ego | Shiru 氏 | アクション | 24KB | NESASM |
Chase | Shiru 氏 | パックマン | 40KB | CC65 |
Concentration Room | Damian Yerrick 氏 | 絵合わせ | 24KB | CC65 |
Thwaite | Damian Yerrick 氏 | シューティング | 24KB | CC65 |
Lala The Magical | Mojon Twins 氏 | アクション | 80KB | CC65 |
RevolvingGems | KYOSKE(野うさぎ亭) 氏 | パズル | 64KB | NESASM |
東方老桜夢 | KYOSKE(野うさぎ亭) 氏 | シューティング | 512KB | NESASM |
Dushlan | Peter McQuillan 氏 | テトリス | 40KB | ASM6 |
Nova the Squirrel | NovaSquirrel 氏 | アクション | 256KB | CC65 |
Nintencat - The Parody | Sly Dog Studios 氏 | アドベンチャー | 40KB | CC65 |
##Tiger Jenny
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Ludosity 氏 | アクション | 40KB | CC65 | 下記参照 |
ライセンス
-
Audio部
CreativeCommons BY-NC-SA 4.0 -
Graphics部
Anton Nilsson 氏 および NilsHärgestam 氏 所有 -
上記以外
ライセンスに関する表記を確認できず
Ludosity - Actually retro games!
https://ludosity.com/2014/05/actually-retro-games/
「移動」「ジャンプ」「攻撃」「ライフ」「残機」「敵キャラ」など、
一般的な横スクロールアクションゲームにある要素は詰まっています。
Shiru氏のneslibとFamiTone2を使用しており、大部分がC言語で記述されています。
##Lan Master
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Shiru 氏 | パズル | 40KB | NESASM | パブリックドメイン |
Shiru's Stuff
http://shiru.untergrund.net/software.shtml#nes
各PCとケーブルを回転させて、1本に繋げるゲーム。
4桁の数字によるパスワード機能が搭載されています。
ライセンスがパブリックドメインとなっています。
##Lawn Mower
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Shiru 氏 | アクション | 24KB | NESASM | パブリックドメイン |
Shiru's Stuff
http://shiru.untergrund.net/software.shtml#nes
1画面固定型で、画面上の芝を刈るゲーム。
ライセンスがパブリックドメインとなっています。
##Alter Ego
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Shiru 氏 | アクション | 24KB | NESASM | 下記参照 |
ライセンス
-
コード、効果音、グラフィック
パブリックドメイン -
他のコンポーネント(ゲームコンセプト、キャラクター、タイトル、音楽)
Denis Grachev氏、kulor氏
Shiru's Stuff
http://shiru.untergrund.net/software.shtml#nes
Denis Grachev氏によるZX Spectrum向けゲームをファミコンに移植したもの。
RetroSouls - Alter Ego
http://www.retrosouls.net/?p=459
付属するnotes.txtに記載されている通り、C言語による開発を目的としてゲームのようです。
I had plan to try use C compiler to make a simple NES game.
シンプルなNESゲームを作るためにCコンパイラを使うことを計画。
…
prove that C is an actual option to develop NES games, not just a theoretical possibility.
CがNESゲームを開発するための実際の選択肢であり、単なる理論上の可能性ではないことを証明。
##Chase
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Shiru 氏 | パックマン | 40KB | CC65 | パブリックドメイン |
Shiru's Stuff
http://shiru.untergrund.net/software.shtml#nes
パックマン風ゲーム。
Alter Ego同様に、C言語で記述されています。
This is an example game that is developed for my article Programming NES games in C.
CでプログラミングしたNESゲーム用に開発されたサンプルゲームです。
Shiru氏のneslibとFamiTone2が使用されています。
##Concentration Room
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Damian Yerrick 氏 | 絵合わせ | 24KB | CC65 | GPLv3 |
Pin Eight - Concentration Room
http://pineight.com/croom/README
裏返ったカードから同じ絵柄の2枚のカードを当てるゲーム。
10枚、20枚、36枚、52枚、72枚と難易度が上がっていきます。
CPU対戦の他に、2P対戦も行うことができます。
ゲームメニューにて「1 Player Story」選択時は、グラフィックとテキストによるストーリが流れます。
##Thwaite
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Damian Yerrick 氏 | シューティング | 24KB | CC65 | GPLv3 |
Pin Eight
http://pineight.com/
ミサイルコマンド風ゲーム。
空から降ってくるミサイルを撃墜していきます。
Concentration Roomと同様にゲーム開始前に、グラフィックとテキストによるストーリが流れます。
##Lala The Magical
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Mojon Twins 氏 | アクション | 80KB | CC65 | Creative Commons BY-NC-SA 3.0 |
Mojon Twins
http://www.mojontwins.com/juegos_mojonos/lala-the-magical-nes/
初めはジャンプのみですが、魔法の杖を取得すると、ジャンプ後に足場を作成でき、より高いところに行くことができるようになります。
面数も豊富で、本格的な横スクロールアクションゲームとなっています。
Shiru氏のneslibとFamiTone2が使用されています。
##RevolvingGems
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
KYOSKE(野うさぎ亭) 氏 | パズル | 64KB | NESASM | ラインセンスに関する表記を確認できず |
野うさぎ亭
http://kyoske.sakura.ne.jp/index.cgi
宝石を回転させ4つ以上つなげて消していくゲーム。
##東方老桜夢
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
KYOSKE(野うさぎ亭) 氏 | シューティング | 512KB | NESASM | ライセンスに関する表記を確認できず |
野うさぎ亭
http://kyoske.sakura.ne.jp/index.cgi
東方老桜夢 専用ページ
http://kyoske.sakura.ne.jp/index.cgi?p=%E6%9D%B1%E6%96%B9%E8%80%81%E6%A1%9C%E5%A4%A2
512KBとFF3やDQ4と同じ容量となり、かなり規模の大きいゲームです。
東方Projectに準じた弾幕シューティングをどこまで表現できるか をテーマに制作されているようです。
Readmeに記載されております通り、関連する方々へのお問い合わせは行わないよう、お気を付けください。
なお、「東方妖々夢~Perfect Cherry Blossom.」を元にしていますが、
本作品との直接的な関係はありませんので、上海アリス幻樂団様への
問い合わせは行わないでください。
また、東方古魔郷の存在が制作するに至る一因でありますが、
本作品との直接的な関係はありませんので、さいごめんのボス様への
問い合わせは行わないでください。
##Dushlan
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Peter McQuillan 氏 | テトリス | 40KB | ASM6 | BSDライセンス |
GitHub
https://github.com/soiaf/Dushlan
テトリス風ゲーム。
「ホールド」「ゴースト表示」機能なども実装されています。
ASM6アセンブラ向けに記述されています。
##Nova the Squirrel
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
NovaSquirrel 氏 | アクション | 256KB | CC65 | GPLv3 |
Nova the Squirrel
https://novasquirrel.itch.io/nova-the-squirrel
GitHub
https://github.com/NovaSquirrel/NovaTheSquirrel
256KBと規模の大きいゲームとなっています。
33のステージと7体のボスがいるようで、市販ソフト並みのボリュームとクォリティとなっています。
続編のNova The Squirrel 2がスーパーファミコン向けに開発されています。
##Nintencat - The Parody
作成者 | ジャンル | 容量 | アセンブラ | ライセンス |
---|---|---|---|---|
Sly Dog Studios 氏 | アドベンチャー | 40KB | CC65 | ライセンスに関する表記を確認できず |
Sly Dog Studios
https://slydogstudios.org/
猫を観察するゲーム。
「呼ぶ」「おもちゃ」「ご飯」「お水」「SAVE?」の5つの行動を選択できます。
作者のホームページには、他にも10種類以上のファミコンソフトウェアが、ソースコードと共に公開されています。
!CLIK! | Babel Blox | KYFF | Snail Maze Game |
---|---|---|---|
#備記
今回紹介したの他にも、オープンソースで公開されているファミコンソフトウェアはあります。
以下のサイトでも紹介されています。
NesDev Wiki - Projects
http://wiki.nesdev.com/w/index.php/Projects