skylersaleh / SkyEmu

Game Boy Advance, Game Boy, Game Boy Color, and DS Emulator
http://skyemu.app
MIT License
790 stars 46 forks source link
emulation emulator gameboy gameboy-advance gameboy-color gameboy-emulator nintendo-ds wasm

Windows Build Mac Build Linux Build Android Build iOS Build FreeBSD Build Web Build Discord Shield

SkyEmu

SkyEmu is a low level GameBoy, GameBoy Color, Game Boy Advance, and DS emulator. Its primary focus is to preserve these great systems for future generations while providing a good user experience through a good mixture of tradeoffs of accuracy, performance, features and usability.

Features

Download / Usage

Stable builds for all platforms can be downloaded for free at: https://github.com/skylersaleh/SkyEmu/releases

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

https://web.skyemu.app/

The web app emulates everything locally on your machine using web assembly and javascript. Because of this all files stay local to your machine like the regular native build, however there is a performance cost to performing the emulation inside a web browser.

On Mobile platforms it is recommended to add this to the home screen and launch from there. This will prevent the web browser from auto deleting save files and will make the app full screen.

Note: Platform BIOS/Firmware files are not required as SkyEmu bundles open source replacement BIOS/stubs. However, it is strongly recommended to dump official BIOS/firmware as the open source replacements lack many of the features of the native firmware/BIOS (such as colorizing GB games and the startup splashes) and are not as accurate.

Discord Server

Discord Banner 2

Default Controls:

On mobile platforms an onscreen touch screen controller is provided.

Loading save files and BIOSs

On web builds save files and the BIOS can be loaded by dragging them onto the page or loading them using the ROM file picker. The GBA BIOS must be named gba_bios.bin for the emulator to pick it up. Save files must be named the name of the rom file with the extension .sav. So for example if the ROM was MyRomFile.gba the save file must be called MyRomFile.sav.

On native builds the above naming convention still applies, but the save/BIOS files must be instead located in the same folder as the ROM file, instead of being dragged or loaded in the emulator itself.

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 support loading roms through the command line by specifying the path to the ROM as the first argument:

./SkyEmu path/to/rom.gba

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:

GB:

Birds of a Feather