2016年03月08日

ドリームキャスト実行環境の設定

前の記事で開発環境の構築ができました。
これでいつでもドリームキャストのプログラムが作れるわけですが、本体で実行できなければ意味がありません。なのでドリームキャストでプログラムを実行できるようにしましょう。
例によって僕はCygwinやGCCの知識があまりないので、いつでもツッコミをお待ちしています。

1.必要なもの
まず、必要なものをそろえましょう。
実行方法としては、シリアルケーブルの自作や、SDカードアダプタを使う方法等がありますが、今回はブロードバンドアダプタとLANケーブルを使った方法で行こうと思います。
・MIL-CD対応のドリームキャスト
  当然ドリームキャスト本体が必要です。MIL-CD対応の本体はCD-Rに焼いたプログラムが実行できます。
  MIL-CDに関する説明は他の方にお任せしようと思います。
・ブロードバンドアダプタ
  ドリームキャストで高速インターネットを可能とする周辺機器です。
  若干プレミア気味ですが、手に入らないことは無いと思います。
・LANケーブル
  たぶんクロスケーブルです。
・空のCD-R
  

2.PC側の設定
LANケーブルでPCとドリームキャストを直接つないで、ローカルエリア接続を使って接続しようと思います。
ここで割と盲点だったのですが、PC側のIPアドレスを手動で設定する必要があります。
「IPアドレス 手動 設定」等でググってみてください。(他力ですみません…)
dcload01.png
仮にドリームキャスト側のIPアドレスを192.168.1.10と設定する場合、
PC側のIPアドレスは192.168.1.100等にします。赤の数字を揃えて、青の数字をずらすようにしてください。

3.dcload-ipのインストール
前回の開発環境の構築の続きということで話を進めます。Cygwin環境にドリームキャストとの通信ソフト「DCLoad-ip」をインストールします。
DCLoadはAndrew Kieschnickさんが開発したソフトで、現在他の方の手で更新されています。
前回作った/home/ユーザー名/dcのフォルダで作業しましょう。
cd dc

dcload-ipをダウンロードします。
git clone git://git.code.sf.net/p/cadcdev/dcload-ip cadcdev-dcload-ip


作成されたcadcdev-dcload-ipのフォルダ内のMakefile.cfgをテキストエディタで開きます。
それで赤字の行をを環境に合わせて書き直します。
KallistiOSのスクリプトでは、GCCは/opt/toolchains/dc/sh-elfにインストールされています。
また、ドリームキャスト側のIPアドレスは自分で決めてください。
# host compiler and flags
HOSTCC = gcc
HOSTCFLAGS = -O2
HOSTLDFLAGS =
# cygwin may need this
HOSTCFLAGS = -O2 -D_WIN32

# you may have to change the paths for BFDLIB and BFDINCLUDE to
# the ones in your system

# these must point to your sh-elf bfd, not the system one
BFDLIB = -L/opt/toolchains/dc/sh-elf/lib -lbfd -liberty -lintl
BFDINCLUDE = -I/opt/toolchains/dc/sh-elf/include


# cygwin
# these must point to your sh-elf bfd, not the system one
BFDLIB = -L/usr/local/lib -lbfd -liberty -lintl
BFDINCLUDE = -I/usr/local/include


# MinGW
# these must point to your sh-elf bfd, not the system one
#BFDLIB = -L/usr/local/lib -lbfd -liberty -lws2_32 -lwsock32
#BFDINCLUDE = -I/usr/local/include

# When using libelf instead of BFD, these must point to your
# libelf installation (leave empty or undefined if libelf is part of the system)
#ELFLIB = -L/opt/misc.ppc/lib
#ELFINCLUDE = -I/opt/misc.ppc/include

# sh-elf-stuff
# if you have the SH compiler in your path you can leave SHTOOLS empty,
# otherwise set it to the bin directory of your SH compiler installation
# (include trailing slash)
#SHTOOLS = /opt/dcgcc-4.7.0/sh-elf/bin/
SHTOOLS =
TARGETCC = $(SHTOOLS)sh-elf-gcc
TARGETCFLAGS = -O2 -ml -m4-single-only
TARGETOBJCOPY = $(SHTOOLS)sh-elf-objcopy
TARGETLD = $(SHTOOLS)sh-elf-ld
# set TARGETCCVER to 3 or 4, depending on your SH compiler version (gcc 3.x or gcc 4.x)
# this line tries to detect the version automatically
TARGETCCVER = $(shell $(TARGETCC) --version | head -1 | sed "s/.* \([[:digit:]][[:digit:]]*\)\.[[:digit:]][[:digit:]]*.*/\1/")

# you generally shouldn't change this unless you are making forked
# versions (or test versions)
VERFLAGS = -DDCLOAD_VERSION=\"1.0.5\"
TARGETCFLAGS += $(VERFLAGS)
HOSTCFLAGS += $(VERFLAGS)

# the ip of your dreamcast - set to 0.0.0.0 if you want to use arp on pc
DREAMCAST_IP = 192.168.1.10

# dir to install dc-tool in
TOOLINSTALLDIR = /usr/local/dc/bin

# uncomment this for cygwin
EXECUTABLEEXTENSION = .exe

終わったら保存し、makeして、インストールします。
make
make install


4.ドリームキャスト用通信ディスクの作成
一端閉じて、必要なファイルを取りに行きます。DreamcastProgrammingからscramble.cをダウンロードして、Cygwinの/home/ユーザー名/のフォルダ辺りに入れておいてください。
Cygwinを開き、コンパイルとインストールをします。
gcc -o scramble.exe scramble.c
install -s --strip scramble.exe /usr/local/dc/bin

dc-loadのフォルダに戻ります。
cd dc/cadcdev-dcload-ip/make-cd

CDを作成するので、CDドライブの割り当て番号を取得します。
cdrecord -scanbus

リストが表示されるので、左の番号を覚えてください。下は例です。
0,0,0 0) 'MATSHITA' 'BD-MLT UJ272 ' '1.02' Removable CD-ROM
0,1,0 1) *

make-cdフォルダ内のMakefileをテキストエディタで開きます。そして一番上の行を先ほどの数字に直します。
CDRECORD = wodim dev=0,0,0 speed=8

保存し、空のCDをセットします。Cygwinに戻りmakeするとCD書き込みが始まります。
make

これで準備完了です。一端閉じます。

5.実行
いよいよ実行です。KallistiOSのサンプルを動かしてみましょう。
examplesフォルダにサンプルが入っています。
cd dc/kos/examples/dreamcast/png
make

先ほどのCDをドリームキャストにセットし、起動します。idle..表記になったら待機状態です。
dcload02.png
pingを打って通信状況を確かめます。IPアドレスは先ほど設定したものです。
ping 192.168.1.10

帰ってきたら、実行します。example.elfは実行ファイルです。
dc-tool -t 192.168.1.10 -x example.elf

問題なければ画像とスクロールする英語の文字が表示されます。
dcload03.png
感動です!さああなたもレッツドリームキャストライフ!
posted by たあし at 22:32| Comment(0) | ドリームキャスト開発 | このブログの読者になる | 更新情報をチェックする