Skip to content

Latest commit

 

History

History
110 lines (90 loc) · 6.21 KB

README.md

File metadata and controls

110 lines (90 loc) · 6.21 KB

MegaBoy

MegaBoy, a Gameboy/Color emulator written in C++, with GLFW/ImGui frontend.

License: MIT Supported Platforms

Getting Started

  1. Open the web version and try online Here, or download desktop build from Releases
  2. Drag and Drop ROM file into the window, or select ROM file using File->Load
  3. Play!

Default Controls

Gameboy Key
A X
B Z
Up
Down
Left
Right
Start Enter
Select Backspace
Emulator Key
Pause Tab
Restart R
Fast Forward Space
Screenshot T
Save State Alt + 1-9
Load State Shift + 1-9
Quick Save Q
Quick Load `

All controls can be rebinded in the settings!

Screenshots

Screenshot 2025-01-08 012833 Screenshot 2025-01-08 012507 Screenshot 2025-01-08 011831 Screenshot 2025-01-08 013812
Screenshot 2025-01-08 013240 Screenshot 2025-01-08 155242 Screenshot 2025-01-08 155855 Screenshot 2025-01-08 160643

Features

  • M cycle accurate Sharp LR35902 CPU emulation.
  • Pixel FIFO PPU emulation.
  • Experimental Audio emulation (can have issues).
  • Gameboy Color support.
  • Mappers: MBC1, MBC2, MBC3, MBC5, HuC1.
  • MBC3 Real Time Clock.
  • Battery saves (.sav) support, compatible with other emulators like SameBoy.
  • Save states (.mbs) support, allowing to continue any game from the exact spot.
  • Web version also saves battery and save states persistently, so you won't lose your progress.
  • GUI with minimal debugger.
  • Boot ROM support - drag and drop or open file 'dmg_boot.bin' ('cgb_boot.bin' for gameboy color games).
  • Game Genie and Game Shark cheats..
  • Can load zipped ROMs.
  • Can take game screenshots.
  • Fast-forward.
  • Shaders (currrently coming with LCD and Upscaling).
  • Palette selection for DMG.

Compatibility

Screenshot 2025-01-08 014016 Screenshot 2025-01-09 005545 Screenshot 2025-01-08 014037
Screenshot 2025-01-08 021836 Screenshot 2025-01-08 020747 Screenshot 2025-01-08 014125

Although complete accuracy is not a goal for this emulator (it doesn't pass all Mooneye test ROMs), I still tried to make it reasonably accurate by emulating CPU at cycle level, and emulating PPU's internal pipeline. This allows it to play games like Pinball Deluxe and Prehistorik Man, known to have issues in many other emulators.

I tested many games while developing this emulator, and as of now, all games I tried work correctly, aside from some audio glitches in some games, which I hope to fix in future updates. If you find a game that doesn’t work, feel free to open an issue, and I will look into it.

Building

This project uses CMake as build system, allowing it to be build for different platforms without issues.

  1. Use git clone --recursive https://github.com/MeGaL0DoN/MegaBoy to clone the project. Note: regular clone or GitHub "Download ZIP" option won't work, as project includes submodules.
  2. After cloning the repository, make sure that you have CMake installed, and then you can either:
    • Go inside the project directory and run the CMake command line tool, or
    • Open and build the project in an IDE that supports CMake (such as Visual Studio or CLion).
  3. Note: to build for the web, you need the Emscripten toolchain installed, and must configure CMake to use it.

Upcoming Features

  • More accurate audio emulation
  • Add MBC6, MBC7, HuC-3
  • Online Multiplayer
  • Mobile-Friendly web interface.

Resources Used

It wouldn't be possible to make MegaBoy without these resources:

License

This project is licensed under the MIT License - see the LICENSE.md file for details