MI_UnfilterDiff*

構文

#include <nitro/mi.h>

void MI_UnfilterDiff8( const void* srcp, void* destp );
void MI_UnfilterDiff16( const void* srcp, void* destp );
void MI_UnfilterDiff32( const void* srcp, void* destp );

引数

srcp 差分フィルタがかけられたデータの格納されているソースアドレス
destp 展開するディスティネーションアドレス。ソースアドレスと同じ領域でも構いません。

返り値

なし。

説明

差分フィルタがかけられたデータを展開し、指定のメモリ領域に書き込みます。
ソースアドレスは4byte 境界に合わせてください。
圧縮データのサイズが4の倍数にならなかった場合は出来るだけ0で詰めて調整してください。

ソースアドレスとデスティネーションアドレスに同じ領域へのポインタを渡しても構いません。

MI_UnfilterDiff8() は、8bit単位で書き込みます。
NITROではVRAMに直接展開することは出来ません。TWLでは可能ですが速度はかなり低速です。

MI_UnfilterDiff16()は、16bit単位で書き込みます。
DTCMやVRAMにも展開できます。

MI_UnfilterDiff32()は、32bit単位で書き込みます。
MI_UnfilterDiff8()・MI_UnfilterDiff16()よりも高速に動作します。
DTCMやVRAMにも展開できます。

内部動作

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

参照

MI_FilterDiff, MI_UncompressHuffman, MI_UncompressRL*, MI_UncompressLZ*

履歴

2008/07/02 32bit版追加。内部動作に関する記述修正
2004/11/15 初版