# MI_CompressRL

## 構文

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

## 引数

srcp | 圧縮するデータが格納されているソースアドレス。
size | 圧縮するソースデータサイズ。
dstp | 圧縮先バッファへのポインタ、ソースデータサイズ以上の領域が必要です。要4バイトアライン。

## 返り値

圧縮データのサイズを返します。
もしも圧縮後のデータがソースファイルよりも大きくなる場合には、圧縮を行なわずに0を返します。

## 説明

データをランレングス圧縮し、指定のメモリ領域に書き込みます。
圧縮先のバッファにはソースデータと同じサイズの領域を用意する必要があります。

`8bit単位で書き込みますので、NITROの場合はdstpにVRAM上のアドレスを指定することはできません。`
srcpにはNITRO/TWL共にVRAM上のアドレスを指定することが可能です。

## 内部動作

システムコール、DMAは使用せずCPUだけで処理します。

## 参照

`MI_UncompressRL*, MI_ReadUncompRL , MI_CompressLZ*, MI_CompressHuffman`

## 履歴

2008/12/05 TWLに関する記述を追加

2005/02/01 初版