#include "macros.lcf.inc" MEMORY { .itcm (RWX) : ORIGIN=0x01FF8000, LENGTH=0 .text (RX) : ORIGIN=0x02000000, LENGTH=0 .data (R) : ORIGIN=0x20EC710, LENGTH=0 .autoload (R) : ORIGIN=0x02107700, LENGTH=0 .footer (R) : ORIGIN=0, LENGTH=0 .bss (RWX) : ORIGIN=0x02106FA0, LENGTH=0 .ewram (RWX) : ORIGIN=0x023E0000, LENGTH=0 .dtcm (RW) : ORIGIN=0x027E0000, LENGTH=0 .overlay (RX) : ORIGIN=0, LENGTH=0 MODULE_00 (RWX) : ORIGIN=0, LENGTH=0 MODULE_01 (RWX) : ORIGIN=0x021D74E0, LENGTH=0 MODULE_02 (RWX) : ORIGIN=0, LENGTH=0 MODULE_03 (RWX) : ORIGIN=0, LENGTH=0 MODULE_04 (RWX) : ORIGIN=0x021D74E0, LENGTH=0 MODULE_05 (RWX) : ORIGIN=0, LENGTH=0 MODULE_06 (RWX) : ORIGIN=0, LENGTH=0 MODULE_07 (RWX) : ORIGIN=0, LENGTH=0 MODULE_08 (RWX) : ORIGIN=0, LENGTH=0 MODULE_09 (RWX) : ORIGIN=0, LENGTH=0 MODULE_10 (RWX) : ORIGIN=0, LENGTH=0 MODULE_11 (RWX) : ORIGIN=0, LENGTH=0 MODULE_12 (RWX) : ORIGIN=0, LENGTH=0 MODULE_13 (RWX) : ORIGIN=0, LENGTH=0 MODULE_14 (RWX) : ORIGIN=0, LENGTH=0 MODULE_15 (RWX) : ORIGIN=0, LENGTH=0 MODULE_16 (RWX) : ORIGIN=0, LENGTH=0 MODULE_17 (RWX) : ORIGIN=0, LENGTH=0 MODULE_18 (RWX) : ORIGIN=0, LENGTH=0 MODULE_19 (RWX) : ORIGIN=0, LENGTH=0 MODULE_20 (RWX) : ORIGIN=0, LENGTH=0 MODULE_21 (RWX) : ORIGIN=0, LENGTH=0 MODULE_22 (RWX) : ORIGIN=0, LENGTH=0 MODULE_23 (RWX) : ORIGIN=0, LENGTH=0 MODULE_24 (RWX) : ORIGIN=0, LENGTH=0 MODULE_25 (RWX) : ORIGIN=0, LENGTH=0 MODULE_26 (RWX) : ORIGIN=0, LENGTH=0 MODULE_27 (RWX) : ORIGIN=0, LENGTH=0 MODULE_28 (RWX) : ORIGIN=0, LENGTH=0 MODULE_29 (RWX) : ORIGIN=0, LENGTH=0 MODULE_30 (RWX) : ORIGIN=0, LENGTH=0 MODULE_31 (RWX) : ORIGIN=0, LENGTH=0 MODULE_32 (RWX) : ORIGIN=0, LENGTH=0 MODULE_33 (RWX) : ORIGIN=0, LENGTH=0 MODULE_34 (RWX) : ORIGIN=0, LENGTH=0 MODULE_35 (RWX) : ORIGIN=0, LENGTH=0 MODULE_36 (RWX) : ORIGIN=0, LENGTH=0 MODULE_37 (RWX) : ORIGIN=0, LENGTH=0 MODULE_38 (RWX) : ORIGIN=0, LENGTH=0 MODULE_39 (RWX) : ORIGIN=0, LENGTH=0 MODULE_40 (RWX) : ORIGIN=0, LENGTH=0 MODULE_41 (RWX) : ORIGIN=0, LENGTH=0 MODULE_42 (RWX) : ORIGIN=0, LENGTH=0 MODULE_43 (RWX) : ORIGIN=0, LENGTH=0 MODULE_44 (RWX) : ORIGIN=0, LENGTH=0 MODULE_45 (RWX) : ORIGIN=0, LENGTH=0 MODULE_46 (RWX) : ORIGIN=0, LENGTH=0 MODULE_47 (RWX) : ORIGIN=0, LENGTH=0 MODULE_48 (RWX) : ORIGIN=0, LENGTH=0 MODULE_49 (RWX) : ORIGIN=0, LENGTH=0 MODULE_50 (RWX) : ORIGIN=0, LENGTH=0 MODULE_51 (RWX) : ORIGIN=0, LENGTH=0 MODULE_52 (RWX) : ORIGIN=0, LENGTH=0 MODULE_53 (RWX) : ORIGIN=0, LENGTH=0 MODULE_54 (RWX) : ORIGIN=0, LENGTH=0 MODULE_55 (RWX) : ORIGIN=0, LENGTH=0 MODULE_56 (RWX) : ORIGIN=0, LENGTH=0 MODULE_57 (RWX) : ORIGIN=0, LENGTH=0 MODULE_58 (RWX) : ORIGIN=0, LENGTH=0 MODULE_59 (RWX) : ORIGIN=0, LENGTH=0 MODULE_60 (RWX) : ORIGIN=0, LENGTH=0 MODULE_61 (RWX) : ORIGIN=0, LENGTH=0 MODULE_62 (RWX) : ORIGIN=0, LENGTH=0 MODULE_63 (RWX) : ORIGIN=0, LENGTH=0 MODULE_64 (RWX) : ORIGIN=0, LENGTH=0 MODULE_65 (RWX) : ORIGIN=0, LENGTH=0 MODULE_66 (RWX) : ORIGIN=0, LENGTH=0 MODULE_67 (RWX) : ORIGIN=0, LENGTH=0 MODULE_68 (RWX) : ORIGIN=0, LENGTH=0 MODULE_69 (RWX) : ORIGIN=0, LENGTH=0 MODULE_70 (RWX) : ORIGIN=0, LENGTH=0 MODULE_71 (RWX) : ORIGIN=0, LENGTH=0 MODULE_72 (RWX) : ORIGIN=0, LENGTH=0 MODULE_73 (RWX) : ORIGIN=0, LENGTH=0 MODULE_74 (RWX) : ORIGIN=0, LENGTH=0 MODULE_75 (RWX) : ORIGIN=0, LENGTH=0 MODULE_76 (RWX) : ORIGIN=0, LENGTH=0 MODULE_77 (RWX) : ORIGIN=0, LENGTH=0 MODULE_78 (RWX) : ORIGIN=0, LENGTH=0 MODULE_79 (RWX) : ORIGIN=0, LENGTH=0 MODULE_80 (RWX) : ORIGIN=0, LENGTH=0 MODULE_81 (RWX) : ORIGIN=0, LENGTH=0 MODULE_82 (RWX) : ORIGIN=0, LENGTH=0 MODULE_83 (RWX) : ORIGIN=0, LENGTH=0 MODULE_84 (RWX) : ORIGIN=0, LENGTH=0 MODULE_85 (RWX) : ORIGIN=0, LENGTH=0 MODULE_86 (RWX) : ORIGIN=0, LENGTH=0 } SECTIONS { #include "undefined_syms.txt" .text : AT (0x0) { secure.o (.text) crt0.o (.text) crt0.o (.version) main.o (.text) FUN_02000DF4.o (.text) unk_02000E0C.o (.text) string_util.o (.text) unk_020023C0.o (.text) filesystem.o (.text) unk_02006864.o (.text) script.o (.text) unk_02038C78.o (.text) scrcmd.o (.text) unk_02046030.o (.text) unk_0208AC14.o (.text) FUN_020910A4.o (.text) unk_020910EC.o (.text) unk_020AF030.o (.text) /* Nitro SDK */ FX_mtx22.o (.text) FX_mtx33.o (.text) FX_mtx43.o (.text) FX_mtx44.o (.text) FX_cp.o (.text) FX_vec.o (.text) FX_atan.o (.text) FX.o (.text) GX.o (.text) GX_state.o (.text) GX_vramcnt.o (.text) GX_bgcnt.o (.text) GX_g2.o (.text) GX_g3b.o (.text) GX_g3imm.o (.text) GX_g3x.o (.text) GX_g3_util.o (.text) GX_load2d.o (.text) GX_load3d.o (.text) GX_g3.o (.text) GX_asm.o (.text) OS_irqHandler.o (.text) OS_irqTable.o (.text) OS_interrupt.o (.text) OS_spinLock.o (.text) OS_printf.o (.text) OS_thread.o (.text) OS_context.o (.text) OS_emulator.o (.text) OS_message.o (.text) OS_mutex.o (.text) OS_cache.o (.text) OS_init.o (.text) OS_arena.o (.text) OS_alloc.o (.text) OS_tcm.o (.text) OS_protectionUnit.o (.text) OS_protectionRegion.o (.text) OS_exception.o (.text) OS_timer.o (.text) OS_tick.o (.text) OS_alarm.o (.text) OS_valarm.o (.text) OS_system.o (.text) OS_reset.o (.text) OS_ownerInfo.o (.text) OS_vramExclusive.o (.text) OS_entropy.o (.text) OS_terminate_proc.o (.text) MI_wram.o (.text) MI_dma.o (.text) MI_dma_hblank.o (.text) MI_dma_gxcommand.o (.text) MI_memory.o (.text) MI_swap.o (.text) MI_uncompress.o (.text) MI_dma_card.o (.text) MI_init.o (.text) libsnd.o (.text) libpxi.o (.text) libfs.o (.text) libdgt.o (.text) libcp.o (.text) libspi.o (.text) libpm.o (.text) librtc.o (.text) libcard.o (.text) libwm.o (.text) libctrdg.o (.text) libmath.o (.text) libstd.o (.text) /* C standard library */ libc.o (.text) /* MWCC library */ libmwcc.o (.text) } > .text .data : AT (0xEC710) { rom2.o (.data) string_util.o (.data) rom2_2.o (.data) } > .data SDK_STATIC_BSS_START = .; SDK_STATIC_BSS_END = SDK_STATIC_BSS_START + 0xd0540; SDK_AUTOLOAD_START = .; .itcm : AT (0x106FA0) { SDK_AUTOLOAD_ITCM_START = .; arm9_itcm.o (.itcm) SDK_AUTOLOAD_ITCM_END = .; . = 0x01FF8720; SDK_SECTION_ARENA_ITCM_START = .; } > .itcm .dtcm : AT (0x1076A0) { SDK_AUTOLOAD_DTCM_START = .; OS_irqTable.o (.dtcm) OS_irqHandler.o (.dtcm) SDK_AUTOLOAD_DTCM_END = .; SDK_SECTION_ARENA_DTCM_START = 0x027E0080; } > .dtcm .autoload : AT (0x107700) { WRITEW SDK_AUTOLOAD_ITCM_START; WRITEW SDK_AUTOLOAD_ITCM_SIZE; WRITEW SDK_AUTOLOAD_ITCM_BSS_SIZE; WRITEW SDK_AUTOLOAD_DTCM_START; WRITEW SDK_AUTOLOAD_DTCM_SIZE; WRITEW SDK_AUTOLOAD_DTCM_BSS_SIZE; WRITEW SDK_AUTOLOAD_EXT_START; WRITEW SDK_AUTOLOAD_EXT_SIZE; WRITEW SDK_AUTOLOAD_EXT_BSS_SIZE; } > .autoload .footer : AT (0x107724) { WRITEW 0xDEC00621; WRITEW _start_ModuleParams - ADDR(.text); WRITEW 0; } > .footer .overlay : AT (0x107800) { OVERLAY_TABLE(SDK_MODULE_00, 0) OVERLAY_TABLE(SDK_MODULE_01, 1) OVERLAY_TABLE(SDK_MODULE_02, 2) OVERLAY_TABLE(SDK_MODULE_03, 3) OVERLAY_TABLE(SDK_MODULE_04, 4) OVERLAY_TABLE(SDK_MODULE_05, 5) OVERLAY_TABLE(SDK_MODULE_06, 6) OVERLAY_TABLE(SDK_MODULE_07, 7) OVERLAY_TABLE(SDK_MODULE_08, 8) OVERLAY_TABLE(SDK_MODULE_09, 9) OVERLAY_TABLE(SDK_MODULE_10, 10) OVERLAY_TABLE(SDK_MODULE_11, 11) OVERLAY_TABLE(SDK_MODULE_12, 12) OVERLAY_TABLE(SDK_MODULE_13, 13) OVERLAY_TABLE(SDK_MODULE_14, 14) OVERLAY_TABLE(SDK_MODULE_15, 15) OVERLAY_TABLE(SDK_MODULE_16, 16) OVERLAY_TABLE(SDK_MODULE_17, 17) OVERLAY_TABLE(SDK_MODULE_18, 18) OVERLAY_TABLE(SDK_MODULE_19, 19) OVERLAY_TABLE(SDK_MODULE_20, 20) OVERLAY_TABLE(SDK_MODULE_21, 21) OVERLAY_TABLE(SDK_MODULE_22, 22) OVERLAY_TABLE(SDK_MODULE_23, 23) OVERLAY_TABLE(SDK_MODULE_24, 24) OVERLAY_TABLE(SDK_MODULE_25, 25) OVERLAY_TABLE(SDK_MODULE_26, 26) OVERLAY_TABLE(SDK_MODULE_27, 27) OVERLAY_TABLE(SDK_MODULE_28, 28) OVERLAY_TABLE(SDK_MODULE_29, 29) OVERLAY_TABLE(SDK_MODULE_30, 30) OVERLAY_TABLE(SDK_MODULE_31, 31) OVERLAY_TABLE(SDK_MODULE_32, 32) OVERLAY_TABLE(SDK_MODULE_33, 33) OVERLAY_TABLE(SDK_MODULE_34, 34) OVERLAY_TABLE(SDK_MODULE_35, 35) OVERLAY_TABLE(SDK_MODULE_36, 36) OVERLAY_TABLE(SDK_MODULE_37, 37) OVERLAY_TABLE(SDK_MODULE_38, 38) OVERLAY_TABLE(SDK_MODULE_39, 39) OVERLAY_TABLE(SDK_MODULE_40, 40) OVERLAY_TABLE(SDK_MODULE_41, 41) OVERLAY_TABLE(SDK_MODULE_42, 42) OVERLAY_TABLE(SDK_MODULE_43, 43) OVERLAY_TABLE(SDK_MODULE_44, 44) OVERLAY_TABLE(SDK_MODULE_45, 45) OVERLAY_TABLE(SDK_MODULE_46, 46) OVERLAY_TABLE(SDK_MODULE_47, 47) OVERLAY_TABLE(SDK_MODULE_48, 48) OVERLAY_TABLE(SDK_MODULE_49, 49) OVERLAY_TABLE(SDK_MODULE_50, 50) OVERLAY_TABLE(SDK_MODULE_51, 51) OVERLAY_TABLE(SDK_MODULE_52, 52) OVERLAY_TABLE(SDK_MODULE_53, 53) OVERLAY_TABLE(SDK_MODULE_54, 54) OVERLAY_TABLE(SDK_MODULE_55, 55) OVERLAY_TABLE(SDK_MODULE_56, 56) OVERLAY_TABLE(SDK_MODULE_57, 57) OVERLAY_TABLE(SDK_MODULE_58, 58) OVERLAY_TABLE(SDK_MODULE_59, 59) OVERLAY_TABLE(SDK_MODULE_60, 60) OVERLAY_TABLE(SDK_MODULE_61, 61) OVERLAY_TABLE(SDK_MODULE_62, 62) OVERLAY_TABLE(SDK_MODULE_63, 63) OVERLAY_TABLE(SDK_MODULE_64, 64) OVERLAY_TABLE(SDK_MODULE_65, 65) OVERLAY_TABLE(SDK_MODULE_66, 66) OVERLAY_TABLE(SDK_MODULE_67, 67) OVERLAY_TABLE(SDK_MODULE_68, 68) OVERLAY_TABLE(SDK_MODULE_69, 69) OVERLAY_TABLE(SDK_MODULE_70, 70) OVERLAY_TABLE(SDK_MODULE_71, 71) OVERLAY_TABLE(SDK_MODULE_72, 72) OVERLAY_TABLE(SDK_MODULE_73, 73) OVERLAY_TABLE(SDK_MODULE_74, 74) OVERLAY_TABLE(SDK_MODULE_75, 75) OVERLAY_TABLE(SDK_MODULE_76, 76) OVERLAY_TABLE(SDK_MODULE_77, 77) OVERLAY_TABLE(SDK_MODULE_78, 78) OVERLAY_TABLE(SDK_MODULE_79, 79) OVERLAY_TABLE(SDK_MODULE_80, 80) OVERLAY_TABLE(SDK_MODULE_81, 81) OVERLAY_TABLE(SDK_MODULE_82, 82) OVERLAY_TABLE(SDK_MODULE_83, 83) OVERLAY_TABLE(SDK_MODULE_84, 84) OVERLAY_TABLE(SDK_MODULE_85, 85) OVERLAY_TABLE(SDK_MODULE_86, 86) } > .overlay OVERLAY_FILE(00, 0x108400, FILE_10C400.o) .MODULE.01 : AT (0x108600) { module_01.o (.text) module_01.o (.sdata) module_01.o (.data) } > MODULE_01 .MODULE.01.bss : { module_01.o (.sbss) module_01.o (.bss) } >> MODULE_01 OVERLAY_FILE(02, 0x108800, FILE_10C800.o) OVERLAY_FILE(03, 0x108A00, FILE_10CA00.o) .MODULE.04 : AT (0x108C00) { thumb_04.o (.text) arm_04.o (.text) arm_04.o (.data) } > MODULE_04 .MODULE.04.bss : { arm_04.o (.bss) } >> MODULE_04 OVERLAY_FILE(05, 0x141400, FILE_145400.o) OVERLAY_FILE(06, 0x167600, FILE_16B600.o) OVERLAY_FILE(07, 0x180400, FILE_184400.o) OVERLAY_FILE(08, 0x183800, FILE_187800.o) OVERLAY_FILE(09, 0x19F000, FILE_1A3000.o) OVERLAY_FILE(10, 0x1A9200, FILE_1AD200.o) OVERLAY_FILE(11, 0x1A9400, FILE_1AD400.o) OVERLAY_FILE(12, 0x1DBE00, FILE_1DFE00.o) OVERLAY_FILE(13, 0x1F5200, FILE_1F9200.o) OVERLAY_FILE(14, 0x223E00, FILE_227E00.o) OVERLAY_FILE(15, 0x233400, FILE_237400.o) OVERLAY_FILE(16, 0x237C00, FILE_23BC00.o) OVERLAY_FILE(17, 0x260200, FILE_264200.o) OVERLAY_FILE(18, 0x267200, FILE_26B200.o) OVERLAY_FILE(19, 0x27F000, FILE_283000.o) OVERLAY_FILE(20, 0x27F200, FILE_283200.o) OVERLAY_FILE(21, 0x281600, FILE_285600.o) OVERLAY_FILE(22, 0x281C00, FILE_285C00.o) OVERLAY_FILE(23, 0x282C00, FILE_286C00.o) OVERLAY_FILE(24, 0x284600, FILE_288600.o) OVERLAY_FILE(25, 0x285000, FILE_289000.o) OVERLAY_FILE(26, 0x285600, FILE_289600.o) OVERLAY_FILE(27, 0x285E00, FILE_289E00.o) OVERLAY_FILE(28, 0x286A00, FILE_28AA00.o) OVERLAY_FILE(29, 0x288200, FILE_28C200.o) OVERLAY_FILE(30, 0x288C00, FILE_28CC00.o) OVERLAY_FILE(31, 0x289200, FILE_28D200.o) OVERLAY_FILE(32, 0x289800, FILE_28D800.o) OVERLAY_FILE(33, 0x289E00, FILE_28DE00.o) OVERLAY_FILE(34, 0x28A200, FILE_28E200.o) OVERLAY_FILE(35, 0x28A800, FILE_28E800.o) OVERLAY_FILE(36, 0x28B200, FILE_28F200.o) OVERLAY_FILE(37, 0x28C000, FILE_290000.o) OVERLAY_FILE(38, 0x28C600, FILE_290600.o) OVERLAY_FILE(39, 0x28D200, FILE_291200.o) OVERLAY_FILE(40, 0x28E000, FILE_292000.o) OVERLAY_FILE(41, 0x28EE00, FILE_292E00.o) OVERLAY_FILE(42, 0x290000, FILE_294000.o) OVERLAY_FILE(43, 0x290A00, FILE_294A00.o) OVERLAY_FILE(44, 0x291400, FILE_295400.o) OVERLAY_FILE(45, 0x291A00, FILE_295A00.o) OVERLAY_FILE(46, 0x292400, FILE_296400.o) OVERLAY_FILE(47, 0x292800, FILE_296800.o) OVERLAY_FILE(48, 0x293600, FILE_297600.o) OVERLAY_FILE(49, 0x294000, FILE_298000.o) OVERLAY_FILE(50, 0x294600, FILE_298600.o) OVERLAY_FILE(51, 0x294A00, FILE_298A00.o) OVERLAY_FILE(52, 0x295A00, FILE_299A00.o) OVERLAY_FILE(53, 0x295E00, FILE_299E00.o) OVERLAY_FILE(54, 0x298400, FILE_29C400.o) OVERLAY_FILE(55, 0x29A800, FILE_29E800.o) OVERLAY_FILE(56, 0x29DA00, FILE_2A1A00.o) OVERLAY_FILE(57, 0x2A2200, FILE_2A6200.o) OVERLAY_FILE(58, 0x2A4800, FILE_2A8800.o) OVERLAY_FILE(59, 0x2A5E00, FILE_2A9E00.o) OVERLAY_FILE(60, 0x2A8C00, FILE_2ACC00.o) OVERLAY_FILE(61, 0x2A9A00, FILE_2ADA00.o) OVERLAY_FILE(62, 0x2AAC00, FILE_2AEC00.o) OVERLAY_FILE(63, 0x2AEA00, FILE_2B2A00.o) OVERLAY_FILE(64, 0x2B3600, FILE_2B7600.o) OVERLAY_FILE(65, 0x2B5400, FILE_2B9400.o) OVERLAY_FILE(66, 0x2B8400, FILE_2BC400.o) OVERLAY_FILE(67, 0x2BAC00, FILE_2BEC00.o) OVERLAY_FILE(68, 0x2BD200, FILE_2C1200.o) OVERLAY_FILE(69, 0x2BE800, FILE_2C2800.o) OVERLAY_FILE(70, 0x2C0C00, FILE_2C4C00.o) OVERLAY_FILE(71, 0x2C1C00, FILE_2C5C00.o) OVERLAY_FILE(72, 0x2C5C00, FILE_2C9C00.o) OVERLAY_FILE(73, 0x2C5E00, FILE_2C9E00.o) OVERLAY_FILE(74, 0x2CAA00, FILE_2CEA00.o) OVERLAY_FILE(75, 0x2CBE00, FILE_2CFE00.o) OVERLAY_FILE(76, 0x2D1C00, FILE_2D5C00.o) OVERLAY_FILE(77, 0x2D3C00, FILE_2D7C00.o) OVERLAY_FILE(78, 0x2D5800, FILE_2D9800.o) OVERLAY_FILE(79, 0x2D5E00, FILE_2D9E00.o) OVERLAY_FILE(80, 0x2DB200, FILE_2DF200.o) OVERLAY_FILE(81, 0x2E5A00, FILE_2E9A00.o) OVERLAY_FILE(82, 0x2EB000, FILE_2EF000.o) OVERLAY_FILE(83, 0x2ED600, FILE_2F1600.o) OVERLAY_FILE(84, 0x2FBA00, FILE_2FFA00.o) OVERLAY_FILE(85, 0x2FF400, FILE_303400.o) OVERLAY_FILE(86, 0x308600, FILE_30C600.o) }