z_message_nes (1 NON_MATCHING) (#1394)

* Bring over progress

* Some docs

* scratch urls + format

* Fixes

* Match Message_DrawTextNES

* String macros

* color structs
This commit is contained in:
Derek Hensley 2023-09-26 21:24:52 -07:00 committed by GitHub
parent 775501b28b
commit d4c41f0263
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1707 additions and 108 deletions

View File

@ -1009,14 +1009,14 @@ void func_80148B98(PlayState* play, u8 arg1);
void Message_DrawTextChar(PlayState* play, TexturePtr texture, Gfx** gfxP);
void func_80149C18(PlayState* play);
// void Message_FindMessage(void);
void func_80149F74(PlayState* play, u32** ppuParm2);
void Message_DrawItemIcon(PlayState* play, Gfx** gfxP);
void Message_HandleOcarina(PlayState* play);
void func_8014ADBC(PlayState* play, UNK_PTR puParm2);
void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 arg2);
void Message_LoadChar(PlayState* play, u16 codePointIndex, s32* offset, f32* arg3, s16 decodedBufPos);
void Message_SetupLoadItemIcon(PlayState* play);
// void func_8014CCB4(void);
// void func_8014CDF0(void);
// void func_8014CFDC(void);
// void Message_SetupLoadItemIcon(void);
void func_8014D304(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_8014D62C(void);
// void func_8014D7B4(void);
@ -1046,19 +1046,12 @@ void Message_Update(PlayState* play);
void func_801586A4(PlayState* play);
void Message_Init(PlayState* play);
void Message_FindMessageNES(PlayState* play, u16 textId);
// void Message_LoadCharNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
// void Message_LoadPluralRupeesNES(void);
// void Message_LoadLocalizedRupeesNES(void);
// void Message_LoadRupeesNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5);
// void Message_LoadTimeNES(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void Message_LoadOwlWarpTextNES(void);
// void func_80159438(void);
void func_8015966C(PlayState* play, UNK_PTR puParm2, UNK_TYPE arg3);
// void func_8015A144(void);
void func_8015B198(PlayState* play);
void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos);
void Message_DecodeNES(PlayState* play);
void Message_FindCreditsMessage(PlayState* play, u16 textId);
void Message_FindCreditsMessage(PlayState* play, u16 textId);
void Message_DrawTextCredits(PlayState* play, Gfx** gfxP);
// void func_8015F8A8(UNK_TYPE4 ctxt);
void Message_DecodeCredits(PlayState* play);
uintptr_t KaleidoManager_FaultAddrConv(uintptr_t address, void* param);
void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl);

View File

@ -38,6 +38,7 @@
#define DAY_LENGTH (CLOCK_TIME(24, 0))
#define TIME_TO_HOURS_F(time) ((time) * (24.0f / 0x10000))
#define TIME_TO_HOURS_F_ALT(time) (TIME_TO_MINUTES_F(time) / 60.0f)
#define TIME_TO_MINUTES_F(time) ((time) * ((24.0f * 60.0f) / 0x10000)) // 0.021972656f
#define TIME_TO_MINUTES_ALT_F(time) ((time) / (0x10000 / (24.0f * 60.0f)))
#define TIME_TO_SECONDS_F(time) ((time) * ((24.0f * 60.0f * 60.0f) / 0x10000))

View File

@ -334,9 +334,9 @@ extern char D_801D039C[];
// extern UNK_TYPE1 D_801D045A;
// extern UNK_TYPE1 D_801D0462;
//extern UNK_TYPE1 D_801D0468;
// extern UNK_TYPE1 D_801D0470;
// extern char D_801D06F0[];
// extern UNK_TYPE1 D_801D0710;
// extern UNK_TYPE1 sNESFontWidths;
// extern char sRupeesTextLocalization[];
// extern UNK_TYPE1 sRupeesTextLength;
// extern char D_801D0714[];
// extern UNK_TYPE1 D_801D07C4;
// extern UNK_TYPE1 D_801D07DC;
@ -348,8 +348,8 @@ extern char D_801D039C[];
// extern UNK_TYPE1 D_801D08CC;
// extern UNK_TYPE1 D_801D08D8;
// extern UNK_TYPE1 D_801D08E4;
// extern UNK_TYPE1 D_801D08E8;
// extern UNK_TYPE1 D_801D0900;
// extern UNK_TYPE1 sMaskCodeTextENG;
// extern UNK_TYPE1 sMaskCodeTextLengthENG;
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[2];
// extern UNK_TYPE1 D_801D0B8C;
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;

View File

