# MI_CompressRL

## Syntax

  `#include <nitro/mi.h>`
  `u32 MI_CompressRL( const u8 *srcp, u32 size, u8 *dstp );
  `

## Arguments

srcp | Source address where the data to compress is stored.
size | Data size of the source to compress.
dstp | Needs a pointer to the compression destination buffer and a region greater than the source data size. Needs a 4-byte alignment.

## Return Values

Returns the size of the compressed data. If the data after compression is larger than the source file, no compression is performed, and 0 is returned.

## Description

Performs RL-compression on the data and then writes it to a specified memory region. A region of the same size as the source data must be prepared in the compression destination buffer.

The function writes in 8-bit units, so for NITRO, an address in VRAM cannot be specified in dstp.
An address in VRAM can be specified in srcp for both NITRO and TWL.

## Internal Operation

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

## See Also

`MI_UncompressRL*`
`MI_ReadUncompRL`
`MI_CompressLZ*`
`MI_CompressHuffman`

## Revision History

2008/12/05 Added TWL-related description.

2005/02/01 Initial version.

CONFIDENTIAL