メモリインターフェイス(MI) API 機能一覧

初期化

MI_Init MI ライブラリの初期化を行います。

CPUによるメモリ操作

MI_CpuCopy* データをコピーします。
MI_CpuMove* データを移動します。
MI_CpuFill* メモリを指定のデータで埋めます。
MI_CpuClear* メモリをゼロクリアします。
MI_CpuSend* アドレスを固定してデータを送り込みます。
MI_CpuRecv* 固定のアドレスからデータを読み込みます。
MI_CpuPipe* 固定のアドレスから固定のアドレスへデータを送ります。
MI_CpuFind* メモリから指定のデータを探します。
MI_CpuComp* データを比較します。

DMAによるメモリ操作

MI_DmaCopy* データをコピーします。
MI_NDmaCopy* データをコピーします。
MI_DmaFill* メモリを指定のデータで埋めます。
MI_NDmaFill* メモリを指定のデータで埋めます。
MI_DmaClear* メモリをゼロクリアします。
MI_NDmaClear* メモリをゼロクリアします。
MI_DmaSend* アドレスを固定してデータを送り込みます。
MI_NDmaSend* アドレスを固定してデータを送り込みます。
MI_DmaRecv* 固定アドレスからデータを読み込みます。
MI_NDmaRecv* 固定アドレスからデータを読み込みます。
MI_DmaPipe* 固定アドレスから固定アドレスへデータを送ります。
MI_NDmaPipe* 固定アドレスから固定アドレスへデータを送ります。
MI_DmaRestart 設定済みのDMAを開始します。
MI_NDmaRestart 設定済みのDMAを開始します。
MI_HBlankDmaCopy* HブランクDMAコピーの設定を行います。
MI_HBlankNDmaCopy* HブランクDMAコピーの設定を行います。
MI_VBlankDmaCopy* VブランクDMAコピーの設定を行います。
MI_VBlankNDmaCopy* VブランクDMAコピーの設定を行います。
MI_DispMemDmaCopy メインメモリ表示DMAコピーの設定を行います。
MI_SendGXCommand* コマンドFIFOにDMAでジオメトリコマンドを送ります。
MI_SendNDmaGXCommand* コマンドFIFOにDMAでジオメトリコマンドを送ります。
MI_TimerNDmaCopy タイマー起動DMAコピーの設定を行います。
MI_Card_NDmaCopy メモリカード転送起動DMAコピーの設定を行います。
MI_IsDmaBusy 指定のDMAチャンネルが使用中かを調べます。
MI_IsNDmaBusy 指定のDMAチャンネルが使用中かを調べます。
MI_WaitDma 指定のDMAの終了を待ちます。
MI_WaitNDma 指定のDMAの終了を待ちます。
MI_StopDma 指定のDMAをストップします。
MI_StopNDma 指定のDMAをストップします。
MI_StopAllDma 全てのDMAをストップします。(従来のDMA)
MI_StopAllNDma 全てのDMAをストップします。(新規DMA)
MI_SetNDmaArbitrament 新規DMAの調停方式を設定します。
MI_GetNDmaArbitramentMode 新規DMAの調停方式を取得します。
MI_GetNDmaArbitramentRoundRobinCycle 新規DMAの調停方式がラウンドロビン時のARM7実行可能サイクルを取得します。
MI_InitNDmaConfig 新規DMAの動作を制御するconfigを初期化します。
MI_GetNDmaConfig 新規DMAのconfig を取得します。
MI_SetNDmaConfig 新規DMAのconfig を設定します。
MI_SetNDmaInterval 指定config に Interval情報を設定します。
MI_GetNDmaIntervalTimer 指定config の IntervalTimer情報を取得します。
MI_GetNDmaIntervalPrescaler 指定config の IntervalPrescaler 情報を取得します。
MI_SetNDmaBlockWord 指定config の BlockWord 情報を設定します。
MI_GetNDmaBlockWord 指定config の BlockWord 情報を取得します。
MI_SetNDmaWordCount 指定config の WordCount 情報を設定します。
MI_GetNDmaWordCount 指定config の WordCount 情報を取得します。

外部メモリ制御

