Improve segment symbols

This commit is contained in:
Arceveti
2024-04-15 14:23:20 -07:00
parent aa05f32f02
commit 025758bf45
4 changed files with 32 additions and 26 deletions

View File

@@ -4,12 +4,18 @@
#ifndef NO_SEGMENTED_MEMORY
#define DECLARE_SEGMENT(name) \
extern u8 _##name##SegmentRomStart[]; \
extern u8 _##name##SegmentRomEnd[];
extern u8 _##name##SegmentRomEnd[]; \
extern u8 _##name##SegmentStart[]; \
extern u8 _##name##SegmentEnd[];
#define DECLARE_NOLOAD(name) \
extern u8 _##name##SegmentBssStart[]; \
extern u8 _##name##SegmentBssEnd[];
#define DECLARE_TEXT(name) \
extern u8 _##name##SegmentTextStart[]; \
extern u8 _##name##SegmentTextEnd[];
#define DECLARE_ACTOR_SEGMENT(name) \
DECLARE_SEGMENT(name##_mio0) \
DECLARE_SEGMENT(name##_yay0) \
@@ -42,32 +48,34 @@ DECLARE_ACTOR_SEGMENT(group15)
DECLARE_ACTOR_SEGMENT(group16)
DECLARE_ACTOR_SEGMENT(group17)
DECLARE_SEGMENT(entry)
// BEGIN_SEG()
DECLARE_SEGMENT(boot) // Segment 4
#ifdef KEEP_MARIO_HEAD
DECLARE_SEGMENT(gd_dynlists) // Segment 4
#endif // KEEP_MARIO_HEAD
#ifdef HVQM
DECLARE_NOLOAD(hvqmwork)
DECLARE_NOLOAD(adpcmbuf)
DECLARE_NOLOAD(hvqbuf)
#endif // HVQM
DECLARE_SEGMENT(entry) // Segment 7
DECLARE_SEGMENT(main)
DECLARE_NOLOAD(main)
DECLARE_SEGMENT(engine)
DECLARE_SEGMENT(behavior)
DECLARE_NOLOAD(engine)
DECLARE_SEGMENT(behavior) // Segment 19
DECLARE_NOLOAD(behavior)
DECLARE_SEGMENT(crashscreen)
DECLARE_NOLOAD(crashscreen)
DECLARE_SEGMENT(scripts)
DECLARE_SEGMENT(goddard)
DECLARE_NOLOAD(goddard)
DECLARE_SEGMENT(framebuffers)
DECLARE_NOLOAD(framebuffers)
DECLARE_NOLOAD(zbuffer)
DECLARE_NOLOAD(buffers)
DECLARE_SEGMENT(assets)
extern u8 _goddardSegmentStart[];
extern u8 _goddardSegmentEnd[];
extern u8 _engineSegmentStart[];
extern u8 _engineSegmentBssEnd[];
extern u8 _mainSegmentStart[];
extern u8 _mainSegmentEnd[];
extern u8 _engineSegmentEnd[];
extern u8 _crashscreenSegmentStart[];
extern u8 _crashscreenSegmentEnd[];
extern u8 _framebuffersSegmentBssStart[];
extern u8 _framebuffersSegmentBssEnd[];
extern u8 _zbufferSegmentBssStart[];
extern u8 _zbufferSegmentBssEnd[];
extern u8 _buffersSegmentBssStart[];
extern u8 _buffersSegmentBssEnd[];
DECLARE_SEGMENT(mapData)
DECLARE_LEVEL_SEGMENT(menu)
DECLARE_LEVEL_SEGMENT(intro)
@@ -115,7 +123,7 @@ DECLARE_SEGMENT(debug_level_select_yay0)
DECLARE_SEGMENT(translation_de_yay0)
DECLARE_SEGMENT(translation_en_yay0)
DECLARE_SEGMENT(translation_fr_yay0)
#endif
#endif // VERSION_EU
//added for compatibility
DECLARE_SEGMENT(segment2_mio0)
@@ -152,8 +160,8 @@ DECLARE_SEGMENT(debug_level_select_mio0)
DECLARE_SEGMENT(translation_de_mio0)
DECLARE_SEGMENT(translation_en_mio0)
DECLARE_SEGMENT(translation_fr_mio0)
#endif
#endif // VERSION_EU
#endif
#endif // !NO_SEGMENTED_MEMORY
#endif // SEGMENT_SYMBOLS_H

View File

@@ -340,6 +340,7 @@ static const IdNamePair sROMSegNames_03_common1_gfx[] = {
// 04: SEGMENT_GROUP0_YAY0
static const IdNamePair sROMSegNames_04_group0_gfx[] = {
DEF_ROM_SEG_YAY0(group0),
DEF_ROM_SEG(boot),
ID_LIST_END(),
};
// 05: SEGMENT_GROUPA_YAY0

View File

@@ -127,7 +127,7 @@ CSTextCoord_u32 cs_draw_assert(CSTextCoord_u32 line) {
case ASSERT_TYPE_LEVEL:
// line = (CRASH_SCREEN_NUM_CHARS_Y - 3 - 1);
line++;
CSTextCoord_u32 levelStrSize = cs_print(x, TEXT_Y(line), "Level %d: %s",
CSTextCoord_u32 levelStrSize = cs_print(x, TEXT_Y(line), "Level %d %s",
gCurrLevelNum, get_level_name(gCurrLevelNum)
);
if (gCurrentArea != NULL) {
@@ -137,6 +137,7 @@ CSTextCoord_u32 cs_draw_assert(CSTextCoord_u32 line) {
case ASSERT_TYPE_RCP:
// line = (CRASH_SCREEN_NUM_CHARS_Y - 3 - 3);
line++;
//! TODO: Other RCP registers.
cs_print(x, TEXT_Y(line), "DPC:\t0x%08X in 0x%08X-0x%08X\nSTAT:\tdp:0x%04X\tsp:0x%04X\nSP DMA:\tfull:%X busy:%X",
IO_READ(DPC_CURRENT_REG), IO_READ(DPC_START_REG), IO_READ(DPC_END_REG),
IO_READ(DPC_STATUS_REG), IO_READ(SP_STATUS_REG),

View File

@@ -110,10 +110,6 @@ extern const MapSymbol gMapSymbols[];
extern const MapSymbol gMapSymbolsEnd[];
extern const Byte gMapStrings[];
extern const Byte gMapStringEnd[];
extern const Byte _mapDataSegmentStart[];
extern const Byte _mapDataSegmentEnd[];
extern const Byte _mapDataSegmentRomStart[];
extern const Byte _mapDataSegmentRomEnd[];
extern size_t gNumMapSymbols;