taylus/gbdotnet

PPU: implement OAM DMA transfer

taylus opened this issue · 2 comments

Dr. Mario is a good example of using this since it doesn't require a memory mapper to run.

Its vblank handler jumps to $01a6. At $01c0 is a call $ffb6 which is in HRAM so it must be the game's DMA transfer routine:

image

See also: https://github.com/taylus/gameboy-dev/tree/master/rgbds/03-hello-sprites

This is why when I run this ROM currently, no heart sprite appears on the title screen...! (sprite OAM is empty... all zeroes, because DMA isn't filling it in).

image

#29 closes this