3 ms·
A few months ago the whole GameBoy SoC (DMG-CPU) was reversed engineered in the same way [1], except for the CPU part - this means the schematics include pixel
by t0mek 6y ago
A few months ago the whole GameBoy SoC (DMG-CPU) was reversed engineered in the same way [1], except for the CPU part - this means the schematics include pixel processor unit, timer, serial port, IRQ controller, etc. However, it seems that the CPU itself is pretty straight-forward to emulate anyway, since Gekkio, author of the mooneye-gb [2], figured it's a variant of a well-documented SM83.
Anyway, reverse-engineering efforts like this are pretty exciting, as they should allow to create a 100% accurate emulators - and we know they are accurate not only because all the games are running as expected, but because they are based on the actual hardware design (which is even better than the producer's specification).
GB is not a complex piece of hardware, in comparison to eg. SNES, but there are some emulation issues really hard to tackle, especially around the pixel processing unit IRQ timings - it's like solving a complex set of linear equations, but we don't even know what the variables are (eg. what can affect a 4-processor-tick shift in the HBlank IRQ timing this way or another).
Looking forward to a complete, transistor-level GB simulator, something like Visual6502.
[1] https://github.com/furrtek/DMG-CPU-Inside https://github.com/furrtek/DMG-CPU-Inside
[2] https://github.com/Gekkio/mooneye-gb https://github.com/Gekkio/mooneye-gb
[3] http://www.visual6502.org/ http://www.visual6502.org/