Peanut-GB
Peanut-GB copied to clipboard
core: list of unimplemented or incorrect emulation
List of behaviours that aren't currently emulated properly in Peanut-GB.
LCD
- The LCD is emulated line by line, where a line is rendered when the LCD enters Mode 3 (Reading OAM and VRAM to generate the picture).
- Mid-scanline effects will not be rendered (changing BGP during Mode 3).
- The duration of Mode 3 is constant, and does not change with the number of sprites rendered. This means that the duration of Mode 0 is also constant. The duration of Mode 0 is made to be the maximum possible regardless of sprites rendered on the line.
- Sprite fetch abortion is not emulated.
CPU
- I/O registers are only updated after an instruction is executed, not during. The https://github.com/deltabeard/Peanut-GB/tree/mem-accuracy branch implements this however.
- Joypad interrupts are implemented, but requires further testing. #34
- SGB is not implemented. There is CGB support in the https://github.com/deltabeard/Peanut-GB/tree/cgb branch which will be merged into the master branch after further testing. #50
- Obscure timer behaviour specified in https://gbdev.io/pandocs/Timer_Obscure_Behaviour.html may not be implemented.
- The HALT bug specified in https://gbdev.io/pandocs/halt.html#halt-bug may not be implemented.
- OAM Corruption Bug is not implemented.
- Reading and writing VRAM and OAM is successful regardless of LCD mode. https://gbdev.io/pandocs/Accessing_VRAM_and_OAM.html#accessing-vram-and-oam
MBC
- Only MBC1, 2, 3, 5, with optional RTC and SRAM, are implemented. Other memory bank controllers, such as MMM01, MBC6, MBC7, POCKET CAMERA, BANDAI TAMA5, HuC3, HuC1 are not implemented.
Updated CGB and RTC branch and issue links.