ページ

2025年7月29日火曜日

PiStorm install on Amiga

PISTORMとはRaspberry Piを使った68KCPU emulatorです。AMIGA専用というわけでもない様で、X68000などでも使用実績があるという話も聞き及びます。使用するRaspberry Piは"Raspberry Pi PICO 2 W"(Pi2W)です。PISTORMがサポートしているRaspberry Piは限られていますので、あらかじめ調査が必要です。AMIGA実機に組み込んだ場合に周囲と衝突しない事を考えるとやはり小さなRaspberry Piという選択になりました。以下、個人的な忘備録であり、あくまでも2025年段階の話ですので変わる可能性があります。

PISTORMを動作させるには目下、Emu68と今回のようなソースコードからコンパイルする2通りの方法があります。個人的な感想を述べれば、Emu68の方が簡単ですね。

PiStromに使うプログラムをソースコードからコンパイルするにはRasberry Pi OSが最近の物ではエラーを起こしてしまいます。 少し古い"BullsEye"でもエラーとなります。 もう少し古い"Buster" versionでないとコンパイルが通りませんでした。 "Buster"を入手するには以下を参照しました。
https://monomonotech.jp/kurage/memo/m211208_raspi_os_install_past.html
直接その場所も記しておきます。
https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2021-05-28/
からZIPファイルをダウンロードします。 ここは2021年5月版一択でして、同じ"BUSTER" versionでも古い物になると、エラーでコンパイルが通りません。

これをRaspberry Pi ImagerでSD cardに先ほどダウンロードしたZIPファイルを指定して書き込みます。

具体的にはCHOOSE OSで「カスタムイメージを使う」を選択してSD cardに書き込みします。
なお、その際にSSHとWiFiの設定は済ませておいた方が便利です。後でもそれらの設定はできるのですが、Pi2WにUSBキーボードを接続しないといけません。そのUSBケーブルもMicroUSB変換しないとPi2Wに接続できません。
Pi2WとPISTORMを2列のソケットで結合します。

そしてRaspberry Piの方に先ほど書き込みの終わったSD Cardを挿入してWindowsマシンとUSBケーブルで接続します。 あらかじめWiFiを設定しているとPi2Wはブート時に自動的にWiFiに接続されるのでSSHでホストマシンから操作できます。なおPi2WのIPアドレスを調べるには"Advanced_IP_Scanner"などを使うといいです。Windows10上のSSHクライアントはTeraTermを使いました。

Pi2Wにログインし以下の入力をします。

sudo apt-get update

sudo apt-get install git libsdl2-dev

git clone https://github.com/captain-amygdala/pistorm.git pistorm

cd pistorm

make

エラーが出ていなければ、"emulator"という実行ファイルができているはずです。

次にOPENOCDのINSTALL

sudo apt-get install openocd

OPENCDでは無くてOPENCOCDですので。これを勘違いして1月程悩みました。

その後

./flash.sh

ここでCPLDが見当たらないなどというエラーが出た場合はPi2WとPISTORMを接続するソケットがずれてないかを確認して下さい。ここでflashするのはPISTORM上のCPLDにファームウェアを書き込んでいるわけです。ここまでエラーを出さずに完了すると、AMIGAの実機のCPU68000と交換して使うことができるようになります。

sudo ./emulator

で動作するようなります。ただそれではAMIGAの起動時にPISTORMが起動しないので自動起動するように設定します。

sudo vim /etc/systemd/system/pistorm.service

に以下の内容を書き込みます。

[Unit]
Description=PiStorm emulator
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/home/pi/pistorm/emulator
WorkingDirectory=/home/pi/pistorm
[Install]
WantedBy=multi-user.target

ここまででも、エミュレーターとして動作するのですが、設定ファイル(default.cfg)に便利な設定をしてしてゆきます。ここでもかなり悩みました。まず、default.cfgがありません。それにはamiga.cfgというファイルがありますので、これをコピーします。

cp amiga.cfg default.cfg

この設定では同じディレクトリーにkick.romが無いといけないので、kickstartファイルを入手出来ない場合は、上記の設定内容を書き換えるか、設定してはいけません。 個人的にはAmigaForeverからkickstart ROMファイルを購入しました。AmigaForeverは、2025年6月頃に最新のアップデートがあったようで、最新版を入手しました。 ところがdefault.cfgを作ってからpistormがうまく動作しなくなりました。なので、その内容を調査してみました。すると

map type=rom address=0xF80000 size=0x80000 file=kick.rom ovl=0 id=kickstart

の行をコメントアウトして

#map type=rom address=0xF80000 size=0x80000 file=kick.rom ovl=0 id=kickstart

とするとpistormが動作するようになりました。

この行が何をしているかというとkick ROMファイルを参照して、OSを起動しようとしている箇所です。これで何日か悩みました。 でkick.romファイルが壊れているという結論になりました。そこで某所からダウンロードしたkickstart_2.0.romファイルなるものを使いました。 すると再びpitormが動作開始しました。なおPi2Wにkick.romファイルを転送するには初めてWinSCPを使いましたが、これは便利ですねぇ。 Pi2Wのpistormディレクトリに転送したkickstart_2.0.romファイルの名称をkick.romに変更します。

mv kickstart_2.0.rom kick.rom

ここで簡単にAmigaOSの説明をしますとkickstartというのはMS-DOSのようなものです。まあOSです。そしてその上に乗っかるのがWorkBenchです。これはMS-DOSの上に乗っかったWindowsという例えでしょうか。まあGUI-interfaceですね。でAmigaOSには世代がありまして、

最初のAmiga1000には
kickstart1.2
次の世代Amiga500,Amiga2000には
kickstar1.3

という具合です。ですのでAmiga500などが新しいOSを使おうとするとkickstart2.xなりのROMチップを海外から個人輸入しないといけませんでした。それを思うとネットからダウンロードしたファイルを使えるのですから便利になりました。

0 件のコメント: