DMG-CPU-Inside
SameBoy
DMG-CPU-Inside | SameBoy | |
---|---|---|
4 | 4 | |
312 | 1,732 | |
- | 2.8% | |
10.0 | 9.4 | |
about 4 years ago | 11 days ago | |
C | ||
Creative Commons Attribution Share Alike 4.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DMG-CPU-Inside
-
Documentation for cycle accurate Game Boy CPU
If you want to go deeper, you can look at the reverse engineered schematic of most of the stuff except the CPU core in the DMG-CPU-Inside project. You could also consult the MetroBoy project, which builds on the previous project and aims to be accurate pretty much down to the logic gate level.
-
Gate level chip documentation?
There's an ongoing project like this for the Gameboy that aims to build a logic block level description of the CPU and peripherals. There's also an emulator that's in very early stages (not sure if it's working at all yet). There's another edge accurate GB emulator which I don't believe is released yet, but should be work in progress.
-
Reverse-engineering the interrupt circuitry in the Intel 8086 processor
The furthest I've seen publicly is the original Playstation ASICs. http://psxdev.ru/ [Russian Language]
Similar in time to the playstation ASICs (and similar design in sort of a soup of standard cells on a CMOS process), but at a gate count similar to Ken's fantastic work here on the 8086 is the work reversing the Gameboy SoC: https://github.com/furrtek/DMG-CPU-Inside
-
GameRoy: a cross platform and highly accurate Game Boy emulator
First I would try to deduce the timing from this gate-level simulation of the game boy, but the master branch was broken at the time, so I didn't manage to compile it. So, I tried deducing it from its underling reverse engineered schematics, but it would take too much time, if it even was possible.
SameBoy
- Experiences with Joey Jr
-
Documentation for cycle accurate Game Boy CPU
You could also consult the SameBoy source code which is a very accurate emulator.
-
Gameboy Doctor: debug and fix your gameboy emulator
Hey there! I've been working on a Game Boy emulator since last year and found the GameRoy project, which translated the PPU's logic from SameBoy, the (AFAIK) most accurate GB emulator around. I basically copied the PPU logic into my emulator and replaced the "state" property (an integer) with enums for some extra clarity.
https://github.com/nicolas-siplis/feboy
https://github.com/rodrigodd/gameroy
https://github.com/LIJI32/SameBoy/
-
GameRoy: a cross platform and highly accurate Game Boy emulator
So, what I have finally tried was figure out the timing from another emulator, in this case SameBoy, which appears to be the most accurate game boy emulator. In the end, I copy the timing from its ppu state maching, and its interrupt handling code. Took a lot of time figuring out how it was working.
What are some alternatives?
gameroy - A Game Boy emulator, disassembler and debugger, written in Rust
IronBoy - A Gameboy emulator written in Rust as both a learning exercise and a love letter to the console that got me into gaming.
gb-ctr - Game Boy: Complete Technical Reference
sprite-render-rs - A Rust Crate for Sprite Rendering (WIP)
gb-research - Game Boy hardware research
exotracker-cpp
pandocs - New home of the infamous Pan Docs historical document: the single, most comprehensive Game Boy technical reference
glutin - A low-level library for OpenGL context creation
edge - Edge-accurate Game Boy emulator written in C++
raw-gl-context - cross-platform OpenGL context creation