All Projects → BluestormDNA → Projectdmg

BluestormDNA / Projectdmg

C# GameBoy Emulator

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Projectdmg

Retro Go
Retro emulation for the ODROID-GO
Stars: ✭ 73 (+28.07%)
Mutual labels:  nintendo, gameboy, emulator
Gameboy.live
🕹️ A basic gameboy emulator with terminal "Cloud Gaming" support
Stars: ✭ 4,263 (+7378.95%)
Mutual labels:  game, gameboy, emulator
Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+8201.75%)
Mutual labels:  nintendo, gameboy, emulator
Retrograde Android
Play retro video games on your Android TV!
Stars: ✭ 114 (+100%)
Mutual labels:  nintendo, gameboy, emulator
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-80.7%)
Mutual labels:  nintendo, gameboy, emulator
khedgb
Experiments in Game Boy emulation
Stars: ✭ 15 (-73.68%)
Mutual labels:  emulator, nintendo, gameboy
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-54.39%)
Mutual labels:  emulator, nintendo, gameboy
Coreboy
A GameBoy Emulator, in C#
Stars: ✭ 397 (+596.49%)
Mutual labels:  nintendo, gameboy, emulator
Gearboy
Game Boy / Gameboy Color emulator for iOS, macOS, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 528 (+826.32%)
Mutual labels:  gameboy, emulator
Mooneye Gb
A Game Boy research project and emulator written in Rust
Stars: ✭ 557 (+877.19%)
Mutual labels:  gameboy, emulator
Skyline
Run Nintendo Switch homebrew & games on your Android device!
Stars: ✭ 670 (+1075.44%)
Mutual labels:  nintendo, emulator
Gameboy
Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.
Stars: ✭ 893 (+1466.67%)
Mutual labels:  gameboy, emulator
Sameboy
Game Boy and Game Boy Color emulator written in C
Stars: ✭ 732 (+1184.21%)
Mutual labels:  gameboy, emulator
Gameboy
🎮 Game Boy emulator written in Rust
Stars: ✭ 17 (-70.18%)
Mutual labels:  gameboy, emulator
Nintendo Switch Eshop
Crawler for Nintendo Switch eShop
Stars: ✭ 463 (+712.28%)
Mutual labels:  nintendo, game
Quadplay
The quadplay✜ fantasy console
Stars: ✭ 563 (+887.72%)
Mutual labels:  game, emulator
Pokemon Font
GAME BOY font from Pokémon R/G/B/Y/G/S/C, Unicode extended.
Stars: ✭ 437 (+666.67%)
Mutual labels:  game, gameboy
Giovanni
A Gameboy Emulator for the Apple Watch
Stars: ✭ 823 (+1343.86%)
Mutual labels:  gameboy, emulator
Evoland.gb
A fan-made demake of Evoland on GameBoy
Stars: ✭ 24 (-57.89%)
Mutual labels:  game, gameboy
Rustboy
A game boy emulator in rust
Stars: ✭ 8 (-85.96%)
Mutual labels:  gameboy, emulator

ProjectDMG

ProjectDMG is a C# coded emulator of the Nintendo Game Boy wich was originally codenamed Dot Matrix Game (DMG).

This is a personal project with the scope to learn about hardware and the development of emulators.

ProjectDMG dosn't use any external dependency and uses rather simplistyc C# code.

All the CPU opcodes are implemented and it passes Blaarg tests. The emulator have accurate cycle timings to the opcode degree. Including Game Boy related hardware design flaws/bugs as the HALT bug, as some software relies on this specific behaviour.

Note: This is not a M-Cycle or micro-ops accurate emulator. Accuracy and syncronization between the various hardware subsystems as the Pixel Processing Unit (PPU), the Memory Managemet Unit (MMU) or the Timer relies on hardcoded fixed values and varies from 4 to 24 CPU cycles depending on the executed Opcode or hardware interrupts.

Compability

Game Boy catalog compatibility should be around +95% as the support have focused on the most popular cartridges types (MBCs 1,2,3 and 5). The full list goes as follows:

Supported Cartridge Types Unsupported Cartridge Types
00h ROM ONLY 08h ROM+RAM
01h MBC1 09h ROM+RAM+BATTERY
02h MBC1+RAM 0Bh MMM01
03h MBC1+RAM+BATTERY 0Ch MMM01+RAM
05h MBC2 0Dh MMM01+RAM+BATTERY
06h MBC2+BATTERY 1Ch MBC5+RUMBLE
0Fh MBC3+TIMER+BATTERY 1Dh MBC5+RUMBLE+RAM
10h MBC3+TIMER+RAM+BATTERY 1Eh MBC5+RUMBLE+RAM+BATTERY
11h MBC3 20h MBC6
12h MBC3+RAM 22h MBC7+SENSOR+RUMBLE+RAM+BATTERY
13h MBC3+RAM+BATTERY FCh POCKET CAMERA
19h MBC5 FDh BANDAI TAMA5
1Ah MBC5+RAM FEh HuC3
1Bh MBC5+RAM+BATTERY FFh HuC1+RAM+BATTERY

Note: SRAM save files are not supported at the moment so your progress on games will be lost on exit.

Using the emulator

Execute the emulator and drag and drop a valid Game Boy rom dump to the GUI. The Game Boy will power on and begin execution.

Note: A valid Game Boy BootRom/BIOS file is not needed anymore. The CPU and MMU defaults to post BootRom init values.

Once power on, Input is mapped as:

  • D-Pad UP: Up or W
  • D-Pad Left: Left or A
  • D-Pad Down: Down or S
  • D-Pad Right: Right or D
  • A: Z or J
  • B: X or K
  • Start: V or Enter
  • Select: C or Space

Screenshots

blaargcpu blaarginstrtiming k1 k2 m1 m2 t z p p2

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].