ゲーム機開発関係のサイトは世界レベルでも数万程度しかカウンタが回っていないので、果たして興味を持つ人が日本国内に何人いるか謎(おそらく数人から数十人程度と思われる)ですが、とりあえずそ〜ゆ〜情報です。
個人レベルでゲーム機用のソフトを開発するには、大きく3つの方法があります。
1.公式の個人向け開発ツールを使う
2.公式の企業向け開発ツールを使う
3.公開情報と解析で自作する
PlayStation用のネットやろうぜ、Saturn用のSaturn BASIC、WonderSwan用のWanderWitch等がこれにあたります。過去に、PC-Engine用の「でべろ」というものもありました。数年前にNintendo 64用の個人向け開発ツールが出るというニュースがありましたが、どこいっちゃんたんでしょーね。まあ、ニュースだけってのは任天堂のいつもの手ですけど。
通常、企業向け開発ツールに比べて機能やメモリが制限されています。また、これらのツールを使って製作したソフトの配布条件は、メーカーの規定に従うことになります。
メーカーがインターネットに情報交換サイトを設置したり、自然発生するので、日本語での情報交換は楽です。
しかしながら、個人向け開発ツール出るかでないかはメーカー次第なので、公式の開発ツールが存在しないゲーム機では何もできません。
インターネットには市販ソフトをコ(ピ〜)したwarezがどっかに落ちてるラシイです。こうした中に、本来ライセンス契約した企業しか持ってないはずの開発ツールや資料も存在するラシイです。
入手法が不明なことに加え、warezを使うこと自体がヤバイのはもちろんですが、これを使って開発したソフトを配布するのもヤバイです。
開発ツールを使ってソフトを作ると、メーカーが用意したプログラムの一部(ライブラリ)が組み込まれます。したがって、ライブラリが組み込まれているかどうか調べれば、開発ツールを使っているかどうかモロバレです。おそらくUtopiaのBoot CDがSEGAに怒られて配布禁止になったっていうのも、そのへんが原因じゃないかな〜と思います。
パソコンもゲーム機も基本的な仕組みは同じで、演算を担当するCPU、画像を担当するグラフィックチップ、音楽を担当するサウンドチップ、キーボードやジョイスティック、マウス等の入出力のデバイスの組み合わせできています。
このうち、中心的な存在であるCPUに関しては、CPUメーカーが仕様を公開しています。
また、GCC(GNU Compiler Collection)という、様々なCPUに対応したコンパイラがフリーで公開されているので、ゲーム機のCPU用のコンパイラ(開発環境)は容易にそろいます。
したがって、残った不明なデバイスの制御方法がわかれば、ゲーム機用のソフトを開発できることになります。
例えば、PC-98とIBM-PCでは、同じCPUを使っているので、コンパイラ等の開発ツールは同じものを使えます。グラフィックを表示するには、PC-98では、INT 18hで初期化し、A800:0000に書き込みます。IBM-PCでは、INT 10Hで初期化し、A000:0000に書き込みます。これが「制御方法」の部分です(っていつの話だ)
この制御方法ですが、自分で解析する必要はあまりなく、他の人が解析結果を公開しているサイトが沢山あります。基本的には海外のページが情報源になるので、英語力が必要です。とはいえ、翻訳ソフトや翻訳サイトを利用すれば困らないんですけどね。
現在、Genesis(メガドライブ)、TurboGrafix16(PCエンジン)、NES(ファミコン)、SNES(スーパーファミコン)、GameBoy、Nitendo 64、PlayStation、PocketStation、Saturn、Visual Memory、DreamCastなど、大抵のゲーム機では、開発サイトが存在していて、自作ソフトが公開されています。
この中で、今最もアツイ(と勝手に思ってる)のはDreamCastの開発です。日本では、その手軽さからか、GameBoyやPocketStationの開発が活発です。
今回はDreamCast開発についてお知らせします。
全てはここから始まった・・・ DreamCastとNeoGeoPocketのケーブルを改造して、DCとPCを接続するシリアルケーブルの作成法、また、自作プログラムをシリアルケーブル経由でDCに転送するソフト「serial-slave」が公開され、DreamCast開発が一気に実現しました。
他にも、GD-ROM、グラフィック、サウンド、シリアル、ジョイパッド/マウス/キーボードの制御サンプルプログラムのほか、self boot CDの作成法など、ほとんどの情報はここでそろいます。
Snes9xを移植したDreamCast用のSNES(スーパーファミコンエミュレータ)、DreamSNESの作者としても有名です。
DC開発に関するニュース、ソフト、資料、開発ツール、リンクなどが充実しています。
とりあえずここを基点にすれば、DreamCast開発の全体がつかめます。
また、Windows用のDC向けgccコンパイラの実行ファイルもあるので、自分でgccコンパイラの実行ファイルを作るのが面倒な人は、これを利用できます。
DC向けのエミュレータのリリース情報を中心に、DC用ソフトやPC用DCエミュレータのニュース、解説が豊富です。
開発系のサイトでは取り上げられないちょっとヤバイもの(公式開発ツールを使ったものなど)もあります。
開発系のサイトではいちいち解説されないstep-by-stepのCD-Rの焼き方など、初心者向けの情報も充実しています。
"DreamCast Programming"のサンプルプログラムなどを、ライブラリの形にまとめています。また、DreamCast用のオリジナルOS、KallistiOSというものもあります。サンプルプログラムも豊富で、ゲームやMODプレイヤー、MP3プレイヤーなどもあります このライブラリはNegGeoPocetエミュレータでも使われています。
Jule's DreamCast Developmentにあるコンパイラと、ここのライブラリを使って開発環境にするのがお勧めです。
また、DC開発メーリングリストの過去ログをここで見ることができます。
かつてPlayStation開発でブイブイいわしたHITMENデモチームが、DCでなんかやろうとしてます。DreamCast Debug Handler(DDH)という開発ハードウェアを製作しているようですが、発表から数ヶ月たっても公開の気配はありません。実力あるチームなので、フェイクでないことは確かですが。
DC開発メーリングリストの主催者です。
serial-slaveの機能拡張版といえるdcloadを公開しています。
グラフィック(PowerVR)の制御などの資料、また別のserial-slave拡張版"jin-x"などがあります。
DreamCastで使われているCPU、SuperH(SH4)のサイトです。
SHを製造しているのは日本の日立なので、資料が日本語なのがうれしいですね。
SH4はシリアルやDMA、タイマ、カレンダ等の様々な機能を内蔵しているので、CPUの資料だけでこれらのデバイスの制御方法もわかります。
HITMENが主催するDreamCast開発に関するメーリングリストです。
過去ログ(Cryptic Allusion DCDev内)
最初海外でカーネルだけのCDイメージが公開されていたので、出所はどこか謎だったのですが、日本を中心としたGNU/Linux on SuperH ProjectがLinux Conference 2000 Fall(京都)というLinux関連のイベントで配布したもののようです。こちらのCDには、ソースコード、ドキュメント等、現在のプロジェクトの成果が詰まっています。
GNU/Linux on SuperH Project
Linux Conference 2000 Fall(京都)配布CDイメージ
もともとNetBSD/sh3はすでに存在していること、DreamCastのCPUであるsh4はシリアルを内臓していることから、シリアルドライバさえ実装すれば汎用のsh4カーネルをDreamCastで動作させることは可能で、動作報告は以前からあったようです。
今回、DreamCast開発の一人者であるMarcus Comstedt氏(DreamSNESの作者)が開発に参加したことで、DreamCast固有のデバイスドライバ(グラフィック、GD-ROM等)の実装が進むと思われます。
で、それって何がうれしいの?ってことですが、今のところは開発マニアのおもちゃに過ぎませんが、基本的なOSが動作するようになることで、個々のソフトを一つずつ移植するより移植作業が楽になり、Doom、Quake、Hexen、MAME、VNC、各種エミュレータなど、Linux/NetBSD版が存在するソフトウェアのDCへの移植が一気に加速すると思われます。
GAMEBOY ADVANCEってもう出てたっけ?
デモ、サンプルプログラム、資料はおろか、GBAのエミュレータまであります。
実機がないのにどうやって情報を知ったのか謎ですが、とにかくGBAの開発がはじまっています。