You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
SS2: Add 16 to size just in case, added singular place to put in goddard segment files (in case you ever want to do that)
This commit is contained in:
56
goddard.ld
56
goddard.ld
@@ -1,10 +1,5 @@
|
||||
OUTPUT_ARCH (mips)
|
||||
|
||||
#define LINKER /* Removes externs from preprocessed script */
|
||||
#include "segments.h"
|
||||
#include "config.h"
|
||||
#undef LINKER
|
||||
|
||||
#define BEGIN_SEG(name, addr) \
|
||||
_##name##SegmentStart = ADDR(.name); \
|
||||
_##name##SegmentRomStart = __romPos; \
|
||||
@@ -25,47 +20,22 @@ OUTPUT_ARCH (mips)
|
||||
|
||||
SECTIONS {
|
||||
__romPos = 0;
|
||||
BEGIN_SEG(goddard_sz, 0x80345678)
|
||||
SEG_GODDARD = 0x80345670;
|
||||
BEGIN_SEG(goddard, SEG_GODDARD)
|
||||
{
|
||||
KEEP(BUILD_DIR/src/menu*.o(.text));
|
||||
KEEP(BUILD_DIR/src/menu*.o(.data*));
|
||||
KEEP(BUILD_DIR/src/menu*.o(.rodata*));
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
KEEP(BUILD_DIR/libgoddard.a:*.o(.text));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_main.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:draw_objects.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:objects.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:particles.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:dynlist_proc.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:debug_utils.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:joints.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:shape_helper.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:renderer.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_main.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_memory.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:draw_objects.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:objects.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:skin_movement.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:particles.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:dynlist_proc.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:old_menu.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:debug_utils.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:joints.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:skin.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_math.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:shape_helper.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:renderer.o(.rodata*));
|
||||
#endif
|
||||
. = ALIGN(16);
|
||||
KEEP(BUILD_DIR/src/menu*.o(.bss*));
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
KEEP(BUILD_DIR/libgoddard.a:*.o(.bss*));
|
||||
#endif
|
||||
. = ALIGN(16);
|
||||
#define LOAD
|
||||
#include "goddard.ld.inc"
|
||||
#undef LOAD
|
||||
}
|
||||
END_SEG(goddard_sz)
|
||||
END_SEG(goddard)
|
||||
BEGIN_NOLOAD(goddard) {
|
||||
#define NOLOAD
|
||||
#include "goddard.ld.inc"
|
||||
#undef NOLOAD
|
||||
}
|
||||
END_NOLOAD(goddard)
|
||||
|
||||
GODDARD_SIZE = SIZEOF(.goddard_sz);
|
||||
GODDARD_SIZE = SIZEOF(.goddard) + SIZEOF(.goddard.noload);
|
||||
|
||||
/DISCARD/ :
|
||||
{
|
||||
|
||||
43
goddard.ld.inc
Normal file
43
goddard.ld.inc
Normal file
@@ -0,0 +1,43 @@
|
||||
#ifdef LOAD
|
||||
KEEP(BUILD_DIR/src/menu*.o(.text));
|
||||
KEEP(BUILD_DIR/src/menu*.o(.data*));
|
||||
KEEP(BUILD_DIR/src/menu*.o(.rodata*));
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
KEEP(BUILD_DIR/libgoddard.a:*.o(.text));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_main.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:draw_objects.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:objects.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:particles.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:dynlist_proc.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:debug_utils.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:joints.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:shape_helper.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:renderer.o(.data*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_main.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_memory.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:draw_objects.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:objects.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:skin_movement.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:particles.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:dynlist_proc.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:old_menu.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:debug_utils.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:joints.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:skin.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:gd_math.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:shape_helper.o(.rodata*));
|
||||
KEEP(BUILD_DIR/libgoddard.a:renderer.o(.rodata*));
|
||||
#endif
|
||||
. = ALIGN(16);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef NOLOAD
|
||||
KEEP(BUILD_DIR/src/menu*.o(.bss*));
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
KEEP(BUILD_DIR/libgoddard.a:*.o(.bss*));
|
||||
#endif
|
||||
. = ALIGN(16);
|
||||
#endif
|
||||
|
||||
41
sm64.ld
41
sm64.ld
@@ -300,45 +300,16 @@ SECTIONS
|
||||
/* 0x8016F000 21D7D0-255EC0 [386F0] */
|
||||
BEGIN_SEG(goddard, RAM_END - GODDARD_SIZE)
|
||||
{
|
||||
BUILD_DIR/src/menu*.o(.text);
|
||||
BUILD_DIR/src/menu*.o(.data*);
|
||||
BUILD_DIR/src/menu*.o(.rodata*);
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
BUILD_DIR/libgoddard.a:*.o(.text);
|
||||
/* goddard subsystem data */
|
||||
BUILD_DIR/libgoddard.a:gd_main.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:draw_objects.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:objects.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:particles.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:dynlist_proc.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:debug_utils.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:joints.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:shape_helper.o(.data*);
|
||||
BUILD_DIR/libgoddard.a:renderer.o(.data*);
|
||||
/* goddard subsystem rodata */
|
||||
BUILD_DIR/libgoddard.a:gd_main.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:gd_memory.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:draw_objects.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:objects.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:skin_movement.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:particles.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:dynlist_proc.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:old_menu.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:debug_utils.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:joints.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:skin.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:gd_math.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:shape_helper.o(.rodata*);
|
||||
BUILD_DIR/libgoddard.a:renderer.o(.rodata*);
|
||||
#endif
|
||||
#define LOAD
|
||||
#include "goddard.ld.inc"
|
||||
#undef LOAD
|
||||
}
|
||||
END_SEG(goddard)
|
||||
BEGIN_NOLOAD(goddard)
|
||||
{
|
||||
BUILD_DIR/src/menu*.o(.bss*);
|
||||
#ifdef KEEP_MARIO_HEAD
|
||||
BUILD_DIR/libgoddard.a:*.o(.bss*);
|
||||
#endif
|
||||
#define NOLOAD
|
||||
#include "goddard.ld.inc"
|
||||
#undef NOLOAD
|
||||
}
|
||||
END_NOLOAD(goddard)
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ with open(sys.argv[1]) as f:
|
||||
print(tokens)
|
||||
with open("build/us/goddard.txt", "w+") as f:
|
||||
sz = int(tokens[0], 16)
|
||||
sz += 16
|
||||
sz &= 0xFFFFFFF0
|
||||
f.write("GODDARD_SIZE = 0x%X;" % sz)
|
||||
|
||||
Reference in New Issue
Block a user