List of Memory Interface (MI) API Functions

Memory Operations by the CPU

MI_CpuCopy* Copies data.
MI_CpuFill* Fills memory with specified data.
MI_CpuClear* Zero-clears memory.
MI_CpuSend* Sends data with fixed address.

Memory Operations by the DMA

MI_DmaCopy* Copies data.
MI_DmaFill* Fills memory with specified data.
MI_DmaClear* Zero-clears memory.
MI_DmaSend* Sends data with fixed address.
MI_HBlankDmaCopy* Uses H-Blank DMA to copy data.
MI_VBlankDmaCopy* Uses V-Blank DMA to copy data.
MI_DispMemDmaCopy Sets main memory display DMA copies.
MI_SendGXCommand* Uses DMA to send geometry commands to command FIFO.
MI_IsDmaBusy Checks whether the specified DMA channel is being used.
MI_WaitDma Waits for the specified end of DMA.
MI_StopDma Stops specified DMA.

External Memory Control

MI_SetMainMemoryPriority Sets access priority to main memory.
MI_GetMainMemoryPriority Gets settings for access priority to main memory.
MI_GetCardProcessor Gets settings for access rights to card.
MI_GetCartridgeProcessor Gets settings for access rights to Game Pak.
MI_SetPhiClock Sets PHI terminal output clock.
MI_GetPhiClock Gets PHI terminal output clock settings.
MI_SetCartridgeRomCycle1st Sets the 1st access cycle to the Game Pak ROM region.
MI_GetCartridgeRomCycle1st Gets the settings for the 1st access cycle to the Game Pak ROM region.
MI_SetCartridgeRomCycle2nd Sets the 2nd access cycle to the Game Pak ROM region.
MI_GetCartridgeRomCycle2nd Gets the setting for the 2nd access cycle to the Game Pak's ROM region.
MI_SetCartridgeRamCycle Sets the access cycle to the Game Pak RAM region.
MI_GetCartridgeRamCycle Gets the settings for the access cycle to the Game Pak RAM region.
MI_SetAgbCartridgeFastestRomCycle Sets the high-speed access cycle to the AGB Game Pak ROM region.

Work RAM Settings

MI_SetWramBank Configures shared work RAM allocation for ARM7 and ARM9.

Memory Swap

MI_SwapByte Swaps specified byte data and memory data.
MI_SwapWord Swaps specified word data and memory data.

Expanding Compressed Data

MI_UnpackBits Expands the data filled with fixed 0.
MI_UncompressLZ8 Expands the LZ77 compressed data in units of 8 bits.
MI_UncompressLZ16 Expands the LZ77 compressed data in units of 16 bits.
MI_UncompressHuffman Expands Huffman compressed data in 32-bit units.
MI_UncompressRL8 Expands run length compressed data in 8-bit units.
MI_UncompressRL16 Expands run length compressed data in 16-bit units.
MI_UnfilterDiff8 Expands the data which the difference filter was applied in 8-bit units.
MI_UnfilterDiff16 Expands the data which the difference filter was applied in 16-bit units.
MI_GetUncompressedSize Obtains the size of the expanded data.
MI_GetCompressionType Obtains the compression format of the compressed data.
MI_InitUncompContextRL Initializes run length compression streaming decode context.
MI_InitUncompContextLZ Initializes LZ77 compression streaming decode context.
MI_InitUncompContextHuffman Initializes the Huffman compression streaming decode context.
MI_ReadUncompRL* Runs run length compression streaming decoding.
MI_ReadUncompLZ* Runs LZ77 compression streaming decoding.
MI_ReadUncompHuffman Runs Huffman compression streaming decoding.
MI_CompressRL Performs run length compression on the data.
MI_CompressLZ Performs LZ77 compression on the data.
MI_CompressLZFast Performs LZ77 compression on the data. Processing is performed rather quickly in exchange for requiring a work buffer.
MI_CompressHuffman Performs Huffman compression on the data.

Byte Access

MI_ReadByte Reads the byte data from the memory.
MI_WriteByte Writes the byte data to the memory.

Types, Structures

MICompressionHeader Compression data header information structure.
MIUncompContextRL Context structure when using run length compression streaming decoding.
MIUncompContextLZ Context structure when using LZ77 compression streaming decoding.
MIUncompContextHuffman Context structure when using Huffman compression streaming decoding.