/* Mario Kart 64 (U) linker script * generated by n64split v0.4a - N64 ROM splitter */ OUTPUT_ARCH (mips) #include "include/segments.h" #define BEGIN_SEG(name, addr) \ _##name##SegmentStart = ADDR(.name); \ _##name##SegmentRomStart = __romPos; \ .name addr : AT(__romPos) #define END_SEG(name) \ _##name##SegmentEnd = ADDR(.name) + SIZEOF(.name); \ _##name##SegmentRomEnd = __romPos + SIZEOF(.name); \ __romPos += SIZEOF(.name); #define MIO0_SEG(name) \ BEGIN_SEG(name##_mio0, 0x0) \ { \ BUILD_DIR/bin/name.mio0.o(.data); \ . = ALIGN(0x10); \ } \ END_SEG(name##_mio0) #define COURSE_OFFSETS_SEG(name, addr) \ BEGIN_SEG(name, addr) \ { \ BUILD_DIR/src/name.o(.data); \ . = ALIGN(0x10); \ } \ END_SEG(name) #define VERT_SEG(name, addr) \ BEGIN_SEG(name, addr) \ { \ BUILD_DIR/data/courses/name.o(.data); \ . = ALIGN(0x10); \ } \ END_SEG(name) #define BEGIN_NOLOAD(name) \ _##name##SegNoloadStart = ADDR(.name.noload); \ .name.noload (NOLOAD) : #define END_NOLOAD(name) \ _##name##SegNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload); SECTIONS { __romPos = 0; BEGIN_SEG(boot, 0xA4000000) { BUILD_DIR/asm/rom_header.o(.text); BUILD_DIR/asm/boot.o(.text); } END_SEG(boot) /* 0x80000400 001000-0D9B70 [D8B70] */ BEGIN_SEG(main, SEG_MAIN) SUBALIGN(16) { BUILD_DIR/asm/entry.o(.text); BUILD_DIR/src/main.o(.text); BUILD_DIR/src/code_800029B0.o(.text); BUILD_DIR/src/profiler.o(.text); BUILD_DIR/src/crash_screen.o(.text); BUILD_DIR/src/code_80004740.o(.text); BUILD_DIR/src/staff_ghosts.o(.text); BUILD_DIR/asm/unused_overflow_check.o(.text); BUILD_DIR/src/code_80005FD0.o(.text); BUILD_DIR/src/code_8001C4D0.o(.text); BUILD_DIR/src/code_8001F980.o(.text); BUILD_DIR/src/code_80027040.o(.text); BUILD_DIR/src/code_80027D00.o(.text); BUILD_DIR/src/code_800393C0.o(.text); BUILD_DIR/src/code_8003DC40.o(.text); BUILD_DIR/asm/unused_mio0_decode.o(.text); BUILD_DIR/asm/mio0_decode.o(.text); BUILD_DIR/asm/tkmk00_decode.o(.text); BUILD_DIR/src/gbiMacro.o(.text); BUILD_DIR/src/code_80040E50.o(.text); BUILD_DIR/src/code_800431B0.o(.text); BUILD_DIR/src/code_80057C60.o(.text); BUILD_DIR/src/code_8006E9C0.o(.text); BUILD_DIR/src/code_80071F00.o(.text); BUILD_DIR/src/code_80086E70.o(.text); BUILD_DIR/src/code_8008C1D0.o(.text); BUILD_DIR/src/code_80091750.o(.text); BUILD_DIR/src/code_800AF9B0.o(.text); BUILD_DIR/src/audio/synthesis.o(.text); BUILD_DIR/src/audio/heap.o(.text); BUILD_DIR/src/audio/load.o(.text); BUILD_DIR/src/audio/playback.o(.text); BUILD_DIR/src/audio/effects.o(.text); BUILD_DIR/src/audio/seqplayer.o(.text); BUILD_DIR/src/audio/external.o(.text); BUILD_DIR/src/audio/port_eu.o(.text); BUILD_DIR/src/os/osCreateThread.o(.text); BUILD_DIR/src/os/osInitialize.o(.text); BUILD_DIR/src/os/osStartThread.o(.text); BUILD_DIR/src/os/osCreateViManager.o(.text); BUILD_DIR/asm/os/parameters.o(.text); BUILD_DIR/src/os/osViSetMode.o(.text); BUILD_DIR/src/os/osViBlack.o(.text); BUILD_DIR/src/os/osViSetSpecialFeatures.o(.text); BUILD_DIR/src/os/osCreatePiManager.o(.text); BUILD_DIR/src/os/osSetThreadPri.o(.text); BUILD_DIR/src/os/osCreateMesgQueue.o(.text); BUILD_DIR/src/os/osViSetEvent.o(.text); BUILD_DIR/src/os/osSetEventMesg.o(.text); BUILD_DIR/src/os/osSpTaskLoadGo.o(.text); BUILD_DIR/src/os/osContInit.o(.text); BUILD_DIR/src/os/osContStartReadData.o(.text); BUILD_DIR/src/os/osRecvMesg.o(.text); BUILD_DIR/asm/os/osWritebackDCacheAll.o(.text); BUILD_DIR/src/os/osSendMesg.o(.text); BUILD_DIR/src/os/osViSwapBuffer.o(.text); BUILD_DIR/asm/os/bzero.o(.text); BUILD_DIR/asm/os/osInvalICache.o(.text); BUILD_DIR/asm/os/osInvalDCache.o(.text); BUILD_DIR/src/os/osPiStartDma.o(.text); BUILD_DIR/src/os/osSpTaskYield.o(.text); BUILD_DIR/src/os/osSpTaskYielded.o(.text); BUILD_DIR/src/os/osGetTime.o(.text); BUILD_DIR/src/os/math/llmuldiv.o(.text); BUILD_DIR/src/os/__osGetCurrFaultedThread.o(.text); BUILD_DIR/asm/os/sqrtf.o(.text); BUILD_DIR/src/os/guOrthoF.o(.text); BUILD_DIR/src/os/osSetTime.o(.text); BUILD_DIR/src/os/osEepromProbe.o(.text); BUILD_DIR/src/os/osPfsIsPlug.o(.text); BUILD_DIR/asm/os/non_matchings/func_800CE720.o(.text); BUILD_DIR/src/os/osPfsNumFiles.o(.text); BUILD_DIR/src/os/osPfsFileState.o(.text); BUILD_DIR/src/os/osPfsFreeBlocks.o(.text); BUILD_DIR/src/os/guRotateF.o(.text); BUILD_DIR/src/os/guScaleF.o(.text); BUILD_DIR/asm/os/non_matchings/guPerspectiveF.o(.text); BUILD_DIR/src/os/guLookAtF.o(.text); BUILD_DIR/src/os/guTranslateF.o(.text); BUILD_DIR/asm/os/non_matchings/osSyncPrintf.o(.text); BUILD_DIR/src/os/guMtxCatL.o(.text); BUILD_DIR/src/os/osPfsSearchFile.o(.text); BUILD_DIR/src/os/osPfsDeleteFile.o(.text); BUILD_DIR/src/os/osEepromLongWrite.o(.text); BUILD_DIR/src/os/osEepromLongRead.o(.text); BUILD_DIR/src/os/osPfsReadWriteFile.o(.text); BUILD_DIR/src/os/osPfsAllocateFile.o(.text); BUILD_DIR/src/os/osAiSetFrequency.o(.text); BUILD_DIR/src/os/osAiGetLength.o(.text); BUILD_DIR/src/os/osAiSetNextBuffer.o(.text); BUILD_DIR/asm/os/osGetCount.o(.text); BUILD_DIR/asm/os/__osException.o(.text); BUILD_DIR/asm/os/__osDisableInt.o(.text); BUILD_DIR/asm/os/__osRestoreInt.o(.text); BUILD_DIR/src/os/__osDequeueThread.o(.text); BUILD_DIR/asm/os/__osSetSR.o(.text); BUILD_DIR/asm/os/__osGetSR.o(.text); BUILD_DIR/asm/os/__osSetFpcCsr.o(.text); BUILD_DIR/src/os/__osSiRawReadIo.o(.text); BUILD_DIR/src/os/__osSiRawWriteIo.o(.text); BUILD_DIR/asm/os/osWritebackDCache.o(.text); BUILD_DIR/asm/os/osMapTLBRdb.o(.text); BUILD_DIR/src/os/osPiRawReadIo.o(.text); BUILD_DIR/src/os/__osSetHWIntrRoutine.o(.text); BUILD_DIR/asm/os/non_matchings/__osLeoInterrupt.o(.text); BUILD_DIR/src/os/osTimer.o(.text); BUILD_DIR/src/os/osGetThreadPri.o(.text); BUILD_DIR/src/os/__osViInit.o(.text); BUILD_DIR/src/os/__osViGetCurrentContext.o(.text); BUILD_DIR/src/os/__osViSwapContext.o(.text); BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.text); BUILD_DIR/src/os/osPiRawStartDma.o(.text); BUILD_DIR/src/os/osEPiRawStartDma.o(.text); BUILD_DIR/src/os/__osDevMgrMain.o(.text); BUILD_DIR/asm/os/bcopy.o(.text); BUILD_DIR/src/os/osVirtualToPhysical.o(.text); BUILD_DIR/src/os/__osSpSetStatus.o(.text); BUILD_DIR/src/os/__osSpSetPc.o(.text); BUILD_DIR/src/os/__osSpRawStartDma.o(.text); BUILD_DIR/src/os/__osSpDeviceBusy.o(.text); BUILD_DIR/src/os/osSetTimer.o(.text); BUILD_DIR/src/os/__osSiRawStartDma.o(.text); BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.text); BUILD_DIR/src/os/osJamMesg.o(.text); BUILD_DIR/src/os/osPiGetCmdQueue.o(.text); BUILD_DIR/src/os/__osSpGetStatus.o(.text); BUILD_DIR/src/os/guMtxF2L.o(.text); BUILD_DIR/src/os/osEepromWrite.o(.text); BUILD_DIR/src/os/contpfs.o(.text); BUILD_DIR/src/os/osPfsChecker.o(.text); BUILD_DIR/asm/os/non_matchings/contramread.o(.text); BUILD_DIR/src/os/guNormalize.o(.text); BUILD_DIR/src/os/math/sinf.o(.text); BUILD_DIR/src/os/math/cosf.o(.text); BUILD_DIR/src/os/_Printf.o(.text); BUILD_DIR/src/os/guMtxCatF.o(.text); BUILD_DIR/asm/os/non_matchings/contramwrite.o(.text); BUILD_DIR/src/os/osEepromRead.o(.text); BUILD_DIR/src/os/__osAiDeviceBusy.o(.text); BUILD_DIR/asm/os/osSetIntMask.o(.text); BUILD_DIR/src/os/osDestroyThread.o(.text); BUILD_DIR/src/os/__osSiDeviceBusy.o(.text); BUILD_DIR/src/os/osLeoDiskInit.o(.text); BUILD_DIR/asm/os/__osSetCompare.o(.text); BUILD_DIR/src/os/__osResetGlobalIntMask.o(.text); BUILD_DIR/src/os/__osEPiRawWriteIo.o(.text); BUILD_DIR/src/os/osYieldThread.o(.text); BUILD_DIR/asm/os/__osProbeTLB.o(.text); BUILD_DIR/src/os/crc.o(.text); BUILD_DIR/src/os/string.o(.text); BUILD_DIR/src/os/_Litob.o(.text); BUILD_DIR/src/os/_Ldtob.o(.text); BUILD_DIR/src/os/ldiv.o(.text); BUILD_DIR/data/rsp.o(.text); BUILD_DIR/src/main.o(.data); BUILD_DIR/data/data_0DD0A0.o(.data); BUILD_DIR/src/code_800029B0.o(.data); BUILD_DIR/data/data_0DD0A0_0.o(.data); BUILD_DIR/src/crash_screen.o(.data); BUILD_DIR/src/staff_ghosts.o(.data); BUILD_DIR/data/data_0DD0A0_1.o(.data); BUILD_DIR/src/code_8001C4D0.o(.data); BUILD_DIR/src/code_8001F980.o(.data); BUILD_DIR/data/data_0DD0A0_1_1.o(.data); BUILD_DIR/src/kart_attributes.inc.o(.data); BUILD_DIR/data/data_0DD0A0_2.o(.rodata); BUILD_DIR/src/os/osInitialize.o(.data*); BUILD_DIR/src/os/osCreateViManager.o(.data); BUILD_DIR/src/os/osViTable.o(.data); BUILD_DIR/src/os/osCreatePiManager.o(.data); BUILD_DIR/src/os/osContInit.o(.data); BUILD_DIR/data/data_0DD0A0_2_1.o(.data); BUILD_DIR/src/os/osTimer.o(.data); BUILD_DIR/src/os/__osViInit.o(.data); BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.data); BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.data); BUILD_DIR/src/os/_Printf.o(.data); BUILD_DIR/src/os/osViData.o(.data); BUILD_DIR/src/os/_Litob.o(.data); BUILD_DIR/data/rodata_main.o(.rodata); BUILD_DIR/src/main.o(.rodata); BUILD_DIR/src/code_800029B0.o(.rodata); BUILD_DIR/data/data_0DD0A0_3.o(.rodata); BUILD_DIR/src/code_80057C60.o(.rodata); BUILD_DIR/data/data_0DD0A0_3_0.o(.rodata); BUILD_DIR/src/os/guRotateF.o(.rodata); BUILD_DIR/data/data_0DD0A0_3_1.o(.rodata); BUILD_DIR/src/os/__osDevMgrMain.o(.rodata); BUILD_DIR/src/os/math/sinf.o(.rodata); BUILD_DIR/src/os/math/cosf.o(.rodata); BUILD_DIR/src/os/_Printf.o(.rodata); BUILD_DIR/asm/os/osSetIntMask.o(.rodata); BUILD_DIR/src/os/_Ldtob.o(.rodata); BUILD_DIR/data/rsp.o(.data); BUILD_DIR/src/audio/data.o(.data); } END_SEG(main) BEGIN_NOLOAD(main) { BUILD_DIR/src/main.o(.bss); BUILD_DIR/src/code_800029B0.o(.bss); BUILD_DIR/asm/bss_800029B0.o(.bss); BUILD_DIR/src/profiler.o(.bss); BUILD_DIR/src/crash_screen.o(.bss); BUILD_DIR/asm/bss_80004740.o(.bss); BUILD_DIR/src/staff_ghosts.o(.bss); BUILD_DIR/asm/bss_80005FD0.o(.bss); BUILD_DIR/asm/bss_MainSeg.o(.bss); BUILD_DIR/src/code_8001C4D0.o(.bss); BUILD_DIR/asm/bss_8001C4D0.o(.bss); BUILD_DIR/src/os/osCreateViManager.o(.bss); BUILD_DIR/src/os/osCreatePiManager.o(.bss); BUILD_DIR/src/os/osSetEventMesg.o(.bss); BUILD_DIR/src/os/osSpTaskLoadGo.o(.bss); BUILD_DIR/src/os/osContStartReadData.o(.bss); BUILD_DIR/src/os/osContInit.o(.bss); BUILD_DIR/src/os/osPfsIsPlug.o(.bss); BUILD_DIR/src/os/guRotateF.o(.bss); BUILD_DIR/src/os/leointerrupt.o(.bss); BUILD_DIR/src/os/osTimer.o(.bss); BUILD_DIR/src/os/__osPiCreateAccessQueue.o(.bss); BUILD_DIR/src/os/__osSiCreateAccessQueue.o(.bss); BUILD_DIR/src/os/osEepromWrite.o(.bss); BUILD_DIR/asm/bss_after_ostimer.o(.bss); BUILD_DIR/src/os/osLeoDiskInit.o(.bss); BUILD_DIR/asm/bss_after_diskinit.o(.bss); } END_NOLOAD(main) _mainSegmentNoloadSize = SIZEOF(.main.noload) + 0x10; _mainSegmentNoloadSizeHi = _mainSegmentNoloadSize >> 16; _mainSegmentNoloadSizeLo = _mainSegmentNoloadSize & 0xFFFF; . = SEG_FRAMEBUFFERS; BEGIN_NOLOAD(framebuffers) { BUILD_DIR/src/framebuffers.o(.bss*); } END_NOLOAD(framebuffers) /* 0x8028DF00 0F7510-123640 [2C130] */ BEGIN_SEG(code_8028DF00, SEG_8028DF00) { BUILD_DIR/src/code_8028DF00.o(.text); BUILD_DIR/src/code_80290C20.o(.text); BUILD_DIR/src/code_80296A50.o(.text); BUILD_DIR/src/code_802A3730.o(.text); BUILD_DIR/src/memory.o(.text); BUILD_DIR/src/code_802B0210.o(.text); BUILD_DIR/src/math_util.o(.text); BUILD_DIR/data/data_121DA0.o(.data); BUILD_DIR/src/code_802A3730.o(.data); BUILD_DIR/src/memory.o(.data); BUILD_DIR/data/data_121DA0_1.o(.data); BUILD_DIR/courses/courseTable.inc.o(.data); BUILD_DIR/data/data_121DA0_2.o(.data); BUILD_DIR/src/code_8028DF00.o(.rodata); BUILD_DIR/data/data_121DA0_2_1.o(.data); } END_SEG(code_8028DF00) BEGIN_NOLOAD(code_8028DF00) { BUILD_DIR/src/code_8028DF00.o(.bss); BUILD_DIR/asm/bss_8028DF00.o(.bss); BUILD_DIR/src/memory.o(.bss); BUILD_DIR/asm/bss_sptask_audio.o(.bss); } END_NOLOAD(code_8028DF00) _code_8028DF00SegmentNoloadSize = SIZEOF(.code_8028DF00.noload) + 0x10; _code_8028DF00SegmentNoloadSizeHi = _code_8028DF00SegmentNoloadSize >> 16; _code_8028DF00SegmentNoloadSizeLo = _code_8028DF00SegmentNoloadSize & 0xFFFF; . = SEG_AUDIO; BEGIN_NOLOAD(audio) { BUILD_DIR/src/audio/synthesis.o(.bss*); } END_NOLOAD(audio) /* 0x80280000 123640-12AAE0 [74A0] */ BEGIN_SEG(code_80280000, SEG_80280000) { BUILD_DIR/src/code_80280000.o(.text); BUILD_DIR/src/code_80280650.o(.text); BUILD_DIR/src/code_80281610.o(.text); BUILD_DIR/src/code_80281780.o(.text); BUILD_DIR/src/code_80281C40.o(.text); BUILD_DIR/src/code_80281FA0.o(.text); BUILD_DIR/src/code_80280650.o(.data); BUILD_DIR/data/data_credits_128480.o(.data); } END_SEG(code_80280000) BEGIN_NOLOAD(code_80280000) { BUILD_DIR/asm/bss_credits.o(.bss); } END_NOLOAD(code_80280000) _code_80280000SegmentNoloadSize = SIZEOF(.code_80280000.noload) + 0x10; _code_80280000SegmentNoloadSizeHi = _code_80280000SegmentNoloadSize >> 16; _code_80280000SegmentNoloadSizeLo = _code_80280000SegmentNoloadSize & 0xFFFF; /* 0x801978D0 12AAE0-132B50 [8070] */ /* texture tables and DLs, set as segment 0x02 */ BEGIN_SEG(data_segment2, 0x02000000) { BUILD_DIR/src/textures.inc.o(.data); BUILD_DIR/src/data_segment2.inc.o(.data); } END_SEG(data_segment2) /* 0x02000000 132B50-145470 [12920] (copied to 0x8027B5E0) */ /* common textures, decompressed and set as segment 0x0D */ BEGIN_SEG(common_textures, 0x0D000000) { BUILD_DIR/data/common_textures.mio0.o(.data); . = ALIGN(0x10); } END_SEG(common_textures) /* 0x0F000000 145470-63E278 [4F8E08] */ /* compressed kart textures and palettes */ BEGIN_SEG(kart_textures, 0x0F000000) { BUILD_DIR/data/kart_textures.o(.data); BUILD_DIR/courses/staff_ghosts.inc.o(.data); . = ALIGN(0x10); } END_SEG(kart_textures) /* 0x0F000000: 641F70-724220 */ BEGIN_SEG(other_textures, 0x0F000000) { BUILD_DIR/data/other_textures.o(.data); . = ALIGN(0x10); } END_SEG(other_textures) /* 0x802BA370 724220-729A30 [0x5810] */ BEGIN_SEG(data_802BA370, 0x802BA370) { BUILD_DIR/src/math_util.o(.data); . = ALIGN(0x10); } END_SEG(data_802BA370) /* 0x0A000000 729A30-7E684F [BCE20] */ BEGIN_SEG(textures_0a, 0x0A000000) { BUILD_DIR/data/course_player_selection.o(.data); BUILD_DIR/data/texture_data_2.o(.data); . = ALIGN(0x10); } END_SEG(textures_0a) /* 0x0B000000 7FA3C0-821D10 [27950] */ BEGIN_SEG(textures_0b, 0x0B000000) { BUILD_DIR/data/texture_tkmk00.o(.data); . = ALIGN(0x10); } END_SEG(textures_0b) /* TODO: 0x825800 -> 0x8028B230 (0x100) ... 0x828400 -> 0x8028DE30 (0xD0) */ BEGIN_SEG(data_821D10, 0x0C000000) { BUILD_DIR/src/trophy_model.inc.mio0.o(.data); . = ALIGN(0x10); } END_SEG(data_821D10) BEGIN_SEG(data_825800, 0x06000000) { BUILD_DIR/src/startup_logo.inc.mio0.o(.data); . = ALIGN(0x10); } END_SEG(data_825800) MIO0_SEG(course_mario_raceway_dl) MIO0_SEG(course_choco_mountain_dl) MIO0_SEG(course_bowsers_castle_dl) MIO0_SEG(course_banshee_boardwalk_dl) MIO0_SEG(course_yoshi_valley_dl) MIO0_SEG(course_frappe_snowland_dl) MIO0_SEG(course_koopa_troopa_beach_dl) MIO0_SEG(course_royal_raceway_dl) MIO0_SEG(course_luigi_raceway_dl) MIO0_SEG(course_moo_moo_farm_dl) MIO0_SEG(course_toads_turnpike_dl) MIO0_SEG(course_kalimari_desert_dl) MIO0_SEG(course_sherbet_land_dl) MIO0_SEG(course_rainbow_road_dl) MIO0_SEG(course_wario_stadium_dl) MIO0_SEG(course_block_fort_dl) MIO0_SEG(course_skyscraper_dl) MIO0_SEG(course_double_deck_dl) MIO0_SEG(course_dks_jungle_parkway_dl) MIO0_SEG(course_big_donut_dl) COURSE_OFFSETS_SEG(course_mario_raceway_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_choco_mountain_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_bowsers_castle_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_banshee_boardwalk_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_yoshi_valley_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_frappe_snowland_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_koopa_troopa_beach_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_royal_raceway_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_luigi_raceway_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_moo_moo_farm_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_toads_turnpike_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_kalimari_desert_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_sherbet_land_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_rainbow_road_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_wario_stadium_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_block_fort_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_skyscraper_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_double_deck_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_dks_jungle_parkway_offsets, 0x09000000) COURSE_OFFSETS_SEG(course_big_donut_offsets, 0x09000000) BEGIN_SEG(mario_raceway_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/flower_cup/mario_raceway/model.inc.mio0.o(.data); \ } \ END_SEG(mario_raceway_vertex) BEGIN_SEG(choco_mountain_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/flower_cup/choco_mountain/model.inc.mio0.o(.data); \ } \ END_SEG(choco_mountain_vertex) BEGIN_SEG(bowsers_castle_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/star_cup/bowsers_castle/model.inc.mio0.o(.data); \ } \ END_SEG(bowsers_castle_vertex) BEGIN_SEG(banshee_boardwalk_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/special_cup/banshee_boardwalk/model.inc.mio0.o(.data); \ } \ END_SEG(banshee_boardwalk_vertex) BEGIN_SEG(yoshi_valley_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/special_cup/yoshi_valley/model.inc.mio0.o(.data); \ } \ END_SEG(yoshi_valley_vertex) BEGIN_SEG(frappe_snowland_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/flower_cup/frappe_snowland/model.inc.mio0.o(.data); \ } \ END_SEG(frappe_snowland_vertex) BEGIN_SEG(koopa_troopa_beach_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/mushroom_cup/koopa_beach/model.inc.mio0.o(.data); \ } \ END_SEG(koopa_troopa_beach_vertex) BEGIN_SEG(royal_raceway_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/star_cup/royal_raceway/model.inc.mio0.o(.data); \ } \ END_SEG(royal_raceway_vertex) BEGIN_SEG(luigi_raceway_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/mushroom_cup/luigi_raceway/model.inc.mio0.o(.data); \ } \ END_SEG(luigi_raceway_vertex) BEGIN_SEG(moo_moo_farm_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/mushroom_cup/moo_moo_farm/model.inc.mio0.o(.data); \ } \ END_SEG(moo_moo_farm_vertex) BEGIN_SEG(toads_turnpike_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/flower_cup/toads_turnpike/model.inc.mio0.o(.data); \ } \ END_SEG(toads_turnpike_vertex) BEGIN_SEG(kalimari_desert_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/mushroom_cup/kalimari_desert/model.inc.mio0.o(.data); \ } \ END_SEG(kalimari_desert_vertex) BEGIN_SEG(sherbet_land_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/star_cup/sherbet_land/model.inc.mio0.o(.data); \ } \ END_SEG(sherbet_land_vertex) BEGIN_SEG(rainbow_road_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/special_cup/rainbow_road/model.inc.mio0.o(.data); \ } \ END_SEG(rainbow_road_vertex) BEGIN_SEG(wario_stadium_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/star_cup/wario_stadium/model.inc.mio0.o(.data); \ } \ END_SEG(wario_stadium_vertex) BEGIN_SEG(block_fort_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/battle/block_fort/model.inc.mio0.o(.data); \ } \ END_SEG(block_fort_vertex) BEGIN_SEG(skyscraper_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/battle/skyscraper/model.inc.mio0.o(.data); \ } \ END_SEG(skyscraper_vertex) BEGIN_SEG(double_deck_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/battle/double_deck/model.inc.mio0.o(.data); \ } \ END_SEG(double_deck_vertex) BEGIN_SEG(dks_jungle_parkway_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/special_cup/dks_jungle_parkway/model.inc.mio0.o(.data); \ } \ END_SEG(dks_jungle_parkway_vertex) BEGIN_SEG(big_donut_vertex, 0x0F000000) \ { \ BUILD_DIR/courses/battle/big_donut/model.inc.mio0.o(.data); \ } \ END_SEG(big_donut_vertex) BEGIN_SEG(audio_banks, 0x0) { BUILD_DIR/data/sound_data/audiobanks.o(.data); } END_SEG(audio_banks) BEGIN_SEG(audio_tables, 0x13840) { BUILD_DIR/data/sound_data/audiotables.o(.data); } END_SEG(audio_tables) BEGIN_SEG(sequences, 0x25FD00) { BUILD_DIR/data/sound_data/sequences.o(.data); } END_SEG(sequences) BEGIN_SEG(instrument_sets, 0x282E80) { BUILD_DIR/data/sound_data/instrument_sets.o(.data); } END_SEG(instrument_sets) /* Discard everything not specifically mentioned above. */ /DISCARD/ : { *(*); } }