DMA Tables

DMA Tables are used for data that needs to be loaded dynamically, such as animations and demo inputs. They are uncompressed, so their data is DMA’d into memory directly, hence the name.

Format

Number of Entries (u32 numEntries [0-4]):

How many entries are in the table.

Source Address (const void *addrPlaceholder / u8 *srcAddr [4-8]):

Set to NULL in the ROM, exists for knowing the ROM address after setting up the handler in setup_dma_table_list().

Entries (struct OffsetSizePair[numEntries] [8-(numEntries*8 + 8)]):

Offset Size Pair (struct OffsetSizePair):
  • Offset (u32 offset [0-4]): Offset from the start of the table.

  • Size (u32 size [4-8]): Size in bytes of the entry.