mGBA はゲームボーイアドバンスゲームを動かすためのエミュレータです。 既存のゲームボーイアドバンスエミュレータよりも高速で正確な動作を目指しており、他のエミュレータにない機能も追加されています。 また、ゲームボーイとゲームボーイカラーのゲームもサポートしています。
最新のニュースやダウンロードは mgba.io で見ることができます。
Features
- High accurate Game Boy Advance hardware support.
- Game Boy/Game Boy Color hardware support.
- Fast emulation.Game Boy Advanced hardware support.Game Boy Colorハードウェアサポート。
- Qt および SDL ポートは、ヘビー級およびライト級フロントエンドをサポートします。
- フラッシュ メモリ サイズでもセーブ タイプを検出。
- モーション センサーとランブル (ゲーム コントローラでのみ使用可能) を備えたカートリッジをサポート。
- 設定なしでもリアルタイムのクロックをサポート。
- ボクタイゲーム用ソーラーセンサーのサポート。
- ゲームボーイカメラおよびゲームボーイプリンタのサポート。
- 内蔵BIOS実装、および外部BIOSファイルのロード機能。
- Tabキーを押しながらのターボ/早送りサポート.
- バッククォートを押しながらの巻き戻し.
- フレームスキップ、最大10まで設定可能.
- スクリーンショット・サポート.
- チートコードサポート.
- セーブステート・スロット×9をサポート.
- ビデオ、GIF、WebP、および APNG 録画。
- e-Reader サポート。
- キーボードおよびゲームパッド用の再割り当て可能なコントロール。
- ZIP および 7z ファイルからの読み込み。
- IPS, UPS および BPS パッチ サポート。
- IDA Pro と互換性のある、コマンドライン インターフェイスと GDB リモート サポートによるゲーム デバッギング。
- 設定可能なエミュレーションの巻き戻し。
- GameShark および Action Replay スナップショットの読み込みと書き出しをサポート。
- RetroArch/Libretro および OpenEmu 用コアを提供。
Game Boy マッパー
以下のマッパーは完全にサポートされています。
- MBC1
- MBC1M
- MBC2
- MBC3
- MBC3+RTC
- MBC5
- MBC5+Rumble
- MBC5+Rumble
- MBC1
- MBC7
- 知恵の木(非正規)
- ポケモンジード/ダイヤモンド(非正規)
- BBD(MBC5- 非正規
- Hitek (非ライセンス版MBC5ライク)
。
以下のマッパーを部分的にサポートしています。
- MBC6 (フラッシュ メモリ書き込みサポート欠落)
- MM01
- Pocket Cam
- TAMA5 (RTC サポート欠落)
- HuC-
- TAMA5 (RTC サポート欠落)
- HuC-
- MMM01 (メモリ書き込みサポートを欠落)1(IRサポート欠落)
- HuC-3 (RTCおよびIRサポート欠落)
計画中の機能
- ネットワーク・マルチプレイヤー・リンクケーブルのサポート。
- Dolphin/JOY bus link cable support.
- MP2k audio mixing, for higher quality sound than hardware.
- Re-recording support for tool-assist runs.
- Lua support for scripting.Dolphin/JOY bus linking cable support.
- 包括的なデバッグスイート
- ワイヤレスアダプタのサポート
サポートプラットフォーム
- Windows Vista以降
- OS X 10.X.X.X.X.X.8 (Mountain Lion) 以降
- Linux
- FreeBSD
- Nintendo 3DS
- Nintendo Switch
- Wii
- PlayStation Vita
他の Unix 系プラットフォーム、例えば OpenBSD も同様に機能すると知られていますが、未テストかつ完全にサポートされていないため、このような場合は、このプラットフォームは使用しないでください。
システム要件
要件は最小限です。 Windows Vista またはそれ以降が動作するコンピューターであれば、エミュレーションを処理することができるはずです。 また、OpenGL 1.1 以降のサポートが必要で、シェーダーや高度な機能には OpenGL 3.2 以降が必要です。
ダウンロード
ダウンロードは、公式サイトのダウンロードセクションで見つけることができます。 ソースコードはGitHubで見つけることができます。
Controls
コントロールは設定メニューで設定可能です。 多くのゲーム コントローラは、デフォルトで自動的にマッピングされるはずです。 デフォルトのキーボード操作は以下の通りです:
- A: X
- B: Z
- L: A
- R: S
- Start.X: X
- R: S
- Start: Enter
- Select: Backspace
Compiling
コンパイルには CMake 3.1 以降を使用する必要があります。 GCC および Clang は mGBA をコンパイルするために動作することが知られていますが、Visual Studio 2013 およびそれ以前のバージョンは動作しないことが知られています。 Visual Studio 2015 およびそれ以降のサポートは近日公開予定です。
Docker ビルド
ほとんどのプラットフォームでビルドする推奨方法は、Docker を使用することです。 いくつかのプラットフォームで mGBA をビルドするために必要なツール チェーンと依存関係を含む、いくつかの Docker イメージが提供されています。
Dockerイメージを使用してmGBAをビルドするには、mGBA チェックアウトのルートにいる間に次のコマンドを実行するだけです:
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
これにより、build-win32
ディレクトリにビルド製品が生成されます。 mgba/windows:w32
を他のプラットフォーム用のDockerイメージに置き換えると、対応する他のディレクトリが生成されます。 Docker Hub で利用可能な Docker イメージは以下の通りです:
- mgba/3ds
- mgba/switch
- mgba/ubuntu:xenial
- mgba/ubuntu.Docker>
- mgba/3ds
- mgba/switch
- mgba/ubuntu.Dockerbionic
- mgba/ubuntu:focal
- mgba/ubuntu:groovy
- mgba/vita
- mgba/wii
- mgba/windows.NET
- mgba.NET
- mgba/ubuntu.NET
- mgba/ubuntu.NET
- mgba/windows:w64
*nix building
CMakeを使ってUnixベースのシステムでビルドするには、以下のコマンドが推奨されます。
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..makesudo make install
これはmGBAを/usr/bin
と/usr/lib
にビルドしてインストールするものです。 インストールされる依存関係は自動的に検出され、依存関係が見つからない場合に無効になる機能は、見つからないという警告の後に cmake
コマンドを実行すると表示されます。
macOS を使用している場合、手順が少し異なります。 homebrew パッケージ マネージャーを使用していると仮定して、依存関係を取得してビルドするための推奨コマンドは次のとおりです。
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-configmkdir buildcd buildcmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..make
なお、macOS では make install
は正しく機能しないので、実行しないでください。
Windows 開発者のビルド
MSYS2
開発用に Windows でビルドするには、MSYS2 を使うことが推奨されています。 同社のウェブサイトに掲載されているインストール手順に従ってください。 32 ビット版 (「MSYS2 MinGW 32-bit」) (または x86_64 用にビルドしたい場合は 64 ビット版「MSYS2 MinGW 64-bit」) を実行していることを確認し、次の追加コマンドを実行して必要な依存関係をインストールします (これには 1100MiB 以上のパッケージをダウンロードするので長い時間がかかることに注意してください)。
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
このコマンドを実行してソース コードをチェックします:
git clone https://github.com/mgba-emu/mgba.git
そして最後にこれらのコマンドを実行してビルドします:
mkdir -p mgba/buildcd mgba/buildcmake .. -G "MSYS Makefiles"make -j$(nproc --ignore=1)
なお、Windows 用 mGBA のこのビルドは、実行に必要な DLL が散在するために配布には適していませんが、開発には完璧なものです。 しかし、このようなビルドを配布したい場合 (たとえば、MSYS2 環境がインストールされていないマシンでのテスト用)、cpack -G ZIP
を実行すると、必要な DLL をすべて含む zip ファイルが準備されます。 まず始めに、vcpkg をインストールする必要があります。 vcpkg をインストールした後、いくつかの追加パッケージをインストールする必要があります。
vcpkg install ffmpeg libepoxy libpng libzip sdl2 sqlite3
このインストールは、Nvidia ハードウェアでのハードウェア アクセラレーションによるビデオ エンコードをサポートしないことに注意してください。 これを気にするのであれば、事前に CUDA をインストールし、ffmpeg
を前のコマンドに代入する必要があります。 残念ながら、Qt は合理的な組織とは対照的に、経営不振の会社によって所有・運営されているため、最新版のオフラインのオープンソース版インストーラはもはやありません。したがって、古いバージョンのインストーラに戻るか (これは役に立たないアカウントの作成を要求しますが、一時的に無効なプロキシの設定やその他のネットワーク障害を回避することができます)、オンラインインストーラを使用するか (アカウントにかかわらず必要)、vcpkg を使用してビルドする必要があるでしょう (遅い)。 どれも素晴らしい選択肢ではありません。 インストーラでは、該当するMSVCのバージョンをインストールしたいと思うでしょう。 オフラインインストーラは MSVC 2019 をサポートしていないことに注意してください。 vcpkg については、このようにインストールしたいと思いますが、特にクアッドコア以下のコンピュータではかなり時間がかかります:
vcpkg install qt5-base qt5-multimedia
次に、Visual Studio を開き、リポジトリのクローンを選択し、https://github.com/mgba-emu/mgba.git
を入力します。 Visual Studio のクローンが完了したら、ファイル > CMake に移動し、チェックアウトしたリポジトリのルートにある CMakeLists.txt ファイルを開いてください。 そこから、他のVisual Studio CMakeプロジェクトと同様にVisual StudioでmGBAを開発することができます。
Toolchain building
devkitARM (3DS 用)、devkitPPC (Wii 用)、devkitA64 (Switch 用)、または vitasdk (PS Vita) がある場合、次のコマンドを使用してビルドできます:
mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..make
次のプラットフォーム用に -DCMAKE_TOOLCHAIN_FILE
パラメータを置き換えます:
- 3DS:
../src/platform/3ds/CMakeToolchain.txt
- Switch:
../src/platform/switch/CMakeToolchain.txt
- Vita:
../src/platform/psp2/CMakeToolchain.vitasdk
- Wii:
../src/platform/wii/CMakeToolchain.txt
依存関係
mGBA にはハード依存関係はありませんが、以下のオプション依存関係は特定の機能で必要とされます。
- Qt 5: GUI フロントエンド用です。 オーディオには Qt Multimedia または SDL が必要です。
- SDL: より基本的なフロントエンドと Qt フロントエンドのゲームパッド サポート用です。 SDL 2 を推奨しますが、1.2 もサポートします。
- zlib および libpng: スクリーンショットのサポートおよび savestate-in-PNG のサポート。
- libedit: コマンドライン デバッガのサポート。
- ffmpeg または libav: ビデオ、GIF、WebP、および APNG 録画用。
- libzip または zlib: zip ファイルに格納された ROM をロードするため。
- SQLite3: ゲームデータベース用。
- libelf: ELF 読み込み用。
SQLite3, libpng, zlib はエミュレータに含まれているので、最初に外部でコンパイルする必要はないです。
脚注
現在不足している機能は、
- OBJ window for modes 3, 4 and 5 (Bug #5)
フラッシュメモリのサイズ検出がうまくいかない場合があることです。 これらは実行時に設定できますが、そのようなケースに遭遇した場合は、バグを報告することを推奨します。
10.8 は Qt の移植にのみ必要です。 10.7 またはそれ以前でも Qt 移植版をビルドしたり動作させることは可能かもしれませんが、公式にはサポートされていません。 SDL の移植版は 10.5 で動作することが知られており、それ以前でも動作する可能性があります。
Copyright
mGBA is Copyright © 2013 – 2021 Jeffrey Pfau. Mozilla Public License version 2.0 の下で配布されています。 このライセンスのコピーは配布されている LICENSE ファイルにあります。
mGBA は以下のサードパーティライブラリを含んでいます:
- inih, copyright © 2009 – 2020 Ben Hoyt and used under the BSD 3-clause license.
- blip-buf, copyright © 2003 – 2009 Shay Green and used under a Lesser GNU Public License. mGBA は、以下のライブラリを含んでいます。
- LZMA SDK、パブリックドメイン。
- MurmurHash3 implementation by Austin Appleby、パブリックドメイン。
- getopt for MSVC、パブリックドメイン。
- SQLite3、パブリックドメイン。
あなたがゲームの出版者で商業利用のために mGBA をライセンスしたい場合、詳細については [email protected] までメールでお問い合わせください。