From dce56fbac8c747599e3a041c4a14188f30f416a7 Mon Sep 17 00:00:00 2001 From: CrashOveride95 Date: Mon, 7 Jun 2021 23:31:12 -0400 Subject: [PATCH] Add macros for MIO0 segment compatibility --- include/segment_symbols.h | 38 ++++++++++++++++++++++++++++++++++++++ sm64.ld | 12 +++++++++--- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 3d9d845c..7ed21340 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -7,6 +7,7 @@ extern u8 _##name##SegmentRomEnd[]; #define DECLARE_ACTOR_SEGMENT(name) \ + DECLARE_SEGMENT(name##_mio0) \ DECLARE_SEGMENT(name##_yay0) \ DECLARE_SEGMENT(name##_geo) @@ -96,6 +97,43 @@ DECLARE_SEGMENT(translation_en_yay0) DECLARE_SEGMENT(translation_fr_yay0) #endif +//added for compatibility +DECLARE_SEGMENT(segment2_mio0) + +DECLARE_SEGMENT(water_skybox_mio0) +DECLARE_SEGMENT(ccm_skybox_mio0) +DECLARE_SEGMENT(clouds_skybox_mio0) +DECLARE_SEGMENT(bitfs_skybox_mio0) +DECLARE_SEGMENT(wdw_skybox_mio0) +DECLARE_SEGMENT(cloud_floor_skybox_mio0) +DECLARE_SEGMENT(ssl_skybox_mio0) +DECLARE_SEGMENT(bbh_skybox_mio0) +DECLARE_SEGMENT(bidw_skybox_mio0) +DECLARE_SEGMENT(bits_skybox_mio0) + +DECLARE_SEGMENT(fire_mio0) +DECLARE_SEGMENT(spooky_mio0) +DECLARE_SEGMENT(generic_mio0) +DECLARE_SEGMENT(water_mio0) +DECLARE_SEGMENT(sky_mio0) +DECLARE_SEGMENT(snow_mio0) +DECLARE_SEGMENT(cave_mio0) +DECLARE_SEGMENT(machine_mio0) +DECLARE_SEGMENT(mountain_mio0) +DECLARE_SEGMENT(grass_mio0) +DECLARE_SEGMENT(outside_mio0) +DECLARE_SEGMENT(inside_mio0) +DECLARE_SEGMENT(effect_mio0) +DECLARE_SEGMENT(title_screen_bg_mio0) + +DECLARE_SEGMENT(debug_level_select_mio0) + +#ifdef VERSION_EU +DECLARE_SEGMENT(translation_de_mio0) +DECLARE_SEGMENT(translation_en_mio0) +DECLARE_SEGMENT(translation_fr_mio0) +#endif + #endif #endif // SEGMENT_SYMBOLS_H diff --git a/sm64.ld b/sm64.ld index 6123bb58..12580b97 100755 --- a/sm64.ld +++ b/sm64.ld @@ -28,7 +28,9 @@ OUTPUT_ARCH (mips) KEEP(BUILD_DIR/bin/name.szp.o(.data)); \ . = ALIGN(0x10); \ } \ - END_SEG(name##_yay0) + END_SEG(name##_yay0) \ + _##name##_mio0SegmentRomStart = _##name##_yay0SegmentRomStart; \ + _##name##_mio0SegmentRomEnd = _##name##_yay0SegmentRomEnd; #define YAY0_EU_SEG(name, segAddr) \ BEGIN_SEG(name##_yay0, segAddr) \ @@ -36,7 +38,9 @@ OUTPUT_ARCH (mips) KEEP(BUILD_DIR/bin/eu/name.szp.o(.data)); \ . = ALIGN(0x10); \ } \ - END_SEG(name##_yay0) + END_SEG(name##_yay0) \ + _##name##_mio0SegmentRomStart = _##name##_yay0SegmentRomStart; \ + _##name##_mio0SegmentRomEnd = _##name##_yay0SegmentRomEnd; #define STANDARD_LEVEL(name) \ BEGIN_SEG(name##_segment_7, 0x07000000) \ @@ -63,7 +67,9 @@ OUTPUT_ARCH (mips) { \ KEEP(BUILD_DIR/actors/name##_geo.o(.data)); \ } \ - END_SEG(name##_geo) + END_SEG(name##_geo) \ + _##name##_mio0SegmentRomStart = _##name##_yay0SegmentRomStart; \ + _##name##_mio0SegmentRomEnd = _##name##_yay0SegmentRomEnd; SECTIONS {