NetBSD/dreamcastへの道

Introduction

ちょっと改題

coming soon です(またか)。

参照するページ

  1. http://mc.pp.se/dc/: Dreamcastで遊ぶならまずここをチェックです。
  2. http://www.netbsd.org/Ports/dreamcast/: NetBSD/dreamcastの情報はこちらから。

前提環境

基礎知識

DCにはSH4というプロセッサが載っています。 SH3 portのあったNetBSDは早い段階からDCで動いていたようです。 同様にLinuxやOpenBSDでもfor DCの開発がされているようです。

PS、SSなどでも外部からプログラムを送りつけて実行させるようなことが できました。が、シリアル転送だったりでいまひとつ使いやすさに欠けたように 思います。

しかしDCにはBbAがありますので、 LANからデータを流したり、DC内のOSから外部マシンのディスクを使ったり ということができてしまいます。

NetBSD/dreamcastの魅力

NetBSDマシンとして見た場合のDreamcastは

というわけでそれほど魅力があるわけではありませんないかも しれません(トーンダウン)。 しかし、DCの持つ素敵なグラフィック、サウンド性能を、 NetBSDという慣れ親しんだ環境からいじることができるというのは、 メーカ御仕着せの「開発キット」よりよほどの魅力があると私は 考えています。

以外といいかも、と思わせるのがGD-ROM対応です。 DCはCD-ROMを進化させたような(後述)GD-ROMを塔載していまして、 普通のパソコンのCD-ROMドライブではGD-ROM部分を見ることが できないのですが、DC上からなら見ることができますよね。

CD-Rに関する註

海賊ソフト対策のせいか、最近のモデルではCD-Rが読めなくなっているそうです。 具体的には、2000年12月末に出た「サクラ大戦」モデルといった名前のものから こちらのモデルが該当するようです。

そんなわけですので、2001年3月に入って安くなるのを待とうという方は ひょっとしたらCD-Rが読めないかもしれないということを認識されたほうが よいかと思われます(NetBSDとかで遊ぶならですが)

私が買ったのは、箱に湯川専務の写真があるやつです(中古)。 型番はHKT-3000です(同じ型番なら 大丈夫と私が保証するものではありません)

(2001/03/19追記) CD-Rが使えないタイプのものには、箱に「MIL-CD非対応」 というマークがついています。 近くの店に行ったついでに眺めてみたんですが、 どれもMIL-CD非対応でした。やはり安いDCでのCD-Rブートは絶望的という感じですねえ。

