GitHub - NightShade256/Argentum: A Game Boy Color emulator written in Rust. (original) (raw)
Argentum
Argentum is a Game Boy Color emulator written in Rust.
Installation
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.
Usage
You can check the CLI's help section for usage details.
The keybindings are as follows: WASD
for the DPAD, Z
, X
for A
, B
respectively, Enter
for Start andSpace
for Select.
Features
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!)
Resources
The emulator would not be possible without the following resources,
Documentation and References
- Pan Docs
- izik's opcode table
- GBEDG
- Game Boy - Complete Technical Reference
- SM83 Instruction Decoding Guide
Other Emulators
Blogs and Talks
License
Argentum is licensed under the terms of the Apache 2.0 license.