SRAMマップ
スーパードンキーコング2 および、Diddy’s Kong Quest で使用されているセーブデータについて説明します。
凡例
データ型は次のように対応します。
byte: 符号なし8ビット整数
sbyte: 符号付き8ビット整数
short: 符号付き16ビット整数
ushort: 符号なし16ビット整数
bool: ブーリアン型
byte[]: バイト配列
SRAM ($000 - $7FF; 2048 bytes)
| アドレス | 型 | 種別 | 内容 |
|---|---|---|---|
| $000 | byte[8] | - | 未使用領域 (byte { 0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60}) |
| $008 | byte[680] | data | セーブデータファイル #1 |
| $2B0 | byte[680] | data | セーブデータファイル #2 |
| $558 | byte[680] | data | セーブデータファイル #3 |
セーブデータ ($000 - $2A7; 680 bytes)
セーブデータの初期化は、指定ファイルの全領域に0x60を書き込むことで行われる。
チェックサム1およびチェックサム2が不整合の場合、当該破損ファイルは読み込まれない。ただし、当該破損ファイルに対し初期化処理が行われるのは、このファイルに対しアクセスがかかったとき、すなわちこのファイルを選択してゲームを開始したときである。
| アドレス | 型 | 種別 | 内容 |
|---|---|---|---|
| $000 | ushort | hash | チェックサム1 ($006 - $2A7の総和) |
| $002 | ushort | hash | チェックサム2 ($006 - $2A7のXOR) |
| $004 | ushort | data | ゲームモード |
| $006 | uint | data | ゲーム内時間 |
| $00A | byte | data | 達成度 |
| $00B | byte | data | クレムコイン取得枚数 |
| $00C | byte | data | DKコイン取得枚数 |
| $013 | byte[30] | data | ステージの状態フラグ(1コース2ビット、エリア番号順) 00: 未出現 01: 未クリア 10: ディディーでクリア 11: ディクシーでクリア |