Tricky-to-emulate games: Difference between revisions
From SNESdev Wiki
Jump to navigationJump to search
Rainwarrior (talk | contribs) (see also) |
NovaSquirrel (talk | contribs) (Added Speedy Gonzales) |
||
Line 155: | Line 155: | ||
| | | | ||
* '''Super Mario World''': The lives-indicator Mario is hidden at the top left of the map screen | * '''Super Mario World''': The lives-indicator Mario is hidden at the top left of the map screen | ||
|- | |||
| HDMA can't affect open bus | |||
| | |||
* '''Speedy Gonzales: Los Gatos Bandidos''': Game locks up in level 6-1[https://mgba.io/2017/07/31/holy-grail-bugs-2/#speedy-gonzales-los-gatos-bandidos] | |||
|} | |} | ||
Revision as of 18:41, 12 June 2023
This is a list of various emulation bugs encountered during the development of Mesen-S. It is meant as a quick reference to help others find and debug issues with their own emulation core. It can also be used to find games that might be affected by a code change, for regression testing purposes.
Cause | Affected games |
---|---|
Missing/incorrect open bus implementation (CPU or PPU) |
|
Incorrect or missing BRK/COP implementation |
|
VRAM writes are not ignored during rendering |
|
Ignored VRAM writes during rendering are not incrementing the VRAM address |
|
VRAM read implementation is incorrect |
|
Offset-per-tile wraparound logic is incorrect |
|
Offset-per-tile implementation has bugs |
|
Mode 7 doesn't implement window logic |
|
Mode 7 scroll offsets are not latched at the beginning of the scanline |
|
Mode 7 direct color implementation is wrong |
|
Color window is not applied to all pixels |
|
Color math for subscreen in high resolution modes is incorrect |
|
Implementation of OAM writes during rendering is inaccurate |
|
OAM fetching/rendering timing inaccurate |
|
DMA controller power on state is invalid |
|
CPU doesn't run an extra cycle before starting DMA after write to $420B |
|
DMA controller allows reading B-bus registers using A-bus address |
|
DMA/HDMA timings are inaccurate |
|
DMA is not suspended when HDMA runs |
|
HDMA doesn't ignore "fixed transfer" flag |
|
HDMA doesn't ignore "decrement" flag |
|
HDMA "do tranfer" flag isn't set/reset properly |
|
V-IRQ doesn't trigger when V-IRQs are enabled for the current scanline |
|
NMI isn't triggered when NMI is enabled partway through vertical blank |
|
SPC timings are inaccurate (requires SPC to run 1 cycle at a time, rather than 1 instruction at a time) |
|
CPU read effects do not occur early enough in the CPU's cycle |
|
DSP KOF register is not initialized to $00 |
|
SRAM mappings are incorrect |
|
RAM power on state is "incorrect" |
|
Super FX - RPIX implementation is incorrect |
|
OAMADD priority sprite rotation is missing |
|
HDMA can't affect open bus |
|