Linux CD-ROM ゲームシステム |
||
YAMAMORI Takenori ●yamamori |
ここで、ゲームのデータがFD上にセーブされるように修正を行なう。 FDは、マウントポイントとして/tmp/gamefdというディレクトリを作り、 ここにマウントするようにする。 /tmp/gamefdというディレクトリは、あとでCD-ROMになった場合でも ここはRAMディスクとなり、書き込み可である。 したがって、たとえFDを挿入しなかった場合でもデータは /tmp/gamefdディレクトリに書き込まれ、 マシンを起動している間はデータは保存される。
セーブデータの具体的なファイル名はゲームによって異なるが、 circuslinuxの場合は$HOME/.circuslinuxというファイルになる。 実際には、シングルユーザモードで、HOME=/rootの状態で実行されるので、 /root/.circuslinuxとなる。 これをシンボリックリンクでFD上に飛ばすようにする。
なお、FDの論理フォーマットは、Linuxユーザとしてはext2にしたいところだが、 ここは汎用性を考えて、DOSフォーマットにする。 ファイル名も、いわゆる8.3形式に収まるように変更してシンボリックリンクする。
具体的には以下のような手順になる。
---- # cd /root # rm .circuslinux # mkdir /tmp/gamefd # ln -s /tmp/gamefd/circus .circuslinux ----
なお、Linux上でもDOSのファイルシステムのFDが作成できるよう、 以下のパッケージをVineのCD-ROMからインストールしておくとよい。
# rpm -ivh mkdosfs-ygg-0.3b-11.i386.rpm
物理フォーマット済みのFDをDOSファイルシステムに論理フォーマットするには 以下のようにコマンドを実行する。
# /sbin/mkdosfs /dev/fd0
そしてDOSのFDをドライブに入れ、手動で以下のようにしてマウントする。
# mount -t vfat /dev/fd0 /tmp/gamefd
そしてこの状態で、rootでcircuslinuxを起動して、終了してみる。 するとFD上にcircusというファイル名でセーブデータがセーブされたはずだ。