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 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)
Comments
  • Scooby doo classic creep capers minor graphics glitch.

    Scooby doo classic creep capers minor graphics glitch.

    Dr Jekyll's head keeps flickering in visibility. sky emu scooby

    Updated correct screenshot. Other emulators have this too, might be glitched on hardware as well. This persists, even while using the official bios.

  • Need for speed flickering graphics on title menu

    Need for speed flickering graphics on title menu

    There's about 3-5 pixels in a long strip at the bottom of the menu on Need for Speed - Porsche Unleashed that keeps flickering, on the screen where you have all the options after pressing start.

    This persists, even while using the official bios.

  • 【GB】Add LFSR for noise channel

    【GB】Add LFSR for noise channel

    Adds emulation for the linear-feedback shift register that is used to generate pseudeorandom noise for the noise channel in the Game Boy's sound processor.

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

  • Golden Sun don't save

    Golden Sun don't save

    Congratulations for the work....I tried several games and was successful in almost all of them. Only Golden sun had a bug...it doesn't save or read .sav

  • Beyblade V-Force - Ultimate Blader Jam (USA) audio click/pops

    Beyblade V-Force - Ultimate Blader Jam (USA) audio click/pops

    using official bios you can replicate this by loading the game, going to Options > Audio, turn down both the SFX and MUSIC and you will clearly hear the distortion.

  • 007 night fire screeching glitching sounds.

    007 night fire screeching glitching sounds.

    There are screeching glitch sounds through the intro of nightfire, and into the start of the game. Not sure if it gets better as you play.

    This persists, even while using the official bios.

  • Mario Kart - Super Circuit: track renders incorrectly

    Mario Kart - Super Circuit: track renders incorrectly

    The track in Mario Kart - Super Circuit seems to render incorrectly, with a strange rightward curve.

    Here is a screenshot, showing the right side of the track curving to the right and the tree growing on the track itself.

    Schermafbeelding 2022-07-11 om 21 29 13

    As a comparison, here is a screenshot from mGBA showing the track's right side being straight and the tree to the right of it in the grass. The sprites are in identical spots, so it seems the rendering of the background layer is at fault.

    Schermafbeelding 2022-07-11 om 21 29 39

    This was using the web version (in Safari), with a BIOS loaded.

  • Make the Default Controls more realistic

    Make the Default Controls more realistic

    It would be wonderful if the default controls for onscreen touch screen controller could represent the original controls and position of the real Game Boy Advance. It is also possible to select other designs like original controls and position of the Game Boy Advance SP.

  • [GameBoy] Sound samples on Wave channel needs improvement

    [GameBoy] Sound samples on Wave channel needs improvement

    Referring to this feature - "Anti-aliased audio synthesis with support for APU changes per sample (supports Pikachu's voice in Pokemon Yellow/Pokemon Pinball)".

    On Pokemon Yellow, after you skip the intro and before the title sequence, the "Pikachu" sound sample is still very hissy.

    Likewise on LSDJ, the drum kit sounds on the WAV channel are also hissy and should be cleaner as on real hardware of other emulators like Gambatte or BGB.

  • [Feature request] Support taking and putting the BIOS.

    [Feature request] Support taking and putting the BIOS.

    (Using google translator) I used a bio to test if it increased compatibility, but in the end, it only decreased the number of supported games, some getting a black screen or stuck, but there's the problem that it doesn't have an option to remove the bios, thus, always booting with the same bios, not having the option to go back to normal boot.

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

Jul 26, 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

Jul 17, 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

Jul 17, 2022
NeoGB Printer an SD card-based standalone Game Boy Printer emulator.
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

Aug 3, 2022
A Game Boy Printer emulator that supports the Phomemo T02 printer
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

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

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

Aug 6, 2022
A Game Boy game that rewards you for playing it on several console models!
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

Oct 21, 2021
A repository of gate-level simulators and tools for the original Game Boy.
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.

Aug 5, 2022
civilized Game Boy Advance development from the comfort of your own editor
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

Aug 13, 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

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

Jul 25, 2022
Advanced modding framework for multiplayer modifications
Advanced modding framework for multiplayer modifications

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

Apr 3, 2022
Engine being created for homeworks in UPC Master's Degree in Advanced Programming for AAA Video Games.
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

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 is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.

Aug 3, 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).

Aug 16, 2022
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

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++

Aug 7, 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

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

Jun 19, 2022