A cycle-accurate Game Boy and Game Boy Color Emulator, with rewind feature.

Overview

Azayaka

Azayaka is a free and open-source Game Boy and Game Boy Color emulator written in C++.

Features

  • Cycle-Accurate emulation.
  • Console based Debugger.
  • Audio emulation.
  • Real-Time Clock support.
  • Screen shots.
  • Audio recording.
  • Save states.
  • Rewind.
  • Disassembler(With Code/Data Log).
  • Automated testing system.
  • Emulates both the Game Boy(DMG) and Game Boy Color(CGB).
  • Game Boy Printer.
  • Link Cable(Experimental)

Accuracy

  • Passes all of blargg's tests except oam_bug.
  • Passes most of gekkio's Mooneye GB tests.

See test results

Cartridge Mappers

Azayaka supports the following cartridge-mappers:

  • MBC1
  • MBC1M
  • MBC2
  • MBC3
  • MBC3+RTC
  • MBC5

Supported Platforms

  • Linux
  • Mac OS
  • Windows (Coming soon!)

Controls

Emulated Buttons

Note: You can map different keys to the buttons by editing Azayaka's INI file.

Button Key
A Z
B X
Start Enter
Select Space
Up
Down
Left
Right

Key Commands

Function Key
Turbo Shift
Slow-Motion Alt
Rewind Backspace
Toggle Fullscreen Ctrl+F
Pause/Unpause Ctrl+P
Reset Ctrl+R
Trigger Debugger Ctrl+C
Increase Volume Plus
Decrease Volume Minus
Load Savestate F1-F10
Save Savestate Ctrl + F1-F10
Take Screenshot F11
Start/Stop recording Audio F12

Building

Requires CMake

Dependencies

  • SDL2: For the frontend.
  • libpng: For PNG screenshots. If you don't have it, BMPs will be used instead.
  • OpenGL: For hardware accelerated graphics. If you don't have it, SDL will be used for the rendering.

*Nix Building

mkdir build
cd build
cmake ..
make

Windows Building

Coming Soon!

Sorry, but I don't currently have a Windows Dev machine, but I should have a setup in just a couple of weeks. But in the mean time, I can't guaranty that Azayaka will compile on a Windows Box. My apologies.

Running

Running Azayaka-sdl

./Azayaka-SDL [ROM or Directory Path] [Options...]

  -d, --debug        Run the emulator in debug mode
  -s, --scale        Scales the screen by the factor given
  -g, --force-gb     Force the emulator into GameBoy mode
  -c, --force-gbc    Force the emulator into GameBoy-Color mode
  -l, --link         Enable GameBoy Link-Cable
  -p, --printer      Enable GameBoy Printer
  -D, --dump-usage   Saves the ROM usage(CDL) to a file
      --verbose      Enable verbose debugging information
      --force-sdl    Force the emulator to use SDL as the Video-Driver

Running Azayaka-tester

./Azayaka-tester [Test ROMs path] [Correct-Results CSV Path]

Thanks

  • Shay Green for blargg's tests.
  • Joonas Javanainen for Mooneye GB tests.
  • Antonio Niño Díaz for TCAGBD.
  • Ben Smith(binji) for his article on implementing rewind.
  • To all of the authors of the emulators that I used for inspiration.
  • To you, for looking at my emulator!

Copyright

Azayaka is licensed under GPL3. Copyright © 2020-2021 Zach Collins

"Game Boy" and "Game Boy Color" are trademarks of Nintendo. Azayaka is not affiliated with Nintendo in any way.

You might also like...
Custom Deflemask .vgm based playback engine for the Nintendo Game Boy

-DeflemaskGBVGM- Custom Deflemask .vgm based playback engine for the Nintendo Game Boy. Now the official Deflemask ROM exporter as of v1.0.3. this eng

A WiFi cartridge for the original Game Boy.
A WiFi cartridge for the original Game Boy.

wifi-game-boy-cartridge A WiFi cartridge for the original Game Boy. This open source and open hardware Game Boy cartridge uses an ESP8266 to allow WiF

bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.

bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.

A gameboy emulator that only plays Pokemon Blue, in ~70 lines of c++.

pokegb A gameboy emulator that only plays Pokemon Blue, in ~70 lines of c++. See the technical write-up. Features Plays Pokemon Blue (and Red).

 MVS64 -- A NeoGeo emulator for Nintendo 64
MVS64 -- A NeoGeo emulator for Nintendo 64

MVS64 -- A NeoGeo emulator for Nintendo 64 Status This emulator is in VERY EARLY STAGE. Only a handful of games boot or work. Performance on N64 is st

yuzu is an experimental open-source emulator for the Nintendo Switch from the creators of Citra.

yuzu (Nintendo Switch Emulator) yuzu is an experimental open-source emulator for the Nintendo Switch from the creators of Citra. It is written in C++

Experimental Nintendo 64 emulator in C11

shibumi | 渋味 "Shibui (adjective), shibumi (noun) or shibusa (noun) are Japanese words that refer to a particular aesthetic or beauty that is simple, s

Modification of Marat Fayzullin's Z80 emulator to run on the Arduino Mega

Z80 Core for Arduino Mega This library only functions with the Arduino Mega or Mega 2560 due to memory constraints! This is a free, open source projec

A gameboy emulator in several different languages

A gameboy emulator in several different languages

Owner
Zach Collins
Hobbyist C++ programmer who is obsessed with emulation. Also enjoys playing chess and shogi, biking, and drinking matcha.
Zach Collins
Game Boy, Game Boy Color, and Game Boy Advanced Emulator

SkyEmu SkyEmu is low level cycle accurate GameBoy, GameBoy Color and Game Boy Advance emulator that I have been developing in my spare time. Its prima

Sky 321 Jan 4, 2023
The Game Boy ROM of the Game Boy bitcoin miner!

game-boy-bitcoin-miner The Game Boy ROM of the Game Boy bitcoin miner! To build this, currently this patch needs to be applied to GBDK: https://gist.g

Ghidra Ninja 80 Dec 11, 2022
A Game Boy emulator with serial data transfer (link cable) support over tcp.

gbmulator A Game Boy emulator with serial data transfer (link cable) support over tcp. Key bindings Key bindings are not configurable yet. Key Action

null 6 Dec 30, 2022
NeoGB Printer an SD card-based standalone Game Boy Printer emulator.

An open-source and standalone Gameboy Printer emulator 100% compatible with all officially released games (110 in total) that support the accessory. Just print and save the images as BMP

Rafael Zenaro 85 Dec 22, 2022
A Game Boy Printer emulator that supports the Phomemo T02 printer

ESP32 + Phomemo T02 Game Boy Printer This project lets you print Game Boy Printer images via Bluetooth using a Phomemo T02 thermal printer and an ESP3

Jack Gaino 11 Aug 25, 2022
GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

Chris Maltby 6.8k Jan 8, 2023
A Game Boy game that rewards you for playing it on several console models!

GB Corp. A Game Boy game for the Game Boy Competition 2021 by Dr. Ludos (2021) This is the source code, you can get a precompiled rom from here: https

Dr. Ludos 10 Sep 25, 2022
A model viewer for Quake 1 and Hexen 2 with a focus on accurate representation.

LunarViewer A model viewer for Quake 1 and Hexen 2 with a focus on accurate representation. Powered by raylib and dear imgui! Features Support for Qua

Luna Ryuko Zaremba 37 Jan 4, 2023
A repository of gate-level simulators and tools for the original Game Boy.

GateBoy is a gate-level simulation of the original Game Boy hardware that was reverse-engineered from die shots of the original DMG-01 chip.

null 1k Dec 24, 2022
civilized Game Boy Advance development from the comfort of your own editor

Rath - civilized Game Boy Advance development from the comfort of your own editor what is it Rath is an interactive development environment for the Ga

Ties Stuij 25 Dec 12, 2022