NEC PC-8801のエミュレーターです。マルチプラットフォームです。
XM8Mは、PI.さんが開発したXM8をベースにした、PC-8801MA(PC-8801mkIISR上位互換)のマルチプラットフォームエミュレータです。旧名称はxm8macです。
このリポジトリは PI.さんから許可をいただき作成しています。
公式では配布されていないmacOS版の開発を主に行なっていきますが、Windows/Linux/Android版もできる限り配布します。
公式はこちらです。
http://retropc.net/pi/xm8/index.html
リリースからお手持ちの環境にあった実行ファイルをダウンロードしてください。
XM8.appをアプリケーションフォルダに移動するなどして実行してください。
| プラットフォーム | CPU | 最小OSバージョン | 実行ファイル |
|---|---|---|---|
| macOS | x86_64 | macOS 10.13 High Sierra | Universal版 |
| macOS | Apple Silicon | macOS 11 Big Sur | Universal版 |
| Windows | x86_64 / x86_32 / ARM64 | Windows 10 | x86_64版 / x86_32版 / ARM64版 |
| Linux | x86_64 / arm64 | Ubuntu 22.04以降(.deb) / Fedora 36以降(.rpm) | x86_64版 / arm64版 |
| Raspberry Pi OS | armhf | Bookworm以降 | armhf版 |
| Android | arm64-v8a / armeabi-v7a / x86_64 | Android 4.4(API 19)以降 | APK |
Linux版は、各ディストリビューション用の依存ライブラリをパッケージマネージャーで導入してください。Android版のRetroAchievements機能はAndroid 6.0(API 23)以降で利用できます。
使用できるROMファイルについては、README-XM8.txtの[ROMファイル]を参照してください。
ROMファイルの配置場所は、設定ファイルと同じ以下になります(一度、アプリケーションを起動するとフォルダが作成されます)。
"~/Library/Application Support/retro_pc_pi/xm8"README-XM8.txtの[使い方]を参照してください。
Windows、macOS、Linux では、最大2個の D88 イメージをコマンドラインで指定できます。指定順にドライブ1、ドライブ2へ挿入されます。プレイリストは.m3uと.m3u8に対応しています。
xm8 [options] [--] [disk-spec ...]
xm8 game.d88
xm8 game.d88#1
xm8 system.d88#0 data.d88#1
xm8 game.m3u
xm8 game.m3u8
xm8 --system V1H --clock 4MHz game.d88disk-spec は <path>、<path>#<bank>、<path>:<bank> のいずれかです。bank は0始まりです。
オプション:
--system <V1S|V1H|V2|N>
--clock <4|4MHz|8|8MHz|8H|8MHzH>
-h, --help
--version
--system と --clock はその起動中だけ有効で、通常の設定や自動保存 state には残りません。ファイル名の最後の要素に # または : を含むパスは bank 指定と曖昧になるため、コマンドラインでは指定できません。
RetroAchievements対応を含むbuildでは、メインメニューのRetroAchievementsからログインとRAモードの切り替えができます。対応ゲームの実績、リーダーボード、Rich Presence、Hardcoreモードを利用できます。
RAモードでは、選択したD88をライブラリへ登録し、原本を変更しないアプリ専用の作業コピーを使用します。認証やネットワーク接続に失敗した場合でもゲームは起動できますが、そのセッションでは実績の評価・送信は行われません。
Android版はAPI 19以上で起動しますが、RetroAchievementsのUI・通信・資格情報保存はAndroid 6.0(API 23)以上でのみ有効です。
ビルドするには以下のインストールが必要です。
-
Xcode
使うのはコマンドラインツールだけですが、Xcodeをインストールしてしまうのが手っ取り早いと思います。
-
Homebrew
Homebrewのインストールが必要です。 cmakeなどビルドに必要なツールの取得に使用します。
プロジェクトのルートをターミナルで開き、以下のコマンドを実行します。
cd Builder/macOS
./dist_app.shこれでbuildフォルダに実行ファイル(.app)が作成されているはずです。
ソースコードの改変を快諾してくださったPI.氏にお礼申し上げます。
Builder/WindowsフォルダにVisual Studio 2022用のソリューションが入っています。
Builder/Windowsフォルダにあるsetup_sdl2.ps1を実行すると、ビルドに必要なSDL2をダウンロードして適切な場所に配置します。
以下のようになります。
- Builder\Windows\SDL\include(インクルードファイル)
- Builder\Windows\SDL\lib\x86(x86向けライブラリ)
- Builder\Windows\SDL\lib\x64(x64向けライブラリ)
- Builder\Windows\SDL\lib\arm64(arm64向けライブラリ)
Builder/Windows/XM8.sln をVisual Studioでビルドします。 Builder/Windows/x64、Builder/Windows/Win32、Builder/Windows/ARM64に出力されます。実行に必要なのは、XM8.exeとSDL2.dllです。
RetroAchievements対応は通常のWindows配布buildで有効になります。機能を完全に除外した
互換確認用buildが必要な場合は、Developer PowerShellから共通property
XM8_ENABLE_RETROACHIEVEMENTS=falseを指定できます。
msbuild Builder\Windows\XM8.sln /m /p:Configuration=Release /p:Platform=x64 /p:XM8_ENABLE_RETROACHIEVEMENTS=true
msbuild Builder\Windows\XM8.sln /m /p:Configuration=Release /p:Platform=x64 /p:XM8_ENABLE_RETROACHIEVEMENTS=falseRA有効buildでは、THIRD_PARTY_NOTICES.mdとLicenses directoryも出力先へコピーされます。
Win32、x64、ARM64のDebug/Releaseで同じpropertyを利用できます。
BIOS ROMファイルの置き場所は以下になります。
%appdata%\retro_pc_pi\xm8Builder/Linuxフォルダにdeb, rpm, appimageパッケージを作成するスクリプトが入っています。
ビルドに必要なライブラリは、dist_app.shを参照してください。
cd Builder/Linux
./dist_app.shこれでbuildフォルダにdebファイル、またはrpmファイルが作成されます。
cd Builder/Linux
./appimage.shこれでBuilder/Linuxフォルダに、appimageファイルが作成されます。
Flatpak パッケージは x86_64 と arm64 の両方を同じ manifest からネイティブにビルドします。ビルドには Freedesktop 25.08 runtime が必要です。
flatpak install flathub org.freedesktop.Sdk//25.08 org.freedesktop.Platform//25.08
flatpak-builder --user --install --force-clean flatpak-build com.github.bubio.xm8m.ymlRA の通信と認証情報の保存、SDL による ROM/ディスクイメージ選択のため、ネットワーク、Secret Service、およびホームディレクトリへのアクセスを許可します。BIOS ROM は Flatpak の設定ディレクトリに配置してください。
~/.var/app/com.github.bubio.xm8m/data/retro_pc_pi/xm8/BIOS ROMファイルの置き場所は以下になります。
~/.local/share/retro_pc_pi/xm8/Builder/AndroidフォルダにAndroid Studio用のプロジェクトが入っています。
Builder/Androidフォルダにあるsetup_sdl2.shを実行すると、ビルドに必要なSDL2をダウンロードして適切な場所に配置します。
以下のようになります。
- Builder/Android/app/jni/SDL\include(インクルードファイル)
- Builder/Android/app/jni/SDL\src(ソースファイル)
- Builder/Android/app/src/java/org/libsdl/app(Javaソースファイル)
Builder/AndroidをAndroid Studioで開いてビルドします。
BIOS ROMファイルの置き場所は以下になります。
Android/data/retro_pc_pi/files/Android 11以上の場合、端末内のファイルに自由にアクセスすることができません。
ゲームのディスクイメージも同じ場所に入れることを推奨します。
| Component | Version | License |
|---|---|---|
| xBRZ | bundled | GPLv3 |
| rcheevos | 12.3.0 | MIT |
| SQLite | 3.53.0 | Public Domain |
| stb_image | 2.30 | MIT OR Public Domain |
rcheevos、SQLite、stb_imageはRetroAchievements対応buildで使用します。依存関係の
バージョン、来歴、ライセンス本文はThirdParty/README.md、
ThirdParty/THIRD_PARTY_NOTICES.md、
ThirdParty/licenses/を参照してください。
