GameBoy emulator written in C#
Go to file
Washi 8ae664bfb9
Merge pull request #10 from leefogg/Bindings
Key Bindings
2020-06-07 20:36:09 +02:00
Emux Merge pull request #10 from leefogg/Bindings 2020-06-07 20:36:09 +02:00
Emux.GameBoy Merge pull request #9 from leefogg/ClearOnLoad 2020-06-07 19:58:02 +02:00
Emux.GameBoy.Tests 1. change Emux.GameBoy to .netstandard 2018-08-23 22:33:50 +09:00
Emux.MonoGame Fixed casing to adhere to naming convention 2020-05-12 22:17:18 +01:00
Emux.NAudio PR changes 2020-05-02 13:58:11 +01:00
.gitignore Merge branch 'master' of https://github.com/Washi1337/Emux into andy840119/netStandard 2018-10-06 22:31:40 +09:00
Emux.sln Extracted NAudio mixer back-end to separate project. Sound support in MonoGame app. 2018-07-07 23:26:14 +02:00
Emux.sln.DotSettings Cleanup of some code, Added timer registers to IO view 2018-07-31 18:54:15 +02:00
LICENSE Initial commit 2017-07-28 00:34:34 +02:00
README.md Support xflip tiles in bg (gbc mode), cleanup 2017-08-23 13:18:52 +02:00

README.md

Emux

Emux is a free and open source GameBoy emulator written in C# that allows you to play the original GameBoy games on your computer. Emux is released under the GPLv3 license.

Features

  • Play GameBoy and GameBoy Color games and relive your nostalgic memories!
    • Open ROM dumps and execute them like the original GameBoy does.
      • Support for cartridges that contain memory bank controllers v1, v2, v3 and v5.
      • Support for cartridges that contain external memory (for e.g. save files).
    • Disable the frame limit for the boring parts of the game that take forever and you'd rather skip (such as training your Pokémon, I won't judge).
    • Listen and record to the good ol' tunes and sound effects that the original GameBoy produced.
  • Debugging capabilities
    • Break and continue execution whenever you want
    • View disassembly of the GameBoy memory.
    • Step through the code one instruction at a time.
    • Set breakpoints on specific memory addresses.
    • View and edit the values of various registers.
    • Virtual keypad for easier emulation of keypresses when paused or stepping through the code.
  • Oh and probably a lot of funny glitches because the emulation is far from completed at this time.

Default keybindings

GameBoy Key Keyboard binidng
Up Up
Down Down
Left Left
Right Right
A X
B Z
Start Enter
Select Left Shift

Want to contribute?

There is still much to be done so any help is welcome! Here is a couple of things you can do to contribute to the Emux project:

  • Be a follower! Star the project and get the nice fuzzles of contributing without having to do much.
  • Be a developer! Fork the project, make your changes and make a pull request.
  • Be a tester! Try out games and open issues in the GitHub issue tracker about games that cause glitches or completely fail to work.
    • Try to provide as much information as you can. If possible, find out where and when the error occurs. The more details, the easier it is to reproduce and fix.
    • IMPORTANT: Please do not upload the ROM itself if the cartridge is licensed. This project is not meant to spread (stolen) copies of games or whatsoever.

References

This project is based on the specifications of the following papers (Therefore a big shoutout to the authors!):

External libraries

  • NAudio for the sound rendering.