

#include <nitro/mi/uncomp_stream.h>
s32 MI_ReadUncompLZ8( MIUncompContextLZ *context, const u8* data, u32 len );
s32 MI_ReadUncompLZ16( MIUncompContextLZ *context, const u8* data, u32 len );
| context | LZ77圧縮されたデータの展開用コンテキスト構造体へのポインタです。 |
| data | 展開するデータの一部へのポインタです。 |
| len | 第二引数で与えたデータのデータサイズです。 |
展開されるデータの残りバイト数が返されます。
すべてのデータを展開し終えた場合には0となります。
LZ77圧縮されたデータを、与えられたデータサイズ分だけ順次ストリーミング展開し、
MI_InitUncompContextLZ()で設定されたバッファへコピーします。
展開速度は、MI_UncompressLZ*()で一度に展開する場合に比べると低速です。
MI_ReadUncompLZ8() は、8bit単位で書き込みます。
NITROではVRAMに直接展開することはできません。TWLでは展開できますが速度はかなり低速です。
MI_ReadUncompLZ16()は、16bit単位で書き込みます。
NITRO/TWL共にVRAMにも直接展開できます。ただし、通常のメモリに比べると低速です。
圧縮データは一致文字列を2byte以前より検索したものにしてください。
ntrcompツールやMI_CompressLZ*()関数で
圧縮されたLZ77圧縮、LZ77拡張圧縮フォーマットのデータを展開します。
システムコール、DMAは使用せずCPUだけで処理します。
MI_UncompressLZ*,
MI_InitUncompContextLZ,
MIUncompContextLZ,
MI_ReadUncompRL*,
MI_ReadUncompHuffman,
MI_CompressLZ*
2008/12/05 TWLについての記述を追加
2007/11/01 LZ77拡張圧縮に関する記述を追加
2004/11/30 初版