湯川専務モデルって希少なんですか? 探してでも手に入れようとする人が いるとかでびっくり。 私はどっちでもいいというか....おっさんは胸揺れねえし(揺れても見たくないし(^^;)

NetBSDを動かすためのCDの作成

現状ではNetBSDを動かすために必要なCDは以下のいずれかとなりそうです。

前者だとGD-ROMドライブを占有するというデメリットがあります。 NetBSD/dreamcastの用途が明確に決まっており、 ディスクレス環境でも使えることが分かっている場合は、 他のホストに依存せずに動くこの方法は便利かもしれません。

一方、後者の方法では、起動時から他のホストの力を借りなければいけませんが、 起動後はGD-ROMドライブを自由に使うことができます。 また、root以下を完全に他のマシンに置きますので、 OSの入れかえやupgrade時にいちいちCDを作りなおす必要がなく便利です。

そんなわけですので、このドキュメントでは後者の方法を 用いることにします。

IP upload slaveとは

tcp/4711から受けとったバイナリを実行するためのソフトです。 詳しくは参考ページ1を見てください(オリジナルサイトです)。

おおまかな手順は以下の通りです。

CD作成

すべてはここに書いてあるのですが、 いろいろと前提となる知識がありますので、結局 こちらの中身をきっちり 読まないとよくわからんことになったりします。

というわけで、よくわからんことになった私が上記ページを読んで 理解した知識を簡単にまとめておきたいと思います。

全体の構造

DCで読み込めるCDは2つのセッションを持ちます。 実際のプログラムなどは第二セッションから読みこまれます。 この部分はCD/XA(Mode 2 Form 1)と呼ばれる2048 bytes/sectorの 領域で、中身はISO9660イメージそのものです。

ISOイメージの最初の16セクタはいわゆるブートストラップローダが 入ります。上記ページの説明ではIP.BINというものです。 IP.BINには大雑把に言うと、

などが入ったバイナリです。IP.BINはこの情報を使って、 ISOイメージ内にあるファイルを読みこんで実行します。

第一セッションは基本的にオーディオトラックを入れます。 この部分はゲーム中などに流すオーディオデータなんかを入れることができます。

このような構成になっているおかげで、

といった風に使えるわけです。ここらへんは 確かサターンのCD-ROMも一緒だったように思います。

IP.BIN

これは上記ページのmakeipというプログラムで作ります。 詳しくは上記ページを読んでみてください。

CDの作成方法

以上の知識をふまえて、mkisofs + cdrecordを使った CD作成方法を解説します。cdrecordのdevオプションに与える 数値は適宜変更してください(dev,id,lun)。

オーディオセッションの作成

入れるべきWAV、あるいはRAWファイルを用意します。 とくに入れるべきオーディオがない場合は無音部分を作ります。

% dd if =/dev/zero bs=2352 count=300 of=audio.raw
実際にCDに書きこみます。
% cdrecord dev=0,6,0 -multi -audio audio.raw
-multiオプションを忘れないようにしてください。

IP upload slaveのCDなどは、データとしては1MBもないですので、 オーディオデータをいっぱい入れて普段はCDプレイヤで聞いたりすると メディアを無駄にしなくて済むと思います(^^;

ISOイメージの作成

mkisofsでISOイメージを作ります。その際に、書きこむべき セクタ位置を知っておかなければいけません。

% cdrecord dev=0,6,0 -msinfo
0,11700
この数値をmkisofsの-Cオプションに与えてISOイメージを作ります。 IP upload slaveのディスクを作りたい場合は以下のようになります。
mkisofs -l -C 0,11700 -o tmp.iso 1ST_READ.BIN

ブートストラップコード(IP.BIN)書きこみ

前節で作成したISOイメージにIP.BINを書きこみます。 具体的にはISOイメージの先頭16セクタをIP.BINで上書きします。

% ( cat IP.BIN ; dd if=tmp.iso bs=2048 skip=16 ) > data.raw

CD/XAセッション書き込み

作成したISOイメージ(data.raw)をCDに書き込みます。

% cdrecord dev=0,6,0 -xa1 data.raw
今回は-multiをつけずにセッションを閉じることにします。

インストール

IP upload slaveのCDができたら、次はPCにNetBSD/dreamcastの 環境を作ってやります。そして、NFS rootのkernelを作成して DCに送ってやれば、めでたくNetBSDが起動するというわけです。

しばし待て(これからやるので(^^;) 必要な事項は

といった感じになるでしょうか。今んところNetBSD環境ないんで FreeBSDでできればいいんですが、MLの記事見る限りでは NetBSD-currentの環境を作ったほうがなにかといいようですね... 乞う御期待

World21?

DCでXあげるのにメリットあるのかなあ... 日本語コンソールは 欲しいけど。というわけでWorld21をDCに対応させたいなあという話です。

SDL?

やっぱりSDLはDCでも動くべきです。そんなわけで SDLをDCに対応させたい話です。

そして...

うーむ某日記で 参照ページ1の訳が出てますな。素晴しいっす。 私のやつは読まなくてもいいかも(今更言うかね)

当方は現在make buildと格闘中です。うーんNetBSDいじるのはあまり やってないので大変です。上で「慣れ親しんだ」って書いたのは実は嘘でした。 NetBSDさん生意気言ってすいませんでした。背伸びをしてfollow you!!

修行して参ります。

そして日記(?)になだれこむ...(^^;

2001/03/06

現在、PC側をcurrentにしてcross環境作ってるとこです。 make buildはそれなりに大変でしたが、対処法がいちいち src/UPDATINGにありましたんで問題なしでした。

currentのおっかけかたや、カーネルのつくりかた、それとクロス開発のしかたなど ドキュメントは必要充分で私には非常に読みやすく感じました。

NetBSD真剣に触ったのはこれが初めてですが、思ったより居心地いいかもと 思ったり。

なおPC側の作業はwmare上でやってます。これだとダメになっても やりなおし簡単だし、CPUの性能はほぼ実機そのものみたいですし。 私は安いころ($99だったっけ)に買ったんですが今だとちょっと 高そうですね。

ほんとはNetBSD用に一台マシン欲しいんですが。

2001/04/05

NetBSD用マシン組みました。ぼちぼちやって行きたいもんです。

Super!! そうかDreamcastで動くDreamcastのエミュレータ(?)があれば NetBSD動かしつつDreamcastのゲームが遊べるのか。成れ〜

2001/05/14

これドライバが できたそうです。pollingなので早くないけど...ということですが、すごい。

2001/05/23

ports/dreamcastにNewOSなる OSのPRがが。

2001/08/03

Linux-shの近況。 eCos/RedBootからLinux/dreamcastのカーネルをbootできるみたい。

xmame.SDLが動いているらしいので素直にびっくり。


戻る
Zinnia (zinnia@risky-safety.org)
このWebコンテンツ(ここから辿れるもの)に対する コメントのメールは許可なく公開することがあります。