nba-emu / NanoBoyAdvance

A cycle-accurate Nintendo Game Boy Advance emulator.
GNU General Public License v3.0
955 stars 53 forks source link

DMA from ROM additional details #350

Open alyosha-tas opened 4 months ago

alyosha-tas commented 4 months ago

When DMA from ROM with fixed address mode, with an address adjacent to 0x20000 boundary (i.e. 0x0801FFFC in 32 bit mode) non-sequential timing is used for all accesses.

For example, a DMA of length 32 will use 32 non-sequential accesses when reading from ROM.

This is demonstrated here: https://github.com/alyosha-tas/gba-tests/blob/master/DMA/DMA_ROM_Fixed.gba.

This is also true in decrementing mode, which is required to pass your 128kb-boundary test rom.