Super Mario 64s source code (from a leak on 4chan so be careful)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

729 lines
29 KiB

5 years ago
  1. /* Super Mario 64 (J) linker script
  2. * generated by n64split v0.4a - N64 ROM splitter */
  3. OUTPUT_ARCH (mips)
  4. /* include/segments.h defines SEG_POOL_START, SEG_POOL_END, SEG_STACK,
  5. * SEG_GODDARD, SEG_MAIN, SEG_ENGINE, SEG_FRAMEBUFFERS */
  6. #include "segments.h"
  7. #define BEGIN_SEG(name, addr) \
  8. _##name##SegmentStart = ADDR(.name); \
  9. _##name##SegmentRomStart = __romPos; \
  10. .name addr : AT(__romPos)
  11. #define END_SEG(name) \
  12. _##name##SegmentEnd = ADDR(.name) + SIZEOF(.name); \
  13. _##name##SegmentRomEnd = __romPos + SIZEOF(.name); \
  14. __romPos += SIZEOF(.name);
  15. #define BEGIN_NOLOAD(name) \
  16. _##name##SegmentNoloadStart = ADDR(.name.noload); \
  17. .name.noload (NOLOAD) :
  18. #define END_NOLOAD(name) \
  19. _##name##SegmentNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload);
  20. #define MIO0_SEG(name, segAddr) \
  21. BEGIN_SEG(name##_mio0, segAddr) \
  22. { \
  23. BUILD_DIR/mio0/name.mio0.o(.data); \
  24. . = ALIGN(0x10); \
  25. } \
  26. END_SEG(name##_mio0)
  27. #define STANDARD_LEVEL(name) \
  28. BEGIN_SEG(name##_segment_7, 0x07000000) \
  29. { \
  30. BUILD_DIR/bin/name/header.o(.seg07); \
  31. } \
  32. END_SEG(name##_segment_7) \
  33. BEGIN_SEG(name, 0x0E000000) \
  34. { \
  35. BUILD_DIR/bin/name/header.o(.level); \
  36. } \
  37. END_SEG(name)
  38. #define STANDARD_OBJECTS(name, segAddr, geoAddr) \
  39. MIO0_SEG(name, segAddr) \
  40. BEGIN_SEG(name##_geo, geoAddr) \
  41. { \
  42. BUILD_DIR/actors/name##_geo.o(.geo); \
  43. . = ALIGN(0x10); \
  44. } \
  45. END_SEG(name##_geo)
  46. SECTIONS
  47. {
  48. __romPos = 0;
  49. BEGIN_SEG(boot, 0x04000000)
  50. {
  51. BUILD_DIR/data/rom_header.o(.text);
  52. BUILD_DIR/asm/boot.o(.text);
  53. }
  54. END_SEG(boot)
  55. /* lib/src/__osDevMgrMain.c and lib/src/osCreateViManager.c contain infinite
  56. * loops compiled without -g, which cause the return statements and the .o
  57. * files themselves to be aligned to 32-byte boundaries. But in the binary,
  58. * they are actually aligned only to 16 bytes! We force this to happen using
  59. * a SUBALIGN directive. */
  60. BEGIN_SEG(main, SEG_MAIN) SUBALIGN(16)
  61. {
  62. BUILD_DIR/asm/entry.o(.text);
  63. BUILD_DIR/src/game/main.o(.text);
  64. BUILD_DIR/src/game/display.o(.text);
  65. BUILD_DIR/src/game/game.o(.text);
  66. BUILD_DIR/src/game/sound_init.o(.text);
  67. BUILD_DIR/src/game/level_update.o(.text);
  68. BUILD_DIR/src/game/interaction.o(.text);
  69. BUILD_DIR/src/game/mario.o(.text);
  70. BUILD_DIR/src/game/mario_step.o(.text);
  71. BUILD_DIR/src/game/mario_actions_cutscene.o(.text);
  72. BUILD_DIR/src/game/mario_actions_automatic.o(.text);
  73. BUILD_DIR/src/game/mario_actions_stationary.o(.text);
  74. BUILD_DIR/src/game/mario_actions_moving.o(.text);
  75. BUILD_DIR/src/game/mario_actions_airborne.o(.text);
  76. BUILD_DIR/src/game/mario_actions_submerged.o(.text);
  77. BUILD_DIR/src/game/mario_actions_object.o(.text);
  78. BUILD_DIR/src/game/level_geo.o(.text);
  79. BUILD_DIR/src/game/mario_misc.o(.text);
  80. BUILD_DIR/src/game/memory.o(.text);
  81. BUILD_DIR/src/game/save_file.o(.text);
  82. BUILD_DIR/src/game/area.o(.text);
  83. BUILD_DIR/src/game/rendering_graph_node.o(.text);
  84. BUILD_DIR/src/game/profiler.o(.text);
  85. BUILD_DIR/asm/decompress.o(.text);
  86. BUILD_DIR/src/game/camera.o(.text);
  87. BUILD_DIR/src/game/debug_course.o(.text);
  88. BUILD_DIR/src/game/object_list_processor.o(.text);
  89. BUILD_DIR/src/game/object_helpers.o(.text);
  90. BUILD_DIR/src/game/behavior_actions.o(.text);
  91. BUILD_DIR/src/game/platform_displacement.o(.text);
  92. BUILD_DIR/src/game/object_collision.o(.text);
  93. BUILD_DIR/src/game/spawn_object.o(.text);
  94. BUILD_DIR/src/game/spawn_sound.o(.text);
  95. BUILD_DIR/src/game/debug.o(.text);
  96. BUILD_DIR/src/game/screen_transition.o(.text);
  97. BUILD_DIR/src/game/shadow.o(.text);
  98. BUILD_DIR/src/game/skybox.o(.text);
  99. BUILD_DIR/src/game/moving_texture.o(.text);
  100. BUILD_DIR/src/game/geo_misc.o(.text);
  101. BUILD_DIR/src/game/paintings.o(.text);
  102. BUILD_DIR/src/game/print.o(.text);
  103. BUILD_DIR/src/game/ingame_menu.o(.text);
  104. BUILD_DIR/src/game/envfx_snow.o(.text);
  105. BUILD_DIR/src/game/envfx_bubbles.o(.text);
  106. BUILD_DIR/src/game/macro_special_objects.o(.text);
  107. BUILD_DIR/src/game/hud.o(.text);
  108. BUILD_DIR/src/game/obj_behaviors.o(.text);
  109. BUILD_DIR/src/game/obj_behaviors_2.o(.text);
  110. BUILD_DIR/src/audio/something.o(.text);
  111. BUILD_DIR/src/audio/dac.o(.text);
  112. BUILD_DIR/src/audio/dma.o(.text);
  113. BUILD_DIR/src/audio/playback.o(.text);
  114. BUILD_DIR/src/audio/playback2.o(.text);
  115. BUILD_DIR/src/audio/interface_1.o(.text);
  116. BUILD_DIR/src/audio/interface_2.o(.text);
  117. #if VERSION_US
  118. . += 0x40;
  119. #endif
  120. BUILD_DIR/libultra.a:osSetTime.o(.text);
  121. BUILD_DIR/libultra.a:osMapTLB.o(.text);
  122. BUILD_DIR/libultra.a:osUnmapTLBAll.o(.text);
  123. BUILD_DIR/libultra.a:sprintf.o(.text);
  124. BUILD_DIR/libultra.a:osCreateMesgQueue.o(.text);
  125. BUILD_DIR/libultra.a:osSetEventMesg.o(.text);
  126. BUILD_DIR/libultra.a:osViSetEvent.o(.text);
  127. BUILD_DIR/libultra.a:osCreateThread.o(.text);
  128. BUILD_DIR/libultra.a:osRecvMesg.o(.text);
  129. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.text);
  130. BUILD_DIR/libultra.a:osSpTaskYield.o(.text);
  131. BUILD_DIR/libultra.a:osSendMesg.o(.text);
  132. BUILD_DIR/libultra.a:osSpTaskYielded.o(.text);
  133. BUILD_DIR/libultra.a:osStartThread.o(.text);
  134. BUILD_DIR/libultra.a:osWritebackDCacheAll.o(.text);
  135. BUILD_DIR/libultra.a:osCreateViManager.o(.text);
  136. BUILD_DIR/libultra.a:osViSetMode.o(.text);
  137. BUILD_DIR/libultra.a:osViBlack.o(.text);
  138. BUILD_DIR/libultra.a:osViSetSpecialFeatures.o(.text);
  139. BUILD_DIR/libultra.a:osCreatePiManager.o(.text);
  140. BUILD_DIR/libultra.a:osSetThreadPri.o(.text);
  141. BUILD_DIR/libultra.a:osInitialize.o(.text);
  142. BUILD_DIR/libultra.a:osViSwapBuffer.o(.text);
  143. BUILD_DIR/libultra.a:sqrtf.o(.text);
  144. BUILD_DIR/libultra.a:osContStartReadData.o(.text);
  145. BUILD_DIR/libultra.a:osContInit.o(.text);
  146. BUILD_DIR/libultra.a:osEepromProbe.o(.text);
  147. BUILD_DIR/libultra.a:llmuldiv.o(.text);
  148. BUILD_DIR/libultra.a:osInvalDCache.o(.text);
  149. BUILD_DIR/libultra.a:osPiStartDma.o(.text);
  150. BUILD_DIR/libultra.a:bzero.o(.text);
  151. BUILD_DIR/libultra.a:osInvalICache.o(.text);
  152. BUILD_DIR/libultra.a:osEepromLongRead.o(.text);
  153. BUILD_DIR/libultra.a:osEepromLongWrite.o(.text);
  154. BUILD_DIR/libultra.a:bcopy.o(.text);
  155. BUILD_DIR/libultra.a:guOrthoF.o(.text);
  156. BUILD_DIR/libultra.a:guPerspectiveF.o(.text);
  157. BUILD_DIR/libultra.a:osGetTime.o(.text);
  158. BUILD_DIR/libultra.a:llconv.o(.text);
  159. BUILD_DIR/libultra.a:cosf.o(.text);
  160. BUILD_DIR/libultra.a:sinf.o(.text);
  161. BUILD_DIR/libultra.a:guTranslateF.o(.text);
  162. BUILD_DIR/libultra.a:guRotateF.o(.text);
  163. BUILD_DIR/libultra.a:guScaleF.o(.text);
  164. BUILD_DIR/libultra.a:osAiSetFrequency.o(.text);
  165. BUILD_DIR/libultra.a:alBnkfNew.o(.text);
  166. BUILD_DIR/libultra.a:osWritebackDCache.o(.text);
  167. BUILD_DIR/libultra.a:osAiGetLength.o(.text);
  168. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.text);
  169. BUILD_DIR/libultra.a:osTimer.o(.text);
  170. BUILD_DIR/libultra.a:_Printf.o(.text);
  171. BUILD_DIR/libultra.a:string.o(.text);
  172. BUILD_DIR/libultra.a:__osDequeueThread.o(.text);
  173. BUILD_DIR/libultra.a:__osDisableInt.o(.text);
  174. BUILD_DIR/libultra.a:__osRestoreInt.o(.text);
  175. BUILD_DIR/libultra.a:__osViInit.o(.text);
  176. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.text);
  177. BUILD_DIR/libultra.a:osVirtualToPhysical.o(.text);
  178. BUILD_DIR/libultra.a:__osSpSetStatus.o(.text);
  179. BUILD_DIR/libultra.a:__osSpSetPc.o(.text);
  180. BUILD_DIR/libultra.a:__osSpRawStartDma.o(.text);
  181. BUILD_DIR/libultra.a:__osSpDeviceBusy.o(.text);
  182. BUILD_DIR/libultra.a:__osSpGetStatus.o(.text);
  183. BUILD_DIR/libultra.a:osGetThreadPri.o(.text);
  184. BUILD_DIR/libultra.a:__osViGetCurrentContext.o(.text);
  185. BUILD_DIR/libultra.a:__osViSwapContext.o(.text);
  186. BUILD_DIR/libultra.a:osGetCount.o(.text);
  187. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.text);
  188. BUILD_DIR/libultra.a:osPiRawStartDma.o(.text);
  189. BUILD_DIR/libultra.a:__osDevMgrMain.o(.text);
  190. BUILD_DIR/libultra.a:__osSetSR.o(.text);
  191. BUILD_DIR/libultra.a:__osGetSR.o(.text);
  192. BUILD_DIR/libultra.a:__osSetFpcCsr.o(.text);
  193. BUILD_DIR/libultra.a:__osSiRawReadIo.o(.text);
  194. BUILD_DIR/libultra.a:__osSiRawWriteIo.o(.text);
  195. BUILD_DIR/libultra.a:osMapTLBRdb.o(.text);
  196. BUILD_DIR/libultra.a:osPiRawReadIo.o(.text);
  197. #if VERSION_JP
  198. . += 0x40;
  199. #endif
  200. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.text);
  201. BUILD_DIR/libultra.a:__osSiRawStartDma.o(.text);
  202. BUILD_DIR/libultra.a:osSetTimer.o(.text);
  203. BUILD_DIR/libultra.a:osEepromWrite.o(.text);
  204. BUILD_DIR/libultra.a:osJamMesg.o(.text);
  205. BUILD_DIR/libultra.a:osPiGetCmdQueue.o(.text);
  206. BUILD_DIR/libultra.a:osEepromRead.o(.text);
  207. BUILD_DIR/libultra.a:guMtxF2L.o(.text);
  208. BUILD_DIR/libultra.a:guMtxIdentF.o(.text);
  209. BUILD_DIR/libultra.a:guNormalize.o(.text);
  210. BUILD_DIR/libultra.a:__osAiDeviceBusy.o(.text);
  211. BUILD_DIR/libultra.a:__osSetCompare.o(.text);
  212. BUILD_DIR/libultra.a:_Litob.o(.text);
  213. BUILD_DIR/libultra.a:_Ldtob.o(.text);
  214. BUILD_DIR/libultra.a:kdebugserver.o(.text);
  215. BUILD_DIR/libultra.a:__osSyncPutChars.o(.text);
  216. BUILD_DIR/libultra.a:osSetIntMask.o(.text);
  217. BUILD_DIR/libultra.a:osDestroyThread.o(.text);
  218. BUILD_DIR/libultra.a:__osProbeTLB.o(.text);
  219. BUILD_DIR/libultra.a:__osSiDeviceBusy.o(.text);
  220. BUILD_DIR/libultra.a:ldiv.o(.text);
  221. BUILD_DIR/libultra.a:__osGetCause.o(.text);
  222. BUILD_DIR/libultra.a:__osAtomicDec.o(.text);
  223. BUILD_DIR/libultra.a:guLookAtRef.o(.text); /* Fast3DEX2 only */
  224. BUILD_DIR/lib/rsp.o(.text);
  225. /* data */
  226. BUILD_DIR/src/game/main.o(.data*);
  227. BUILD_DIR/src/game/display.o(.data*);
  228. BUILD_DIR/src/game/game.o(.data*);
  229. BUILD_DIR/src/game/sound_init.o(.data*);
  230. BUILD_DIR/src/game/level_update.o(.data*);
  231. BUILD_DIR/src/game/interaction.o(.data*);
  232. BUILD_DIR/src/game/mario.o(.data*);
  233. BUILD_DIR/src/game/mario_step.o(.data*);
  234. BUILD_DIR/src/game/mario_actions_cutscene.o(.data*);
  235. BUILD_DIR/src/game/mario_actions_moving.o(.data*);
  236. BUILD_DIR/src/game/mario_actions_submerged.o(.data*);
  237. BUILD_DIR/src/game/mario_actions_object.o(.data*);
  238. BUILD_DIR/src/game/mario_misc.o(.data*);
  239. BUILD_DIR/src/game/memory.o(.data*);
  240. BUILD_DIR/src/game/save_file.o(.data*);
  241. BUILD_DIR/src/game/area.o(.data*);
  242. BUILD_DIR/src/game/rendering_graph_node.o(.data*);
  243. BUILD_DIR/src/game/profiler.o(.data*);
  244. BUILD_DIR/src/game/camera.o(.data*);
  245. BUILD_DIR/src/game/object_list_processor.o(.data*);
  246. BUILD_DIR/src/game/object_helpers.o(.data*);
  247. BUILD_DIR/src/game/behavior_actions.o(.data*);
  248. BUILD_DIR/src/game/platform_displacement.o(.data*);
  249. BUILD_DIR/src/game/spawn_sound.o(.data*);
  250. BUILD_DIR/src/game/debug.o(.data*);
  251. BUILD_DIR/src/game/screen_transition.o(.data*);
  252. BUILD_DIR/src/game/shadow.o(.data*);
  253. BUILD_DIR/src/game/skybox.o(.data*);
  254. BUILD_DIR/src/game/moving_texture.o(.data*);
  255. BUILD_DIR/src/game/geo_misc.o(.data*);
  256. BUILD_DIR/src/game/paintings.o(.data*);
  257. BUILD_DIR/src/game/print.o(.data*);
  258. BUILD_DIR/src/game/ingame_menu.o(.data*);
  259. BUILD_DIR/src/game/envfx_snow.o(.data*);
  260. BUILD_DIR/src/game/envfx_bubbles.o(.data*);
  261. BUILD_DIR/src/game/macro_special_objects.o(.data*);
  262. BUILD_DIR/src/game/hud.o(.data*);
  263. BUILD_DIR/src/game/obj_behaviors.o(.data*);
  264. BUILD_DIR/src/game/obj_behaviors_2.o(.data*);
  265. BUILD_DIR/src/audio/interface_2.o(.data*);
  266. BUILD_DIR/src/audio/data.o(.data*);
  267. BUILD_DIR/libultra.a:osCreateViManager.o(.data*);
  268. BUILD_DIR/libultra.a:osCreatePiManager.o(.data*);
  269. BUILD_DIR/libultra.a:osInitialize.o(.data*);
  270. BUILD_DIR/libultra.a:osContInit.o(.data*);
  271. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.data*);
  272. BUILD_DIR/libultra.a:osTimer.o(.data*);
  273. BUILD_DIR/libultra.a:_Printf.o(.data*);
  274. BUILD_DIR/libultra.a:__osDequeueThread.o(.data*);
  275. BUILD_DIR/libultra.a:__osViInit.o(.data*);
  276. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.data*);
  277. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.data*);
  278. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.data*);
  279. BUILD_DIR/libultra.a:_Litob.o(.data*);
  280. BUILD_DIR/libultra.a:_Ldtob.o(.data*);
  281. BUILD_DIR/libultra.a:osViData.o(.data*);
  282. BUILD_DIR/libultra.a:kdebugserver.o(.data*);
  283. BUILD_DIR/libultra.a:__osSyncPutChars.o(.data*);
  284. BUILD_DIR/libultra.a:guRotateF.o(.data);
  285. /* rodata */
  286. BUILD_DIR/src/game/main.o(.rodata*);
  287. BUILD_DIR/src/game/game.o(.rodata*);
  288. BUILD_DIR/src/game/sound_init.o(.rodata*);
  289. BUILD_DIR/src/game/level_update.o(.rodata*);
  290. BUILD_DIR/src/game/interaction.o(.rodata*);
  291. BUILD_DIR/src/game/mario.o(.rodata*);
  292. BUILD_DIR/src/game/mario_step.o(.rodata*);
  293. BUILD_DIR/src/game/mario_actions_cutscene.o(.rodata*);
  294. BUILD_DIR/src/game/mario_actions_automatic.o(.rodata*);
  295. BUILD_DIR/src/game/mario_actions_stationary.o(.rodata*);
  296. BUILD_DIR/src/game/mario_actions_moving.o(.rodata*);
  297. BUILD_DIR/src/game/mario_actions_airborne.o(.rodata*);
  298. BUILD_DIR/src/game/mario_actions_submerged.o(.rodata*);
  299. BUILD_DIR/src/game/mario_actions_object.o(.rodata*);
  300. BUILD_DIR/src/game/mario_misc.o(.rodata*);
  301. BUILD_DIR/src/game/area.o(.rodata*);
  302. BUILD_DIR/src/game/rendering_graph_node.o(.rodata*);
  303. BUILD_DIR/src/game/camera.o(.rodata*);
  304. BUILD_DIR/src/game/object_list_processor.o(.rodata*);
  305. BUILD_DIR/src/game/object_helpers.o(.rodata*);
  306. BUILD_DIR/src/game/behavior_actions.o(.rodata*);
  307. BUILD_DIR/src/game/object_collision.o(.rodata*);
  308. BUILD_DIR/src/game/spawn_object.o(.rodata*);
  309. BUILD_DIR/src/game/spawn_sound.o(.rodata*);
  310. BUILD_DIR/src/game/debug.o(.rodata*);
  311. BUILD_DIR/src/game/screen_transition.o(.rodata*);
  312. BUILD_DIR/src/game/shadow.o(.rodata*);
  313. BUILD_DIR/src/game/skybox.o(.rodata*);
  314. BUILD_DIR/src/game/moving_texture.o(.rodata*);
  315. BUILD_DIR/src/game/geo_misc.o(.rodata*);
  316. BUILD_DIR/src/game/paintings.o(.rodata*);
  317. BUILD_DIR/src/game/print.o(.rodata*);
  318. BUILD_DIR/src/game/ingame_menu.o(.rodata*);
  319. BUILD_DIR/src/game/envfx_snow.o(.rodata*);
  320. BUILD_DIR/src/game/envfx_bubbles.o(.rodata*);
  321. BUILD_DIR/src/game/macro_special_objects.o(.rodata*);
  322. BUILD_DIR/src/game/hud.o(.rodata*);
  323. BUILD_DIR/src/game/obj_behaviors.o(.rodata*);
  324. BUILD_DIR/src/game/obj_behaviors_2.o(.rodata*);
  325. BUILD_DIR/src/audio/something.o(.rodata*);
  326. BUILD_DIR/src/audio/dac.o(.rodata*);
  327. BUILD_DIR/src/audio/playback.o(.rodata*);
  328. BUILD_DIR/src/audio/playback2.o(.rodata*);
  329. BUILD_DIR/src/audio/interface_1.o(.rodata*);
  330. BUILD_DIR/src/audio/interface_2.o(.rodata*);
  331. BUILD_DIR/libultra.a:guPerspectiveF.o(.rodata*);
  332. BUILD_DIR/libultra.a:llconv.o(.rodata*);
  333. BUILD_DIR/libultra.a:cosf.o(.rodata*);
  334. BUILD_DIR/libultra.a:sinf.o(.rodata*);
  335. BUILD_DIR/libultra.a:guRotateF.o(.rodata*);
  336. BUILD_DIR/libultra.a:_Printf.o(.rodata*);
  337. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.rodata*);
  338. BUILD_DIR/libultra.a:NaN.o(.rodata*);
  339. BUILD_DIR/libultra.a:_Litob.o(.rodata*);
  340. BUILD_DIR/libultra.a:_Ldtob.o(.rodata*);
  341. BUILD_DIR/libultra.a:osSetIntMask.o(.rodata*);
  342. BUILD_DIR/libultra.a:guLookAtRef.o(.rodata*); /* Fast3DEX2 only */
  343. BUILD_DIR/lib/rsp.o(.rodata*);
  344. }
  345. END_SEG(main)
  346. BEGIN_NOLOAD(main)
  347. {
  348. BUILD_DIR/src/game/main.o(.bss*);
  349. BUILD_DIR/src/game/game.o(.bss*);
  350. BUILD_DIR/src/game/sound_init.o(.bss*);
  351. BUILD_DIR/src/game/level_update.o(.bss*);
  352. BUILD_DIR/src/game/interaction.o(.bss*);
  353. BUILD_DIR/src/game/mario.o(.bss*);
  354. BUILD_DIR/src/game/mario_actions_cutscene.o(.bss*);
  355. BUILD_DIR/src/game/mario_actions_moving.o(.bss*);
  356. BUILD_DIR/src/game/mario_actions_submerged.o(.bss*);
  357. BUILD_DIR/src/game/mario_misc.o(.bss*);
  358. BUILD_DIR/src/game/memory.o(.bss*);
  359. BUILD_DIR/src/game/save_file.o(.bss*);
  360. BUILD_DIR/src/game/area.o(.bss*);
  361. BUILD_DIR/src/game/rendering_graph_node.o(.bss*);
  362. BUILD_DIR/src/game/profiler.o(.bss*);
  363. BUILD_DIR/src/game/camera.o(.bss*);
  364. BUILD_DIR/src/game/object_list_processor.o(.bss*);
  365. BUILD_DIR/src/game/room.o(.bss*);
  366. BUILD_DIR/src/game/object_helpers.o(.bss*);
  367. BUILD_DIR/src/game/behavior_actions.o(.bss*);
  368. BUILD_DIR/src/game/debug.o(.bss*);
  369. BUILD_DIR/src/game/shadow.o(.bss*);
  370. BUILD_DIR/src/game/skybox.o(.bss*);
  371. BUILD_DIR/src/game/moving_texture.o(.bss*);
  372. BUILD_DIR/src/game/geo_misc.o(.bss*);
  373. BUILD_DIR/src/game/paintings.o(.bss*);
  374. BUILD_DIR/src/game/print.o(.bss*);
  375. BUILD_DIR/src/game/ingame_menu.o(.bss*);
  376. BUILD_DIR/src/game/envfx_snow.o(.bss*);
  377. BUILD_DIR/src/game/envfx_bubbles.o(.bss*);
  378. BUILD_DIR/src/game/macro_special_objects.o(.bss*)
  379. BUILD_DIR/src/game/hud.o(.bss*);
  380. BUILD_DIR/src/game/obj_behaviors.o(.bss*);
  381. BUILD_DIR/src/game/obj_behaviors_2.o(.bss*);
  382. BUILD_DIR/src/audio/interface_2.o(.bss*);
  383. BUILD_DIR/libultra.a:osSetEventMesg.o(.bss*);
  384. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.bss*);
  385. BUILD_DIR/libultra.a:osCreateViManager.o(.bss*);
  386. BUILD_DIR/libultra.a:osCreatePiManager.o(.bss*);
  387. BUILD_DIR/libultra.a:osInitialize.o(.bss*);
  388. BUILD_DIR/libultra.a:osContStartReadData.o(.bss*);
  389. BUILD_DIR/libultra.a:osContInit.o(.bss*);
  390. BUILD_DIR/libultra.a:guRotateF.o(.bss*);
  391. BUILD_DIR/libultra.a:osTimer.o(.bss*);
  392. BUILD_DIR/libultra.a:_Printf.o(.bss*);
  393. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.bss*);
  394. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.bss*);
  395. BUILD_DIR/libultra.a:osEepromWrite.o(.bss*);
  396. BUILD_DIR/libultra.a:kdebugserver.o(.bss*);
  397. }
  398. END_NOLOAD(main)
  399. ASSERT((. <= SEG_ENGINE), "Error: main segment extended into engine.")
  400. BEGIN_SEG(engine, SEG_ENGINE)
  401. {
  402. BUILD_DIR/src/engine/math_util.o(.text);
  403. BUILD_DIR/src/engine/graph_node.o(.text);
  404. BUILD_DIR/src/engine/geo_layout.o(.text);
  405. BUILD_DIR/src/engine/level_script.o(.text);
  406. BUILD_DIR/src/engine/surface_collision.o(.text);
  407. BUILD_DIR/src/engine/surface_load.o(.text);
  408. BUILD_DIR/src/engine/behavior_script.o(.text);
  409. /* data */
  410. BUILD_DIR/src/engine/graph_node.o(.data*);
  411. BUILD_DIR/src/engine/math_util.o(.data*);
  412. BUILD_DIR/data/trig_tables.o(.data*);
  413. BUILD_DIR/src/engine/geo_layout.o(.data*);
  414. BUILD_DIR/src/engine/level_script.o(.data*);
  415. BUILD_DIR/src/engine/behavior_script.o(.data*);
  416. /* rodata */
  417. BUILD_DIR/src/engine/math_util.o(.rodata*);
  418. BUILD_DIR/src/engine/level_script.o(.rodata*);
  419. BUILD_DIR/src/engine/surface_collision.o(.rodata*);
  420. BUILD_DIR/src/engine/surface_load.o(.rodata*);
  421. }
  422. END_SEG(engine)
  423. BEGIN_NOLOAD(engine)
  424. {
  425. BUILD_DIR/src/engine/math_util.o(.bss*);
  426. BUILD_DIR/src/engine/geo_layout.o(.bss*);
  427. BUILD_DIR/src/engine/level_script.o(.bss*);
  428. BUILD_DIR/src/engine/surface_collision.o(.bss*);
  429. BUILD_DIR/src/engine/surface_load.o(.bss*);
  430. BUILD_DIR/src/engine/behavior_script.o(.bss*);
  431. }
  432. END_NOLOAD(engine)
  433. ASSERT((. <= SEG_FRAMEBUFFERS), "Error: engine segment extended into framebuffers.")
  434. . = SEG_FRAMEBUFFERS;
  435. BEGIN_NOLOAD(framebuffers)
  436. {
  437. BUILD_DIR/data/framebuffers.o(.bss*);
  438. }
  439. END_NOLOAD(framebuffers)
  440. __expansionRamStart = 0x80400000;
  441. ASSERT((. <= __expansionRamStart), "Error: RDRAM expanded into Expansion RAM, despite Expansion RAM not being defined.")
  442. BEGIN_SEG(entry, 0x10000000)
  443. {
  444. BUILD_DIR/levels/entry.o(.level);
  445. }
  446. END_SEG(entry)
  447. /* load MIO0 and level data */
  448. MIO0_SEG(segment2, 0x02000000)
  449. /* mario actor group */
  450. STANDARD_OBJECTS(group0, 0x04000000, 0x17000000)
  451. /* load the other actor groups */
  452. STANDARD_OBJECTS(group1, 0x05000000, 0x0C000000)
  453. STANDARD_OBJECTS(group2, 0x05000000, 0x0C000000)
  454. STANDARD_OBJECTS(group3, 0x05000000, 0x0C000000)
  455. STANDARD_OBJECTS(group4, 0x05000000, 0x0C000000)
  456. STANDARD_OBJECTS(group5, 0x05000000, 0x0C000000)
  457. STANDARD_OBJECTS(group6, 0x05000000, 0x0C000000)
  458. STANDARD_OBJECTS(group7, 0x05000000, 0x0C000000)
  459. STANDARD_OBJECTS(group8, 0x05000000, 0x0C000000)
  460. STANDARD_OBJECTS(group9, 0x05000000, 0x0C000000)
  461. STANDARD_OBJECTS(group10, 0x05000000, 0x0C000000)
  462. STANDARD_OBJECTS(group11, 0x05000000, 0x0C000000)
  463. STANDARD_OBJECTS(group12, 0x06000000, 0x0D000000)
  464. STANDARD_OBJECTS(group13, 0x06000000, 0x0D000000)
  465. STANDARD_OBJECTS(group14, 0x06000000, 0x0D000000)
  466. STANDARD_OBJECTS(group15, 0x06000000, 0x0D000000)
  467. STANDARD_OBJECTS(group16, 0x06000000, 0x0D000000)
  468. STANDARD_OBJECTS(group17, 0x06000000, 0x0D000000)
  469. /* load the common actor groups */
  470. STANDARD_OBJECTS(common0, 0x08000000, 0x0F000000)
  471. STANDARD_OBJECTS(common1, 0x03000000, 0x16000000)
  472. /* use segmented addressing for behaviors */
  473. BEGIN_SEG(behavior, 0x13000000)
  474. {
  475. BUILD_DIR/data/behavior_data.o(.behavior);
  476. }
  477. END_SEG(behavior)
  478. /* 0x8016F000 21D7D0-255EC0 [386F0] */
  479. BEGIN_SEG(goddard, SEG_GODDARD)
  480. {
  481. BUILD_DIR/src/game/level_select_menu.o(.text);
  482. BUILD_DIR/src/game/intro_geo.o(.text);
  483. BUILD_DIR/src/game/file_select.o(.text);
  484. BUILD_DIR/src/game/star_select.o(.text);
  485. BUILD_DIR/src/goddard/gd_main.o(.text);
  486. BUILD_DIR/src/goddard/gd_memory.o(.text);
  487. BUILD_DIR/src/goddard/mhead_sfx.o(.text);
  488. BUILD_DIR/src/goddard/draw_objects.o(.text);
  489. BUILD_DIR/src/goddard/mario_head_1.o(.text);
  490. BUILD_DIR/src/goddard/mario_head_2.o(.text);
  491. BUILD_DIR/src/goddard/mario_head_3.o(.text);
  492. BUILD_DIR/src/goddard/dynlist_proc.o(.text);
  493. BUILD_DIR/src/goddard/old_obj_fn.o(.text);
  494. BUILD_DIR/src/goddard/profiler_utils.o(.text);
  495. BUILD_DIR/src/goddard/joint_fns.o(.text);
  496. BUILD_DIR/src/goddard/skin_fns.o(.text);
  497. BUILD_DIR/src/goddard/matrix_fns.o(.text);
  498. BUILD_DIR/src/goddard/half_6.o(.text);
  499. BUILD_DIR/src/goddard/mario_head_6.o(.text);
  500. /* data, rodata, per file */
  501. BUILD_DIR/src/game/level_select_menu.o(.data*);
  502. BUILD_DIR/src/game/level_select_menu.o(.rodata*);
  503. BUILD_DIR/src/game/intro_geo.o(.data*);
  504. BUILD_DIR/src/game/file_select.o(.data*);
  505. BUILD_DIR/src/game/file_select.o(.rodata*);
  506. BUILD_DIR/src/game/star_select.o(.data*);
  507. BUILD_DIR/src/game/star_select.o(.rodata*);
  508. /* goddard subsystem data */
  509. BUILD_DIR/src/goddard/gd_main.o(.data*);
  510. BUILD_DIR/src/goddard/draw_objects.o(.data*);
  511. BUILD_DIR/src/goddard/mario_head_1.o(.data*);
  512. BUILD_DIR/src/goddard/mario_head_3.o(.data*);
  513. BUILD_DIR/src/goddard/dynlist_proc.o(.data*);
  514. BUILD_DIR/src/goddard/profiler_utils.o(.data*);
  515. BUILD_DIR/src/goddard/joint_fns.o(.data*);
  516. BUILD_DIR/src/goddard/half_6.o(.data*);
  517. BUILD_DIR/src/goddard/mario_head_6.o(.data*);
  518. /* goddard texture and DLs */
  519. BUILD_DIR/data/goddard_tex_dl.o(.rodata*);
  520. /* goddard subsystem rodata */
  521. BUILD_DIR/src/goddard/gd_main.o(.rodata*);
  522. BUILD_DIR/src/goddard/gd_memory.o(.rodata*);
  523. BUILD_DIR/src/goddard/draw_objects.o(.rodata*);
  524. BUILD_DIR/src/goddard/mario_head_1.o(.rodata*);
  525. BUILD_DIR/src/goddard/mario_head_2.o(.rodata*);
  526. BUILD_DIR/src/goddard/mario_head_3.o(.rodata*);
  527. BUILD_DIR/src/goddard/dynlist_proc.o(.rodata*);
  528. BUILD_DIR/src/goddard/old_obj_fn.o(.rodata*);
  529. BUILD_DIR/src/goddard/profiler_utils.o(.rodata*);
  530. BUILD_DIR/src/goddard/joint_fns.o(.rodata*);
  531. BUILD_DIR/src/goddard/skin_fns.o(.rodata*);
  532. BUILD_DIR/src/goddard/matrix_fns.o(.rodata*);
  533. BUILD_DIR/src/goddard/half_6.o(.rodata*);
  534. BUILD_DIR/src/goddard/mario_head_6.o(.rodata*);
  535. }
  536. END_SEG(goddard)
  537. BEGIN_NOLOAD(goddard)
  538. {
  539. BUILD_DIR/src/game/intro_geo.o(.bss*);
  540. BUILD_DIR/src/game/file_select.o(.bss*);
  541. BUILD_DIR/src/game/star_select.o(.bss*);
  542. BUILD_DIR/src/goddard/gd_main.o(.bss*);
  543. BUILD_DIR/src/goddard/gd_memory.o(.bss*);
  544. BUILD_DIR/src/goddard/mhead_sfx.o(.bss*);
  545. BUILD_DIR/src/goddard/draw_objects.o(.bss*);
  546. BUILD_DIR/src/goddard/mario_head_1.o(.bss*);
  547. BUILD_DIR/src/goddard/mario_head_2.o(.bss*);
  548. BUILD_DIR/src/goddard/mario_head_3.o(.bss*);
  549. BUILD_DIR/src/goddard/dynlist_proc.o(.bss*);
  550. BUILD_DIR/src/goddard/old_obj_fn.o(.bss*);
  551. BUILD_DIR/src/goddard/profiler_utils.o(.bss*);
  552. BUILD_DIR/src/goddard/joint_fns.o(.bss*);
  553. BUILD_DIR/src/goddard/skin_fns.o(.bss*);
  554. BUILD_DIR/src/goddard/half_6.o(.bss*);
  555. BUILD_DIR/src/goddard/mario_head_6.o(.bss*);
  556. }
  557. END_NOLOAD(goddard)
  558. ASSERT((. <= SEG_POOL_END), "Error: extended past pool end.")
  559. . = SEG_STACK;
  560. BEGIN_NOLOAD(stack)
  561. {
  562. BUILD_DIR/data/stack.o(.stack);
  563. }
  564. END_NOLOAD(stack)
  565. ASSERT((. <= SEG_MAIN), "Error: stack segment extended into main.")
  566. /* 0x268020 0x268020-0 [0] */
  567. BEGIN_SEG(intro, 0x14000000)
  568. {
  569. BUILD_DIR/bin/intro/header.o(.level);
  570. }
  571. END_SEG(intro)
  572. BEGIN_SEG(intro_segment_7, 0x07000000)
  573. {
  574. BUILD_DIR/bin/intro/header.o(.seg07);
  575. }
  576. END_SEG(intro_segment_7)
  577. MIO0_SEG(debug_level_select, 0x07000000)
  578. MIO0_SEG(title_screen_bg, 0x0A000000)
  579. /* 271B20-2A42A0 [32780] */
  580. BEGIN_SEG(gd_dynlists, 0x04000000)
  581. {
  582. BUILD_DIR/src/goddard/dynlists/dynlist_test_cube.o(.data);
  583. BUILD_DIR/src/goddard/dynlists/dynlist_unused.o(.data);
  584. BUILD_DIR/src/goddard/dynlists/dynlist_mario_face.o(.data);
  585. BUILD_DIR/src/goddard/dynlists/dynlists_mario_eyes.o(.data);
  586. BUILD_DIR/src/goddard/dynlists/dynlists_mario_eyebrows_mustache.o(.data);
  587. BUILD_DIR/src/goddard/dynlists/dynlist_mario_master.o(.data);
  588. BUILD_DIR/src/goddard/dynlists/anim_mario_mustache_right.o(.data);
  589. BUILD_DIR/src/goddard/dynlists/anim_mario_mustache_left.o(.data);
  590. BUILD_DIR/src/goddard/dynlists/anim_mario_lips_1.o(.data);
  591. BUILD_DIR/src/goddard/dynlists/anim_mario_lips_2.o(.data);
  592. BUILD_DIR/src/goddard/dynlists/anim_mario_eyebrows_1.o(.data);
  593. BUILD_DIR/src/goddard/dynlists/anim_group_1.o(.data);
  594. BUILD_DIR/src/goddard/dynlists/anim_group_2.o(.data);
  595. BUILD_DIR/src/goddard/dynlists/dynlist_test_cube.o(.rodata);
  596. BUILD_DIR/src/goddard/dynlists/dynlist_unused.o(.rodata);
  597. }
  598. END_SEG(gd_dynlists)
  599. gMainLevels = __romPos;
  600. BEGIN_SEG(menu, 0x14000000)
  601. {
  602. BUILD_DIR/bin/menu/header.o(.level);
  603. }
  604. END_SEG(menu)
  605. BEGIN_SEG(menu_segment_7, 0x07000000)
  606. {
  607. BUILD_DIR/bin/menu/header.o(.seg07);
  608. }
  609. END_SEG(menu_segment_7)
  610. BEGIN_SEG(scripts, 0x15000000)
  611. {
  612. BUILD_DIR/levels/scripts.o(.level);
  613. }
  614. END_SEG(scripts)
  615. MIO0_SEG(water_skybox, 0x0A000000)
  616. MIO0_SEG(ccm_skybox, 0x0A000000)
  617. MIO0_SEG(clouds_skybox, 0x0A000000)
  618. MIO0_SEG(bitfs_skybox, 0x0A000000)
  619. MIO0_SEG(wdw_skybox, 0x0A000000)
  620. MIO0_SEG(cloud_floor_skybox, 0x0A000000)
  621. MIO0_SEG(ssl_skybox, 0x0A000000)
  622. MIO0_SEG(bbh_skybox, 0x0A000000)
  623. MIO0_SEG(bidw_skybox, 0x0A000000)
  624. MIO0_SEG(bits_skybox, 0x0A000000)
  625. // Texture bins
  626. MIO0_SEG(fire, 0x09000000)
  627. MIO0_SEG(spooky, 0x09000000)
  628. MIO0_SEG(generic, 0x09000000)
  629. MIO0_SEG(water, 0x09000000)
  630. MIO0_SEG(sky, 0x09000000)
  631. MIO0_SEG(snow, 0x09000000)
  632. MIO0_SEG(cave, 0x09000000)
  633. MIO0_SEG(machine, 0x09000000)
  634. MIO0_SEG(mountain, 0x09000000)
  635. MIO0_SEG(grass, 0x09000000)
  636. MIO0_SEG(outside, 0x09000000)
  637. MIO0_SEG(inside, 0x09000000)
  638. MIO0_SEG(effect, 0x0B000000)
  639. STANDARD_LEVEL(bbh)
  640. STANDARD_LEVEL(ccm)
  641. STANDARD_LEVEL(castle_inside)
  642. STANDARD_LEVEL(hmc)
  643. STANDARD_LEVEL(ssl)
  644. STANDARD_LEVEL(bob)
  645. STANDARD_LEVEL(sl)
  646. STANDARD_LEVEL(wdw)
  647. STANDARD_LEVEL(jrb)
  648. STANDARD_LEVEL(thi)
  649. STANDARD_LEVEL(ttc)
  650. STANDARD_LEVEL(rr)
  651. STANDARD_LEVEL(castle_grounds)
  652. STANDARD_LEVEL(bitdw)
  653. STANDARD_LEVEL(vcutm)
  654. STANDARD_LEVEL(bitfs)
  655. STANDARD_LEVEL(sa)
  656. STANDARD_LEVEL(bits)
  657. STANDARD_LEVEL(lll)
  658. STANDARD_LEVEL(ddd)
  659. STANDARD_LEVEL(wf)
  660. STANDARD_LEVEL(ending)
  661. STANDARD_LEVEL(castle_courtyard)
  662. STANDARD_LEVEL(pss)
  663. STANDARD_LEVEL(cotmc)
  664. STANDARD_LEVEL(totwc)
  665. STANDARD_LEVEL(bowser_1)
  666. STANDARD_LEVEL(wmotr)
  667. STANDARD_LEVEL(bowser_2)
  668. STANDARD_LEVEL(bowser_3)
  669. STANDARD_LEVEL(ttm)
  670. /* 4E9FA0-? [?] */
  671. BEGIN_SEG(assets, __romPos)
  672. {
  673. BUILD_DIR/assets/mario_anim_data.o(.data);
  674. . = ALIGN(0x10);
  675. BUILD_DIR/assets/demo_data.o(.data);
  676. . = ALIGN(0x10);
  677. BUILD_DIR/assets/sound_data.ctl.o(.data);
  678. . = ALIGN(0x10);
  679. BUILD_DIR/assets/sound_data.tbl.o(.data);
  680. . = ALIGN(0x10);
  681. BUILD_DIR/assets/music_data.sbk.o(.data);
  682. . = ALIGN(0x10);
  683. }
  684. END_SEG(assets)
  685. /* Discard everything not specifically mentioned above. */
  686. /DISCARD/ :
  687. {
  688. *(*);
  689. }
  690. }