User Tools

Site Tools


extreme_g:rom_map

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

extreme_g:rom_map [2020/06/14 04:53] (current)
shygoo created
Line 1: Line 1:
 +====== Extreme-G ROM Map ======
 +
 +Below is a high level ROM map of Extreme-G (US). Most of the game's assets are compressed using either LZHUF or LZSS.
 +
 +----
 +===== Structure of LZSS archives =====
 +
 +==== LZSS archive header structure ====
 +
 +^Offset^Description^
 +| 00 | 32-bit integer indicating number of files in the archive |
 +| 04 | 4 padding bytes |
 +| 08 | Array of file reference structures |
 +
 +==== File reference structure ====
 +
 +^Offset^Description^
 +| 00 | 32-bit offset of the LZSS-compressed data |
 +| 04 | 32-bit Magic number "​LZSS"​ |
 +| 08 | 32-bit destination size |
 +| 0C | 32-bit source size |
 +
 +----
 +===== LZSS archive 000014A0 =====
 +
 +^ Offset ^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 00000018 | 000014B8 | 0002DFC4 | 0004FFF8 | (LZSS) Main assembly code segment |
 +
 +----
 +===== LZSS archive 007A2DF0 =====
 +
 +^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 007A3118 | 0000246A | 00003AA0 | (LZSS) ? |
 +| 007A5588 | 000013DC | 00002268 | (LZSS) ? |
 +| 007A6968 | 00001832 | 00002E04 | (LZSS) ? |
 +| 007A81A0 | 00001A0E | 000023FC | (LZSS) ? |
 +| 007A9BB0 | 00000C7C | 00001A90 | (LZSS) ? |
 +| 007AA830 | 00001EE7 | 00003AF8 | (LZSS) ? |
 +| 007AC718 | 00001057 | 0000294A | (LZSS) ? |
 +| 007AD770 | 00000FA5 | 00002620 | (LZSS) ? |
 +| 007AE718 | 000010FB | 00002A2C | (LZSS) ? |
 +| 007AF818 | 00001136 | 00002BC0 | (LZSS) ? |
 +| 007B0950 | 0000107A | 000028BC | (LZSS) ? |
 +| 007B19D0 | 00000FA5 | 00002620 | (LZSS) ? |
 +| 007B2978 | 0000115E | 00002BFA | (LZSS) ? |
 +| 007B3AD8 | 00006554 | 0000A31C | (LZSS) ? |
 +| 007BA030 | 00001DA5 | 00004F60 | (LZSS) ? |
 +| 007BBDD8 | 000047BF | 00007CF8 | (LZSS) ? |
 +| 007C0598 | 00001D44 | 000037A4 | (LZSS) ? |
 +| 007C22E0 | 000007DE | 00000800 | (LZSS) ? |
 +| 007C2AC0 | 000000D4 | 00000160 | (LZSS) ? |
 +| 007C2B98 | 0000009F | 000000F0 | (LZSS) ? |
 +| 007C2C38 | 000000BC | 00000128 | (LZSS) ? |
 +| 007C2CF8 | 00000094 | 000000F0 | (LZSS) ? |
 +| 007C2D90 | 000000BB | 00000128 | (LZSS) ? |
 +| 007C2E50 | 00004898 | 000062E8 | (LZSS) ? |
 +| 007C76E8 | 0000014D | 00000328 | (LZSS) ? |
 +| 007C7838 | 00000A51 | 000025C8 | (LZSS) ? |
 +| 007C8290 | 000024C4 | 00003C90 | (LZSS) ? |
 +| 007CA758 | 00000EB5 | 00001140 | (LZSS) ? |
 +| 007CB610 | 00000517 | 00000688 | (LZSS) ? |
 +| 007CBB28 | 000002C3 | 000009F8 | (LZSS) ? |
 +| 007CBDF0 | 00000CFD | 00004308 | (LZSS) ? |
 +| 007CCAF0 | 00003C84 | 00007808 | (LZSS) ? |
 +| 007D0778 | 0000034F | 00000690 | (LZSS) ? |
 +| 007D0AC8 | 00000C53 | 00001000 | (LZSS) ? |
 +| 007D1720 | 000000E3 | 00000200 | (LZSS) ? |
 +| 007D1808 | 00000D85 | 00001000 | (LZSS) ? |
 +| 007D2590 | 00000136 | 00000200 | (LZSS) ? |
 +| 007D26C8 | 00000A11 | 00001000 | (LZSS) ? |
 +| 007D30E0 | 000000C5 | 00000200 | (LZSS) ? |
 +| 007D31A8 | 00000A12 | 00001000 | (LZSS) ? |
 +| 007D3BC0 | 00000131 | 00000200 | (LZSS) ? |
 +| 007D3CF8 | 00000A4C | 00001000 | (LZSS) ? |
 +| 007D4748 | 00000194 | 00000200 | (LZSS) ? |
 +| 007D48E0 | 000001BB | 00000488 | (LZSS) ? |
 +| 007D4AA0 | 000001FC | 00000420 | (LZSS) ? |
 +| 007D4CA0 | 00000145 | 00000348 | (LZSS) ? |
 +| 007D4DE8 | 0000DB93 | 00011988 | (LZSS) ? |
 +| 007E2980 | 00002CAE | 000041C0 | (LZSS) ? |
 +| 007E5630 | 0000527C | 0000A7C4 | (LZSS) ? |
 +| 007EA8B0 | 0000081B | 00000A70 | (LZSS) ? |
 +
 +----
 +===== LZSS table 00001288 =====
 +
 +This table does not use the same structure as the two LSZZ archives described above. ​
 +
 +==== File reference structure ====
 +
 +^Offset^Description^
 +| 00 | 32-bit ROM address of the 32-bit destination size followed by LZSS-compressed data |
 +| 04 | 32-bit source size |
 +| 08 | 32-bit value (unknown purpose) |
 +| 0C | 32-bit value (unknown purpose) |
 +
 +==== Files ====
 +
 +^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 0010EC90 | 000012E0 | 00001CFC | (LZSS) ? |
 +| 006AF2C0 | 00001540 | 00004C8C | (LZSS) ? |
 +| 000F0E30 | 00017340 | 0002A584 | (LZSS) ? |
 +| 00109620 | 00003160 | 000059E4 | (LZSS) ? |
 +| 00108170 | 000014B0 | 00001DD4 | (LZSS) ? |
 +| 0010C780 | 00002510 | 000030D4 | (LZSS) ? |
 +| 00092F70 | 00007010 | 0000F2E8 | (LZSS) ? |
 +| 000AFF00 | 00006760 | 0000D6B8 | (LZSS) ? |
 +| 00088000 | 00006710 | 0000CAF8 | (LZSS) ? |
 +| 000A17D0 | 00006830 | 0000D390 | (LZSS) ? |
 +| 00099F80 | 00007850 | 0000DD30 | (LZSS) ? |
 +| 000B9DB0 | 00004AD0 | 00009DC8 | (LZSS) ? |
 +| 0008E710 | 00004860 | 00009C20 | (LZSS) ? |
 +| 000BE880 | 00004B80 | 0000AAB8 | (LZSS) ? |
 +| 000A8000 | 00007F00 | 0000DA30 | (LZSS) ? |
 +| 000B6660 | 00003750 | 000075A8 | (LZSS) ? |
 +| 000DF030 | 00002640 | 00004F18 | (LZSS) ? |
 +| 000E1670 | 00002570 | 00004FC0 | (LZSS) ? |
 +| 000E3BE0 | 000025C0 | 00004F50 | (LZSS) ? |
 +| 000E61A0 | 000026E0 | 00004F80 | (LZSS) ? |
 +| 000E8880 | 00002540 | 00004C18 | (LZSS) ? |
 +| 000EADC0 | 000025D0 | 00004BB8 | (LZSS) ? |
 +| 000ED390 | 00002640 | 00004BB8 | (LZSS) ? |
 +| 000EF9D0 | 00001460 | 00002654 | (LZSS) ? |
 +
 +Note: The source sizes noted above are +4 to account for the destination size value that precedes each compressed file.
 +
 +----
 +===== Level table 00001408 =====
 +
 +==== Level header addresses ====
 +
 +Each address in the table below points to a level header structure.
 +
 +^ Index ^ Address ^
 +| 00 | 0010FF70 |
 +| 01 | 0017C6F0 |
 +| 02 | 001DD8B0 |
 +| 03 | 0024FDB0 |
 +| 04 | 002C2970 |
 +| 05 | 00332A30 |
 +| 06 | 003A5630 |
 +| 07 | 004185F0 |
 +| 08 | 0048DB70 |
 +| 09 | 00502FF0 |
 +| 0A | 00576C70 |
 +| 0B | 005EB9F0 |
 +| 0C | 006819F0 |
 +| 0D | 006604F0 |
 +| 0E | 00668A70 |
 +| 0F | 0066FCF0 |
 +| 10 | 00676DF0 |
 +| 11 | 006819F0 |
 +
 +==== Level header structure ====
 +
 +Offsets defined in this structure are relative to the position of the structure in ROM.
 +
 +^Offset^Description^
 +| 00 | 32-bit offset of GFX transformations table |
 +| 04 | 32-bit number of transformations |
 +| 08 | Unknown |
 +| 0C | 32-bit offset of LZHUF-compressed texture meta table |
 +| 10 | 32-bit number of entries in the texture meta table |
 +| 14 | 32-bit offset of LZHUF-compressed texture data |
 +| 18 | 32-bit destination size of the texture data |
 +| 1C | 32-bit offset of LZHUF-compressed misc data |
 +| 20 | 32-bit destination size of misc data |
 +| 24 | Unknown |
 +| 28 | Unknown |
 +| 2C | Unknown |
 +| 30 | Unknown |
 +| 34 | 32-bit offset of LZHUF-compressed texture coordinate table |
 +| 38 | 32-bit destination size of the texture coordinate table |
 +| 3C | 32-bit offset of LZHUF-compressed GFX/​Collision commands |
 +| 40 | 32-bit destination size of the GFX/​Collision commands |
 +| 44-7F | Unknown |
 +
 +==== Level files ====
 +
 +Below is a list of files referenced the level headers.
 +
 +^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 0010FFF0 | 000000D6 | 000002A0 | (LZHUF) Level 00 texture meta |
 +| 001100F0 | 0000A445 | 0000D5E0 | (LZHUF) Level 00 textures |
 +| 0011A570 | 00024333 | 0005592D | (LZHUF) Level 00 misc data |
 +| 0013E8B0 | 00000048 | 00000074 | (LZHUF) Level 00 texture coordinates |
 +| 0013E930 | 00001DB0 | N/A | Level 00 GFX transformation table |
 +| 001406F0 | 0003BFC3 | 0005F90E | (LZHUF) Level 00 GFX/​Collision commands |
 +| 0017C770 | 00000085 | 000001E0 | (LZHUF) Level 01 texture meta |
 +| 0017C830 | 000055E1 | 00008100 | (LZHUF) Level 01 textures |
 +| 00181E30 | 00020477 | 000460B9 | (LZHUF) Level 01 misc data |
 +| 001A22B0 | 00000037 | 0000004C | (LZHUF) Level 01 texture coordinates |
 +| 001A22F0 | 00001D38 | N/A | Level 01 GFX transformation table |
 +| 001A4030 | 0003987B | 0005BD41 | (LZHUF) Level 01 GFX/​Collision commands |
 +| 001DD930 | 000000D2 | 000002A0 | (LZHUF) Level 02 texture meta |
 +| 001DDA30 | 00009908 | 0000E2A0 | (LZHUF) Level 02 textures |
 +| 001E7370 | 000253F7 | 00052D09 | (LZHUF) Level 02 misc data |
 +| 0020C770 | 00000053 | 00000084 | (LZHUF) Level 02 texture coordinates |
 +| 0020C7F0 | 00002940 | N/A | Level 02 GFX transformation table |
 +| 0020F130 | 00040C7F | 00063DED | (LZHUF) Level 02 GFX/​Collision commands |
 +| 0024FE30 | 0000009A | 000001F8 | (LZHUF) Level 03 texture meta |
 +| 0024FEF0 | 00006DC4 | 0000A040 | (LZHUF) Level 03 textures |
 +| 00256CF0 | 00025496 | 00051409 | (LZHUF) Level 03 misc data |
 +| 0027C1B0 | 00000055 | 00000088 | (LZHUF) Level 03 texture coordinates |
 +| 0027C230 | 00001AE0 | N/A | Level 03 GFX transformation table |
 +| 0027DD30 | 00044C03 | 0006D2EF | (LZHUF) Level 03 GFX/​Collision commands |
 +| 002C29F0 | 000000C3 | 00000258 | (LZHUF) Level 04 texture meta |
 +| 002C2AF0 | 00009371 | 0000BEA0 | (LZHUF) Level 04 textures |
 +| 002CBE70 | 00029C0E | 000585AD | (LZHUF) Level 04 misc data |
 +| 002F5AB0 | 0000002C | 00000044 | (LZHUF) Level 04 texture coordinates |
 +| 002F5AF0 | 00002300 | N/A | Level 04 GFX transformation table |
 +| 002F7DF0 | 0003AC30 | 000600DE | (LZHUF) Level 04 GFX/​Collision commands |
 +| 00332AB0 | 0000008E | 000001B0 | (LZHUF) Level 05 texture meta |
 +| 00332B70 | 00006CA3 | 00008C60 | (LZHUF) Level 05 textures |
 +| 00339830 | 0002BF48 | 00059985 | (LZHUF) Level 05 misc data |
 +| 003657B0 | 00000047 | 00000074 | (LZHUF) Level 05 texture coordinates |
 +| 00365830 | 00001F18 | N/A | Level 05 GFX transformation table |
 +| 00367770 | 0003DEAE | 0005E91F | (LZHUF) Level 05 GFX/​Collision commands |
 +| 003A56B0 | 000000C4 | 00000264 | (LZHUF) Level 06 texture meta |
 +| 003A57B0 | 00007A2D | 0000BA80 | (LZHUF) Level 06 textures |
 +| 003AD1F0 | 00021886 | 00048E61 | (LZHUF) Level 06 misc data |
 +| 003CEAB0 | 00000073 | 000000C4 | (LZHUF) Level 06 texture coordinates |
 +| 003CEB30 | 00001F40 | N/A | Level 06 GFX transformation table |
 +| 003D0A70 | 00047B62 | 000748F1 | (LZHUF) Level 06 GFX/​Collision commands |
 +| 00418670 | 000000D5 | 000002C4 | (LZHUF) Level 07 texture meta |
 +| 00418770 | 000074C0 | 0000C8C0 | (LZHUF) Level 07 textures |
 +| 0041FC30 | 00028454 | 00053A21 | (LZHUF) Level 07 misc data |
 +| 004480B0 | 000000A2 | 00000110 | (LZHUF) Level 07 texture coordinates |
 +| 00448170 | 00001E78 | N/A | Level 07 GFX transformation table |
 +| 00449FF0 | 00043B45 | 00070C49 | (LZHUF) Level 07 GFX/​Collision commands |
 +| 0048DBF0 | 000000DC | 00000288 | (LZHUF) Level 08 texture meta |
 +| 0048DCF0 | 00008649 | 0000C900 | (LZHUF) Level 08 textures |
 +| 00496370 | 0002A379 | 0005F209 | (LZHUF) Level 08 misc data |
 +| 004C06F0 | 000000B9 | 00000138 | (LZHUF) Level 08 texture coordinates |
 +| 004C07B0 | 000020F8 | N/A | Level 08 GFX transformation table |
 +| 004C28B0 | 00040728 | 000677FA | (LZHUF) Level 08 GFX/​Collision commands |
 +| 00503070 | 000000CF | 00000264 | (LZHUF) Level 09 texture meta |
 +| 00503170 | 00008F11 | 0000BEC0 | (LZHUF) Level 09 textures |
 +| 0050C0B0 | 00027A9A | 00050B51 | (LZHUF) Level 09 misc data |
 +| 00533B70 | 0000005E | 0000009C | (LZHUF) Level 09 texture coordinates |
 +| 00533BF0 | 00001C20 | N/A | Level 09 GFX transformation table |
 +| 00535830 | 00041402 | 0006CBF6 | (LZHUF) Level 09 GFX/​Collision commands |
 +| 00576CF0 | 000000D9 | 0000024C | (LZHUF) Level 0A texture meta |
 +| 00576DF0 | 00007F60 | 0000B4E0 | (LZHUF) Level 0A textures |
 +| 0057ED70 | 00025E0C | 00049109 | (LZHUF) Level 0A misc data |
 +| 005A4BB0 | 0000006B | 000000B8 | (LZHUF) Level 0A texture coordinates |
 +| 005A4C30 | 00002FF8 | N/A | Level 0A GFX transformation table |
 +| 005A7C30 | 00043DAF | 0006E823 | (LZHUF) Level 0A GFX/​Collision commands |
 +| 005EBA70 | 000000FA | 000002E8 | (LZHUF) Level 0B texture meta |
 +| 005EBB70 | 00008A3E | 0000E3E0 | (LZHUF) Level 0B textures |
 +| 005F45B0 | 0002AC96 | 0005DEE9 | (LZHUF) Level 0B misc data |
 +| 0061F270 | 0000006F | 000000C0 | (LZHUF) Level 0B texture coordinates |
 +| 0061F2F0 | 000023C8 | N/A | Level 0B GFX transformation table |
 +| 006216F0 | 0003EDFE | 0005E93B | (LZHUF) Level 0B GFX/​Collision commands |
 +| 00681A70 | 0000001D | 00000054 | (LZHUF) Level 0C texture meta |
 +| 00681AB0 | 00001A60 | 00001E00 | (LZHUF) Level 0C textures |
 +| 00683530 | 00009634 | 00013A51 | (LZHUF) Level 0C misc data |
 +| 0068CB70 | 0000001B | 00000028 | (LZHUF) Level 0C texture coordinates |
 +| 0068CBB0 | 00000CF8 | N/A | Level 0C GFX transformation table |
 +| 0068D8B0 | 0000F082 | 00018044 | (LZHUF) Level 0C GFX/​Collision commands |
 +| 00660570 | 0000004B | 000000B4 | (LZHUF) Level 0D texture meta |
 +| 006605F0 | 00001A66 | 00003680 | (LZHUF) Level 0D textures |
 +| 00662070 | 000046FA | 0000B9CD | (LZHUF) Level 0D misc data |
 +| 00666770 | 00000024 | 00000030 | (LZHUF) Level 0D texture coordinates |
 +| 006667B0 | 00000320 | N/A | Level 0D GFX transformation table |
 +| 00666AF0 | 00001F5B | 00003380 | (LZHUF) Level 0D GFX/​Collision commands |
 +| 00668AF0 | 0000004C | 000000A8 | (LZHUF) Level 0E texture meta |
 +| 00668B70 | 000020D8 | 00003A40 | (LZHUF) Level 0E textures |
 +| 0066AC70 | 0000311C | 00007529 | (LZHUF) Level 0E misc data |
 +| 0066DDB0 | 00000023 | 00000034 | (LZHUF) Level 0E texture coordinates |
 +| 0066DDF0 | 000000F0 | N/A | Level 0E GFX transformation table |
 +| 0066DEF0 | 00001DE1 | 000040B5 | (LZHUF) Level 0E GFX/​Collision commands |
 +| 0066FD70 | 0000003B | 00000090 | (LZHUF) Level 0F texture meta |
 +| 0066FDB0 | 000017A4 | 00002E40 | (LZHUF) Level 0F textures |
 +| 00671570 | 00003416 | 00007CFD | (LZHUF) Level 0F misc data |
 +| 006749B0 | 0000001B | 00000024 | (LZHUF) Level 0F texture coordinates |
 +| 006749F0 | 000002F8 | N/A | Level 0F GFX transformation table |
 +| 00674CF0 | 000020C5 | 00003A8E | (LZHUF) Level 0F GFX/​Collision commands |
 +| 00676E70 | 0000003F | 0000009C | (LZHUF) Level 10 texture meta |
 +| 00676EB0 | 0000184B | 00003240 | (LZHUF) Level 10 textures |
 +| 00678730 | 00005AD3 | 0000DD71 | (LZHUF) Level 10 misc data |
 +| 0067E230 | 00000016 | 00000024 | (LZHUF) Level 10 texture coordinates |
 +| 0067E270 | 000004B0 | N/A | Level 10 GFX transformation table |
 +| 0067E730 | 000032A0 | 000067AF | (LZHUF) Level 10 GFX/​Collision commands |
 +| 00681A70 | 0000001D | 00000054 | (LZHUF) Level 11 texture meta |
 +| 00681AB0 | 00001A60 | 00001E00 | (LZHUF) Level 11 textures |
 +| 00683530 | 00009634 | 00013A51 | (LZHUF) Level 11 misc data |
 +| 0068CB70 | 0000001B | 00000028 | (LZHUF) Level 11 texture coordinates |
 +| 0068CBB0 | 00000CF8 | N/A | Level 11 GFX transformation table |
 +| 0068D8B0 | 0000F082 | 00018044 | (LZHUF) Level 11 GFX/​Collision commands |
 +
 +Note: Level 0C and level 11 reference the same group of files.
 +
 +----
 +===== LZHUF table 00001450 (Common level textures) =====
 +
 +==== Addresses ====
 +
 +This table runs parallel to the level table.
 +
 +^ Index ^ Address ^
 +| 00 | 000C6690 |
 +| 01 | 000C6690 |
 +| 02 | 000C6690 |
 +| 03 | 000D5C40 |
 +| 04 | 000D5C40 |
 +| 05 | 000D5C40 |
 +| 06 | 000CE500 |
 +| 07 | 000CE500 |
 +| 08 | 000CE500 |
 +| 09 | 000DC550 |
 +| 0A | 000DC550 |
 +| 0B | 000DC550 |
 +| 0C | 000C6690 |
 +| 0D | 000C6690 |
 +| 0E | 000D5C40 |
 +| 0F | 000CE500 |
 +| 10 | 000DC550 |
 +| 11 | 000C6690 |
 +
 +==== Files ====
 +
 +^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 000C6690 | 00007E6A | 0000A348 | (LZHUF) Common level mesh texture bank |
 +| 000CE500 | 0000773D | 00010420 | (LZHUF) Common level mesh texture bank |
 +| 000D5C40 | 00006907 | 0000A358 | (LZHUF) Common level mesh texture bank |
 +| 000DC550 | 00002ADD | 00008318 | (LZHUF) Common level mesh texture bank |
 +
 +Note: The source sizes noted above are +4 to account for the destination size value that precedes each compressed file.
 +
 +----
 +===== Miscellaneous LZHUF files =====
 +
 +The addresses of these two files (000C3400, 0002F480) are defined at 00001280 and 00001490 respectively.
 +
 +^ Address ^ Source size ^ Destination size ^ (Compression) Description ^
 +| 000C3400 | 00003284 | 00008318 | (LZHUF) Global level mesh texture bank |
 +| 0002F480 | 00057D3A | 000B8120 | (LZHUF) ? |
 +
 +Note: The source sizes noted above are +4 to account for the destination size value that precedes each compressed file.
  
extreme_g/rom_map.txt ยท Last modified: 2020/06/14 04:53 by shygoo