Luigi's Mansion:Docs/DOL (Information)

From LM Hacking
Jump to navigation Jump to search

Summary[edit | edit source]

In Luigi Mansion, the game uses the DOL as the executable. This document is for organizing sections of data in each of the executable.

Game File Information[edit | edit source]

This is a custom GameCube program file format, which is directly booted by GameCubes' BIOS (to be exact, by the apploader on retail discs. a different apploader could well load a binary in whatever different format.).

Start End Size Description
0x0000 0x001B Text[0..6] sections File Positions
0x001C 0x0047 Data[0..10] sections File Positions
0x0048 0x0063 Text[0..6] sections Mem Address
0x0064 0x008F Data[0..10] sections Mem Address
0x0090 0x00AB Text[0..6] sections Sizes
0x00AC 0x00D7 Data[0..10] sections Sizes
0x00D8 0x04 BSS Mem address
0x00DC 0x04 BSS Size
0x00E0 0x04 Entry point
0x00e4 0x1c Unused
0x0100 Start of sections data (body)
(Reference: https://www.gc-forever.com/yagcd/chap14.html#sec14.2)

Executable Data[edit | edit source]

NTSC-U Header[edit | edit source]

Name Offset Length (Dec)
TEXT[0] 0x100 9152
TEXT[1] 0x24c0 2122592
DATA[0] 0x208820 384
DATA[1] 0x2089a0 288
DATA[2] 0x208ac0 800
DATA[3] 0x208de0 32
DATA[4] 0x208e00 49920
DATA[5] 0x215100 1566688
DATA[6] 0x3938e0 32896
DATA[7] 0x39b960 16576
BSS 1322893

PAL (Revision 0) Header[edit | edit source]

Name Offset Length (Dec)
TEXT[0] 0x100 9248
TEXT[1] 0x2520 2142944
DATA[0] 0x20d800 384
DATA[1] 0x20d980 288
DATA[2] 0x20daa0 800
DATA[3] 0x20ddc0 32
DATA[4] 0x20dde0 50272
DATA[5] 0x21a240 1485888
DATA[6] 0x384e80 32896
DATA[7] 0x38cf00 16672
BSS 1306925

Raw Documents[edit | edit source]

NTSC-U[edit | edit source]

start.dol NTSC-U Header 
luigim1

Size: 3799808
DOL IMAGE HEADER :

=TEXT=
TEXT[0] at Offset 0x100, length 9152 -> VA 0x80031000
TEXT[1] at offset 0x24c0, length 2122592 -> VA 0x80005760

=DATA=
DATA[0] segment at offset 0x208820, length 384 		-> VA 0x800054c0
DATA[1] segment at offset 0x2089a0, length 288 		-> VA 0x80005640
DATA[2] segment at offset 0x208ac0, length 800 		-> VA 0x8020bac0
DATA[3] segment at offset 0x208de0, length 32  		-> VA 0x8020bde0
DATA[4] segment at offset 0x208e00, length 49920 	-> VA 0x8020be00
DATA[5] segment at offset 0x215100, length 1566688 	-> VA 0x80218100
DATA[6] segment at offset 0x3938e0, length 32896	-> VA 0x804cff60
DATA[7] segment at offset 0x39b960, length 16576	-> VA 0x804d9880

=MISC=
BSS segment length 1322893	-> VA 0x803968e0
Entry point --> 0x80003100

PAL (Revision 0)[edit | edit source]

start.dol PAL Header 
luigim1

Size: 3739680
DOL IMAGE HEADER :

=TEXT=
TEXT[0] at offset 0x100, length 9248  	 	-> VA 0x80003100
TEXT[1] at offset 0x2520, length 2142944  	-> VA 0x800057c0

=DATA=
DATA[0] segment at offset 0x20d800, length 384   	-> VA 0x80005520
DATA[1] segment at offset 0x20d980, length 288   	-> VA 0x800056a0
DATA[2] segment at offset 0x20daa0, length 800   	-> VA 0x80210aa0
DATA[3] segment at offset 0x20ddc0, length 32   	-> VA 0x80210dc0
DATA[4] segment at offset 0x20dde0, length 50272   	-> VA 0x80210de0
DATA[5] segment at offset 0x21a240, length 1485888   	-> VA 0x8021d240
DATA[6] segment at offset 0x384e80, length 32896   	-> VA 0x804bd620
DATA[7] segment at offset 0x38cf00, length 16672   	-> VA 0x804c6fc0

=MISC=
BSS segment length 1306925 		-> VA 0x80387e80
Entry point --> 0x80003100