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.
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:
struct COL float center[3]; // Center of the visibility/collision sphere. float radius; // Could be diameter. dword null[2]; // for alignment purposes dword SEG; // points to SEG struct dword null; Short col; // determines solidity Short surf_flag; // determines visibility
Surface Flags
First byte:
- 1x = can land on
- 2x = push
- 3x = push
- 4x = Kill sonic?
- 5x = no alpha, no col
- 6x = water
- 7x = lighting
- 8x = Stage Specific on/off (EC footprints)
- 9x = normal surf
Second Byte:
- x0 = normal
- x1 = hurt
- x2 = low traction
- x3 = hurt
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