Game Boy, Game Boy Color, and Game Boy Advanced Emulator

Overview

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 primary focus is to provide a good user experience through a good mixture of tradeoffs of accuracy, performance, features and usability. It is still fairly early in development and should be considered as beta quality.

image

Web App Based Build (Desktop/iOS/Android)

The latest version of the emulator can be played at the following address as a progressive web app:

https://skylersaleh.github.io/SkyEmu/

On Mobile platforms it is recommended to add to the home screen and launch from there. This will prevent the web browser from auto deleting save files and will remove the browsers UI.

Drag and drop a rom in to load it or click on the Load .GB/.GBC/.GBA button to open a menu to select a rom.

Note: A GBA BIOS is not required as SkyEmu bundles an open source replacement BIOS.

Controls:

  • WASD: D-Pad
  • J: A button
  • K: B button
  • ': Select button
  • Enter: Start button
  • U: L shoulder
  • I: R shoulder

On mobile platforms an onscreen touch screen controller is provided.

Native Build Instructions

Native builds are experimental currently but can be built using the following commands:

mkdir build
cd build
cmake .. 
cmake --build . 

The output binaries should be in the build/bin folder

Native builds should work for the following platforms although they are currently not well tested:

  • Windows
  • Mac OS X
  • Linux
  • iOS
  • Android

Accuracy/Compatibility

SkyEmu has been tested on 100s of ROMs and most common games should be playable with no to minor bugs currently. However, the GBA emulation is significantly more accurate than the GB/GBC emulation.

GBA:

  • Per Pixel PPU Implementation capable of both scan line and mid scan line effects (SkyEmu is the only GBA emulator released to support this)
  • Passes the AGS Aging Test ROM (SkyEmu is the second SW based GBA emulator to ever pass this)
  • Can run difficult to emulate GBA games such as the NES Classics Series, Golden Sun and Hello Kitty Miracle Fashion Maker
  • 100% Passes all ArmWrestler Tests
  • 100% Passes all FuzzARM tests
  • 100% Passes arm.gba and thumb.gba
  • Passes 1860/1920 GBA Suite timing tests when utilizing the original Nintendo GBA BIOS (the bundled BIOS is less accurate)
  • Full instruction pipeline and prefetch emulation

GB:

  • Passes all of Blargg's CPU instruction tests
  • Passes DMG and GBC acid2 PPU conformance tests
  • Passes MBCtest
  • Scan line based PPU implementation
  • Anti-aliased audio synthesis with support for APU changes per sample (supports Pikachu's voice in Pokemon Yellow/Pokemon Pinball)
Issues
  • Text corruption in Lufia

    Text corruption in Lufia

    image

    This seems to be caused by spurious hflip flags being included on the tile data for the text background layer.

    Tracing through DMA and cpu memory transactions, there is two potential culprit writes from the CPU, both by PC (0x0807a4f2):

    image

    The disassembly of the game ROM seems to show a complex expression leading to those writes.

    image

    Best guess currently is this is caused by incorrect latching/open bus emulation, as this value may be created by ORing a previous value onto itself, and there is portions in the game where VRAM seems to be being cleared with open bus values.

    opened by skylersaleh 2
  • Corrupted/Slow Audio on Wario Land 4

    Corrupted/Slow Audio on Wario Land 4

    Audio gets distorted after playing intro for a bit.

    This seems to because of a spurious setting in TM0CNT_H (IRQ Enable is disabled). Enabling the IRQ for this timer resolves the corruption.

    opened by skylersaleh 1
  • Malformed background on GBC game

    Malformed background on GBC game

    The background of the GameBoy Color game SpongeBob Squarepants - Legend of the Lost Spatula is incorrectly mapped:

    Screenshot

    To replicate:

    • Start the SkyBoy emulator using the github.io link, https://skylersaleh.github.io/SkyBoy/.
    • Open the game "SpongeBob Squarepants - Legend of the Lost Spatula"
    • Start a new game
    opened by iWiggins 1
  • [Bubble Bobble - WEB] freezes when hits the ground in intro

    [Bubble Bobble - WEB] freezes when hits the ground in intro

    likely related to the same issue i used to have https://github.com/ITotalJustice/TotalGB/issues/42, EI needed to be delayed.

    for me however, it was a bootloop, but for you its a freeze, but this happens in the exact same spot so i still feel like it's related, and others that didnt delay EI had differing results also

    opened by ITotalJustice 0
  • Cant open .sav files in SkyEmu

    Cant open .sav files in SkyEmu

    Okay, so a while back i discovered SkyEmu when it couldn't import/export .sav files, now that it does support importing files i tried to test it, the bios loaded fine but I can't figure out how to open .sav files. Whenever i drag and drop the file, nothing happens. I quadruple checked that the name of the file was the same as the rom, but it still doesn't work. Please help 😃 (web version by the way)

    opened by revvs9 2
SameBoy DX is a Qt-based interface of SameBoy, a free, highly accurate Game Boy and Game Boy Color emulator.

SameBoy DX SameBoy DX is a Qt-based interface of SameBoy, a free, highly accurate Game Boy and Game Boy Color emulator. Build requirements: CMake Pyth

Snowy 8 Jun 4, 2022
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 78 May 29, 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 2 Jun 2, 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 61 Jun 15, 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 10 May 21, 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.1k Jul 1, 2022
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 9 Oct 21, 2021
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 968 Jun 15, 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 21 May 23, 2022
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

Daniel Chu 10 Feb 20, 2022
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

Sebastian Staacks 113 Jun 5, 2022
Advanced modding framework for multiplayer modifications

A suite of tools and libraries to accelerate multi-player modification development.

MafiaHub 21 Apr 3, 2022
Engine being created for homeworks in UPC Master's Degree in Advanced Programming for AAA Video Games.

Strawhat Engine Strawhat Engine is a game engine under construction that has model loading and camera movement features along with an editor. Reposito

I. Baran Surucu 12 May 18, 2022
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 1.1k Jun 27, 2022
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).

Ben Smith 1.2k Jun 20, 2022
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

Giovanni Bajo 22 Mar 15, 2022
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++

null 310 Jun 27, 2022
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

Simone Coco 7 Jun 26, 2022
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

Jack Kingsman 6 Jun 19, 2022