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: by shygoo