BERO
http://www.geocities.co.jp/Playtown/2004/

はじめに

本誌では、DC上で動作するエミュレータやDCのGD-ROMを読むツール(いわゆる吸出しツール)を紹介してきましたが、 Internetでは、ゲーム、デモ、MP3プレイヤー等、他にも様々なソフトがあります。

ゲームといっても、サンプルプログラムやミニゲームの域を出ないものが多いのですが、中には、かつてPCで一世を風靡した3Dアクションゲーム、DOOMの移植を進めているところもあります。
「デモ」というのは体験版のことではなくて、綺麗な画像や3Dグラフィックを表示して技術力を見せるものです。かんじとしては、PCの3Dベンチマークソフトに近いものです。

こういったDC用ソフトウェアは、BOOB!(http://www.boob.co.uk/)やDC Emulation(http://www.dcemulation.com)で紹介されています。

※MIL-CD対応のDCでしか動作しません。

DC Tonic

何人かの作者が集まって、E3(アメリカのゲームショー)のために複数のソフトを一つのCDにまとめたものです。ゲーム、デモ、MPプレイヤー等が入っています。

配布ページ:http://sourceforge.net/projects/cadcdev/ (dctonicをダウンロード)
Disc Juggler/Neroイメージにしたもの : http://www.boob.co.uk/usertools.html

Variance

かなり力の入ったデモ。PAL(ヨーロッパのTV方式)用なので、一部画面が乱れるところがある

配布ページ: http://www.weltmarktfuehrer.de/


DC用ソフトウェアは、いくつかの形式で公開されています。
大きく分けると、CD-Rに焼くことを前提したものと、実行ファイルが一つだけのものです。

ライティングソフトのイメージ形式で公開されているものは、対応のライティングソフトを持っていればそのまま焼けばOKです。Disk JugglerやNeroのイメージ形式で公開されていますが、作者の使っているライティングソフトのバージョンと、自分の使っているバージョンが異なると、うまく焼けないことがあります。また、作成に失敗したイメージが公開されていることもあるので、注意してください。

srec
テキスト形式。主にserial-slaveで使う。
elf
ヘッダやデバッグ情報がついている。
bin
ヘッダも何も無いバイナリ。特にbinという拡張子がついているとは限らない。
1ST_READ.BIN
binをCD起動可能にしたもの。scrambled形式とも言われる。

このうちCDに焼くことができるのは、binと1ST_READ.BIN形式のものです。 bin形式のものは、後述のツールで1ST_READ.BINに変換してから焼きます。

ちなみに、sh(DCのCPU)の開発環境があれば、

	sh-elf-objcopy -O binary  <変換後のファイル名>
とすることで、elfやsrecをbin形式に変換することができます(<や>は入力しない)。


イメージを作って焼く

通常のライティングソフトではDC用のCDは作成できないので、フリーのライティングソフトを使って焼きます。 以下の作業はDOSプロンプト(コマンドプロンプト)で行います。

以下、特にダウンロードサイトの指定がないツールは、私のページにあります。

準備

配布されているファイルにIP.BINや1ST_READ.BINが同梱されている場合は、以下の作業は必要ありません。

Dreamcast Programming(http://mc.pp.se/dc/) の [Software][Develoment Tools]から、「IP creator」(makeip.tar.gz)と「1ST_READ.BIN scrambler」をダウンロードします。どちらもCソースで公開されているのでコンパイルが必要です。

コンパイラを持っていなくても、Free Borland C++ Compiler(http://www.borland.co.jp/cppbuilder/freecompiler/index.html)やmingw(http://www.mingw.org/)などの無料コンパイラを使ってコンパイルできますが、コンパイル済みのものを私のページに公開しておきます。

1ST_READ.BINを作る

	scramble binファイル 1ST_READ.BIN
これで、bin形式のファイルをCD起動形式に変換します。

IP.BINを作る

	makeip ip.txt IP.BIN
とすることで、ip.txtの内容に従ってIP.BINを作ります。ip.txtには、メモ帳等で起動ファイル名(通常1ST_READ.BIN)や作者、タイトル情報を書き込みますが、通常そのままでOKです。

この他、追加のファイルが必要な場合があります。例えばエミュレータやMP3プレイヤーでは、特定のディレクトリにROMやMP3ファイルを入れる必要があります。

イメージを作る

http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html から、windows版のcdrecordをダウンロードします。リンクをたどって、 ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/win32/ から、最新のcdrtools(執筆時点ではcdrtools-1.11a04-win32-bin.zip)をダウンロードします。

準備

CD-Rドライブがが何番に割り当てられているか確認します。

	cdrecord -scanbus
とすると、接続されているドライブの一覧が表示されます。流れてしまって読めない場合は
	cdrecord -scanbus >log.txt
として、log.txtをメモ帳等で見てください。 この中から、CD-Rドライブの番号を探します。うちでは0,0,0でした。
Cdrecord 1.10 (i586-pc-cygwin) Copyright (C) 1995-2001 Jrg Schilling
Using libscg version 'schily-0.5'
scsibus0:
	0,0,0	  0) 'TEAC    ' 'CD-R56S4        ' '1.0P' Removable CD-ROM
	0,1,0	  1) *
	0,2,0	  2) *
	0,3,0	  3) *
	0,4,0	  4) *
	0,5,0	  5) *
	0,6,0	  6) *
	0,7,0	  7) HOST ADAPTOR