MI_SetMainMemoryPriority メインメモリへのアクセス優先権を設定します。
MI_GetMainMemoryPriority メインメモリへのアクセス優先権の設定を取得します。
MI_GetCardProcessor カードへのアクセス権の設定を取得します。
MI_GetCartridgeProcessor カートリッジへのアクセス権の設定を取得します。
MI_SetCartridgeRomCycle1st カートリッジROM領域への1stアクセスサイクルを設定します。
MI_GetCartridgeRomCycle1st カートリッジROM領域への1stアクセスサイクルの設定を取得します。
MI_SetCartridgeRomCycle2nd カートリッジROM領域への2ndアクセスサイクルを設定します。
MI_GetCartridgeRomCycle2nd カートリッジROM領域への2ndアクセスサイクルの設定を取得します。
MI_SetCartridgeRamCycle カートリッジRAM領域のアクセスサイクルを設定します。
MI_GetCartridgeRamCycle カートリッジRAM領域のアクセスサイクルの設定を取得します。
MI_SetAgbCartridgeFastestRomCycle AGBカートリッジROM領域への高速なアクセスサイクルを設定します。

ワークRAM設定

MI_SetWramBank この関数はシステムでのみ使用されます。
MI_GetWramBankMaster* 共用WRAM(256KBx3) に割り当たっているマスタープロセッサを取得します。
MI_GetWramBankOffset* 共用WRAM(256KBx3) のバンクのオフセット位置を取得します。
MI_GetWramBankEnable* 共用WRAM(256KBx3) のバンクが使用可能かどうかを取得します。
MI_GetWramMapStart* 共用WRAM(256KBx3) の開始アドレスを取得します。
MI_GetWramMapEnd* 共用WRAM(256KBx3) の終了アドレスを取得します。
MI_GetWramMapImage* 共用WRAM(256KBx3) のイメージ出現設定を取得します。
MI_IsWramSlotLocked* 共用WRAM(256KBx3) のスロットがロックされているかを調べます。
MI_GetAllocatableWramSlot* 共用WRAM(256KBx3) で指定プロセッサが割り当て可能なスロットを取得します。
MI_GetFreeWramSlot* 共用WRAM(256KBx3) で予約も割り当てもされていないスロットを取得します。
MI_GetUsedWramSlot* 共用WRAM(256KBx3) で割り当てがされているスロットを取得します。
MI_GetWramReservation* 共用WRAM(256KBx3) のスロットを予約しているプロセッサを取得します。
MI_IsWramSlotUsed* 共用WRAM(256KBx3) のスロットが割り当てられているかを取得します。
MI_InitWramManager 共用WRAM(256KBx3) マネージャを初期化します。
MI_AllocWram* 共用WRAM(256KBx3) マネージャに、WRAMを割り当てを要求します。
MI_FreeWram* 共用WRAM(256KBx3) マネージャに、WRAMの割り当て解放を伝えます。
MI_SwitchWram* 共用WRAM(256KBx3) マネージャに、割り当て済みWRAMのマスター変更を通知します。
MI_ReserveWram* 共用WRAM(256KBx3) マネージャに、WRAMのプロセッサでの予約を通知します。
MI_CancelWram* 共用WRAM(256KBx3) マネージャに、WRAMのプロセッサの予約キャンセルを通知します。
MI_DumpWramList* 共用WRAM(256KBx3) マネージャのWRAM割り当て状況を表示します。
MI_DumpWramListAll 共用WRAM(256KBx3) マネージャのすべてのWRAM割り当て状況を表示します。

メモリスワップ

MI_SwapByte 指定のバイトデータとメモリデータをスワップします。
MI_SwapWord 指定のワードデータとメモリデータをスワップします。

圧縮データ展開

