RaspberryPi Zero 2W のベアメタル環境(OS無し)で動作する micro MSX2+ (MSX2+ コア) の実装例です。
- RaspberryPi Zero, Zero W, Zero WH では動作しません
- 想定ターゲットは RaspberryPi Zero 2W ですが、RaspberryPi 3 でも動作する可能性があります
- 通常の Linux 環境(Raspbian や DietPi)で動作させたい場合は SDL2版 を用いてください
- マルチコアを活用して性能を確保している関係で MSX1 コア と比較して消費電力が多いため、MSX1 向けのゲームであれば、シングルコアで動作する MSX1 コア の利用を推奨します
- RaspberryPi Zero 2W
- HDMI で映像と音声の出力に対応したディスプレイ + 接続ケーブル
- USB ゲームパッド + 接続ケーブル
USB ゲームパッドについて:
本リポジトリの実装は Elecom JC-U3312S で問題なく動作するキー割り当てになっています。お手持ちの USB ゲームパッドで適切に動作しない場合、circle/sample/27-usbgamepad を動かして適切なキーコードを確認して、kernel.cpp の
CKernel::updateUsbStatus
の実装を修正してください。
- GNU Make
- GCC
- Arm GNU Toolchain
aarch64-none-elf
をダウンロード & インストールしてパスを切ってください- macOS:
/Applications/ArmGNUToolchain/13.2.Rel1/aarch64-none-elf/bin
13.2.Rel1
の箇所はダウンロードした最新版に適宜変更してください
- macOS:
# リポジトリを取得
git clone https://github.com/suzukiplan/micro-msx2p
# リポジトリのディレクトリへ移動
cd micro-msx2p/msx2-rpizero2
# ビルド
make
以下のファイルを micro SD カード(FAT32フォーマット)のルートディレクトリに配置したもの準備してください。
- kernel8.img (How to Build の手順で生成)
- bootcode.bin
- start.elf
- RaspberryPi Zero 2W の SD カードスロットに準備した SD カードを挿入
- HDMI ケーブルで RaspberryPi Zero 2W と 256x192 以上の解像度でリフレッシュレート 60Hz のモニタ(テレビ等)を接続
- USB ケーブルで RaspberryPi Zero 2W へ給電
リフレッシュレートが 60Hz よりも速いモニタでは正常に動作しない可能性があります。
- ./bios/game.rom を起動対象のゲーム ROM ファイルに置換
- メガROM の場合 ./multicoremanager.cpp の
msx2.loadRom
の引数を修正 make
本プログラムのライセンスは MIT とします。
また、本プログラムには以下のソフトウェアに依存しているため、再配布時にはそれぞれのライセンス条項の遵守をお願いいたします。
- LZ4 Library
- Web Site: https://github.com/lz4/lz4 - lib
- License: 2-Clause BSD
Copyright (c) 2011-2020, Yann Collet
- C-BIOS
- Web Site: https://cbios.sourceforge.net/
- License: 2-Clause BSD
Copyright (c) 2002-2005 BouKiCHi. All rights reserved.
Copyright (c) 2003 Reikan. All rights reserved.
Copyright (c) 2004-2006,2008-2010 Maarten ter Huurne. All rights reserved.
Copyright (c) 2004-2006,2008-2011 Albert Beevendorp. All rights reserved.
Copyright (c) 2004-2005 Patrick van Arkel. All rights reserved.
Copyright (c) 2004,2010-2011 Manuel Bilderbeek. All rights reserved.
Copyright (c) 2004-2006 Joost Yervante Damad. All rights reserved.
Copyright (c) 2004-2006 Jussi Pitkänen. All rights reserved.
Copyright (c) 2004-2007 Eric Boon. All rights reserved.
- emu2413
- Web Site: https://github.com/digital-sound-antiques/emu2413
- License: MIT
Copyright (c) 2001-2019 Mitsutaka Okazaki
- Circle
- Web Site:
- License: GPLv3
- SUZUKI PLAN - Z80 Emulator
- Web Site: https://github.com/suzukiplan/z80
- License: MIT
Copyright (c) 2019 Yoji Suzuki.
- micro MSX2+
- Web Site: https://github.com/suzukiplan/micro-msx2p
- License: MIT
Copyright (c) 2023 Yoji Suzuki.