scsibus1:
	1,0,0	100) 'IBM-DTLA' '-305040         ' 'TW4O' Disk
	1,1,0	101) *
	1,2,0	102) *
	1,3,0	103) *
	1,4,0	104) *
	1,5,0	105) *
	1,6,0	106) *
	1,7,0	107) HOST ADAPTOR
scsibus2:
	2,0,0	200) *
	2,1,0	201) *
	2,2,0	202) *
	2,3,0	203) *
	2,4,0	204) *
	2,5,0	205) *
	2,6,0	206) *
	2,7,0	207) HOST ADAPTOR

第一セッションのデータの用意

第一セッションには、何でもいいので音楽ファイルを用意します。 CDの規格上、4秒以上の長さが必要です。4秒のファイルは705600バイトになります。

4秒の無音(全て0)のファイルを用意するには、mktmpを使って

	mktmp audio.raw 705600
とします。mktmpはhack.lzhに入っています。

第一セッションを焼く

	cdrecord dev=0,0,0 -speed=4 -multi -audio audio.raw
ここで、dev=0,0,0の部分は、最初に確認したCD-Rドライブの番号です(以下同じ)。audio.rawは音楽として焼くファイルです。wav形式のファイルも利用できます。-speed=4の部分は焼きこむ速度で、省略すると1倍速になります。

第一セッションのサイズの確認

	cdrecord dev=0,0,0 -msinfo
第1セッションがどこまで使われているか確認します。0,11702と表示されたら、11702セクタまで使われています。

イメージの作成

	mkisofs -l -C 0,11700 -o image.iso 焼きたいディレクトリ
-Cのあとの数字は、cdrecordで確認した数字です。-lは小文字のLです。これでisoイメージが作成できます。

初期化コードの書き換え

	ippatch image.iso IP.BIN
作成したイメージの先頭部分を、IP.BINと差し替えます。

第二セッションを焼く

イメージを実際にCD-Rに焼きます。 speed=は焼き速度です。

	cdrecord dev=0,0,0 -speed=4 -xa1 image.iso

完成

あとは、できたCD-RをDCで起動します。

手っ取り早く試す

ブロードバンドアダプタ、またはシリアルケーブルがあれば、PCからDCにソフトを転送して直接動かすことができます。

dcload-ipとブロードバンドアダプタを使う

dcload-ipのサイトから、dcload-ipイメージファイル、dc-tool-ipのwindows用バイナリ、dllsをダウンロードします。
http://www.cerc.utexas.edu/~andrewk/dc/dcload-ip/index.html

イメージを展開したら、

1st_read.bin(scrambled)
4494 "000.000.000."
4560 "000"

dcload-ip-103-0.0.0.0-Nero.nrg
11615C "000.000.000."
116228 "000"

dcload-ip-103-0.0.0.0-DiscJuggler3.cdi
16BA1C "000.000.000."
16BAE8 "000"

"192.168.000" "100"

等、DCのIPアドレスにバイナリエディタで書き換えて焼きます。(dcload-ipのバージョンが変わっていたら、同様の部分を検索してください)

(DCのIPアドレスを決める際、詳細はDreamRip 2.0のマニュアルを読んでください)

DC側でdcload-ipを起動します。

コマンドプロンプトを開き、

C:\>ping 192.168.0.100 (192.168.0.100はDCのIPアドレス)

Pinging 192.168.0.100 with 32 bytes of data:

Reply from 192.168.0.100: bytes=32 time=10ms TTL=128
Reply from 192.168.0.100: bytes=32 time<10ms TTL=128
Reply from 192.168.0.100: bytes=32 time=10ms TTL=128
Reply from 192.168.0.100: bytes=32 time<10ms TTL=128

Ping statistics for 192.168.0.100:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  10ms, Average =  5ms
のように返事(Reply)が返ってきたら接続OKです。
	dc-tool -t 192.168.0.100 -x プログラム
ここで、プログラムはsrec,elf,bin形式のどれでもOKです。 1ST_READ.BIN形式を実行する場合は、
	scramble -d 1ST_READ.BIN test.bin
として、bin形式に変換しておきます。

別のプログラムを動かす場合、実行中のプログラムに終了機能があれば(STARTボタン等に割り当てられてることが多い)終了し、なければDCをリセットします。

dcload-serialとシリアルケーブルを使う

dcload-serialのサイトから、イメージファイル、windows用バイナリ、dllsをダウンロードします。
http://www.cerc.utexas.edu/~andrewk/dc/dcload-serial/index.html

あとはdcload-ipとほとんど同じです。

	dc-tool -t COM1 -b 115200 -x プログラム

serial-slaveとシリアルケーブルを使う

teratermやHyperTerminalの「テキスト送信」でsrecファイルを送信します。 詳細はDreamRipの関連ドキュメントを読んでください。