このページは 本家XM6iのページ
とは関係なく参考用として作成されています。
誤り等々の指摘は <tsutsui@ceres.dti.ne.jp> または
Twitter(@tsutsuii)宛でお願いします。
余計な説明はいいからとにかく手っ取り早く動かしたい人向け手順まとめ (ver 0.55 対応版)
従来は Windows 上の設定も載せていましたが、昨今の状況を見て NetBSD 9.1 で動かすための説明しか検証していません。
X68BIOS3.LZH
を選んで許諾条件を読んで同意してダウンロード。
SCSIINROM.DAT
(とそれを流用する ROM30.DAT
) を生成する場合に必要(NetBSD/x68kを動かすだけなら不要)。HUMN302I.LZH
を選んで許諾条件を読んで同意してダウンロード。
SXWN315I.LZH
を選んで許諾条件を読んで同意してダウンロード。NetBSD環境で LZH を解凍したい場合は
lhasa が利用可能。
NetBSD/i386 や NetBSD/amd64 9.x の場合はバイナリパッケージでもインストール可能:
# pkg_add http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -p`/`uname -r`/All/lhasa
c:\Users\user
(Windows) または /home/user
(NetBSD) 直下に展開したとして説明。c:\Users\user\XM6i-0.55\
または /home/user/XM6i-0.55
になるはず。X68BIOS3.LZH
から IPLROM30.DAT
を取り出して
c:\Users\user\XM6i-0.55\
または /home/user/XM6i-0.55
に置く(必須)。lhasa
の場合も旧来(?)の lha
同様のオプションで解凍できます。
lha x X68BIOS3.LZH
mv iplrom30.dat IPLROM30.DAT
lhasa
だと日本語ファイル名がある場合 Segmentation fault する?# pkg_add http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -p`/`uname -r`/All/wxGTK30
HUMN302I.LZH
から HUMAN302.XDF
を取り出して
c:\Users\user\XM6i-0.55\
または /home/user/XM6i-0.55
に置く(オプション)。SXWN315I.LZH
から SXWIN315.XDF
を取り出して
c:\Users\user\XM6i-0.55\
または /home/user/XM6i-0.55
に置く(オプション)。xm6_206u.zip
から XM6Util.exe
を取り出して
c:\Users\user\XM6i-0.55\
に置く(Windowsのみ; オプション)。mfc71dll.zip
から MFC71.dll
と msvcr71.dll
を取り出して
c:\Users\user\XM6i-0.55\
に置く(XM6ユーティリティ使用時のみ)。C:\Users\tsutsui>cd \XM6i
c:\Users\user\XM6i-0.55\
に移動。
XM6Util.exe
を起動してCGROM.TMP
を生成。CGROMの構造さえ理解していればX11等のビットマップデータから擬似的な CGROM.TMP
を生成することは技術的には難しくないはず?
HUMAN302.XDF
が置かれていることを確認して XM6Util.exe
を起動してSCSIINROM.DAT
を生成。NetBSD他の環境の場合には
xm6i-mkscsirom
を使用すれば HUMAN302.XDF
から次項の ROM30.DAT
と同等の内容のROMを生成可能。
dd.exe
をどこかから調達して SCSIINROM.DAT
が置かれていることを確認して、コマンドプロンプト上で
C:\Users/user/XM6i-0.55>dd if=SCSIINROM.DAT of=ROM30.DAT bs=128k conv=sync
ROM30.DAT
を生成。
(SCSIINROM.DAT
の後ろをパディングして 128KB にしているだけ)
xm6i_readme.txt
参照)c:\Users\user\XM6i-0.55\NetBSD\
または /home/user/XM6i-0.55/NetBSD/
とする。images
ディレクトリ内の
NetBSD-9.1-x68k.iso
(約220MB)
をダウンロードして c:\Users\user\XM6i-0.55\NetBSD\
または /home/user/XM6i-0.55/NetBSD/
に置く。
x68k/installation/floppy/
ディレクトリ内の
sysinst1.fs
(1200KB) と
sysinst2.fs
(1200KB)
をダウンロードして c:\Users\user\XM6i-0.55\NetBSD\
または /home/user/XM6i-0.55/NetBSD/
に置く。
.2HC
としたほうがXM6iのメニュー選択時に楽なので、sysinst1.fs
→ sysinst1.2hc
sysinst2.fs
→ sysinst2.2hc
XM6i-0.55 の NetBSD用バイナリは NetBSD 7.0 上で pkgsrc-2016Q2 のバイナリを使って作成されていますが
NetBSD 8.0 以降では C++ の libstdc++.so
の ABI が変更されているため、
NetBSD 7.0 の ABI でビルドされた XM6i のバイナリと NetBSD 8.0 以降で作成された
wxGTK30 のパッケージバイナリを混在して使用することができないようです。
このため、 wxGTK30 については NetBSD 7.x 上でビルドされたバイナリを使用する必要があります。
NetBSD 7.x 用のバイナリも以下に存在しますが、この場合は依存する libffi のバイナリも合わせて必要です。
ただし、上記の古い wxGTK-3.0.2 のバイナリの場合、
wxGTK側の問題 により
XM6i の VM起動時にエラーメッセージウインドウが出て面倒という問題があります。
このため、ここでは自前でビルドした NetBSD 7.2用の pkgsrc-2020Q3 の wxGTK30 のパッケージを
gtk2
option 有効でビルドしたバイナリを使用します(料理番組メソッド)。
また、 NetBSD 7.x 上でビルドしたバイナリパッケージは NetBSD 7.x
のみに存在するライブラリバージョンに依存したものがあるため別途用意します。
(なぜか pkgsrc/emulators/compat70
のパッケージが存在しないという問題)
base.tgz
と xbase.tgz
を取得
wxGTK30
のバイナリを取得
wxGTK30
の依存関係として必要な fontconfig
のバイナリを取得
~/XM6i-0.55/lib
に置かれるように適当に展開
su pkg_add -u http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -p`/`uname -r`/All/wxGTK30 pkg_add -u http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -p`/`uname -r`/All/lhasa exit
ftp http://www.pastel-flower.jp/~isaki/XM6i/archive/XM6i-0.55-netbsd7.0-`uname -m`-2016Q2.tar.gz tar -zxf XM6i-0.55-netbsd7.0-`uname -m`-2016Q2.tar.gz cd ~/XM6i-0.55 ftp http://www.retropc.net/x68000/software/sharp/x68bios/X68BIOS3.LZH lha x X68BIOS3.LZH mv iplrom30.dat IPLROM30.DAT ftp http://cdn.netbsd.org/pub/NetBSD/NetBSD-7.2/`uname -m`/binary/sets/base.tgz ftp http://cdn.netbsd.org/pub/NetBSD/NetBSD-7.2/`uname -m`/binary/sets/xbase.tgz ftp http://teokurebsd.org/netbsd/packages/`uname -p`/7.2_2020Q3/All/wxGTK30-3.0.5.1nb1.tgz ftp http://teokurebsd.org/netbsd/packages/`uname -p`/7.2_2020Q3/All/fontconfig-2.13.1nb2.tgz ftp http://teokurebsd.org/netbsd/packages/`uname -p`/7.2_2020Q3/All/freetype2-2.10.4.tgz tar -zxf base.tgz ./usr/lib/libstdc++.so\* tar -zxf xbase.tgz ./usr/X11R7/lib/libfreetype.so\* mkdir lib mv usr/lib/* lib mv usr/X11R7/lib/* lib tar -zxf wxGTK30-3.0.5.1nb1.tgz ./lib/\*.so\* tar -zxf fontconfig-2.13.1nb2.tgz ./lib/\*.so\* tar -zxf freetype2-2.10.4.tgz ./lib/\*.so\*
mkdir ~/XM6i-0.55/NetBSD cd ~/XM6i-0.55/NetBSD ftp http://cdn.netbsd.org/pub/NetBSD/images/9.1/NetBSD-9.1-x68k.iso ftp http://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/x68k/installation/floppy/sysinst1.fs ftp http://cdn.netbsd.org/pub/NetBSD/NetBSD-9.1/x68k/installation/floppy/sysinst2.fs mv sysinst1.fs sysinst1.2hc mv sysinst2.fs sysinst2.2hc適当に環境変数を設定するだけの起動用スクリプトを作成
#! /bin/sh XM6I_DIR=/home/user/XM6i-0.55 export FONTCONFIG_PATH=/etc/fonts export LD_LIBRARY_PATH=$XM6I_DIR/lib $XM6I_DIR/mame/xm6i "$@"
XM6i.exe
をダブルクリックして起動。c:\Users\user\XM6i-0.55\NetBSD
または /home/user/XM6i-0.55/NetBSD
c:\Users\user\XM6i-0.55\NetBSD\NetBSD.xmx
または /home/user/XM6i-0.55/NetBSD
←VMフォルダパスを入れると自動でこうなるはず
options FPU_EMULATE
のテストをしたい、とかいうときは外す)
c:\Users\user\XM6i-0.55\NetBSD\[作成イメージ名].hds
または
/home/user/XM6i-0.55/NetBSD/[作成イメージ名].hds
を選択して「開く」
xm6i_readme.txt
の「ネットワークの設定」を参照
xm6i_readme.txt
の説明のうち、tap設定が初めての場合は「(1)静的に設定しておく方法」のほうが無難?
/dev/tap0
を入力する必要あり
xm6i-ifup
のスクリプトは削除しておく必要あり
CGROM.DAT
なしで NetBSD/x68k を起動する場合はチェック
ROM30.DAT
なしで NetBSD/x68k を起動する場合はチェック
上記が設定できたらOKを押す。
%HOME%
、NetBSD/Linux版では $HOME
に xm6i.ini
として置かれるので、XM6iインストールフォルダの名前変更などの場合はそちらを編集。
sysinst1.2hc
を選択して挿入するとそのまま読み込み開始してブートローダーが起動Please remove disk 1, insert disk 2, and press return...と出たら再度メニューの「FD0」⇒「開く」で
sysinst2.2hc
を選択
sysinst2.2hc
を選択して挿入しておけば
1枚目の読み込みが終了後に自動で
2枚目の読み込みが開始されますNetBSD-9.1-x68k.iso
を選択して挿入しておくただし NetBSD/x68k 9.1 の sysinst のパーティショニングまわりはまだバグっている ので、少なくとも unused の a パーティションを手動で削除する必要あり
# memswitch -w boot.device=INSCSI0
"INSCSI"
が内蔵SCSIからの起動指定、 "0"
が SCSI ID の指定です
"STD"
を指定します
"STD"
相当の フロッピー→HDD
の起動になるので、そこでインストールフロッピーや Human68k のフロッピーから起動して SRAM設定を見なおして下さい
ROM30.DAT
も使用せずに XM6i の Pluto-X によるHDDの起動を使用する場合は以下のように設定
# memswitch -w boot.device=ROM; memswitch -w boot.romaddr=0xeac000
memswitch
の boot.device
に指定できる文字列については
memswitch
のソースコード参照 (ヒドい)
SCSIINROM.DAT
から作った ROM30.DAT
だと NetBSD/x68k はHDD起動しないものの Human68k はHDD起動するっぽい?
ROM30.DAT
では NetBSD/x68k も起動可能。Human68k もSCSI起動はできるっぽいが詳細動作は未確認。CGROM.TMP
と ROM30.DAT
を用意する必要があるかも(0.55 では未確認)ifconfig(8)
や dhcpcd(8)
でネットワークすればOKmount_msdosfs(8)
でマウントする場合は
-G
オプションが必要なので注意mtools
のバイナリは pkgsrc にあり
# pkg_add http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -p`/`uname -r`/All/mtools
C:\Users\user\XM6i-0.55\NetBSD>mformat -i mo.mos -t 217 -h 64 -s 32 ::
C:\Users\user\XM6i-0.55\NetBSD>mcopy -i mo.mos ./file ::/file
C:\Users\user\XM6i-0.55\NetBSD>mdir -i mo.mos ::
C:\Users\user\XM6i-0.55\NetBSD>mformat -i fd.2hc -f 1440 ::
C:\Users\user\XM6i-0.55\NetBSD>mcopy -i fd.2hc ./file ::/file
C:\Users\user\XM6i-0.55\NetBSD>mdir -i fd.2hc ::
# mdir -i /dev/rsd1c ::
# mcopy -i /dev/rsd1c ::/file .
# mdir -i /dev/rfd0c ::
# mcopy -i /dev/rfd0c ::/file .
# mount_msdos -G /dev/fd0c /mnt
# ls -l /mnt
# cp /mnt/file .
# umount /mnt
えびじゅんさんのOSCネタ「漫画喫茶でNetBSD」「待ち時間は漫画」に習ってNetBSD環境構築。
説明はたとえばここ
http://www.os-museum.com/vpc2007/vpc27netbsd31/vpc27netbsd31.htm
ここまで来るとだいぶ本末転倒気味ですがこれはこれで役に立つ?
イメージはこんな感じ
http://twitpic.com/59txwf
QEMU on Windows でもいいかも?
http://homepage3.nifty.com/takeda-toshiya/qemu/
C:\XM6i\NetBSD>mkisofs -R -o x68k.iso targer-file-dir