2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
OUTPUT_ARCH (mips)
|
|
|
|
|
|
|
|
#define BEGIN_SEG(name, addr) \
|
2020-05-23 07:27:26 -04:00
|
|
|
_##name##SegmentStart = ADDR(.name); \
|
|
|
|
_##name##SegmentRomStart = __romPos; \
|
|
|
|
.name addr : AT(__romPos)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
#define END_SEG(name) \
|
2020-05-23 07:27:26 -04:00
|
|
|
_##name##SegmentEnd = ADDR(.name) + SIZEOF(.name); \
|
|
|
|
_##name##SegmentRomEnd = __romPos + SIZEOF(.name); \
|
|
|
|
__romPos += SIZEOF(.name);
|
2020-05-23 06:09:52 -04:00
|
|
|
|
2020-07-05 22:29:27 -04:00
|
|
|
#define BEGIN_NOLOAD(name) \
|
|
|
|
_##name##SegNoloadStart = ADDR(.name.noload); \
|
|
|
|
.name.noload (NOLOAD) :
|
|
|
|
|
|
|
|
#define END_NOLOAD(name) \
|
|
|
|
_##name##SegNoloadEnd = ADDR(.name.noload) + SIZEOF(.name.noload);
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-23 06:09:52 -04:00
|
|
|
SECTIONS
|
|
|
|
{
|
|
|
|
__romPos = 0x0;
|
|
|
|
|
|
|
|
/* header and boot */
|
|
|
|
BEGIN_SEG(boot, 0xA4000000) {
|
|
|
|
BUILD_DIR/asm/rom_header.o(.text);
|
|
|
|
BUILD_DIR/asm/boot2.o(.text);
|
|
|
|
}
|
|
|
|
END_SEG(boot)
|
|
|
|
|
|
|
|
/* 0x80000400 001000-039DF0 [38DF0] */
|
|
|
|
BEGIN_SEG(ovl0, 0x80000400) {
|
2020-07-02 02:12:57 -04:00
|
|
|
BUILD_DIR/asm/EntryPoint.o(.text);
|
|
|
|
BUILD_DIR/src/ovl0/ovl0_0.o(.text);
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl0/ovl0.o(.text);
|
2020-07-03 16:14:25 -04:00
|
|
|
BUILD_DIR/src/ovl0/ovl0_1.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl0/ovl0_2.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl0/ovl0_3.o(.text);
|
2020-06-14 02:35:30 -04:00
|
|
|
BUILD_DIR/data/kirby.039DF0.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
|
|
|
END_SEG(ovl0)
|
2020-07-05 22:29:27 -04:00
|
|
|
BEGIN_NOLOAD(ovl0) {
|
|
|
|
BUILD_DIR/src/ovl0/ovl0_0.o(.bss);
|
|
|
|
}
|
|
|
|
END_NOLOAD(ovl0)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x8009B540 043790-066630 [22EA0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl1, 0x8009B540) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl1/ovl1.o(.text);
|
2020-06-21 17:11:17 -04:00
|
|
|
BUILD_DIR/data/kirby.066630.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl1)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x800F61A0 07EC10-0AC900 [2DCF0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl2, 0x800F61A0) {
|
2020-06-05 19:54:19 -04:00
|
|
|
BUILD_DIR/src/ovl2/ovl2.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_2.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_3.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_4.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_5.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_6.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_7.o(.text);
|
|
|
|
BUILD_DIR/src/ovl2/ovl2_8.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl2/ovl2_data.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl2)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x80151100 0B1B40-0F0D50 [3F210] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl3, 0x80151100) {
|
2020-06-16 19:45:40 -04:00
|
|
|
BUILD_DIR/src/ovl3/ovl3.o(.text);
|
|
|
|
BUILD_DIR/src/ovl3/ovl3_1.o(.text);
|
|
|
|
BUILD_DIR/src/ovl3/ovl3_2.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl3/ovl3_3.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl3/ovl3_4.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl3/ovl3_5.o(.text);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl3)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x80151100 0F8630-1014F0 [8EC0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl4, 0x80151100) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl4/ovl4.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl4)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x8015C740 103BB0-12D410 [29860] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl5, 0x8015C740) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl5/ovl5.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl5)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x80151100 135490-139150 [3CC0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl6, 0x80151100) {
|
2020-07-05 20:06:15 -04:00
|
|
|
BUILD_DIR/src/ovl6/ovl6.o(.text);
|
|
|
|
BUILD_DIR/data/kirby.139150.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl6)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x80198880 13E8F0-168840 [29F50] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl7, 0x80198880) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl7/ovl7.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl7)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801D0C60 174740-17B360 [6C20] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl8, 0x801D0C60) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl8/ovl8.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl8)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801D0C60 17ECB0-1C9B00 [4AE50] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl9, 0x801D0C60) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl9/ovl9.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl9)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 1CBF50-1E4160 [18210] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl10, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl10/ovl10.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl10)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 1E5AA0-1EB3C0 [5920] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl11, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl11/ovl11.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl11)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 1EB520-1F2DE0 [78C0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl12, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl12/ovl12.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl12)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 1F3160-1FDA00 [A8A0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl13, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl13/ovl13.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl13)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 1FDDD0-205A90 [7CC0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl14, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl14/ovl14.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl14)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 205D40-210FB0 [B270] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl15, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl15/ovl15.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl15)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 211490-225770 [142E0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl16, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl16/ovl16.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl16)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x801DB1E0 2263D0-230050 [9C80] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl17, 0x801DB1E0) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl17/ovl17.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl17)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x8021DF20 2308C0-239D80 [94C0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl18, 0x8021DF20) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl18/ovl18.o(.text);
|
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl18)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x8021DF20 23E630-24F750 [11120] */
|
2020-05-23 07:27:26 -04:00
|
|
|
BEGIN_SEG(ovl19, 0x8021DF20) {
|
2020-05-23 06:09:52 -04:00
|
|
|
BUILD_DIR/asm/ovl19/ovl19.o(.text);
|
2020-05-31 00:22:10 -04:00
|
|
|
BUILD_DIR/asm/ovl19/ovl19_2.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl19/ovl19_3.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl19/ovl19_4.o(.text);
|
|
|
|
BUILD_DIR/src/ovl19/ovl19_5.o(.text);
|
|
|
|
BUILD_DIR/asm/ovl19/ovl19_data.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl19)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
|
|
|
/* 0x80300000 2501C0-2502A0 [E0] */
|
2020-05-23 07:27:26 -04:00
|
|
|
.BEGIN_SEG(ovl20, 0x80300000) {
|
2020-05-30 00:12:30 -04:00
|
|
|
BUILD_DIR/src/ovl20.o(.text);
|
|
|
|
BUILD_DIR/asm/kirby.u.2502A0.o(.data);
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|
2020-05-23 07:27:26 -04:00
|
|
|
END_SEG(ovl20)
|
2020-05-23 06:09:52 -04:00
|
|
|
|
2020-05-26 11:23:02 -04:00
|
|
|
/* TODO: implement this somehow
|
|
|
|
.BEGIN_SEG(leveltextures, 0x07000000) {
|
|
|
|
BUILD_DIR/data/textures_1BD5C80.o(.data);
|
|
|
|
}
|
|
|
|
END_SEG(leveltextures)
|
|
|
|
*/
|
2020-05-26 15:53:53 -04:00
|
|
|
/DISCARD/ :
|
|
|
|
{
|
|
|
|
*(*);
|
|
|
|
}
|
2020-05-23 06:09:52 -04:00
|
|
|
}
|