# MI_UncompressRL*

## Syntax

  `#include <nitro/mi.h>`
  `void MI_UncompressRL8( const void* srcp, void* destp );`
  `void MI_UncompressRL16( const void* srcp, void* destp );`
  `void MI_UncompressRL32( const void* srcp, void* destp );`

## Arguments

srcp | The source address where run-length compressed data is stored.
destp | Destination address for decompression.

## Return Values

None.

## Description

This function decompresses run-length compressed data and writes the data to the specified region of memory. The source address must be aligned to a 4-byte boundary.

`MI_UncompressRL8` writes in 8-bit units.
On NITRO, you cannot decompress directly to VRAM.
`MI_UncompressRL16` writes in 16-bit units.
You can decompress directly to VRAM, even on NITRO.
`MI_UncompressRL32()` writes in 32-bit units.
This allows faster processing than would be possible using either the `MI_UncompressRL8` or `MI_UncompressRL16` function.
You can decompress directly to VRAM, even on NITRO.

## Internal Operation

Processing only takes place on the CPU, without the use of a system call or DMA.

## See Also

`MI_UncompressLZ*
MI_UncompressHuffman
MI_UnfilterDiff*
SVC_UncompressRL*
MI_ReadUncompRL
MI_CompressRL
`

## Revision History

2008/07/02 Added a 32-bit version of the function. Revised the description of internal operations.
2005/03/02 Deleted recommendation to align data size to a multiple of 4 bytes.
2004/05/28 Fixed the Internal Operation description.
2004/01/30 Initial version.

CONFIDENTIAL