DreamCast用KOS開発環境の構築


今更DraamCastです。しかし今さらとは言わせない。

Debian lennyにDC用KOSの開発環境を構築したのでそのメモ。
この文章では/usr/local/dc/にすべてをインストールすることにします。

必要な物
  • ドリームキャスト(MIL-CD対応であること)
  • ドリームキャストとPCを接続するケーブル
  • CDを焼くためのドライブとCD-R

ドリームキャストとPCを接続するケーブルですが、私はこんな感じに作りました。
neogeo通信ケーブルからDC部分を取り外し、そのケーブルをピンヘッダに引き出すプリント基板を作り、それをレベル変換ICにつないでます。
まぁいろんな作り方が出来ると思います。

まずファイルをダウンロード。
# cd /usr/local/dc
# svn co https://cadcdev.svn.sourceforge.net/svnroot/cadcdev/kos
# svn co https://cadcdev.svn.sourceforge.net/svnroot/cadcdev/kos-ports 

gcc,binutils,newlibのダウンロードとコンパイル。
これはkos/utils/dc-chainにあるスクリプトが使えるのでそれを使う。
# cd kos/utils/dc-chain
# sh download.sh
# sh unpack.sh
インストール場所を変更したい場合はkos/utils/dc-chain/Makefileのsh_prefixとarm_prefixを変更すればいいです。
後はコンパイル。待つのみ。
# make
エラーが出る場合はgcc-3.4をaptitudeなりでインストールしてmake CC=gcc-3.4と指定するといいです。

makeが終わったら次はkosのセットアップ。
# cd /usr/local/dc/kos
# cp doc/environ.sh.sample environ.sh
このenviron.shを環境に合わせて変更します。
export KOS_BASE="/usr/local/dc/kos"
インストール先を/usr/local/dc/以外に変更したい人はKOS_CC_BASE,DC_ARM_BASEも変更。

そしてコンパイル。kos-portsの方もコンパイルする。
# cd /usr/local/dc/kos
# . ./environ.sh
# make
# cd ../kos-ports
# make
これでコンパイラのインストールは終了。
環境変数を設定してもらうのに~/.bashrcに
. /usr/local/dc/kos/environ.sh
と付け足しておきましょう。


次にコンパイルしたプログラムをシリアルポート経由で実行するためのソフトをCD-Rへ書き込む。
ブロードバンドアダプタを使ってLAN経由でする方法もありますがいかんせんブロードバンドアダプタを持っていないのでシリアル経由です。
自作プログラム位ならスピードもたいして気にならないのでいいでしょう。

必要なソフトを入れる。
# aptitude install cdrecord mkisofs

cdrecordを入れてみたがちょっといじってみるとこれはライセンスの関係でwodimという物がcdrecordの代わりに入っていることが判明。
このwodimはcdrecordにくらべるとかなりオプションが楽になっているので以後wodimでやることにします。

ドライブがどこに割り当てられているのか調べる。
# wodim --devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
 0  dev='/dev/hdd'      rwrw-- : 'PLEXTOR' 'CD-R   PX-W1210A'
-------------------------------------------------------------------------
これでCD-RWライタが/dev/hddに当たることが分かります。これを以後のdev=の欄に指定する。

起動させるためのCDの構造はマルチセッションで焼かれていて先にセッション1にオーディオファイルを焼き、セッション2に起動するプログラムを変換した物をデータとしてCD/XA mode 2 form 1 formatで焼きます。
先にオーディオトラックを焼く。
# dd if=/dev/zero bs=2352 count=300 of=audio.raw		#4秒の無音ファイルをつくる。
# wodim dev=/dev/hdd -speed=4 -multi -audio audio.raw		#/dev/hddのドライブにマルチセッション、4倍速で書き込み。
# wodim dev=/dev/hdd -msinfo					#マルチセッションで焼かれたCDの最終アドレスを調べておく。
0,11702

次に焼くものの下準備。
http://adk.napalm-x.com/dc/dcload-serial/よりdcload-1.0.3-1st_read.zipをもらってきます
# wget http://adk.napalm-x.com/dc/dcload-serial/dcload-1.0.3-1st_read.zip
# unzip dcload-1.0.3-1st_read.zip
# cp dcload-1.0.3-1st_read/IP.BIN .				#ブートストラップ
# cp dcload-1.0.3-1st_read/scrambled/1st_read.bin .		#dcload-serial本体
# mkisofs -l -C 0,11702 -o hoge.iso 1st_read.bin		#isoイメージ作成。0,11702は前の項で調べた物を使ってください。
# ( cat IP.BIN ; dd if=hoge.iso bs=2048 skip=16 ) > data.raw	#ブートストラップを埋め込む
# wodim dev=/dev/hdd -xa data.raw				#書き込み。-xaで2048bytes/sectorに指定

ちなみに最後の-xaオプションはバージョンによって意味が変わってくるので-helpオプションで調べることを勧めます。
# wodim -help
Usage: wodim [options] track1...trackn
Options:
		(中略)
       -xa             Subsequent tracks are CD-ROM XA mode 2 form 1 - 2048 bytes
       -xa1            Subsequent tracks are CD-ROM XA mode 2 form 1 - 2056 bytes
       -xa2            Subsequent tracks are CD-ROM XA mode 2 form 2 - 2324 bytes
とあるので2048bytesの-xaを私は選びました。
実はこの違いでCD-Rが4枚オシャカに。

送るためのPC側のソフトを同じくhttp://adk.napalm-x.com/dc/dcload-serial/より
linux用のdc-tool-serial-1.0.3-linux.gzをもらってきて解凍。pathの通ってる所にdc-toolとして置いておきます。
$ wget http://adk.napalm-x.com/dc/dcload-serial/dc-tool-serial-1.0.3-linux.gz
$ gunzip dc-tool-serial-1.0.3-linux.gz
$ mv dc-tool-serial-1.0.3-linux dc-tool
$ chmod +x dc-tool
$ cp dc-tool (どこどこ)

そしてこれで環境は整ったのでコンパイルしてみることにします。適当なディレクトリに移動して

$ cp -r /usr/local/dc/kos/examples/dreamcast/video/bfont .
$ cd bfont
このままmakeでコンパイルしてもいいんですが、幾秒後に勝手に終わってしまうのでスタートボタンを押したら終わるようにします。
パッチファイルbfont.patchを作っておいたの同じフォルダにダウンロードしてパッチをあててmakeします。
$ patch < bfont.patch
$ make
DCとPCとをシリアルケーブルで接続し、DCで焼いたCDを読ませ、テレビ画面上にidleと出ているのを確認して実行。
$ make run
実行画面
これが見えればすべて完了。

KOSのマニュアルについては/usr/local/dc/kos/doc/manualにあるkos.texをコンパイルする。
TeXで有名な奥村さんのページでインストールせずともTeXが使えるので使わせていただきました。
この場を借りてお礼を申し上げます。

参考サイト

最終更新2008-03-11

  • さんざん悩んでいましたがおかげで私もサンプルまで動かせるようになりました。 -- giw (2008-03-09 23:00:43)
  • ついでに、同じ svn で dcload もビルドしてみるのはいかがでしょう。最近の cdrecord では2トラック目の書き込みのオプションを -multi -xa に変更する必要がありましたが…。 -- giw (2008-03-09 23:01:57)
  • 報告ありがとうございます。dcloadをコンパイルするのはlibbfd(だったかな?)が必要だったのでよく分からず放置してます‥‥。 -- soukz (2008-03-11 22:57:17)
名前:
コメント:

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2008年03月11日 22:57