MI_UnpackBits 0固定のビットを詰めたデータを展開します。
MI_UncompressLZ8 LZ77圧縮データを8bit単位で展開します。
MI_UncompressLZ16 LZ77圧縮データを16bit単位で展開します。
MI_UncompressHuffman ハフマン圧縮データを32bit単位で展開します。
MI_UncompressRL8 ランレングス圧縮データを8bit単位で展開します。
MI_UncompressRL16 ランレングス圧縮データを16bit単位で展開します。
MI_UncompressRL32 ランレングス圧縮データを32bit単位で展開します。
MI_UnfilterDiff8 差分フィルタをかけられたデータを8bit単位で展開します。
MI_UnfilterDiff16 差分フィルタをかけられたデータを16bit単位で展開します。
MI_UnfilterDiff32 差分フィルタをかけられたデータを32bit単位で展開します。
MI_SecureUncompressAny データヘッダから圧縮タイプを判別して、適当な展開処理を実行します。(バッファオーバーランチェック有)
MI_SecureUncompressRL ランレングス圧縮データを一度に展開します。(バッファオーバーランチェック有)
MI_SecureUncompressLZ LZ77圧縮データを一度に展開します。(バッファオーバーランチェック有)
MI_SecureUncompressBLZ BLZ圧縮データを一度に展開します。(バッファオーバーランチェック有)
MI_SecureUncompressHuffman ハフマン圧縮データを一度に展開します。(バッファオーバーランチェック有)
MI_SecureUnfilterDiff 差分フィルタをかけられたデータを展開します。(バッファオーバーランチェック有)
MI_GetUncompressedSize 圧縮データの展開後サイズを取得します。
MI_GetCompressionType 圧縮データの圧縮形式を取得します。
MI_InitUncompContextRL ランレングス圧縮のストリーミング展開コンテキストを初期化します。
MI_InitUncompContextLZ LZ77圧縮のストリーミング展開コンテキストを初期化します。
MI_InitUncompCOntextHuffman ハフマン圧縮のストリーミング展開コンテキストを初期化します。
MI_ReadUncompRL* ランレングス圧縮のストリーミング展開を実行します。
MI_ReadUncompLZ* LZ77圧縮のストリーミング展開を実行します。
MI_ReadUncompHuffman ハフマン圧縮のストリーミング展開を実行します。
MI_CompressRL データをランレングス圧縮します。
MI_CompressLZ データをLZ77圧縮します。
MI_CompressLZFast データをLZ77圧縮します。 ワークバッファを必要とする代わりに高速に処理をおこないます。
MI_CompressHuffman データをハフマン圧縮します。
MI_FilterDiff* 差分フィルタをかけたデータを作成します。

バイトアクセス

MI_ReadByte バイトデータをメモリから読み出します。
この関数は互換のために残されていますが使用しないでください。
MI_WriteByte バイトデータをメモリに書き込みます。
この関数は互換のために残されていますが使用しないでください。

エンディアンを考慮するメモリアクセス

