# MI_UncompressLZ*

## Syntax

  `#include <nitro/mi.h>`
  `void MI_UncompressLZ8( const void* srcp, void* destp );`
  `void MI_UncompressLZ16( const void* srcp, void* destp );`

## Arguments

srcp | Source address where the LZ77 compressed data is stored.
destp | Destination address for decompression.

## Return Values

None.

## Description

Decompresses LZ77 compressed data and writes the data to the specified region of memory. The source address must be aligned to a 4-byte boundary.

The `MI_UncompressLZ8` function writes in 8-bit units. On NITRO, you cannot decompress directly to VRAM. On TWL, this is possible, but it is quite slow.
The `MI_UncompressLZ16` function writes in 16-bit units. On both NITRO and TWL, you can also decompress directly to VRAM. However, the process is slower compared to normal memory.
For compressed data, allow for a 2-byte lead when searching for matching strings.

Decompresses data compressed in LZ77 or LZ77 extended format using `ntrcomp` tool or an `MI_CompressLZ*` function.

## Internal Operation

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

## See Also

`MI_UncompressHuffman`
`MI_UncompressRL*`
`MI_UnfilterDiff*`
`SVC_UncompressLZ*`
`MI_ReadUncompLZ`
`MI_CompressLZ*`

## Revision History

2008/12/05 Added a description regarding TWL.
2007/11/01 Added a description regarding LZ77 extended compression.
2005/03/02 Deleted recommendation to align data size to a multiple of 4 bytes.
2004/05/28 Added description for Internal Operation.
2004/02/10 Initial version.

CONFIDENTIAL