User Tools

Site Tools


extreme_g:rom_map

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

OffsetDescription
00 32-bit integer indicating number of files in the archive
04 4 padding bytes
08 Array of file reference structures

File reference structure

OffsetDescription
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

OffsetDescription
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.

OffsetDescription
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