SCPH-3500 / 2 MB RAM 向けに、Blackroo Linux を NTSC 60 Hz でビルドし、DuckStation で確認して CD-R に焼く手順。
- macOS 側に Homebrew、Docker CLI、
ghがある - MacStudio 側に Docker/Colima 環境と
luksamuk/psxtoolchain:latestがある - リポジトリ:
arkwise/blackroolinux - ローカル DuckStation:
~/Applications/DuckStation.app
元リポジトリ: https://github.com/arkwise/blackroolinux
ping mac-studio.local
ssh Mac-Studio.local '/opt/homebrew/bin/docker images'PSn00bSDK の場所を確認する。
ssh Mac-Studio.local \
'/opt/homebrew/bin/docker run --rm --platform linux/amd64 \
--entrypoint /bin/sh luksamuk/psxtoolchain:latest -c \
"ls -l /opt/psn00bsdk/bin/mipsel-none-elf-gcc"'blackroo/drivers/video/psxcon.c の、カーネル引数 psxvideo= が無い場合の既定値を変更する。
h = 240;
rate = 60;blackroo/arch/mipsnommu/Makefile では little-endian を明示する。
GCCFLAGS := ... -EL
LINKFLAGS += ... -EL
EXTRA_LDFLAGS += -EL古い MIPS Linux 用 EGCS を sdk/toolchain-local/bin に配置し、Mac 上で実行できるようにする。カーネルの形式を確認する。
file output/linux.elf
sdk/toolchain-local/bin/mipsel-linux-objdump -f output/linux.elf期待値は ELF 32-bit、MIPS-I、elf32-littlemips。
./build.sh kernelbrsh は MacStudio の PSn00bSDK Docker イメージ内でビルドする。
PSN00BSDK_ROOT=/opt/psn00bsdk \
DEFCONFIG=blackroo_2mb_defconfig \
./userland/build.sh brsh.cMac 側で initrd を生成する場合は、e2fsprogs のパスを通す。
brew install genext2fs e2fsprogs
PATH="/opt/homebrew/opt/e2fsprogs/sbin:/opt/homebrew/opt/e2fsprogs/bin:$PATH" \
SKIP_USERLAND_BUILD=1 ./scripts/make-userspace-initrd.sh
./build.sh convert生成物:
output/blackroo_noinitrd.exeoutput/blackroo.exeoutput/initrd.img
現行イメージでは SDK の CMake ファイルは次の場所にある。
/opt/psn00bsdk/lib/libpsn00b/cmake/sdk.cmake
Ninja が無い場合は Unix Makefiles を使う。
cmake -S . -B build -G 'Unix Makefiles' \
-DCMAKE_TOOLCHAIN_FILE=/opt/psn00bsdk/lib/libpsn00b/cmake/sdk.cmake \
-DCMAKE_BUILD_TYPE=Debug
cmake --build buildoutput/bootloader.exe を配置し、PS-EXE ヘッダーを確認する。
iso/license-area.bin を用意した状態で、MacStudio Docker の mkpsxiso を使う。
PATH=/opt/psn00bsdk/bin:$PATH ./iso/build-iso.sh生成物:
output/blackroo-kloader.bin/.cue— kloader メニュー起動output/blackroo.bin/.cue— 直接カーネル起動
--help は使わない。GUI プロセスが待機するため、CD イメージを直接渡す。
DUCK="$HOME/Applications/DuckStation.app/Contents/MacOS/DuckStation"
"$DUCK" "$PWD/output/blackroo-kloader.cue" >/tmp/duckstation-blackroo.log 2>&1 &または別インスタンスで起動する。
open -na "$HOME/Applications/DuckStation.app" \
--args "$PWD/output/blackroo-kloader.cue"空の CD-R を SuperDrive に挿入し、メディアを確認する。
drutil status確認できたら kloader 版を verify 付きで焼く。
drutil burn -verify -eject -speed 10 output/blackroo-kloader.cue完了後、SCPH-3500 では FreePSXBoot、tonyhax、または MODCHIP など、CD-R を起動するための手段が別途必要。
- カーネル: MIPS-I little-endian
- ビデオ既定値: 320/640 x 240 @ 60 Hz
- kloader とカーネルのロードアドレスが衝突しない
- PS-EXE ヘッダーが有効
- DuckStation で kloader が起動
- CD-R 書き込みが verify 成功
実機での映像・音声・ディスク起動は、エミュレータ成功や書き込み verify だけでは保証されない。