FUJITSU FM77AV40EX のエミュレーターです。マルチプラットフォームです。
BubiFM77AV40EXは、武田俊也さんの Common Source Code Project に含まれる eFM77AV40EX のエミュレーションコアを使った、FM77AV40EX のマルチプラットフォームエミュレータです。
エミュレーションコアには手を加えず、Flutter で作ったフロントエンドから FFI で呼び出しています。macOS、Windows、Linux に対応しています。
UIは日本語と英語に対応しています。
リリースからお手持ちの環境にあった実行ファイルをダウンロードしてください。ファイル名は BubiFM77AV40EX-<version>-<platform>-<arch>.<ext> です。
| プラットフォーム | 最小OSバージョン | 形式 | アーキテクチャ |
|---|---|---|---|
| macOS | macOS 13.5 Ventura | .dmg |
apple-silicon, intel |
| Windows | Windows 10 | .zip |
x64 |
| Linux(Debian / Ubuntu) | Ubuntu 24.04以降 | .deb |
amd64, arm64 |
| Linux(Fedora / RHEL / openSUSE) | - | .rpm |
x86_64, aarch64 |
| Linux(ポータブル) | - | .AppImage |
x86_64, aarch64 |
- macOS: DMGを開いて
BubiFM77AV40EX.appをアプリケーションフォルダに移動するなどして実行してください。署名・公証をしていないため、初回起動時にブロックされた場合は、システム設定のプライバシーとセキュリティから開くことを許可してください。 - Windows: ZIPを展開し、
BubiFM77AV40EX.exeを実行してください。 - Linux: GTK 3とALSAのライブラリが必要です。deb、rpmはパッケージマネージャーでインストールしてください。AppImageは実行権限を付けてそのまま実行できます。
ROMファイルは同梱していません。実機から吸い出したROMをご用意ください。
| ファイル名 | サイズ | 用途 |
|---|---|---|
INITIATE.ROM |
8KB | 起動必須 |
SUBSYS_A.ROM |
8KB | 起動必須 |
SUBSYS_B.ROM |
8KB | 起動必須 |
SUBSYS_C.ROM |
10KB | 起動必須 |
SUBSYSCG.ROM |
8KB | 起動必須 |
EXTSUB.ROM |
48KB | 起動必須 |
FBASIC302.ROM(またはFBASIC301.ROM / FBASIC300.ROM / FBASIC30.ROM) |
31KB | BASICモードでの起動に必要 |
KANJI1.ROM(またはKANJI.ROM) |
128KB | 第1水準漢字(任意) |
KANJI2.ROM |
128KB | 第2水準漢字(任意) |
DICROM.ROM |
256KB | 辞書(任意) |
F-BASIC ROMがない場合も、DOSモードで起動できます。
ROMファイルの配置場所は以下になります(一度、アプリケーションを起動するとフォルダが作成されます)。アプリケーションのROM確認画面からフォルダを開くこともできます。
| OS | 配置場所 |
|---|---|
| macOS | ~/Library/Application Support/BubiFM77AV40EX/roms |
| Windows | %APPDATA%\BubiFM77AV40EX\roms |
| Linux | ~/.local/share/BubiFM77AV40EX/roms |
最大2個のディスクイメージをコマンドラインで指定できます。指定順にFD1、FD2へ挿入されます。
BubiFM77AV40EX [-option ...] image-file [image-No] [image-file [image-No]]
BubiFM77AV40EX game.d88
BubiFM77AV40EX game.d88 2
BubiFM77AV40EX system.d88 data.d88
BubiFM77AV40EX -dos -x2 game.d88image-No はD88などのマルチバンクイメージのバンク番号で、1始まりです。マルチバンクイメージを1つだけ指定してバンクを省略した場合は、バンク1をFD1、バンク2(あれば)をFD2に挿入します。
オプション(大文字・小文字は区別しません。同じ設定を複数指定した場合は最後のものが有効です):
-basic / -dos ブートモード
-2mhz / -1.2mhz CPU速度
-x1 / -x2 / -x4 / -x8 / -x16 速度倍率
-fullspeed 速度制限なし
-cycle_steal / -no_cycle_steal サイクルスチール
-extram / -no_extram 拡張RAM
-hsync / -no_hsync HSYNC同期
-h / -help / --help ヘルプを表示して終了
終了コードは、0=成功またはヘルプ表示、2=構文エラー、3=メディアエラー、4=ROM/起動エラー、5=内部エラーです。
どのプラットフォームでも FVM と Git が必要です。Flutterは必ずFVM経由で実行し、バージョンは.fvmrcで固定しています。エミュレーションコアは、ビルドスクリプトがGitサブモジュールとして固定リビジョンを取得します。
git clone https://github.com/bubio/BubiFM77AV40EX.git
cd BubiFM77AV40EX
fvm install開発中は以下で実行・検査できます。
fvm flutter run -d <macos|windows|linux>
./scripts/check.sh # 書式・静的解析・テストXcode、HomebrewでインストールしたCMakeとCocoaPodsが必要です。
brew install cmake cocoapods./scripts/build_macos.shbuild/macos/Build/Products/Release/BubiFM77AV40EX.appが作成されます。
DMGを作成する場合は以下を実行します。build/macos/dmgフォルダにApple Silicon版とIntel版のDMGが作成されます。
./scripts/build_macos_dmg.sh arm64 x86_64Visual Studio 2022(C++によるデスクトップ開発)とGit for Windowsが必要です。
Git Bashでエミュレーションコアを取得してから、PowerShellでビルドします。
./scripts/build_native_core.sh fetchpwsh scripts/build_windows.ps1build/windows/distフォルダにZIPファイルが作成されます。
Debian系(Ubuntuなど / apt):
sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev libasound2-dev liblzma-dev libstdc++-12-devパッケージを作成する場合は、imagemagick、desktop-file-utils、rpmも必要です。
ビルドしたマシンと同じアーキテクチャ(x86_64 / arm64)向けに作成します。
./scripts/build_linux.sh release
./scripts/package_linux.shbuild/linux/distフォルダにdeb、rpm、AppImageファイルが作成されます。./scripts/package_linux.sh debのように形式を指定することもできます。
GPLv2です。エミュレーションコアである Common Source Code Project のライセンスに準じます。詳細はLICENSEを参照してください。
エミュレーションコアを公開してくださっている武田俊也さんにお礼申し上げます。