@ -154,12 +154,22 @@ typedef enum {
/* 52 */ HUD_VISIBILITY_NONE_INSTANT = 52
} HudVisibility;
// Based on sRupeesTextLocalization
typedef enum Language {
/* 0 */ LANGUAGE_JPN,
/* 1 */ LANGUAGE_ENG,
/* 2 */ LANGUAGE_GER,
/* 3 */ LANGUAGE_FRE,
/* 4 */ LANGUAGE_SPA,
/* 5 */ LANGUAGE_MAX
} Language;
typedef enum HighScore {
/* 0 */ HS_BANK_RUPEES,
/* 1 */ HS_UNK_1,
/* 2 */ HS_FISHING, // Fishing flags
/* 3 */ HS_BOAT_ARCHERY,
/* 4 */ HS_HOSRE_BACK_BALLOON,
/* 4 */ HS_HORSE_BACK_BALLOON,
/* 5 */ HS_LOTTERY_GUESS, // Lottery code chosen by player (only uses lower three hex digits)
/* 6 */ HS_SHOOTING_GALLERY, // High scores for both shooting galleries. Town uses lower 16 bits, Swamp uses higher 16 bits.
/* 7 */ HS_MAX
@ -520,6 +530,7 @@ typedef enum {
(gSaveContext.save.saveInfo.stolenItems = (gSaveContext.save.saveInfo.stolenItems & ~0x00FF0000) | ((itemId & 0xFF) << 0x10))
#define HIGH_SCORE(type) (gSaveContext.save.saveInfo.highScores[(type)])
#define GET_HIGH_SCORE(type) ((void)0, gSaveContext.save.saveInfo.highScores[(type)])
#define HS_GET_BANK_RUPEES() (HIGH_SCORE(HS_BANK_RUPEES) & 0xFFFF)
#define HS_SET_BANK_RUPEES(rupees) (HIGH_SCORE(HS_BANK_RUPEES) = ((HIGH_SCORE(HS_BANK_RUPEES) & 0xFFFF0000) | (rupees)))
@ -529,8 +540,8 @@ typedef enum {
#define HS_GET_BOAT_ARCHERY_HIGH_SCORE() ((HIGH_SCORE(HS_BOAT_ARCHERY) & 0xFFFF0000) >> 0x10)
#define HS_SET_BOAT_ARCHERY_HIGH_SCORE(score) (HIGH_SCORE(HS_BOAT_ARCHERY) = ((HIGH_SCORE(HS_BOAT_ARCHERY) & 0xFFFF) | ((u16)(score) << 0x10)))
#define HS_GET_HORSE_BACK_BALLOON_TIME() ((s32)HIGH_SCORE(HS_HOSRE_BACK_BALLOON))
#define HS_SET_HORSE_BACK_BALLOON_TIME(time) (HIGH_SCORE(HS_HOSRE_BACK_BALLOON) = (time))
#define HS_GET_HORSE_BACK_BALLOON_TIME() ((s32)HIGH_SCORE(HS_HORSE_BACK_BALLOON))
#define HS_SET_HORSE_BACK_BALLOON_TIME(time) (HIGH_SCORE(HS_HORSE_BACK_BALLOON) = (time))
#define HS_GET_LOTTERY_CODE_GUESS() (HIGH_SCORE(HS_LOTTERY_GUESS) & 0xFFFF)
#define HS_SET_LOTTERY_CODE_GUESS(guess) (HIGH_SCORE(HS_LOTTERY_GUESS) = ((HIGH_SCORE(HS_LOTTERY_GUESS) & 0xFFFF0000) | ((guess) & 0xFFFF)))

1
spec
View File

@ -531,7 +531,6 @@ beginseg
include "build/data/code/z_message.data.o"
include "build/data/code/z_message.bss.o"
include "build/src/code/z_message_nes.o"
include "build/data/code/z_message_nes.data.o"
include "build/src/code/z_message_staff.o"
include "build/src/code/z_player_call.o"
include "build/src/code/z_shrink_window.o"

View File

@ -223,7 +223,7 @@ void Message_FindMessage(PlayState* play, u16 textId) {
font->messageEnd = nextSegment - foundSegment;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_80149F74.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/Message_DrawItemIcon.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/Message_HandleOcarina.s")
@ -272,7 +272,7 @@ void func_8014CCB4(PlayState* play, s16* decodedBufPos, s32* offset, f32* arg3)
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_8014CDF0.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_8014CFDC.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/Message_SetupLoadItemIcon.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_8014D304.s")
@ -363,7 +363,7 @@ void func_80151A68(PlayState* play, u16 textId) {
msgCtx->msgLength = 0;
func_80150D08(play, textId);
func_80150A84(play);
func_8015B198(play);
Message_DecodeNES(play);
msgCtx->msgMode = 0x45;
msgCtx->textDelayTimer = 0;
msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget = msgCtx->textColorAlpha = 0;
@ -548,7 +548,7 @@ void func_80153E7C(PlayState* play, Gfx** gfxP) {
} else if (play->msgCtx.textIsCredits) {
Message_DrawTextCredits(play, gfxP);
} else {
func_8015966C(play, gfxP, 0);
Message_DrawTextNES(play, gfxP, 0);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2838,14 +2838,14 @@
0x8014995C:("Message_DrawTextChar",),
0x80149C18:("func_80149C18",),
0x80149EBC:("Message_FindMessage",),
0x80149F74:("func_80149F74",),
0x80149F74:("Message_DrawItemIcon",),
0x8014AAD0:("Message_HandleOcarina",),
0x8014ADBC:("func_8014ADBC",),
0x8014C70C:("Message_LoadItemIcon",),
0x8014CC14:("Message_LoadChar",),
0x8014CCB4:("func_8014CCB4",),
0x8014CDF0:("func_8014CDF0",),
0x8014CFDC:("func_8014CFDC",),
0x8014CFDC:("Message_SetupLoadItemIcon",),
0x8014D304:("func_8014D304",),
0x8014D62C:("func_8014D62C",),
0x8014D7B4:("func_8014D7B4",),
@ -2881,9 +2881,9 @@
0x80158D98:("Message_LoadRupeesNES",),
0x80158FB0:("Message_LoadTimeNES",),
0x8015926C:("Message_LoadOwlWarpTextNES",),
0x80159438:("func_80159438",),
0x8015966C:("func_8015966C",),
0x8015B198:("func_8015B198",),
0x80159438:("Message_GetTimerDigitsNES",),
0x8015966C:("Message_DrawTextNES",),
0x8015B198:("Message_DecodeNES",),
0x8015E750:("Message_FindCreditsMessage",),
0x8015E7EC:("Message_DrawTextCredits",),
0x8015F8A8:("Message_DecodeCredits",),

View File

@ -2058,10 +2058,10 @@
0x801D045A:("D_801D045A","UNK_TYPE1","",0x1),
0x801D0462:("D_801D0462","UNK_TYPE1","",0x1),
0x801D0468:("D_801D0468","UNK_TYPE1","",0x1),
0x801D0470:("D_801D0470","UNK_TYPE1","",0x1),
0x801D06F0:("D_801D06F0","char","[]",0x18),
0x801D0470:("sNESFontWidths","UNK_TYPE1","",0x1),
0x801D06F0:("sRupeesTextLocalization","char","[]",0x18),
0x801D0708:("D_801D0708","char","[]",1),
0x801D0710:("D_801D0710","UNK_TYPE1","",0x1),
0x801D0710:("sRupeesTextLength","UNK_TYPE1","",0x1),
0x801D0714:("D_801D0714","char","[]",0x1),
0x801D0724:("D_801D0724","char","[]",0x1),
0x801D0730:("D_801D0730","char","[]",0x1),
@ -2083,14 +2083,13 @@
0x801D07DC:("D_801D07DC","UNK_TYPE1","",0x1),
0x801D080C:("D_801D080C","UNK_TYPE1","",0x1),
0x801D083C:("D_801D083C","UNK_TYPE1","",0x1),
0x801D086C:("D_801D086C","UNK_TYPE1","",0x1),
0x801D0890:("D_801D0890","UNK_TYPE1","",0x1),
0x801D086C:("D_801D086C","UNK_TYPE1","",0x30),
0x801D089C:("D_801D089C","UNK_TYPE1","",0x1),
0x801D08CC:("D_801D08CC","UNK_TYPE1","",0x1),
0x801D08D8:("D_801D08D8","UNK_TYPE1","",0x1),
0x801D08E4:("D_801D08E4","UNK_TYPE1","",0x1),
0x801D08E8:("D_801D08E8","UNK_TYPE1","",0x1),
0x801D0900:("D_801D0900","UNK_TYPE1","",0x1),
0x801D08E8:("sMaskCodeTextENG","UNK_TYPE1","",0x1),
0x801D0900:("sMaskCodeTextLengthENG","UNK_TYPE1","",0x1),
0x801D0B50:("Player_InitVars","ActorInit","",0x20),
0x801D0B70:("gKaleidoMgrOverlayTable","KaleidoMgrOverlay","",0x38),
0x801D0BA8:("sKaleidoAreaPtr","void*","",0x4),

View File

@ -2350,16 +2350,16 @@ asm/non_matchings/code/z_message/func_801491DC.s,func_801491DC,0x801491DC,0x9E
asm/non_matchings/code/z_message/func_80149454.s,func_80149454,0x80149454,0x9D
asm/non_matchings/code/z_message/func_801496C8.s,func_801496C8,0x801496C8,0xA5
asm/non_matchings/code/z_message/func_8014995C.s,func_8014995C,0x8014995C,0xAF
asm/non_matchings/code/z_message/func_80149C18.s,func_80149C18,0x80149C18,0xA9
asm/non_matchings/code/z_message/Message_DrawItemIcon.s,Message_DrawItemIcon,0x80149C18,0xA9
asm/non_matchings/code/z_message/Message_FindMessage.s,Message_FindMessage,0x80149EBC,0x2E
asm/non_matchings/code/z_message/func_80149F74.s,func_80149F74,0x80149F74,0x2D7
asm/non_matchings/code/z_message/Message_DrawItemIcon.s,Message_DrawItemIcon,0x80149F74,0x2D7
asm/non_matchings/code/z_message/func_8014AAD0.s,func_8014AAD0,0x8014AAD0,0xBB
asm/non_matchings/code/z_message/func_8014ADBC.s,func_8014ADBC,0x8014ADBC,0x654
asm/non_matchings/code/z_message/func_8014C70C.s,func_8014C70C,0x8014C70C,0x142
asm/non_matchings/code/z_message/Message_LoadChar.s,Message_LoadChar,0x8014CC14,0x28
asm/non_matchings/code/z_message/func_8014CCB4.s,func_8014CCB4,0x8014CCB4,0x4F
asm/non_matchings/code/z_message/func_8014CDF0.s,func_8014CDF0,0x8014CDF0,0x7B
asm/non_matchings/code/z_message/func_8014CFDC.s,func_8014CFDC,0x8014CFDC,0xCA
asm/non_matchings/code/z_message/Message_SetupLoadItemIcon.s,Message_SetupLoadItemIcon,0x8014CFDC,0xCA
asm/non_matchings/code/z_message/func_8014D304.s,func_8014D304,0x8014D304,0xCA
asm/non_matchings/code/z_message/func_8014D62C.s,func_8014D62C,0x8014D62C,0x62
asm/non_matchings/code/z_message/func_8014D7B4.s,func_8014D7B4,0x8014D7B4,0xCB4

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2350 asm/non_matchings/code/z_message/func_80149454.s func_80149454 0x80149454 0x9D
2351 asm/non_matchings/code/z_message/func_801496C8.s func_801496C8 0x801496C8 0xA5
2352 asm/non_matchings/code/z_message/func_8014995C.s func_8014995C 0x8014995C 0xAF
2353 asm/non_matchings/code/z_message/func_80149C18.s asm/non_matchings/code/z_message/Message_DrawItemIcon.s func_80149C18 Message_DrawItemIcon 0x80149C18 0xA9
2354 asm/non_matchings/code/z_message/Message_FindMessage.s Message_FindMessage 0x80149EBC 0x2E
2355 asm/non_matchings/code/z_message/func_80149F74.s asm/non_matchings/code/z_message/Message_DrawItemIcon.s func_80149F74 Message_DrawItemIcon 0x80149F74 0x2D7
2356 asm/non_matchings/code/z_message/func_8014AAD0.s func_8014AAD0 0x8014AAD0 0xBB
2357 asm/non_matchings/code/z_message/func_8014ADBC.s func_8014ADBC 0x8014ADBC 0x654
2358 asm/non_matchings/code/z_message/func_8014C70C.s func_8014C70C 0x8014C70C 0x142
2359 asm/non_matchings/code/z_message/Message_LoadChar.s Message_LoadChar 0x8014CC14 0x28
2360 asm/non_matchings/code/z_message/func_8014CCB4.s func_8014CCB4 0x8014CCB4 0x4F
2361 asm/non_matchings/code/z_message/func_8014CDF0.s func_8014CDF0 0x8014CDF0 0x7B
2362 asm/non_matchings/code/z_message/func_8014CFDC.s asm/non_matchings/code/z_message/Message_SetupLoadItemIcon.s func_8014CFDC Message_SetupLoadItemIcon 0x8014CFDC 0xCA
2363 asm/non_matchings/code/z_message/func_8014D304.s func_8014D304 0x8014D304 0xCA
2364 asm/non_matchings/code/z_message/func_8014D62C.s func_8014D62C 0x8014D62C 0x62
2365 asm/non_matchings/code/z_message/func_8014D7B4.s func_8014D7B4 0x8014D7B4 0xCB4