import my makefile rules; put map data at the end of the rom

This commit is contained in:
someone2639
2021-09-18 23:54:35 -04:00
parent 453136149c
commit 612999f1b1
2 changed files with 38 additions and 10 deletions

37
sm64.ld
View File

@@ -150,6 +150,7 @@ SECTIONS
BUILD_DIR/src/boot*.o(.text);
BUILD_DIR/src/hvqm*.o(.text);
BUILD_DIR/src/usb*.o(.text);
BUILD_DIR/src/audio*.o(.text);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.text);
@@ -168,6 +169,7 @@ SECTIONS
/* data */
BUILD_DIR/src/boot*.o(.*data*);
BUILD_DIR/src/usb*.o(.*data*);
BUILD_DIR/src/audio*.o(.*data*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.*data*);
@@ -185,6 +187,7 @@ SECTIONS
/* rodata */
BUILD_DIR/src/boot*.o(.rodata*);
BUILD_DIR/src/usb*.o(.rodata*);
BUILD_DIR/src/audio*.o(.rodata*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.rodata*);
@@ -199,15 +202,32 @@ SECTIONS
BUILD_DIR/lib/rsp.o(.rodata*);
lib/PR/hvqm/hvqm2sp1.o(.rodata*);
#ifndef PRELIMINARY
BUILD_DIR/src/game/crash_screen.o(.text*);
BUILD_DIR/src/game/crash_screen.o(.data*);
BUILD_DIR/src/game/crash_screen.o(.rodata*);
BUILD_DIR/src/game/map_parser.o(.text*);
BUILD_DIR/src/game/map_parser.o(.data*);
BUILD_DIR/src/game/map_parser.o(.rodata*);
#else
parse_map = 0x80345678;
#endif
}
END_SEG(main)
#ifndef PRELIMINARY
ASSERT((_mainSegmentRomEnd <= 0x101000), "Error: Please shrink your main segment to under 1MB.")
#endif
BEGIN_NOLOAD(main)
{
// pad out the space this would've taken
#ifdef PRELIMINARY
BUILD_DIR/src/game/crash_screen.o(.text*);
BUILD_DIR/src/game/crash_screen.o(.data*);
BUILD_DIR/src/game/crash_screen.o(.rodata*);
BUILD_DIR/src/game/map_parser.o(.text*);
BUILD_DIR/src/game/map_parser.o(.data*);
BUILD_DIR/src/game/map_parser.o(.rodata*);
#endif
BUILD_DIR/src/boot*.o(.*bss*);
BUILD_DIR/src/hvqm*.o(.*bss*);
BUILD_DIR/src/usb*.o(.*bss*);
BUILD_DIR/src/audio*.o(.*bss*);
#ifdef S2DEX_TEXT_ENGINE
lib/libs2d_engine.a:*(.*bss*);
@@ -233,23 +253,19 @@ SECTIONS
{
BUILD_DIR/src/game*.o(.text);
BUILD_DIR/src/engine*.o(.text);
BUILD_DIR/src/usb*.o(.text);
/* data */
BUILD_DIR/src/game*.o(.*data*);
BUILD_DIR/src/engine*.o(.data*);
BUILD_DIR/src/engine*.o(.sdata*);
BUILD_DIR/src/usb*.o(.*data*);
/* rodata */
BUILD_DIR/src/game*.o(.rodata*);
BUILD_DIR/src/engine*.o(.rodata*);
BUILD_DIR/src/usb*.o(.rodata*);
}
END_SEG(engine)
BEGIN_NOLOAD(engine)
{
BUILD_DIR/src/game*.o(.*bss*);
BUILD_DIR/src/engine*.o(.bss*);
BUILD_DIR/src/usb*.o(.*bss*);
. = ALIGN(0x40);
}
END_NOLOAD(engine)
@@ -497,6 +513,13 @@ SECTIONS
}
END_SEG(capcom)
#endif
#ifndef PRELIMINARY
BEGIN_SEG(mapData, 0x80700000) {
KEEP(BUILD_DIR/asm/debug/map.o(.data*));
}
END_SEG(mapData)
#endif
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */