SVC_UncompressLZ*

構文

#include <nitro/os/common/systemCall.h>

void SVC_UncompressLZ8( const void* srcp, void* destp );

s32 SVC_UncompressLZ16FromDevice( const void* srcp,
                                  void* destp,
                                  const void* paramp,
                                  const MIReadStreamCallbacks *callbacks);

引数

srcp LZ77圧縮データの格納されているソースアドレス
destp 展開するディスティネーションアドレス
paramp MIReadStreamCallbacks 構造体の initStream関数へ渡すパラメータのアドレス
callbacks MIReadStreamCallbacks 構造体のアドレス

返り値

SVC_UncompressLZ8() の返り値はありません。

SVC_UncompressLZ16FromDevice() の返り値は 0以上ならば展開したサイズで、0より小さければエラーです。

説明

LZ77圧縮データを展開し、指定のメモリ領域に書き込みます。

srcp で指定する圧縮データを展開し、destp で指定する領域に格納されます。

SVC_UncompressLZ8
SVC_UncompressLZ8() は、8bit単位で書き込みます。
VRAMに直接展開することは出来ません。

・SVC_UncompressLZ16FromDevice
SVC_UncompressLZ16FromDevice()は、16bit単位で書き込みます。
メモリマッピングされていないデバイス上の圧縮データをテンポラリバッファを使わずに直接展開することが出来ます。
バイトアクセス出来ないRAMにも展開できますが SVC_UncompressLZ8() より低速です。

srcp で指定するデータは 'ntrcomp -l 2' で圧縮したものとしてください。
srcp の境界制限は initStream コールバック関数の実装依存となります。

参照

MI_UncompressLZ*, SVC_UncompressHuffmanFromDevice, SVC_UncompressRL*

履歴

2004/07/22 初版