Skip to content

DMG and GBC emulator with sex toy rumble support written in Rust

Notifications You must be signed in to change notification settings

ioncodes/ayyboy

Repository files navigation

ayyboy

Yet another GameBoy and GameBoy Color emulator! A lot of the information had been figured out by reverse engineering software and hardware, complemented by the Pandocs and various online sources/blogs. The project is not in a perfect state but it works well with my childhood games. I would not have been able to kick things off this fast without the amazing help of the people over at the Emulation Development Discord server.

Pokemon Red Version (DMG) Pokemon Gold Version (GBC) Legend of Zelda - Link's Awakening DX (GBC) Déjà Vu I & II: The Casebooks of Ace Harding (GBC) Debug View (GBC)
image image image image image

Features

  • DMG and GBC support (incl. double speed mode)
  • Support for ROM, MBC1, MBC3 and MBC5 (although none of the mappers I'd consider to be in a 100% functional state)
  • MBC5 rumble pak support through Lovense sex toys
  • Sound (mostly taken from this blog and this emulator)
  • RAM-based save games (RAM is simply written to disk on emulator exit and loaded on startup if a .sav file exists)
  • Built-in open-source boot ROMs for DMG and GBC
  • Scanline based renderer (no pixel FIFO)
  • Various debug views
  • ZIP file support

You might be wondering why I bothered implementing sex toy support. I do not have a clear answer to this question! I wondered how I could implement rumble support and since a PC cannot (usually?) vibrate, my brain came up with a vibrator feature.

Lovense support is not compiled-in by default, however, it is available through the nsfw feature flag during compilation. Enabling this flag will force the emulator to start searching for nearby Lovense BLE products and connect to the first that matches a specific regex if rumble support is detected for a game.

Open me to see a demo of a game controlling the Lush 2
IMG_5048.MOV

Usage

Compile the emulator yourself or download a release. Note that providing a bootrom is completely optional and that --log-to-file will enable instruction tracing be default.

Usage: ayyboy.exe [OPTIONS] <ROM>

Arguments:
  <ROM>

Options:
      --bios <BIOS>
      --log-to-file
  -h, --help         Print help

Testing

  • The CPU has been verified against the following tests and passes all of them:
  • The PPU has been tested with dmg-acid2 and cgb-acid2 and passes both
dmg-acid2 cgb-acid2
image image

About

DMG and GBC emulator with sex toy rumble support written in Rust

Resources

Stars

Watchers

Forks

Packages

No packages published