System)向けのプログラム(ROM)を作るための技術資料を公開する目的で作成しました。ここに来る方々は多分ご存知かと思いますが、NESとは日本で発売されたファミコンの事です。この資料はファミコンのプログラムを作るための技術資料ということにもなるはずです。■ファミコンのプログラム作る理由1983年に発売されたファミコンは、今のゲーム機やコンピュータ、スマホに比べても非常にチープな性能しか持っていません。限られたコンピュータリソースの中で最大限の表現を実現しなくてはなりません。後期に開発されたゲームは、素晴らしい発想とそれを実現する高い技術力によって、ファミコンの限界に挑戦しているゲームが沢山あります。多くの技術者からの挑戦を受け止めてきたハードであったことは確かでしょう。今のコンピュータは、ファミコンに比べるととてつもなく強力なハードウェア性能を持っていますが、1クロックの計算も1バイトのメモリもムダにできないようなファミコンでの開発をする事で、普段何気なく行なっている開発をレベルアップできるキッカケになるのではないかと感じます。■作ったROMはファミコン実機で動かせるの?基本的にはNESエミュレータで動作できるROM(*.NES)ファイルを作成するための資料となっています。私はROMを焼くライターも技術も持ち合わせていないので、ファミコン実機での動作は検証したことがありません。■資料は正確なの?色々なサイトで得た情報をまとめ、エミュレータで動作確認をしているだけなので、正確性はまったく保証しません。間違い等があれば教えていただけるとありがたいです。開発ツール■CC656502用のフリーの開発環境です。Cコンパイラ、アセンブラ、リンカ、ライブラリが含まれています。アセンブラとして使うなら6502と65816のニーモニックに対応しています。分割コンパイルやライブラリ作成等もでき、最適化機能も付いているので強力な開発ができるでしょう。バイナリもWindows、Linux、Macなどマルチプラットフォームに対応しており、ソースコードも公開されています。NES用のライブラリも付属しており、main関数からC言語だけでプログラムを書くことも可能にはなっていますが、本サイトで紹介するサンプルプログラムでは標準ライブラリは使用しません。http://www.cc65.org/■YY-CHRWindowsで動作する日本製のフリーのパターンテーブル作成ツールです。ファミコンに限らずゲームボーイやメガドライブ、スーパーファミコン等多くのフォーマットに対応しています。http://www.geocities.co.jp/Playtown-Denei/4503/NESエミュレータ■VirtuaNESWindowsで動作するフリーのNESエミュレータです。再現レベルが非常に高く、多くのマッパーに対応しています。メモリマップ、パターンテーブル、ネームテーブル、パレットを確認できるビューアを搭載していますので、ゲームのデバッガとしてもかなり使いやすいです。http://virtuanes.s1.xrea.com/■NestopiaWindows、Linux、Macで動作するフリーのNESエミュレータです。このエミュレータも再現レベルが非常に高いです。Design:Template-Party。