Sonic Adventure DX: PC/Level Data Locations
From Sonic Retro
Disclaimer
Each level in Sonic Adventure DX is a compiled C++ file with embedded model data. They are usually similar in structure, but there is technically the possibility that some things may be in different locations for different levels.
LandTable header format
Offset | Type | Description |
---|---|---|
0 | Short | COL Count |
2 | Short | Anim Count |
4 | Int | Some type of flag, usually 12, 13 indicates the presence of animations. |
8 | Float | Unknown, usually 3000 |
C | Pointer | COL List |
10 | Pointer | Anim List |
14 | Pointer | Texture file name. Optional, possibly unused. |
18 | Pointer | Texture List |
1C | Int | Unknown |
20 | Int | Unknown |
COL Format
The name COL is an antiquated misnomer, but for lack of a better name, it stuck. This data struct is a reference for loading a level model. It's 0x24 bytes long and works as follows:
Offset | Type | Description |
---|---|---|
0 | Float[3] | Center of collision sphere |
C | Float | Radius of collision sphere |
10 | 8 Bytes | Padding? |
18 | Pointer | Model (OBJECT Struct) |
1C | Int | Unknown |
20 | Int | Surface Flags (see below) |
Surface Flags
These flags are not entirely figured out yet, but here's what is known for sure: 0x00000001 = Solid 0x00000002 = Water (overrides solid flag, makes surface transparent) 0x00000004 = No Friction 0x00000008 = No Acceleration 0x00000080 = Increased Acceleration 0x00000100 = Diggable 0x00001000 = Unclimbable 0x00010000 = Hurt 0x00100000 = Footprints 0x80000000 = Visible
Listing of Header locations
This listing isn't for the actual start of the header, that location hasn't been determined. Since the major interest in editing levels is editing their geometry, this list will (for now) refer to the geometry loading index. These use the COL format as described above. Also, when this list was being created, the location selection was a little inconsistent. This has since been corrected, and the data has been reformatted to facilitate the use of available level rippers.
Emerald Coast Geometry Loaders
Segment 0
- Geometry loader starts at: 11098424
- Geometry loader pointer at: 11115716
- Geometry loader has 480 objects
Segment 1
- Geometry loader starts at: 12814040
- Geometry loader pointer at: 12820136
- Geometry loader has 169 objects
Segment 2
- Geometry loader starts at: 12806840
- Geometry loader pointer at: 12814016
- Geometry loader has 199 objects
Windy Valley Geometry Loaders
Segment 0
- Geometry loader starts at: 8406760
- Geometry loader pointer at: 8409580
- Geometry loader has 78 objects
Segment 1
- Geometry loader starts at: 8405856
- Geometry loader pointer at: 8406732
- Geometry loader has 24 objects
Segment 2
- Geometry loader starts at: 8399808
- Geometry loader pointer at: 8405832
- Geometry loader has 167 objects
Casinopolis Geometry Loaders
Segment 0
- Geometry loader starts at: 26773520
- Geometry loader pointer at: 26782172
- Geometry loader has 240 objects
Segment 1
- Geometry loader starts at: 62765888
- Geometry loader pointer at: 26773496
- Geometry loader has 211 objects
Segment 2
- Geometry loader starts at: 26762288
- Geometry loader pointer at: 26765864
- Geometry loader has 99 objects
Segment 3
- Geometry loader starts at: ??
- Geometry loader ends at: ??
- Geometry loader is 0x?? long
Ice Cap Geometry Loaders
Segment 0
- Geometry loader starts at: 10753248
- Geometry loader loader pointer at: 10755384
- Geometry loader loader has 59 objects
Segment 1
- Geometry loader starts at: 10750440
- Geometry loader pointer at: 10753224
- Geometry loader has 79 objects
Segment 2
- Geometry loader starts at: 10739784
- Geometry loader pointer at: 10750416
- Geometry loader has 295 objects
Twinkle Park Geometry Loaders
Segment 0
- Geometry loader starts at: 36406944
- Geometry loader pointer at: 36411240
- Geometry loader has 119 objects
Segment 1
- Geometry loader starts at: 36399960
- Geometry loader pointer at: 36406920
- Geometry loader has 193 objects
Segment 2
- Geomtery loader starts at: 36396792
- Geometry loader pointer at: 36399936
- Geometry loader has 87 objects
Speed Highway Geometry Loaders
Segment 0
- Geometry loader starts at: 3636248
- Geometry loader pointer at: 36380324
- Geometry loader has 474 objects
Segment 1
- Geometry loader starts at: 36360040
- Geometry loader pointer at: 36363220
- Geometry loader has 88 objects
Segment 2
- Geomtery loader starts at: 36352728
- Geometry loader pointer at: 36360012
- Geometry loader has 202 objects
Red Mountain Geometry Loaders
Segment 0
- Geomtery loader starts at: 31699976
- Geometry loader pointer at: 31720940
- Geometry loader has 582 objects
Segment 1
- Geometry loader starts at: 34369336
- Geometry loader pointer at: 34376548
- Geometry loader has 200 objects
Segment 2
- Geomtery loader starts at: 34355584
- Geometry loader pointer at: 34369312
- Geometry loader has 381 objects
Lost World Geometry Loaders
Segment 0
- Geometry loader starts at: 29588672
- Geometry loader pointer at: 29592428
- Geometry loader has 104 objects
Segment 1
- Geometry loader starts at: 29576504
- Geometry loader pointer at: 29588648
- Geometry loader has 337 objects
Segment 2
- Geometry loader starts at: 29575856
- Geometry loader pointer at: 29576480
- Geometry loader has 17 objects
Sand Hill Geometry Loader
- Geomtery loader starts at: 20168472
- Geometry loader pointer at: 20179824
- Geometry loader has 315 objects