Super Mario 64 OpenGL port for PC. Mirror of https://github.com/sm64pc/sm64pc https://github.com/sm64pc/sm64pc
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.
 
 
 
 
 
 

1022 lines
40 KiB

  1. OUTPUT_ARCH (mips)
  2. /* include/segments.h defines SEG_POOL_START, SEG_POOL_END, SEG_BUFFERS,
  3. * SEG_GODDARD, SEG_MAIN, SEG_ENGINE, SEG_FRAMEBUFFERS */
  4. #include "segments.h"
  5. #define BEGIN_SEG(name, addr) \
  6. _##name##SegmentStart = ADDR(.name); \
  7. _##name##SegmentRomStart = __romPos; \
  8. .name addr : AT(__romPos)
  9. #define END_SEG(name) \
  10. _##name##SegmentEnd = ADDR(.name) + SIZEOF(.name); \
  11. _##name##SegmentRomEnd = __romPos + SIZEOF(.name); \
  12. __romPos += SIZEOF(.name);
  13. #define BEGIN_NOLOAD(name) \
  14. _##name##SegmentNoloadStart = ADDR(.name.noload); \
  15. .name.noload (NOLOAD) :
  16. #define END_NOLOAD(name) \
  17. _##name##SegmentNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload);
  18. #define MIO0_SEG(name, segAddr) \
  19. BEGIN_SEG(name##_mio0, segAddr) \
  20. { \
  21. BUILD_DIR/bin/name.mio0.o(.data); \
  22. . = ALIGN(0x10); \
  23. } \
  24. END_SEG(name##_mio0)
  25. #define MIO0_EU_SEG(name, segAddr) \
  26. BEGIN_SEG(name##_mio0, segAddr) \
  27. { \
  28. BUILD_DIR/bin/eu/name.mio0.o(.data); \
  29. . = ALIGN(0x10); \
  30. } \
  31. END_SEG(name##_mio0)
  32. #define STANDARD_LEVEL(name) \
  33. BEGIN_SEG(name##_segment_7, 0x07000000) \
  34. { \
  35. BUILD_DIR/levels/name/leveldata.mio0.o(.data); \
  36. . = ALIGN(0x10); \
  37. } \
  38. END_SEG(name##_segment_7) \
  39. BEGIN_SEG(name, 0x0E000000) \
  40. { \
  41. BUILD_DIR/levels/name/script.o(.data); \
  42. BUILD_DIR/levels/name/geo.o(.data); \
  43. } \
  44. END_SEG(name)
  45. #define STANDARD_OBJECTS(name, segAddr, geoAddr) \
  46. BEGIN_SEG(name##_mio0, segAddr) \
  47. { \
  48. BUILD_DIR/actors/name.mio0.o(.data); \
  49. . = ALIGN(0x10); \
  50. } \
  51. END_SEG(name##_mio0) \
  52. BEGIN_SEG(name##_geo, geoAddr) \
  53. { \
  54. BUILD_DIR/actors/name##_geo.o(.data); \
  55. } \
  56. END_SEG(name##_geo)
  57. SECTIONS
  58. {
  59. __romPos = 0;
  60. BEGIN_SEG(boot, 0x04000000)
  61. {
  62. BUILD_DIR/asm/rom_header.o(.text);
  63. BUILD_DIR/asm/boot.o(.text);
  64. }
  65. END_SEG(boot)
  66. . = 0x80000400;
  67. BEGIN_NOLOAD(zbuffer) {
  68. BUILD_DIR/src/buffers/zbuffer.o(.bss*);
  69. }
  70. /* lib/src/__osDevMgrMain.c and lib/src/osCreateViManager.c contain infinite
  71. * loops compiled without -g, which cause the return statements and the .o
  72. * files themselves to be aligned to 32-byte boundaries. But in the binary,
  73. * they are actually aligned only to 16 bytes! We force this to happen using
  74. * a SUBALIGN directive. */
  75. BEGIN_SEG(main, SEG_MAIN) SUBALIGN(16)
  76. {
  77. BUILD_DIR/asm/entry.o(.text);
  78. BUILD_DIR/src/game/crash_screen.o(.text);
  79. BUILD_DIR/src/game/main.o(.text);
  80. BUILD_DIR/src/game/game_init.o(.text);
  81. BUILD_DIR/src/game/sound_init.o(.text);
  82. #ifdef VERSION_SH
  83. BUILD_DIR/src/game/thread6.o(.text);
  84. #endif
  85. BUILD_DIR/src/game/level_update.o(.text);
  86. BUILD_DIR/src/game/interaction.o(.text);
  87. BUILD_DIR/src/game/mario.o(.text);
  88. BUILD_DIR/src/game/mario_step.o(.text);
  89. BUILD_DIR/src/game/mario_actions_cutscene.o(.text);
  90. BUILD_DIR/src/game/mario_actions_automatic.o(.text);
  91. BUILD_DIR/src/game/mario_actions_stationary.o(.text);
  92. BUILD_DIR/src/game/mario_actions_moving.o(.text);
  93. BUILD_DIR/src/game/mario_actions_airborne.o(.text);
  94. BUILD_DIR/src/game/mario_actions_submerged.o(.text);
  95. BUILD_DIR/src/game/mario_actions_object.o(.text);
  96. BUILD_DIR/src/game/level_geo.o(.text);
  97. BUILD_DIR/src/game/mario_misc.o(.text);
  98. BUILD_DIR/src/game/memory.o(.text);
  99. BUILD_DIR/src/game/save_file.o(.text);
  100. BUILD_DIR/src/game/area.o(.text);
  101. BUILD_DIR/src/game/rendering_graph_node.o(.text);
  102. BUILD_DIR/src/game/profiler.o(.text);
  103. BUILD_DIR/asm/decompress.o(.text);
  104. BUILD_DIR/src/game/camera.o(.text);
  105. BUILD_DIR/src/game/debug_course.o(.text);
  106. BUILD_DIR/src/game/object_list_processor.o(.text);
  107. #ifndef VERSION_EU
  108. BUILD_DIR/src/game/object_helpers.o(.text);
  109. #endif
  110. BUILD_DIR/src/game/behavior_actions.o(.text);
  111. BUILD_DIR/src/game/platform_displacement.o(.text);
  112. #ifndef VERSION_EU
  113. BUILD_DIR/src/game/object_collision.o(.text);
  114. BUILD_DIR/src/game/spawn_object.o(.text);
  115. #endif
  116. BUILD_DIR/src/game/spawn_sound.o(.text);
  117. BUILD_DIR/src/game/debug.o(.text);
  118. BUILD_DIR/src/game/screen_transition.o(.text);
  119. BUILD_DIR/src/game/shadow.o(.text);
  120. BUILD_DIR/src/game/skybox.o(.text);
  121. BUILD_DIR/src/game/moving_texture.o(.text);
  122. BUILD_DIR/src/game/geo_misc.o(.text);
  123. BUILD_DIR/src/game/paintings.o(.text);
  124. BUILD_DIR/src/game/print.o(.text);
  125. BUILD_DIR/src/game/ingame_menu.o(.text);
  126. BUILD_DIR/src/game/envfx_snow.o(.text);
  127. BUILD_DIR/src/game/envfx_bubbles.o(.text);
  128. BUILD_DIR/src/game/macro_special_objects.o(.text);
  129. BUILD_DIR/src/game/hud.o(.text);
  130. BUILD_DIR/src/game/obj_behaviors.o(.text);
  131. BUILD_DIR/src/game/obj_behaviors_2.o(.text);
  132. BUILD_DIR/src/audio/synthesis.o(.text);
  133. BUILD_DIR/src/audio/heap.o(.text);
  134. BUILD_DIR/src/audio/load.o(.text);
  135. BUILD_DIR/src/audio/playback.o(.text);
  136. BUILD_DIR/src/audio/effects.o(.text);
  137. BUILD_DIR/src/audio/seqplayer.o(.text);
  138. BUILD_DIR/src/audio/external.o(.text);
  139. BUILD_DIR/src/audio/port_eu.o(.text);
  140. #if defined(VERSION_EU) || defined(VERSION_SH)
  141. BUILD_DIR/libultra.a:string.o(.text);
  142. BUILD_DIR/libultra.a:_Printf.o(.text);
  143. BUILD_DIR/libultra.a:llmuldiv.o(.text);
  144. BUILD_DIR/libultra.a:osInitialize.o(.text);
  145. BUILD_DIR/libultra.a:osSetTime.o(.text);
  146. BUILD_DIR/libultra.a:osGetTime.o(.text);
  147. BUILD_DIR/libultra.a:osWritebackDCacheAll.o(.text);
  148. BUILD_DIR/libultra.a:osViBlack.o(.text);
  149. BUILD_DIR/libultra.a:osViSwapBuffer.o(.text);
  150. BUILD_DIR/libultra.a:__osGetCurrFaultedThread.o(.text);
  151. BUILD_DIR/libultra.a:osSetEventMesg.o(.text);
  152. BUILD_DIR/libultra.a:osRecvMesg.o(.text);
  153. BUILD_DIR/libultra.a:parameters.o(.text);
  154. BUILD_DIR/libultra.a:osCreateMesgQueue.o(.text);
  155. BUILD_DIR/libultra.a:osCreateThread.o(.text);
  156. BUILD_DIR/libultra.a:osStartThread.o(.text);
  157. BUILD_DIR/libultra.a:osMapTLB.o(.text);
  158. BUILD_DIR/libultra.a:osUnmapTLBAll.o(.text);
  159. BUILD_DIR/libultra.a:sprintf.o(.text);
  160. BUILD_DIR/libultra.a:osViSetEvent.o(.text);
  161. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.text);
  162. BUILD_DIR/libultra.a:osSpTaskYield.o(.text);
  163. BUILD_DIR/libultra.a:osSendMesg.o(.text);
  164. BUILD_DIR/libultra.a:osSpTaskYielded.o(.text);
  165. BUILD_DIR/libultra.a:osCreateViManager.o(.text);
  166. BUILD_DIR/libultra.a:osViSetMode.o(.text);
  167. BUILD_DIR/libultra.a:osViSetSpecialFeatures.o(.text);
  168. BUILD_DIR/libultra.a:osCreatePiManager.o(.text);
  169. BUILD_DIR/libultra.a:osSetThreadPri.o(.text);
  170. BUILD_DIR/libultra.a:osViSwapBuffer.o(.text);
  171. BUILD_DIR/libultra.a:sqrtf.o(.text);
  172. BUILD_DIR/libultra.a:osContStartReadData.o(.text);
  173. BUILD_DIR/libultra.a:osContInit.o(.text);
  174. BUILD_DIR/libultra.a:osEepromProbe.o(.text);
  175. BUILD_DIR/libultra.a:osInvalDCache.o(.text);
  176. BUILD_DIR/libultra.a:osPiStartDma.o(.text);
  177. BUILD_DIR/libultra.a:bzero.o(.text)
  178. BUILD_DIR/libultra.a:osInvalICache.o(.text)
  179. BUILD_DIR/libultra.a:osEepromLongRead.o(.text)
  180. BUILD_DIR/libultra.a:osEepromLongWrite.o(.text)
  181. BUILD_DIR/libultra.a:bcopy.o(.text)
  182. BUILD_DIR/libultra.a:guOrthoF.o(.text)
  183. BUILD_DIR/libultra.a:guPerspectiveF.o(.text)
  184. BUILD_DIR/libultra.a:llconv.o(.text)
  185. BUILD_DIR/libultra.a:cosf.o(.text)
  186. BUILD_DIR/libultra.a:sinf.o(.text)
  187. BUILD_DIR/libultra.a:guTranslateF.o(.text)
  188. BUILD_DIR/libultra.a:guRotateF.o(.text)
  189. BUILD_DIR/libultra.a:guScaleF.o(.text)
  190. BUILD_DIR/libultra.a:osAiSetFrequency.o(.text)
  191. BUILD_DIR/libultra.a:alBnkfNew.o(.text)
  192. BUILD_DIR/libultra.a:osAiGetLength.o(.text)
  193. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.text)
  194. BUILD_DIR/libultra.a:_Litob.o(.text)
  195. BUILD_DIR/libultra.a:_Ldtob.o(.text)
  196. BUILD_DIR/libultra.a:__osSetSR.o(.text)
  197. BUILD_DIR/libultra.a:__osGetSR.o(.text)
  198. BUILD_DIR/libultra.a:__osSetFpcCsr.o(.text)
  199. BUILD_DIR/libultra.a:__osSiRawReadIo.o(.text)
  200. BUILD_DIR/libultra.a:__osSiRawWriteIo.o(.text)
  201. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.text)
  202. BUILD_DIR/libultra.a:osWritebackDCache.o(.text)
  203. BUILD_DIR/libultra.a:osMapTLBRdb.o(.text)
  204. BUILD_DIR/libultra.a:osPiRawReadIo.o(.text)
  205. BUILD_DIR/libultra.a:EU_D_802f4330.o(.text)
  206. BUILD_DIR/libultra.a:D_802F4380.o(.text)
  207. BUILD_DIR/libultra.a:func_802F4A20.o(.text)
  208. BUILD_DIR/libultra.a:osTimer.o(.text)
  209. BUILD_DIR/libultra.a:__osDisableInt.o(.text)
  210. BUILD_DIR/libultra.a:__osRestoreInt.o(.text)
  211. BUILD_DIR/libultra.a:osGetCount.o(.text)
  212. BUILD_DIR/libultra.a:__osViInit.o(.text)
  213. BUILD_DIR/libultra.a:__osDequeueThread.o(.text)
  214. BUILD_DIR/libultra.a:osVirtualToPhysical.o(.text)
  215. BUILD_DIR/libultra.a:__osSpSetStatus.o(.text)
  216. BUILD_DIR/libultra.a:__osSpSetPc.o(.text)
  217. BUILD_DIR/libultra.a:__osSpRawStartDma.o(.text)
  218. BUILD_DIR/libultra.a:__osSpDeviceBusy.o(.text)
  219. BUILD_DIR/libultra.a:__osSpGetStatus.o(.text)
  220. BUILD_DIR/libultra.a:osGetThreadPri.o(.text)
  221. BUILD_DIR/libultra.a:__osViGetCurrentContext.o(.text);
  222. BUILD_DIR/libultra.a:__osViSwapContext.o(.text)
  223. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.text)
  224. BUILD_DIR/libultra.a:osPiRawStartDma.o(.text)
  225. BUILD_DIR/libultra.a:osEPiRawStartDma.o(.text)
  226. BUILD_DIR/libultra.a:__osDevMgrMain.o(.text)
  227. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.text)
  228. BUILD_DIR/libultra.a:__osSiRawStartDma.o(.text)
  229. BUILD_DIR/libultra.a:osSetTimer.o(.text)
  230. BUILD_DIR/libultra.a:osEepromWrite.o(.text)
  231. BUILD_DIR/libultra.a:osJamMesg.o(.text)
  232. BUILD_DIR/libultra.a:osPiGetCmdQueue.o(.text)
  233. BUILD_DIR/libultra.a:osEepromRead.o(.text)
  234. BUILD_DIR/libultra.a:guMtxF2L.o(.text)
  235. BUILD_DIR/libultra.a:guNormalize.o(.text)
  236. BUILD_DIR/libultra.a:__osAiDeviceBusy.o(.text);
  237. BUILD_DIR/libultra.a:ldiv.o(.text)
  238. BUILD_DIR/libultra.a:__osSiDeviceBusy.o(.text);
  239. BUILD_DIR/libultra.a:osSetIntMask.o(.text)
  240. BUILD_DIR/libultra.a:osDestroyThread.o(.text)
  241. BUILD_DIR/libultra.a:osLeoDiskInit.o(.text)
  242. BUILD_DIR/libultra.a:__osSetCompare.o(.text)
  243. BUILD_DIR/libultra.a:__osProbeTLB.o(.text)
  244. BUILD_DIR/libultra.a:__osDequeueThread.o(.text)
  245. BUILD_DIR/libultra.a:func_802F7140.o(.text)
  246. BUILD_DIR/libultra.a:func_802F71A0.o(.text)
  247. BUILD_DIR/libultra.a:func_802F71F0.o(.text)
  248. BUILD_DIR/lib/rsp.o(.text);
  249. #else
  250. BUILD_DIR/src/game*.o(.text);
  251. BUILD_DIR/src/audio*.o(.text);
  252. BUILD_DIR/libultra.a:parameters.o(.text);
  253. BUILD_DIR/libultra.a:osSetTime.o(.text);
  254. BUILD_DIR/libultra.a:osMapTLB.o(.text);
  255. BUILD_DIR/libultra.a:osUnmapTLBAll.o(.text);
  256. BUILD_DIR/libultra.a:sprintf.o(.text);
  257. BUILD_DIR/libultra.a:osCreateMesgQueue.o(.text);
  258. BUILD_DIR/libultra.a:osSetEventMesg.o(.text);
  259. BUILD_DIR/libultra.a:osViSetEvent.o(.text);
  260. BUILD_DIR/libultra.a:osCreateThread.o(.text);
  261. BUILD_DIR/libultra.a:osRecvMesg.o(.text);
  262. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.text);
  263. BUILD_DIR/libultra.a:osSpTaskYield.o(.text);
  264. BUILD_DIR/libultra.a:osSendMesg.o(.text);
  265. BUILD_DIR/libultra.a:osSpTaskYielded.o(.text);
  266. BUILD_DIR/libultra.a:osStartThread.o(.text);
  267. BUILD_DIR/libultra.a:osWritebackDCacheAll.o(.text);
  268. BUILD_DIR/libultra.a:osCreateViManager.o(.text);
  269. BUILD_DIR/libultra.a:osViSetMode.o(.text);
  270. BUILD_DIR/libultra.a:osViBlack.o(.text);
  271. BUILD_DIR/libultra.a:osViSetSpecialFeatures.o(.text);
  272. BUILD_DIR/libultra.a:osCreatePiManager.o(.text);
  273. BUILD_DIR/libultra.a:osSetThreadPri.o(.text);
  274. BUILD_DIR/libultra.a:osInitialize.o(.text);
  275. BUILD_DIR/libultra.a:osViSwapBuffer.o(.text);
  276. BUILD_DIR/libultra.a:sqrtf.o(.text);
  277. BUILD_DIR/libultra.a:osContStartReadData.o(.text);
  278. BUILD_DIR/libultra.a:osContInit.o(.text);
  279. BUILD_DIR/libultra.a:osEepromProbe.o(.text);
  280. BUILD_DIR/libultra.a:llmuldiv.o(.text);
  281. BUILD_DIR/libultra.a:llmuldiv_gcc.o(.text);
  282. BUILD_DIR/libultra.a:osInvalDCache.o(.text);
  283. BUILD_DIR/libultra.a:osPiStartDma.o(.text);
  284. BUILD_DIR/libultra.a:bzero.o(.text);
  285. BUILD_DIR/libultra.a:osInvalICache.o(.text);
  286. BUILD_DIR/libultra.a:osEepromLongRead.o(.text);
  287. BUILD_DIR/libultra.a:osEepromLongWrite.o(.text);
  288. BUILD_DIR/libultra.a:bcopy.o(.text);
  289. BUILD_DIR/libultra.a:guOrthoF.o(.text);
  290. BUILD_DIR/libultra.a:guPerspectiveF.o(.text);
  291. BUILD_DIR/libultra.a:osGetTime.o(.text);
  292. BUILD_DIR/libultra.a:llconv.o(.text);
  293. BUILD_DIR/libultra.a:cosf.o(.text);
  294. BUILD_DIR/libultra.a:sinf.o(.text);
  295. BUILD_DIR/libultra.a:guTranslateF.o(.text);
  296. BUILD_DIR/libultra.a:guRotateF.o(.text);
  297. BUILD_DIR/libultra.a:guScaleF.o(.text);
  298. #ifndef VERSION_EU
  299. BUILD_DIR/libultra.a:osAiSetFrequency.o(.text);
  300. #endif
  301. BUILD_DIR/libultra.a:alBnkfNew.o(.text);
  302. BUILD_DIR/libultra.a:osWritebackDCache.o(.text);
  303. BUILD_DIR/libultra.a:osAiGetLength.o(.text);
  304. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.text);
  305. BUILD_DIR/libultra.a:osTimer.o(.text);
  306. BUILD_DIR/libultra.a:_Printf.o(.text);
  307. BUILD_DIR/libultra.a:string.o(.text);
  308. BUILD_DIR/libultra.a:__osDequeueThread.o(.text);
  309. BUILD_DIR/libultra.a:__osDisableInt.o(.text);
  310. BUILD_DIR/libultra.a:__osRestoreInt.o(.text);
  311. BUILD_DIR/libultra.a:__osViInit.o(.text);
  312. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.text);
  313. BUILD_DIR/libultra.a:osVirtualToPhysical.o(.text);
  314. BUILD_DIR/libultra.a:__osSpSetStatus.o(.text);
  315. BUILD_DIR/libultra.a:__osSpSetPc.o(.text);
  316. BUILD_DIR/libultra.a:__osSpRawStartDma.o(.text);
  317. BUILD_DIR/libultra.a:__osSpDeviceBusy.o(.text);
  318. BUILD_DIR/libultra.a:__osSpGetStatus.o(.text);
  319. BUILD_DIR/libultra.a:osGetThreadPri.o(.text);
  320. BUILD_DIR/libultra.a:__osViGetCurrentContext.o(.text);
  321. BUILD_DIR/libultra.a:__osViSwapContext.o(.text);
  322. BUILD_DIR/libultra.a:osGetCount.o(.text);
  323. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.text);
  324. BUILD_DIR/libultra.a:osPiRawStartDma.o(.text);
  325. BUILD_DIR/libultra.a:__osDevMgrMain.o(.text);
  326. BUILD_DIR/libultra.a:__osSetSR.o(.text);
  327. BUILD_DIR/libultra.a:__osGetSR.o(.text);
  328. BUILD_DIR/libultra.a:__osSetFpcCsr.o(.text);
  329. BUILD_DIR/libultra.a:__osSiRawReadIo.o(.text);
  330. BUILD_DIR/libultra.a:__osSiRawWriteIo.o(.text);
  331. BUILD_DIR/libultra.a:osMapTLBRdb.o(.text);
  332. BUILD_DIR/libultra.a:osPiRawReadIo.o(.text);
  333. #if VERSION_JP
  334. . += 0x40;
  335. #endif
  336. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.text);
  337. BUILD_DIR/libultra.a:__osSiRawStartDma.o(.text);
  338. BUILD_DIR/libultra.a:osSetTimer.o(.text);
  339. BUILD_DIR/libultra.a:osEepromWrite.o(.text);
  340. BUILD_DIR/libultra.a:osJamMesg.o(.text);
  341. BUILD_DIR/libultra.a:osPiGetCmdQueue.o(.text);
  342. BUILD_DIR/libultra.a:osEepromRead.o(.text);
  343. BUILD_DIR/libultra.a:guMtxF2L.o(.text);
  344. BUILD_DIR/libultra.a:guMtxIdentF.o(.text);
  345. BUILD_DIR/libultra.a:guNormalize.o(.text);
  346. BUILD_DIR/libultra.a:__osAiDeviceBusy.o(.text);
  347. BUILD_DIR/libultra.a:__osSetCompare.o(.text);
  348. BUILD_DIR/libultra.a:_Litob.o(.text);
  349. BUILD_DIR/libultra.a:_Ldtob.o(.text);
  350. BUILD_DIR/libultra.a:kdebugserver.o(.text);
  351. BUILD_DIR/libultra.a:__osSyncPutChars.o(.text);
  352. BUILD_DIR/libultra.a:osSetIntMask.o(.text);
  353. BUILD_DIR/libultra.a:osDestroyThread.o(.text);
  354. BUILD_DIR/libultra.a:__osProbeTLB.o(.text);
  355. BUILD_DIR/libultra.a:__osSiDeviceBusy.o(.text);
  356. BUILD_DIR/libultra.a:ldiv.o(.text);
  357. BUILD_DIR/libultra.a:__osGetCause.o(.text);
  358. BUILD_DIR/libultra.a:__osAtomicDec.o(.text);
  359. BUILD_DIR/libultra.a:guLookAtRef.o(.text); /* Fast3DEX2 only */
  360. BUILD_DIR/lib/rsp.o(.text);
  361. #endif
  362. /* data */
  363. BUILD_DIR/src/game/crash_screen.o(.data*);
  364. BUILD_DIR/src/game/main.o(.data*);
  365. BUILD_DIR/src/game/game_init.o(.data*);
  366. BUILD_DIR/src/game/sound_init.o(.data*);
  367. BUILD_DIR/src/game/level_update.o(.data*);
  368. BUILD_DIR/src/game/interaction.o(.data*);
  369. BUILD_DIR/src/game/mario.o(.data*);
  370. BUILD_DIR/src/game/mario_step.o(.data*);
  371. BUILD_DIR/src/game/mario_actions_cutscene.o(.data*);
  372. BUILD_DIR/src/game/mario_actions_moving.o(.data*);
  373. BUILD_DIR/src/game/mario_actions_submerged.o(.data*);
  374. BUILD_DIR/src/game/mario_actions_object.o(.data*);
  375. BUILD_DIR/src/game/mario_misc.o(.data*);
  376. BUILD_DIR/src/game/memory.o(.data*);
  377. BUILD_DIR/src/game/save_file.o(.data*);
  378. BUILD_DIR/src/game/area.o(.data*);
  379. BUILD_DIR/src/game/rendering_graph_node.o(.data*);
  380. BUILD_DIR/src/game/profiler.o(.data*);
  381. BUILD_DIR/src/game/camera.o(.data*);
  382. BUILD_DIR/src/game/object_list_processor.o(.data*);
  383. #ifndef VERSION_EU
  384. BUILD_DIR/src/game/object_helpers.o(.data*);
  385. #endif
  386. BUILD_DIR/src/game/behavior_actions.o(.data*);
  387. BUILD_DIR/src/game/platform_displacement.o(.data*);
  388. BUILD_DIR/src/game/spawn_sound.o(.data*);
  389. BUILD_DIR/src/game/debug.o(.data*);
  390. BUILD_DIR/src/game/screen_transition.o(.data*);
  391. BUILD_DIR/src/game/shadow.o(.data*);
  392. BUILD_DIR/src/game/skybox.o(.data*);
  393. BUILD_DIR/src/game/moving_texture.o(.data*);
  394. BUILD_DIR/src/game/geo_misc.o(.data*);
  395. BUILD_DIR/src/game/paintings.o(.data*);
  396. BUILD_DIR/src/game/print.o(.data*);
  397. BUILD_DIR/src/game/ingame_menu.o(.data*);
  398. BUILD_DIR/src/game/envfx_snow.o(.data*);
  399. BUILD_DIR/src/game/envfx_bubbles.o(.data*);
  400. BUILD_DIR/src/game/macro_special_objects.o(.data*);
  401. BUILD_DIR/src/game/hud.o(.data*);
  402. BUILD_DIR/src/game/obj_behaviors.o(.data*);
  403. BUILD_DIR/src/game/obj_behaviors_2.o(.data*);
  404. #ifndef VERSION_EU
  405. /* wildcard doesn't work on EU due to files being moved to engine/ */
  406. BUILD_DIR/src/game*.o(.data*);
  407. #endif
  408. BUILD_DIR/src/audio/external.o(.data*);
  409. BUILD_DIR/src/audio/port_eu.o(.data*);
  410. BUILD_DIR/src/audio/data.o(.data*);
  411. BUILD_DIR/src/audio*.o(.data*);
  412. #ifdef VERSION_EU
  413. BUILD_DIR/libultra.a:_Printf.o(.data*);
  414. BUILD_DIR/libultra.a:osInitialize.o(.data*);
  415. BUILD_DIR/libultra.a:osCreateViManager.o(.data*);
  416. BUILD_DIR/libultra.a:osViTable.o(.data*);
  417. BUILD_DIR/libultra.a:osCreatePiManager.o(.data*);
  418. BUILD_DIR/libultra.a:osContInit.o(.data*);
  419. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.data*);
  420. BUILD_DIR/libultra.a:_Litob.o(.data*);
  421. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.data*);
  422. BUILD_DIR/libultra.a:osTimer.o(.data*);
  423. BUILD_DIR/libultra.a:__osViInit.o(.data*);
  424. BUILD_DIR/libultra.a:__osDequeueThread.o(.data*); // ffff...
  425. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.data*);
  426. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.data*);
  427. BUILD_DIR/libultra.a:osViData.o(.data*);
  428. #else
  429. BUILD_DIR/libultra.a:osViTable.o(.data*);
  430. BUILD_DIR/libultra.a:osCreateViManager.o(.data*);
  431. BUILD_DIR/libultra.a:osCreatePiManager.o(.data*);
  432. BUILD_DIR/libultra.a:osInitialize.o(.data*);
  433. BUILD_DIR/libultra.a:osContInit.o(.data*);
  434. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.data*);
  435. BUILD_DIR/libultra.a:osTimer.o(.data*);
  436. BUILD_DIR/libultra.a:_Printf.o(.data*);
  437. BUILD_DIR/libultra.a:__osDequeueThread.o(.data*);
  438. BUILD_DIR/libultra.a:__osViInit.o(.data*);
  439. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.data*);
  440. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.data*);
  441. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.data*);
  442. BUILD_DIR/libultra.a:_Litob.o(.data*);
  443. BUILD_DIR/libultra.a:_Ldtob.o(.data*);
  444. BUILD_DIR/libultra.a:osViData.o(.data*);
  445. BUILD_DIR/libultra.a:kdebugserver.o(.data*);
  446. BUILD_DIR/libultra.a:__osSyncPutChars.o(.data*);
  447. BUILD_DIR/libultra.a:guRotateF.o(.data*);
  448. BUILD_DIR/libultra.a:*.o(.data*);
  449. #endif
  450. /* rodata */
  451. BUILD_DIR/src/game/crash_screen.o(.rodata*);
  452. BUILD_DIR/src/game/main.o(.rodata*);
  453. BUILD_DIR/src/game/game_init.o(.rodata*);
  454. BUILD_DIR/src/game/sound_init.o(.rodata*);
  455. BUILD_DIR/src/game/level_update.o(.rodata*);
  456. BUILD_DIR/src/game/interaction.o(.rodata*);
  457. BUILD_DIR/src/game/mario.o(.rodata*);
  458. BUILD_DIR/src/game/mario_step.o(.rodata*);
  459. BUILD_DIR/src/game/mario_actions_cutscene.o(.rodata*);
  460. BUILD_DIR/src/game/mario_actions_automatic.o(.rodata*);
  461. BUILD_DIR/src/game/mario_actions_stationary.o(.rodata*);
  462. BUILD_DIR/src/game/mario_actions_moving.o(.rodata*);
  463. BUILD_DIR/src/game/mario_actions_airborne.o(.rodata*);
  464. BUILD_DIR/src/game/mario_actions_submerged.o(.rodata*);
  465. BUILD_DIR/src/game/mario_actions_object.o(.rodata*);
  466. BUILD_DIR/src/game/mario_misc.o(.rodata*);
  467. BUILD_DIR/src/game/area.o(.rodata*);
  468. BUILD_DIR/src/game/rendering_graph_node.o(.rodata*);
  469. BUILD_DIR/src/game/camera.o(.rodata*);
  470. BUILD_DIR/src/game/object_list_processor.o(.rodata*);
  471. #ifndef VERSION_EU
  472. BUILD_DIR/src/game/object_helpers.o(.rodata*);
  473. #endif
  474. BUILD_DIR/src/game/behavior_actions.o(.rodata*);
  475. #ifndef VERSION_EU
  476. BUILD_DIR/src/game/object_collision.o(.rodata*);
  477. BUILD_DIR/src/game/spawn_object.o(.rodata*);
  478. #endif
  479. BUILD_DIR/src/game/spawn_sound.o(.rodata*);
  480. BUILD_DIR/src/game/debug.o(.rodata*);
  481. BUILD_DIR/src/game/screen_transition.o(.rodata*);
  482. BUILD_DIR/src/game/shadow.o(.rodata*);
  483. BUILD_DIR/src/game/skybox.o(.rodata*);
  484. BUILD_DIR/src/game/moving_texture.o(.rodata*);
  485. BUILD_DIR/src/game/geo_misc.o(.rodata*);
  486. BUILD_DIR/src/game/paintings.o(.rodata*);
  487. BUILD_DIR/src/game/print.o(.rodata*);
  488. BUILD_DIR/src/game/ingame_menu.o(.rodata*);
  489. BUILD_DIR/src/game/envfx_snow.o(.rodata*);
  490. BUILD_DIR/src/game/envfx_bubbles.o(.rodata*);
  491. BUILD_DIR/src/game/macro_special_objects.o(.rodata*);
  492. BUILD_DIR/src/game/hud.o(.rodata*);
  493. BUILD_DIR/src/game/obj_behaviors.o(.rodata*);
  494. BUILD_DIR/src/game/obj_behaviors_2.o(.rodata*);
  495. #ifndef VERSION_EU
  496. BUILD_DIR/src/game*.o(.rodata*);
  497. #endif
  498. BUILD_DIR/src/audio/synthesis.o(.rodata*);
  499. BUILD_DIR/src/audio/heap.o(.rodata*);
  500. BUILD_DIR/src/audio/load.o(.rodata*);
  501. BUILD_DIR/src/audio/playback.o(.rodata*);
  502. BUILD_DIR/src/audio/effects.o(.rodata*);
  503. BUILD_DIR/src/audio/seqplayer.o(.rodata*);
  504. BUILD_DIR/src/audio/external.o(.rodata*);
  505. BUILD_DIR/src/audio/port_eu.o(.rodata*);
  506. BUILD_DIR/src/audio*.o(.rodata*);
  507. #ifdef VERSION_EU
  508. BUILD_DIR/libultra.a:_Printf.o(.rodata*);
  509. BUILD_DIR/libultra.a:guPerspectiveF.o(.rodata*);
  510. BUILD_DIR/libultra.a:llconv.o(.rodata*);
  511. BUILD_DIR/libultra.a:cosf.o(.rodata*);
  512. BUILD_DIR/libultra.a:sinf.o(.rodata*);
  513. BUILD_DIR/libultra.a:guRotateF.o(.rodata*);
  514. BUILD_DIR/libultra.a:_Litob.o(.rodata*);
  515. BUILD_DIR/libultra.a:_Ldtob.o(.rodata*);
  516. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.rodata*);
  517. BUILD_DIR/libultra.a:__osDevMgrMain.o(.rodata*);
  518. BUILD_DIR/libultra.a:NaN.o(.rodata*);
  519. #else
  520. BUILD_DIR/libultra.a:guPerspectiveF.o(.rodata*);
  521. BUILD_DIR/libultra.a:llconv.o(.rodata*);
  522. BUILD_DIR/libultra.a:cosf.o(.rodata*);
  523. BUILD_DIR/libultra.a:sinf.o(.rodata*);
  524. BUILD_DIR/libultra.a:guRotateF.o(.rodata*);
  525. BUILD_DIR/libultra.a:_Printf.o(.rodata*);
  526. BUILD_DIR/libultra.a:__osExceptionPreamble.o(.rodata*);
  527. BUILD_DIR/libultra.a:NaN.o(.rodata*);
  528. BUILD_DIR/libultra.a:_Litob.o(.rodata*);
  529. BUILD_DIR/libultra.a:_Ldtob.o(.rodata*);
  530. #endif
  531. BUILD_DIR/libultra.a:osSetIntMask.o(.rodata*);
  532. BUILD_DIR/libultra.a:guLookAtRef.o(.rodata*); /* Fast3DEX2 only */
  533. #ifndef VERSION_EU
  534. BUILD_DIR/libultra.a:*.o(.rodata*);
  535. #endif
  536. BUILD_DIR/lib/rsp.o(.rodata*);
  537. }
  538. END_SEG(main)
  539. BEGIN_NOLOAD(main)
  540. {
  541. BUILD_DIR/src/game/crash_screen.o(.bss*);
  542. BUILD_DIR/src/game/main.o(.bss*);
  543. BUILD_DIR/src/game/game_init.o(.bss*);
  544. BUILD_DIR/src/game/sound_init.o(.bss*);
  545. BUILD_DIR/src/game/level_update.o(.bss*);
  546. BUILD_DIR/src/game/interaction.o(.bss*);
  547. BUILD_DIR/src/game/mario.o(.bss*);
  548. BUILD_DIR/src/game/mario_actions_cutscene.o(.bss*);
  549. BUILD_DIR/src/game/mario_actions_moving.o(.bss*);
  550. BUILD_DIR/src/game/mario_actions_submerged.o(.bss*);
  551. BUILD_DIR/src/game/mario_misc.o(.bss*);
  552. BUILD_DIR/src/game/memory.o(.bss*);
  553. BUILD_DIR/src/game/save_file.o(.bss*);
  554. BUILD_DIR/src/game/area.o(.bss*);
  555. BUILD_DIR/src/game/rendering_graph_node.o(.bss*);
  556. BUILD_DIR/src/game/profiler.o(.bss*);
  557. BUILD_DIR/src/game/camera.o(.bss*);
  558. BUILD_DIR/src/game/object_list_processor.o(.bss*);
  559. #ifndef VERSION_EU
  560. BUILD_DIR/src/game/object_helpers.o(.bss*);
  561. #endif
  562. BUILD_DIR/src/game/behavior_actions.o(.bss*);
  563. BUILD_DIR/src/game/debug.o(.bss*);
  564. BUILD_DIR/src/game/shadow.o(.bss*);
  565. BUILD_DIR/src/game/skybox.o(.bss*);
  566. BUILD_DIR/src/game/moving_texture.o(.bss*);
  567. BUILD_DIR/src/game/geo_misc.o(.bss*);
  568. BUILD_DIR/src/game/paintings.o(.bss*);
  569. BUILD_DIR/src/game/print.o(.bss*);
  570. BUILD_DIR/src/game/ingame_menu.o(.bss*);
  571. BUILD_DIR/src/game/envfx_snow.o(.bss*);
  572. BUILD_DIR/src/game/envfx_bubbles.o(.bss*);
  573. BUILD_DIR/src/game/macro_special_objects.o(.bss*)
  574. BUILD_DIR/src/game/hud.o(.bss*);
  575. BUILD_DIR/src/game/obj_behaviors.o(.bss*);
  576. BUILD_DIR/src/game/obj_behaviors_2.o(.bss*);
  577. #ifndef VERSION_EU
  578. BUILD_DIR/src/game*.o(.bss*);
  579. #endif
  580. BUILD_DIR/src/audio/external.o(.bss*);
  581. BUILD_DIR/src/audio/port_eu.o(.bss*);
  582. #ifdef VERSION_EU
  583. BUILD_DIR/libultra.a:osInitialize.o(.bss*);
  584. BUILD_DIR/libultra.a:osSetEventMesg.o(.bss*);
  585. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.bss*);
  586. BUILD_DIR/libultra.a:osCreateViManager.o(.bss*);
  587. BUILD_DIR/libultra.a:osCreatePiManager.o(.bss*);
  588. BUILD_DIR/libultra.a:osContStartReadData.o(.bss*);
  589. BUILD_DIR/libultra.a:osContInit.o(.bss*);
  590. BUILD_DIR/libultra.a:guRotateF.o(.bss*);
  591. BUILD_DIR/libultra.a:unk_stack_data.o(.bss*);
  592. BUILD_DIR/libultra.a:osTimer.o(.bss*);
  593. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.bss*);
  594. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.bss*);
  595. BUILD_DIR/libultra.a:osEepromWrite.o(.bss*);
  596. BUILD_DIR/libultra.a:kdebugserver.o(.bss*);
  597. BUILD_DIR/libultra.a:osLeoDiskInit.o(.bss*)
  598. BUILD_DIR/libultra.a:_Printf.o(.bss*);
  599. BUILD_DIR/libultra.a:osAiSetNextBuffer.o(.bss*);
  600. BUILD_DIR/libultra.a:EU_D_802f4330.o(.bss*);
  601. #else
  602. BUILD_DIR/libultra.a:osSetEventMesg.o(.bss*);
  603. BUILD_DIR/libultra.a:osSpTaskLoadGo.o(.bss*);
  604. BUILD_DIR/libultra.a:osCreateViManager.o(.bss*);
  605. BUILD_DIR/libultra.a:osCreatePiManager.o(.bss*);
  606. BUILD_DIR/libultra.a:osInitialize.o(.bss*);
  607. BUILD_DIR/libultra.a:osContStartReadData.o(.bss*);
  608. BUILD_DIR/libultra.a:osContInit.o(.bss*);
  609. BUILD_DIR/libultra.a:guRotateF.o(.bss*);
  610. BUILD_DIR/libultra.a:osTimer.o(.bss*);
  611. BUILD_DIR/libultra.a:_Printf.o(.bss*);
  612. BUILD_DIR/libultra.a:__osPiCreateAccessQueue.o(.bss*);
  613. BUILD_DIR/libultra.a:__osSiCreateAccessQueue.o(.bss*);
  614. BUILD_DIR/libultra.a:osEepromWrite.o(.bss*);
  615. BUILD_DIR/libultra.a:unk_stack_data.o(.bss*);
  616. BUILD_DIR/libultra.a:kdebugserver.o(.bss*);
  617. BUILD_DIR/libultra.a:*.o(.bss*);
  618. #endif
  619. . = ALIGN(0x8);
  620. }
  621. END_NOLOAD(main)
  622. _mainSegmentNoloadSizeLo = SIZEOF (.main.noload) & 0xffff;
  623. _mainSegmentNoloadSizeHi = SIZEOF (.main.noload) >> 16;
  624. ASSERT((. <= SEG_ENGINE), "Error: main segment extended into engine.")
  625. BEGIN_SEG(engine, SEG_ENGINE)
  626. {
  627. BUILD_DIR/src/engine/math_util.o(.text);
  628. BUILD_DIR/src/engine/graph_node.o(.text);
  629. BUILD_DIR/src/engine/graph_node_manager.o(.text);
  630. BUILD_DIR/src/engine/geo_layout.o(.text);
  631. BUILD_DIR/src/engine/level_script.o(.text);
  632. BUILD_DIR/src/engine/surface_collision.o(.text);
  633. BUILD_DIR/src/engine/surface_load.o(.text);
  634. BUILD_DIR/src/engine/behavior_script.o(.text);
  635. #ifdef VERSION_EU
  636. BUILD_DIR/src/game/object_collision.o(.text);
  637. BUILD_DIR/src/game/spawn_object.o(.text);
  638. BUILD_DIR/src/game/object_helpers.o(.text);
  639. #endif
  640. BUILD_DIR/src/engine*.o(.text);
  641. /* data */
  642. BUILD_DIR/src/engine/graph_node.o(.data*);
  643. BUILD_DIR/src/engine/graph_node_manager.o(.data*);
  644. BUILD_DIR/src/engine/math_util.o(.data*);
  645. BUILD_DIR/src/engine/geo_layout.o(.data*);
  646. BUILD_DIR/src/engine/level_script.o(.data*);
  647. BUILD_DIR/src/engine/behavior_script.o(.data*);
  648. #ifdef VERSION_EU
  649. BUILD_DIR/src/game/object_collision.o(.data*);
  650. BUILD_DIR/src/game/spawn_object.o(.data*);
  651. BUILD_DIR/src/game/object_helpers.o(.data*);
  652. #endif
  653. BUILD_DIR/src/engine*.o(.data*);
  654. /* rodata */
  655. BUILD_DIR/src/engine/math_util.o(.rodata*);
  656. BUILD_DIR/src/engine/level_script.o(.rodata*);
  657. BUILD_DIR/src/engine/surface_collision.o(.rodata*);
  658. BUILD_DIR/src/engine/surface_load.o(.rodata*);
  659. #ifdef VERSION_EU
  660. BUILD_DIR/src/game/object_collision.o(.rodata*);
  661. BUILD_DIR/src/game/spawn_object.o(.rodata*);
  662. BUILD_DIR/src/game/object_helpers.o(.rodata*);
  663. #endif
  664. BUILD_DIR/src/engine*.o(.rodata*);
  665. }
  666. END_SEG(engine)
  667. BEGIN_NOLOAD(engine)
  668. {
  669. BUILD_DIR/src/engine/math_util.o(.bss*);
  670. BUILD_DIR/src/engine/geo_layout.o(.bss*);
  671. BUILD_DIR/src/engine/level_script.o(.bss*);
  672. BUILD_DIR/src/engine/surface_collision.o(.bss*);
  673. BUILD_DIR/src/engine/surface_load.o(.bss*);
  674. BUILD_DIR/src/engine/behavior_script.o(.bss*);
  675. #ifdef VERSION_EU
  676. BUILD_DIR/src/game/object_collision.o(.bss*);
  677. BUILD_DIR/src/game/spawn_object.o(.bss*);
  678. BUILD_DIR/src/game/object_helpers.o(.bss*);
  679. #endif
  680. BUILD_DIR/src/engine*.o(.bss*);
  681. }
  682. END_NOLOAD(engine)
  683. // ASSERT((. <= SEG_FRAMEBUFFERS), "Error: engine segment extended into framebuffers.")
  684. . = SEG_FRAMEBUFFERS;
  685. BEGIN_NOLOAD(framebuffers)
  686. {
  687. BUILD_DIR/src/buffers/framebuffers.o(.bss*);
  688. }
  689. END_NOLOAD(framebuffers)
  690. __expansionRamStart = 0x80400000;
  691. ASSERT((. <= __expansionRamStart), "Error: RDRAM expanded into Expansion RAM, despite Expansion RAM not being defined.")
  692. BEGIN_SEG(entry, 0x10000000)
  693. {
  694. BUILD_DIR/levels/entry.o(.data);
  695. }
  696. END_SEG(entry)
  697. /* load MIO0 and level data */
  698. MIO0_SEG(segment2, 0x02000000)
  699. #ifdef VERSION_EU
  700. MIO0_EU_SEG(translation_en, 0x19000000)
  701. MIO0_EU_SEG(translation_fr, 0x19000000)
  702. MIO0_EU_SEG(translation_de, 0x19000000)
  703. #endif
  704. /* mario actor group */
  705. STANDARD_OBJECTS(group0, 0x04000000, 0x17000000)
  706. /* load the other actor groups */
  707. STANDARD_OBJECTS(group1, 0x05000000, 0x0C000000)
  708. STANDARD_OBJECTS(group2, 0x05000000, 0x0C000000)
  709. STANDARD_OBJECTS(group3, 0x05000000, 0x0C000000)
  710. STANDARD_OBJECTS(group4, 0x05000000, 0x0C000000)
  711. STANDARD_OBJECTS(group5, 0x05000000, 0x0C000000)
  712. STANDARD_OBJECTS(group6, 0x05000000, 0x0C000000)
  713. STANDARD_OBJECTS(group7, 0x05000000, 0x0C000000)
  714. STANDARD_OBJECTS(group8, 0x05000000, 0x0C000000)
  715. STANDARD_OBJECTS(group9, 0x05000000, 0x0C000000)
  716. STANDARD_OBJECTS(group10, 0x05000000, 0x0C000000)
  717. STANDARD_OBJECTS(group11, 0x05000000, 0x0C000000)
  718. STANDARD_OBJECTS(group12, 0x06000000, 0x0D000000)
  719. STANDARD_OBJECTS(group13, 0x06000000, 0x0D000000)
  720. STANDARD_OBJECTS(group14, 0x06000000, 0x0D000000)
  721. STANDARD_OBJECTS(group15, 0x06000000, 0x0D000000)
  722. STANDARD_OBJECTS(group16, 0x06000000, 0x0D000000)
  723. STANDARD_OBJECTS(group17, 0x06000000, 0x0D000000)
  724. /* load the common actor groups */
  725. STANDARD_OBJECTS(common0, 0x08000000, 0x0F000000)
  726. STANDARD_OBJECTS(common1, 0x03000000, 0x16000000)
  727. /* use segmented addressing for behaviors */
  728. BEGIN_SEG(behavior, 0x13000000)
  729. {
  730. BUILD_DIR/data/behavior_data.o(.data);
  731. }
  732. END_SEG(behavior)
  733. /* 0x8016F000 21D7D0-255EC0 [386F0] */
  734. BEGIN_SEG(goddard, SEG_GODDARD)
  735. {
  736. BUILD_DIR/src/menu/level_select_menu.o(.text);
  737. BUILD_DIR/src/menu/intro_geo.o(.text);
  738. BUILD_DIR/src/menu/file_select.o(.text);
  739. BUILD_DIR/src/menu/star_select.o(.text);
  740. BUILD_DIR/src/menu*.o(.text);
  741. BUILD_DIR/libgoddard.a:gd_main.o(.text);
  742. BUILD_DIR/libgoddard.a:gd_memory.o(.text);
  743. BUILD_DIR/libgoddard.a:sfx.o(.text);
  744. BUILD_DIR/libgoddard.a:draw_objects.o(.text);
  745. BUILD_DIR/libgoddard.a:objects.o(.text);
  746. BUILD_DIR/libgoddard.a:skin_movement.o(.text);
  747. BUILD_DIR/libgoddard.a:particles.o(.text);
  748. BUILD_DIR/libgoddard.a:dynlist_proc.o(.text);
  749. BUILD_DIR/libgoddard.a:old_menu.o(.text);
  750. BUILD_DIR/libgoddard.a:debug_utils.o(.text);
  751. BUILD_DIR/libgoddard.a:joints.o(.text);
  752. BUILD_DIR/libgoddard.a:skin.o(.text);
  753. BUILD_DIR/libgoddard.a:gd_math.o(.text);
  754. BUILD_DIR/libgoddard.a:shape_helper.o(.text);
  755. BUILD_DIR/libgoddard.a:renderer.o(.text);
  756. BUILD_DIR/libgoddard.a:*.o(.text);
  757. /* data, rodata, per file */
  758. BUILD_DIR/src/menu/level_select_menu.o(.data*);
  759. BUILD_DIR/src/menu/level_select_menu.o(.rodata*);
  760. BUILD_DIR/src/menu/intro_geo.o(.data*);
  761. BUILD_DIR/src/menu/file_select.o(.data*);
  762. BUILD_DIR/src/menu/file_select.o(.rodata*);
  763. BUILD_DIR/src/menu/star_select.o(.data*);
  764. BUILD_DIR/src/menu/star_select.o(.rodata*);
  765. BUILD_DIR/src/menu*.o(.data*);
  766. BUILD_DIR/src/menu*.o(.rodata*);
  767. /* goddard subsystem data */
  768. BUILD_DIR/libgoddard.a:gd_main.o(.data*);
  769. BUILD_DIR/libgoddard.a:draw_objects.o(.data*);
  770. BUILD_DIR/libgoddard.a:objects.o(.data*);
  771. BUILD_DIR/libgoddard.a:particles.o(.data*);
  772. BUILD_DIR/libgoddard.a:dynlist_proc.o(.data*);
  773. BUILD_DIR/libgoddard.a:debug_utils.o(.data*);
  774. BUILD_DIR/libgoddard.a:joints.o(.data*);
  775. BUILD_DIR/libgoddard.a:shape_helper.o(.data*);
  776. BUILD_DIR/libgoddard.a:renderer.o(.data*);
  777. /* goddard subsystem rodata */
  778. BUILD_DIR/libgoddard.a:gd_main.o(.rodata*);
  779. BUILD_DIR/libgoddard.a:gd_memory.o(.rodata*);
  780. BUILD_DIR/libgoddard.a:draw_objects.o(.rodata*);
  781. BUILD_DIR/libgoddard.a:objects.o(.rodata*);
  782. BUILD_DIR/libgoddard.a:skin_movement.o(.rodata*);
  783. BUILD_DIR/libgoddard.a:particles.o(.rodata*);
  784. BUILD_DIR/libgoddard.a:dynlist_proc.o(.rodata*);
  785. BUILD_DIR/libgoddard.a:old_menu.o(.rodata*);
  786. BUILD_DIR/libgoddard.a:debug_utils.o(.rodata*);
  787. BUILD_DIR/libgoddard.a:joints.o(.rodata*);
  788. BUILD_DIR/libgoddard.a:skin.o(.rodata*);
  789. BUILD_DIR/libgoddard.a:gd_math.o(.rodata*);
  790. BUILD_DIR/libgoddard.a:shape_helper.o(.rodata*);
  791. BUILD_DIR/libgoddard.a:renderer.o(.rodata*);
  792. }
  793. END_SEG(goddard)
  794. BEGIN_NOLOAD(goddard)
  795. {
  796. BUILD_DIR/src/menu/intro_geo.o(.bss*);
  797. BUILD_DIR/src/menu/file_select.o(.bss*);
  798. BUILD_DIR/src/menu/star_select.o(.bss*);
  799. BUILD_DIR/src/menu*.o(.bss*);
  800. BUILD_DIR/libgoddard.a:gd_main.o(.bss*);
  801. BUILD_DIR/libgoddard.a:gd_memory.o(.bss*);
  802. BUILD_DIR/libgoddard.a:sfx.o(.bss*);
  803. BUILD_DIR/libgoddard.a:draw_objects.o(.bss*);
  804. BUILD_DIR/libgoddard.a:objects.o(.bss*);
  805. BUILD_DIR/libgoddard.a:skin_movement.o(.bss*);
  806. BUILD_DIR/libgoddard.a:particles.o(.bss*);
  807. BUILD_DIR/libgoddard.a:dynlist_proc.o(.bss*);
  808. BUILD_DIR/libgoddard.a:old_menu.o(.bss*);
  809. BUILD_DIR/libgoddard.a:debug_utils.o(.bss*);
  810. BUILD_DIR/libgoddard.a:joints.o(.bss*);
  811. BUILD_DIR/libgoddard.a:skin.o(.bss*);
  812. BUILD_DIR/libgoddard.a:shape_helper.o(.bss*);
  813. BUILD_DIR/libgoddard.a:renderer.o(.bss*);
  814. BUILD_DIR/libgoddard.a:*.o(.bss*);
  815. }
  816. END_NOLOAD(goddard)
  817. ASSERT((. <= SEG_POOL_END), "Error: extended past pool end.")
  818. . = SEG_BUFFERS;
  819. BEGIN_NOLOAD(buffers)
  820. {
  821. BUILD_DIR/src/buffers/buffers.o(.bss*);
  822. BUILD_DIR/src/audio/globals_start.o(.bss*);
  823. BUILD_DIR/src/audio/synthesis.o(.bss*);
  824. BUILD_DIR/src/audio/heap.o(.bss*);
  825. BUILD_DIR/src/audio/load.o(.bss*);
  826. BUILD_DIR/src/audio/data.o(.bss*);
  827. BUILD_DIR/src/audio/globals_end.o(.bss*);
  828. #ifdef VERSION_EU
  829. . += 0x4f0;
  830. #endif
  831. #ifndef VERSION_EU
  832. . = ALIGN(0x1000);
  833. #endif
  834. BUILD_DIR/src/buffers/gfx_output_buffer.o(.bss*);
  835. BUILD_DIR/src/audio*.o(.bss*);
  836. }
  837. END_NOLOAD(buffers)
  838. /* While EU is being worked on, don't warn for a too large buffers segment.
  839. * This is a broken thing to do, so please enforce this again when it's fixed! */
  840. #ifndef VERSION_EU
  841. ASSERT((. <= SEG_MAIN), "Error: buffers segment extended into main.")
  842. #endif
  843. /* 0x268020 0x268020-0 [0] */
  844. BEGIN_SEG(intro, 0x14000000)
  845. {
  846. BUILD_DIR/levels/intro/script.o(.data);
  847. BUILD_DIR/levels/intro/geo.o(.data);
  848. }
  849. END_SEG(intro)
  850. BEGIN_SEG(intro_segment_7, 0x07000000)
  851. {
  852. BUILD_DIR/levels/intro/leveldata.mio0.o(.data);
  853. . = ALIGN(0x10);
  854. }
  855. END_SEG(intro_segment_7)
  856. MIO0_SEG(debug_level_select, 0x07000000)
  857. MIO0_SEG(title_screen_bg, 0x0A000000)
  858. /* 271B20-2A42A0 [32780] */
  859. BEGIN_SEG(gd_dynlists, 0x04000000)
  860. {
  861. BUILD_DIR/libgoddard.a:dynlist_test_cube.o(.data);
  862. BUILD_DIR/libgoddard.a:dynlist_unused.o(.data);
  863. BUILD_DIR/libgoddard.a:dynlist_mario_face.o(.data);
  864. BUILD_DIR/libgoddard.a:dynlists_mario_eyes.o(.data);
  865. BUILD_DIR/libgoddard.a:dynlists_mario_eyebrows_mustache.o(.data);
  866. BUILD_DIR/libgoddard.a:dynlist_mario_master.o(.data);
  867. BUILD_DIR/libgoddard.a:anim_mario_mustache_right.o(.data);
  868. BUILD_DIR/libgoddard.a:anim_mario_mustache_left.o(.data);
  869. BUILD_DIR/libgoddard.a:anim_mario_lips_1.o(.data);
  870. BUILD_DIR/libgoddard.a:anim_mario_lips_2.o(.data);
  871. BUILD_DIR/libgoddard.a:anim_mario_eyebrows_1.o(.data);
  872. BUILD_DIR/libgoddard.a:anim_group_1.o(.data);
  873. BUILD_DIR/libgoddard.a:anim_group_2.o(.data);
  874. BUILD_DIR/libgoddard.a:dynlist_test_cube.o(.rodata*);
  875. BUILD_DIR/libgoddard.a:dynlist_unused.o(.rodata*);
  876. BUILD_DIR/libgoddard.a:*.o(.data);
  877. BUILD_DIR/libgoddard.a:*.o(.rodata);
  878. }
  879. END_SEG(gd_dynlists)
  880. gMainLevels = __romPos;
  881. BEGIN_SEG(menu, 0x14000000)
  882. {
  883. BUILD_DIR/levels/menu/script.o(.data);
  884. BUILD_DIR/levels/menu/geo.o(.data);
  885. }
  886. END_SEG(menu)
  887. BEGIN_SEG(menu_segment_7, 0x07000000)
  888. {
  889. BUILD_DIR/levels/menu/leveldata.mio0.o(.data);
  890. . = ALIGN(0x10);
  891. }
  892. END_SEG(menu_segment_7)
  893. BEGIN_SEG(scripts, 0x15000000)
  894. {
  895. BUILD_DIR/levels/scripts.o(.data);
  896. }
  897. END_SEG(scripts)
  898. MIO0_SEG(water_skybox, 0x0A000000)
  899. MIO0_SEG(ccm_skybox, 0x0A000000)
  900. MIO0_SEG(clouds_skybox, 0x0A000000)
  901. MIO0_SEG(bitfs_skybox, 0x0A000000)
  902. MIO0_SEG(wdw_skybox, 0x0A000000)
  903. MIO0_SEG(cloud_floor_skybox, 0x0A000000)
  904. MIO0_SEG(ssl_skybox, 0x0A000000)
  905. MIO0_SEG(bbh_skybox, 0x0A000000)
  906. MIO0_SEG(bidw_skybox, 0x0A000000)
  907. MIO0_SEG(bits_skybox, 0x0A000000)
  908. // Texture bins
  909. MIO0_SEG(fire, 0x09000000)
  910. MIO0_SEG(spooky, 0x09000000)
  911. MIO0_SEG(generic, 0x09000000)
  912. MIO0_SEG(water, 0x09000000)
  913. MIO0_SEG(sky, 0x09000000)
  914. MIO0_SEG(snow, 0x09000000)
  915. MIO0_SEG(cave, 0x09000000)
  916. MIO0_SEG(machine, 0x09000000)
  917. MIO0_SEG(mountain, 0x09000000)
  918. MIO0_SEG(grass, 0x09000000)
  919. MIO0_SEG(outside, 0x09000000)
  920. MIO0_SEG(inside, 0x09000000)
  921. MIO0_SEG(effect, 0x0B000000)
  922. #define STUB_LEVEL(_0, _1, _2, _3, _4, _5, _6, _7, _8)
  923. #define DEFINE_LEVEL(_0, _1, _2, folder, _4, _5, _6, _7, _8, _9, _10) STANDARD_LEVEL(folder)
  924. #include "levels/level_defines.h"
  925. #undef STUB_LEVEL
  926. #undef DEFINE_LEVEL
  927. /* 4E9FA0-? [?] */
  928. BEGIN_SEG(assets, __romPos)
  929. {
  930. BUILD_DIR/assets/mario_anim_data.o(.data);
  931. BUILD_DIR/assets/mario_anim_data.o(.rodata);
  932. BUILD_DIR/assets/demo_data.o(.data);
  933. gSoundDataADSR = .;
  934. BUILD_DIR/sound/sound_data.ctl.o(.data);
  935. gSoundDataRaw = .;
  936. BUILD_DIR/sound/sound_data.tbl.o(.data);
  937. gMusicData = .;
  938. BUILD_DIR/sound/sequences.bin.o(.data);
  939. gBankSetsData = .;
  940. BUILD_DIR/sound/bank_sets.o(.data);
  941. }
  942. END_SEG(assets)
  943. /* Discard everything not specifically mentioned above. */
  944. /DISCARD/ :
  945. {
  946. *(*);
  947. }
  948. }