# MI_ReadUncompRL*

## Syntax

      #include <nitro/mi/uncomp_stream.h>

      s32 MI_ReadUncompRL8(  MIUncompContextRL *context,
                                const u8* data,
                                u32 len );

      s32 MI_ReadUncompRL16( MIUncompContextRL *context,
                                const u8* data,
      u32 len );

## Arguments

context | Pointer to the context structure for uncompression of RL-compressed data.
data | Pointer to a portion of the data to be uncompressed.
len | Size of the data provided in the second argument.

## Return Values

Returns the number of remaining bytes of data being uncompressed. If all of the data is finished being uncompressed, the function returns 0.

## Description

Performs streaming uncompression of run-length compressed data, doing just the data size given, and copying it to the buffer specified by the `MI_InitUncompContextRL` function. This function is slow compared to the `MI_UncompressRL*` function, which uncompresses all the data at once.

The `MI_ReadUncompRL8` function writes in units of 8 bits. On NITRO, you cannot decompress directly to VRAM. On TWL, this is possible, but it is quite slow.
The `MI_ReadUncompRL16` function writes in units of 16 bits. On both NITRO and TWL, you can also decompress directly to VRAM. However, the process is slower compared to normal memory.

## Internal Operation

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

## See Also

`MI_UncompressRL*`
`MI_InitUncompContextRL`
`MIUncompContextRL`
`MI_ReadUncompLZ*`
`MI_ReadUncompHuffman`
`MI_CompressRL`

## Revision History

2008/12/05 Added description related to TWL.
2004/11/30 Initial version.

CONFIDENTIAL