Add macros for MIO0 segment compatibility

This commit is contained in:
CrashOveride95
2021-06-07 23:31:12 -04:00
parent 1fe697b02e
commit dce56fbac8
2 changed files with 47 additions and 3 deletions

View File

@@ -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

12
sm64.ld
View File

@@ -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
{