Terrain
Research By Malu05 2007
Basic Understanding
The terrain is stored in the memory as it is in the game. ADT Structure For entry understanding and editing, try scanning for the header "MHDR" chunk (you need to scan for "RDHM"). The editable terrain offsets are located in the "MCNK chunk". Remember that any terrain modification requires a reload, so you either have to get the ADT out of render range and then in again or use the console command:
/Console GXRestart
Offset Pointer
The higher you go in X the lover you go in HEX Diffrence in X = 0x100 This means that when you go 533.3333 up, you go 0x100 up in hex
X Y Offset 2300 .2300 = 00CBF3C4 00CBF3C4 = 2300 00CBF2C4 = 2833,3333 (2300+533,3333)
A + C = B
== 00CBFEE8 00CBFEE8
Here is a example on how the offset for the terrain block changes as position changes.
X Y Offset -12000 .0 = 00CC0ED8 -11000 .0 = 00CC0CD8 -10000 .0 = 00CC0BD8 -9000 .0 = 00CC09D8 -8000 .0 = 00CC07D8 -7000 .0 = 00CC05D8 -6000 .0 = 00CC03D8 -5000 .0 = 00CC01D8 -4000 .0 = 00CBFFD8 -3000 .0 = 00CBFDD8 -2000 .0 = 00CBFCD8 -1000 .0 = 00CBFAD8 0 .0 = 00CBF8D8 1000 .0 = 00CBF6D8 1000 .0 = 00CBF7D8 2000 .0 = 00CBF8F0 3000 .0 = 00CBF2D8 4000 .0 = 00CBF0D8 5000 .0 = 00CBEED8 6000 .0 = 00CBEDD8
533.3333 2300 2300 00CBF3C8
Here is a example on how the difference between movement in X and Y is. Here the offset is - 0x8, while change in X was -0x200
X Y Offset 0 .-7000 = 00CBF90E 0 .-6000 = 00CBF904 0 .-5000 = 00CBF9FC 0 .-4000 = 00CBF8F4 0 .-3000 = 00CBF8E8 0 .-2000 = 00CBF8E8 0 .-1000 = 00CBF8E0 0 .0 = 00CBF8D8 0 .1000 = 00CBF8D0 0 .2000 = 00CBF8C8 0 .3000 = 00CBF8C4 0 .4000 = 00CBF8C4
Main Block leads to OFFS A, C and E
Each Off contains a maximum of 8 adt files loaded.
;;;;;;;;;;;;;;;;;;;; ;; MAIN BLOCK ;; ;;;;;;;;;;;;;;;;;;;; 00CBFAD8 - 0A16C008 - A 00CBFBD8 - 0A16D9B8 - B 00CBFCD8 - 0A230008 - C 00CBFDD8 - 0A2319B8 - D 00CBFED8 - 0A484008 - E
;;;;;;;;;;;;;;;;;;;; ;; OFFS A ;; ;;;;;;;;;;;;;;;;;;;; 0A16C240 - 12670008 - 1 0A16C8AC - 13070008 - 2 0A16CF18 - 14070008 - 3 0A16D584 - 166A0008 - 4 0A16DBF0 - 178A0008 - 5 0A16E25C - 182A0008 - 6 0A16E8C8 - 192A0008 - 7 0A16EF34 - 1A0A0008 - 8
;;;;;;;;;;;;;;;;;;;; ;; OFFS C ;; ;;;;;;;;;;;;;;;;;;;; 0A230240 - 1A4A0008 - 1 0A2308AC - 1ACA0008 - 2 0A230F18 - 1C2A0008 - 3 0A231584 - 1C8A0008 - 4 0A231BF0 - 1FAA0008 - 5 0A23225C - 1FEA0008 - 6 0A2328C8 - 20CA0008 - 7 0A232F34 - 210A0008 - 8
;;;;;;;;;;;;;;;;;;;; ;; OFFS E ;; ;;;;;;;;;;;;;;;;;;;; 0A484240 - 22CA0008 - 1 0A4848AC - 258A0008 - 2 0A484F18 - 2BB50008 - 3 0A485584 - 2BF50008 - 4