Argentum is a Game Boy Color emulator written in Rust.
Argentum uses SDL2. You don't need to install SDL2 as it is bundled with the emulator dependencies.
The only requirements are that you have the latest stable Rust compiler, CMake and a working C compiler.
After ensuring the above, clone the repository and run cargo build --release
. The binary will be created
in the directory ./target/release
. You can then copy the binary to any location of your choosing.
Note: There are prebuilt binaries available for Windows and Linux platforms in the releases section.
You can check the CLI's help section for usage details.
./argentum-native --help
The keybindings are as follows: WASD
for the DPAD, Z
, X
for A
, B
respectively, Enter
for Start and
Space
for Select.
Argentum is certainly not perfect, but it supports the following features.
- Passing blargg's CPU tests, instruction timing tests and memory timing tests.
- Passing all of mooneye-gb timer (not timing!) tests.
- PPU (scanline-based) which passes the dmg-acid2 and cgb-acid2 PPU tests.
- CGB Support.
- MBC1 (no multicarts), MBC3 (no RTC) and MBC5 (no rumble) cartridges are supported.
- Support for sound with all channels.
- Boot ROM support (right now only SameBoot is supported).
- Battery Saves support (extremely experimental, should not be relied upon!)
The emulator would not be possible without the following resources,
- Pan Docs
- izik's opcode table
- GBEDG
- Game Boy - Complete Technical Reference
- SM83 Instruction Decoding Guide
Argentum is licensed under the terms of the Apache 2.0 license.