# 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 初版