MI_SwapEndian8 8bit値のエンディアンを反転するマクロです。
実際には何の変換も行いませんが、 ソースコードの視認性を統一するために用意されています。
MI_SwapEndian16 16bit値のエンディアンを反転するマクロです。
MI_SwapEndian32 32bit値のエンディアンを反転するマクロです。
MI_SwapEndian64 64bit値のエンディアンを反転するマクロです。
MI_HToLE8 8bit値を現在の環境からリトルエンディアンへ変換するマクロです。
実際には何の変換も行いませんが、 ソースコードの視認性を統一するために用意されています。
MI_HToLE16 16bit値を現在の環境からリトルエンディアンへ変換するマクロです。
MI_HToLE32 32bit値を現在の環境からリトルエンディアンへ変換するマクロです。
MI_HToLE64 64bit値を現在の環境からリトルエンディアンへ変換するマクロです。
MI_HToBE8 8bit値を現在の環境からビッグエンディアンへ変換するマクロです。
実際には何の変換も行いませんが、 ソースコードの視認性を統一するために用意されています。
MI_HToBE16 16bit値を現在の環境からビッグエンディアンへ変換するマクロです。
MI_HToBE32 32bit値を現在の環境からビッグエンディアンへ変換するマクロです。
MI_HToBE64 64bit値を現在の環境からビッグエンディアンへ変換するマクロです。
MI_LEToH8 8bit値をリトルエンディアンから現在の環境へ変換するマクロです。
実際には何の変換も行いませんが、 ソースコードの視認性を統一するために用意されています。
MI_LEToH16 16bit値をリトルエンディアンから現在の環境へ変換するマクロです。
MI_LEToH32 32bit値をリトルエンディアンから現在の環境へ変換するマクロです。
MI_LEToH64 64bit値をリトルエンディアンから現在の環境へ変換するマクロです。
MI_BEToH8 8bit値をビッグエンディアンから現在の環境へ変換するマクロです。
実際には何の変換も行いませんが、 ソースコードの視認性を統一するために用意されています。
MI_BEToH16 16bit値をビッグエンディアンから現在の環境へ変換するマクロです。
MI_BEToH32 32bit値をビッグエンディアンから現在の環境へ変換するマクロです。
MI_BEToH64 64bit値をビッグエンディアンから現在の環境へ変換するマクロです。
MI_LoadLE8 指定のアドレスから8bit値をリトルエンディアンとして読み出します。
MI_LoadLE16 指定のアドレスから16bit値をリトルエンディアンとして読み出します。
MI_LoadLE32 指定のアドレスから32bit値をリトルエンディアンとして読み出します。
MI_LoadLE64 指定のアドレスから64bit値をリトルエンディアンとして読み出します。
MI_LoadBE8 指定のアドレスから8bit値をビッグエンディアンとして読み出します。
MI_LoadBE16 指定のアドレスから16bit値をビッグエンディアンとして読み出します。
MI_LoadBE32 指定のアドレスから32bit値をビッグエンディアンとして読み出します。
MI_LoadBE64 指定のアドレスから64bit値をビッグエンディアンとして読み出します。
MI_StoreLE8 8bit値をリトルエンディアンとして指定のアドレスへ書き込みます。
MI_StoreLE16 16bit値をリトルエンディアンとして指定のアドレスへ書き込みます。
MI_StoreLE32 32bit値をリトルエンディアンとして指定のアドレスへ書き込みます。
MI_StoreLE64 64bit値をリトルエンディアンとして指定のアドレスへ書き込みます。
MI_StoreBE8 8bit値をビッグエンディアンとして指定のアドレスへ書き込みます。
MI_StoreBE16 16bit値をビッグエンディアンとして指定のアドレスへ書き込みます。
MI_StoreBE32 32bit値をビッグエンディアンとして指定のアドレスへ書き込みます。
MI_StoreBE64 64bit値をビッグエンディアンとして指定のアドレスへ書き込みます。

ユーティリティ

MI_InitAllocator メモリアロケータ構造体を初期化します。
MI_CallAlloc アロケータからメモリを確保します。
MI_CallFree アロケータへメモリを解放します。
MI_InitDevice デバイスインタフェース構造体を初期化します。
MI_ReadDevice デバイスからデータを読み込みます。
MI_WriteDevice デバイスへデータを書き込みます。
MI_InitCache キャッシュ構造体を初期化します。
MI_ReadCache キャッシュページリストからデータを読み込みます。
MI_LoadCache ロード待ち状態の全てのページをロードします。
MI_IsCacheLoading ロード待ち状態のページが存在するかどうか判定します。

型・構造体

MICompressionHeader 圧縮データのヘッダ情報構造体です。
MIUncompContextRL ランレングス圧縮のストリーミング展開を行なう際の、コンテキスト構造体です。
MIUncompContextLZ LZ77圧縮のストリーミング展開を行なう際の、コンテキスト構造体です。
MIUncompContextHuffman ハフマン圧縮のストリーミング展開を行なう際の、コンテキスト構造体です。
MIAllocator メモリアロケータのインタフェース構造体です。
MIAllocatorAllocFunction メモリ確保コールバックの関数プロトタイプです。
MIAllocatorFreeFunction メモリ解放コールバックの関数プロトタイプです。
MIDevice デバイス制御をラップするためのインタフェース構造体です。
MIDeviceReadFunction デバイス読み込みコールバックの関数プロトタイプです。
MIDeviceWriteFunction デバイス書き込みコールバックの関数プロトタイプです。
MICache メモリキャッシュを実現するための構造体です。
MINDmaConfig 新規DMAの動作を指定するための構造体です。