GC用メモリージャグラー/PARファイル


DATELCOD.BINのファイルフォーマットです。

現在わかっているところまでをメモ書きにしておきます。

0800hからです。

<ヘッダー部>
4バイト CRC32(確認済み)
4バイト データ長(BE)  ( (A) + (B) + 20h )
4バイト ?0x0C?
4バイト ?0x04?
4バイト コードデータ部(タイトル数から)のサイズ   ..... (A)
4バイト 末尾4バイト連続データ部のサイズ     ..... (B)
4バイト 不明(BE)
4バイト 不明(BE)
4バイト 不明(BE)
4バイト 不明(BE)
4バイト タイトル数
<繰り返し>
4バイト ゲームID(BE)
4バイト 0x00の場合は削除済みデータ
不定長  タイトル名(UTF-16BE) 終端は00h
4バイト コード数(BE)
<「コード数」分繰り返し>
4バイト コードID(BE)  
不定長  コード名(UTF-16BE) 終端は00h
4バイト コード行数×2(BE)
コード行数×4バイト コード行(16進数表記)
<拡張アリア>
4バイト データ行数(BE)
以降不明




BE 87 EB 22                       CRC32(「データ長」の次から計算)
00 00 03 74                       データ長(「データ長」の次からの長さ)
00 00 00 0C                       ?0Ch固定?
00 00 00 04                       ?04h固定?
00 00 02 A4                       データ部サイズ(タイトル数から末尾の4バイト連続の前まで)
00 00 00 B0                       末尾4バイトの連続部分のサイズ
00 00 00 00 
00 00 00 01 
FF FF FF FF 
00 00 00 00 
00 00 00 03                       タイトル数
00 00 00 9D                       game id
00 00 00 02                       0x00の場合は削除済みデータ
00 31 00 30 00 38 00 30 00 00     タイトル名 '1080'
00 00 00 02                       コード数  2
00 00 10 00                       code id
00 28 00 4D 00 29 00 00           コード名  (M)
00 00 00 04                       コード行数×2
38 36 F3 C9 7A 68 EC 9F           line1
5C 1E 80 8E E2 76 E3 93           line2
00 00 10 10                       code id
30 DB 30 9B 30 E0 00 00           コード名 'ホ゛ム'
00 00 00 04                       コード行数×2
53 BF 69 71 5E 62 ED 8B           line1
80 06 D5 63 69 E6 2F 0A           line2
00 00 07 A1                       gameid
00 00 00 02 
30 D5 30 A1 30 A4 30 A2 FF 0D 30 A8 30 E0 30 D5 30 9B 30 EC 30 E0 00 00 タイトル名 'ファイアーエンフ゛レム'
00 00 00 02                       コード数  2
00 00 00 00                       code id
00 28 00 4D 00 29 00 00           コード名 '(M)'
00 00 00 06                       コード行数×2
B8 6B 6B 01 FE 3D 89 55           line1
68 8C AB 38 92 0F 7A 2E           line2
FC A3 E5 87 F1 35 80 08           line3
00 00 00 01                       code id
30 B3 30 A6 30 C8 30 9B 30 A6 00 00 コード名 'コウト゛ウ'
00 00 00 3A                       コード行数×2
4D 4A B0 20 2B 8B CC E1           line1
A6 D4 B3 E6 EE 52 FF 65 
D8 99 3B DC 2A F1 AC 71 
A1 6A 66 52 91 4B B5 8C 
04 9F 41 A8 CC DF CD B9 
9F B6 80 4A 1B 04 30 1A 
13 A1 A8 EE 6F AB 68 CA 
3A A2 09 26 5F 8C 61 59 
25 23 A8 23 B9 FE 3C C9 
49 0E 49 BC 81 44 E0 32           line10
BD 1D B8 24 15 52 31 B0 
9B 49 02 DE 3B 39 1A 43 
DA 4F 33 14 57 F1 32 EF 
35 09 C4 C2 D9 72 53 58 
BD 9F E6 C9 4F 70 02 FD 
17 CC EB 0B 9E 11 39 B2 
35 63 C8 0E B1 8D 86 1F 
50 A6 FA 32 75 69 88 59 
99 76 87 3D 3C 3C 1F 76 
EE 74 31 19 39 DC 4B 57           line20
8A 61 66 12 D6 33 E0 F4 
8B CE 7C 10 AC FF 6C DD 
10 BC 36 A5 0C 28 15 2A 
E6 79 F7 31 08 D1 7F 9D 
19 A0 1D 41 B0 90 A0 82 
6E A9 90 96 78 6F 64 89 
96 CA 53 6D E5 17 C0 2C 
69 30 8A 6E 45 BC 30 20 
0C 06 C5 59 A7 0B 35 B6           line29
00 00 07 FE                       gameid
00 00 00 02 
30 E1 30 C8 30 ED 30 A4 30 C8 30 9B 00 00    タイトル名 'メトロイド'
00 00 00 02                       コード数  2
00 00 00 00                       code id
00 28 00 4D 00 29 00 00           コード名  '(M)'
00 00 00 06                       コード行数×2 
1F EB C6 D3 48 67 FF DA           line 1
1F A3 C1 E0 2E 25 6C AB           line 2
FC A3 E5 87 F1 35 80 08           line 3
00 00 00 01                       code id
00 70 00 6F 00 77 00 00           コード名  'pow'
00 00 00 2C                       コード行数×2 (44)
3B 1E 78 90 11 06 DE DA           line 1
8E 82 9E 50 64 FE A7 79 
80 DE 40 25 F4 00 F6 7F 
82 BC FD BF A7 10 23 53 
6F 89 2D 4F 1A 43 DD 5D 
47 19 37 27 39 3E 7D A3 
99 81 BE FB 36 2C 25 6F 
28 61 D8 2D 7A 78 C5 DF 
67 D8 4F 73 95 D4 3D 70 
C2 12 83 FD 68 1E 5D 62           line 10
EE CC D0 03 66 58 1C C5 
EE 20 D0 8A AE C6 0C 38 
34 4E B5 F7 4A CD 07 10 
A1 E9 60 26 56 5C 78 A1 
5D D0 BF 78 7C A6 5E 37 
8F F3 DC DA C5 81 7E D9 
EB B3 CD 92 6A 10 2A CA 
92 CC C8 C8 42 7F EF 68 
74 9C 40 4C BC 0B 85 6F 
27 10 96 29 70 40 06 18           line 20
61 F1 22 CB 67 CF 32 76 
72 5F F5 0E EA F3 1D 8B           line 22
00 00 00 2B                       4バイトデータの数(2Bh=43個)
00 00 10 00                       CODE ID '1080' - '(M)'
00 00 1F 7E 
00 00 1F C4 
00 00 1F 87 
00 00 04 D2 
00 00 1F 7C 
00 00 1F 8C 
00 00 1F B3 
00 00 1F C6 
00 00 1F 8F 
00 00 1F C1 
00 00 1F 7A 
00 00 1F CD 
00 00 04 E7 
00 00 04 E8 
00 00 1F DC 
00 00 1F DE 
00 00 16 01 
00 00 1A 1C 
00 00 1F A8 
00 00 1F A5 
00 00 1F 76 
00 00 1F A0 
00 00 1F CF 
00 00 1F B9 
00 00 1F B6 
00 00 1F BB 
00 00 1F BD 
00 00 1F A2 
00 00 04 DB 
00 00 1F 92 
00 00 00 00                       CODE ID 'ファイアーエンフ゛レム' - '(M)'
00 00 1F 9B 
00 00 1F C8 
00 00 1F 85 
00 00 00 00                       CODE ID 'メトロイド' - '(M)'
00 00 0A 00 
00 00 0A 01 
00 00 0A 02 
00 00 0A 03 
00 00 0A 04 
00 00 1F BF 
00 00 1F 83 


・コードは暗号化したもので、32進法にする前のもの。

 つまり、
  (A)生コード → (B)暗号化コード → (C)32進法
 のうちの(B)の状態。

・ゲームID、コードIDが埋め込まれていることが判明。
 これらはコード中にもあるのだが、何のために使うのだろう?
・そのゲームIDは0xFFFFFFFFでも動くようだ。
(全てのタイトルが0xFFFFFFFFのときは未確認。また、コードIDについても未確認)
・最後の4バイトの連続は全く不明(最初の1つのみ判明)。
 もしかしたら、GC-PARメニューの「オプション」と関係するのか?

 コードIDが含まれていることが判明。
 この中に記述されているコードに使用チェックが付くことが判明。
 上の例では3つのマスターコードにのみ使用チェックが付く。
 しかし、どういうルールで記述されるかは不明。

 その他のレコードは、コードデータを変えても変化なし。
 コードとは無関係なのか?

 データ作成の際に、このエリアにはコードID以外のデータ(40個(160バイト))を書き込んでおけば、
 一応動く模様。全く書き込まない場合は未確認。