Difference between revisions of "Main.dol"

From Custom Mario Kart
Jump to navigation Jump to search
m (Add section file ranges)
 
Line 2: Line 2:
 
'''main.dol''' is the name given to the main executable of [[Wii]] and [[GameCube]] games. It is not a named file on the game disk, but rather the name given to the section of the disk containing the main executable. It uses the [[DOL (File Format)|DOL format]]. [[Mario Kart Wii]]'s main.dol contains quite a lot of generic library code, but most of the game specific logic is in [[StaticR.rel]].
 
'''main.dol''' is the name given to the main executable of [[Wii]] and [[GameCube]] games. It is not a named file on the game disk, but rather the name given to the section of the disk containing the main executable. It uses the [[DOL (File Format)|DOL format]]. [[Mario Kart Wii]]'s main.dol contains quite a lot of generic library code, but most of the game specific logic is in [[StaticR.rel]].
  
== Memory map of Mario Kart Wii (PAL) ==
+
== Mario Kart Wii (PAL) ==
 
{| class="wikitable"
 
{| class="wikitable"
 
|+ main.dol sections
 
|+ main.dol sections
 
|-
 
|-
 
! Name<ref>[https://www.nxp.com/docs/en/user-guide/CWPABTR.pdf], CodeWarrior Development Studio for Power Architecture Processors Build Tools Reference Manual, table 14-1</ref>
 
! Name<ref>[https://www.nxp.com/docs/en/user-guide/CWPABTR.pdf], CodeWarrior Development Studio for Power Architecture Processors Build Tools Reference Manual, table 14-1</ref>
! Start
+
! file Start
! End
+
! file End
 +
! VMA Start
 +
! VMA End
 
! Size
 
! Size
 
! Type (text/data)
 
! Type (text/data)
 
|-
 
|-
 
| <code>.init</code>
 
| <code>.init</code>
 +
| 0x100
 +
| 0x2560
 
| 0x80004000
 
| 0x80004000
 
| 0x80006460
 
| 0x80006460
Line 19: Line 23:
 
|-
 
|-
 
| <code>extab</code>
 
| <code>extab</code>
 +
| 0x240080
 +
| 0x240640
 
| 0x80006460
 
| 0x80006460
 
| 0x80006a20
 
| 0x80006a20
Line 25: Line 31:
 
|-
 
|-
 
| <code>extabindex</code>
 
| <code>extabindex</code>
 +
| 0x240640
 +
| 0x240ee0
 
| 0x80006a20
 
| 0x80006a20
 
| 0x800072c0
 
| 0x800072c0
Line 31: Line 39:
 
|-
 
|-
 
| <code>.text</code>
 
| <code>.text</code>
 +
| 0x2560
 +
| 0x240080
 
| 0x800072c0
 
| 0x800072c0
 
| 0x80244de0
 
| 0x80244de0
Line 37: Line 47:
 
|-
 
|-
 
| <code>.ctors</code>
 
| <code>.ctors</code>
 +
| 0x240ee0
 +
| 0x240fa0
 
| 0x80244de0
 
| 0x80244de0
 
| 0x80244ea0
 
| 0x80244ea0
Line 43: Line 55:
 
|-
 
|-
 
| <code>.dtors</code>
 
| <code>.dtors</code>
 +
| 0x240fa0
 +
| 0x240fc0
 
| 0x80244ea0
 
| 0x80244ea0
 
| 0x80244ec0
 
| 0x80244ec0
Line 49: Line 63:
 
|-
 
|-
 
| <code>.rodata</code>
 
| <code>.rodata</code>
 +
| 0x240fc0
 +
| 0x254680
 
| 0x80244ec0
 
| 0x80244ec0
 
| 0x80258580
 
| 0x80258580
Line 55: Line 71:
 
|-
 
|-
 
| <code>.data</code>
 
| <code>.data</code>
 +
| 0x254680
 +
| 0x2a0140
 
| 0x80258580
 
| 0x80258580
 
| 0x802a4040
 
| 0x802a4040
Line 61: Line 79:
 
|-
 
|-
 
| <code>.bss</code>
 
| <code>.bss</code>
 +
| N/A
 +
| N/A
 
| 0x802a4080
 
| 0x802a4080
 
| 0x80384c00
 
| 0x80384c00
Line 67: Line 87:
 
|-
 
|-
 
| <code>.sdata<ref name="sda" /></code>
 
| <code>.sdata<ref name="sda" /></code>
 +
| 0x2a0140
 +
| 0x2a1500
 
| 0x80384c00
 
| 0x80384c00
 
| 0x80385fc0
 
| 0x80385fc0
Line 73: Line 95:
 
|-
 
|-
 
| <code>.sbss<ref name="sda" /></code>
 
| <code>.sbss<ref name="sda" /></code>
 +
| N/A
 +
| N/A
 
| 0x80385fc0
 
| 0x80385fc0
 
| 0x80386fa0
 
| 0x80386fa0
Line 79: Line 103:
 
|-
 
|-
 
| <code>.sdata2<ref name="sda" /></code>
 
| <code>.sdata2<ref name="sda" /></code>
 +
| 0x2a1500
 +
| 0x2a36a0
 
| 0x80386fa0
 
| 0x80386fa0
 
| 0x80389140
 
| 0x80389140
Line 85: Line 111:
 
|-
 
|-
 
| <code>.sbss2<ref name="sda" /></code>
 
| <code>.sbss2<ref name="sda" /></code>
 +
| N/A
 +
| N/A
 
| 0x80389140
 
| 0x80389140
 
| 0x8038917c
 
| 0x8038917c

Latest revision as of 09:21, 17 September 2022

main.dol is the name given to the main executable of Wii and GameCube games. It is not a named file on the game disk, but rather the name given to the section of the disk containing the main executable. It uses the DOL format. Mario Kart Wii's main.dol contains quite a lot of generic library code, but most of the game specific logic is in StaticR.rel.

Mario Kart Wii (PAL)

main.dol sections
Name[1] file Start file End VMA Start VMA End Size Type (text/data)
.init 0x100 0x2560 0x80004000 0x80006460 0x2460 text
extab 0x240080 0x240640 0x80006460 0x80006a20 0x5c0 data
extabindex 0x240640 0x240ee0 0x80006a20 0x800072c0 0x8a0 data
.text 0x2560 0x240080 0x800072c0 0x80244de0 0x23db20 text
.ctors 0x240ee0 0x240fa0 0x80244de0 0x80244ea0 0xc0 data
.dtors 0x240fa0 0x240fc0 0x80244ea0 0x80244ec0 0x20 data
.rodata 0x240fc0 0x254680 0x80244ec0 0x80258580 0x136c0 data
.data 0x254680 0x2a0140 0x80258580 0x802a4040 0x4bac0 data
.bss N/A N/A 0x802a4080 0x80384c00 0xe0b80 (defined 0xe50fc in the header)[2] data
.sdata[2] 0x2a0140 0x2a1500 0x80384c00 0x80385fc0 0x13c0 data
.sbss[2] N/A N/A 0x80385fc0 0x80386fa0 0xfe0 data
.sdata2[2] 0x2a1500 0x2a36a0 0x80386fa0 0x80389140 0x21a0 data
.sbss2[2] N/A N/A 0x80389140 0x8038917c 0x3c data

See also

  1. [1], CodeWarrior Development Studio for Power Architecture Processors Build Tools Reference Manual, table 14-1
  2. 2.0 2.1 2.2 2.3 2.4 DOL_(File_Format)#Small_data_sections DOL SDA implementation