# MI_ReadUncompRL*

## 構文

      #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  );

## 引数

context | ランレングス圧縮されたデータの展開用コンテキスト構造体へのポインタです。
data | 展開するデータの一部へのポインタです。
len | 渡されたデータのデータサイズです。

## 返り値

展開されるデータの残りバイト数が返されます。
すべてのデータを展開し終えた場合には0となります。

## 説明

ランレングス圧縮されたデータを与えられたデータサイズ分だけ順次ストリーミング展開し、
`MI_InitUncompContextRL()`で設定されたバッファへコピーします。
展開速度は、`MI_UncompressRL*`関数で一度に展開する場合に比べると低速です。

`MI_ReadUncompRL8()` は、8bit単位で書き込みます。
NITROではVRAMに直接展開することはできません。TWLでは展開できますが速度はかなり低速です。
`MI_ReadUncompRL16()`は、16bit単位で書き込みます。
NITRO/TWL共にVRAMにも直接展開できます。ただし、通常のメモリに比べると低速です。

## 内部動作

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

## 参照

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

## 履歴

2008/12/05 TWLについての記述を追加
2004/11/30 初版