# SVC_UncompressRL*

## 構文

  `#include <nitro/os/common/systemCall.h>`
  `void SVC_UncompressRL8( const void* srcp, void* destp );`
  `s32 SVC_UncompressRL16FromDevice( const void* srcp,`
  `void* destp,`
  `const void* paramp,`
  `ReadStreamCallbacks *callbacks``);`

## 引数

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

## 返り値

`SVC_UncompressRL8()` の返り値はありません。
`SVC_UncompressRL16FromDevice()` の返り値は 0以上ならば展開したサイズで、0以下ならエラーです。

## 説明

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

`SVC_UncompressRL8()` は 8bit単位で書き込みます。
VRAMに直接展開することは出来ません。
`SVC_UncompressRL16FromDevice()`は、16bit単位で書き込みます。
メモリマッピングされていないデバイス上の圧縮データをテンポラリバッファを使わずに直接展開することが出来ます。

## 参照

`MI_UncompressRL*, SVC_UncompressLZ*, SVC_UncompressHuffmanFromDevice
`

## 履歴

2004/07/22 初版