Code Monkey home page Code Monkey logo

gbmu's Introduction

GBMU

A multiplatform GameBoy & GameBoy Color emulator, in pure Rust!

A view of the emulator UI

It was written alone over the course of 2 months as part of a school project, as a way to learn Rust and to acquire knowledge in embedded electronics (and emulation thereof).

It will run most games somewhat accurately, from your most basic Tetris ROM to the infamous and more technically complex Metal Gear Solid: Ghost Babel.

Features

Working

  • Accurate Sharp LR35902 CPU Emulation (passes Blargg's tests)
  • Accurate PPU emulation
  • Support for MBC1, MBC2, MBC3, MBC5 cartridges
  • Automatic detection of GB/GBC compatibility
  • Support for GBC only features (CPU frequency doubling, CPU-halting VRAM DMA Transfer)
  • Force plain DMG (original monochrome GameBoy) emulation
  • CPU Debugger
  • VRAM contents inspector
  • Pokémon is looking very good on this emulator

To-Do

  • Audio
  • Emulation speed switching
  • BIOS-less operation

Build instructions

  • Make sure the Rust toolchain is installed (this was tested under versions 1.65.0 and 1.66.0)
  • Clone the repository
  • Run cargo build --release
  • The binary is built under target/release/gbmu

The binary produced is a portable, statically-linked (except for libc) 20MB executable.

Dependencies

  • Window management based on winit
  • Frame rendering based on the pixels hardware-accelerated framebuffer
  • Immediate-mode UI using egui

Credits

Original Logo art by RetroPunkZ - https://twitter.com/RetroPunkZ1

Licence

This software is licensed under the GPL-3.0 License.
See https://www.gnu.org/licenses/gpl-3.0.html

gbmu's People

Contributors

rgilles42 avatar

Stargazers

Martin Claudel avatar Maxime Louet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.