Skip to content

NightShade256/Argentum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

./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.

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

  1. Pan Docs
  2. izik's opcode table
  3. GBEDG
  4. Game Boy - Complete Technical Reference
  5. SM83 Instruction Decoding Guide

Other Emulators

  1. BGB
  2. Mooneye GB - Gekkio
  3. CryBoy - Matthew Berry

Blogs and Talks

  1. [emudev]
  2. Ultimate Game Boy Talk - Michael Steil

License

Argentum is licensed under the terms of the Apache 2.0 license.