From f45d02dabef937ac11177fe7d78d89b5caf82870 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 1 Dec 2023 00:02:42 -0600 Subject: [PATCH] Label and Split minigame_seq.c --- config/GMPE01_00/splits.txt | 8 ++ config/GMPE01_00/symbols.txt | 120 ++++++++++++++-------------- configure.py | 1 + include/functions.h | 4 +- src/REL/subchrselDll/subchrselDll.c | 4 +- src/game/objmain.c | 4 +- 6 files changed, 76 insertions(+), 65 deletions(-) diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index c7666889..a33a1ab2 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -194,6 +194,14 @@ game/EnvelopeExec.c: .sbss start:0x801D3D48 end:0x801D3D78 .sdata2 start:0x801D4CD0 end:0x801D4CE8 +game/minigame_seq.c: + .text start:0x800353AC end:0x8003F8B8 + .data start:0x8012F130 end:0x8012F790 + .bss start:0x80190450 end:0x80190860 + .sdata start:0x801D34B8 end:0x801D35C0 + .sbss start:0x801D3D78 end:0x801D3D98 + .sdata2 start:0x801D4CE8 end:0x801D4EA8 + game/ovllist.c: .data start:0x8012F790 end:0x80130100 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 431179a9..f76f5242 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -654,49 +654,49 @@ SetEnvelop = .text:0x800344F4; // type:function size:0x9F0 scope:local SetMtx = .text:0x80034EE4; // type:function size:0x334 scope:local SetRevMtx = .text:0x80035218; // type:function size:0x11C scope:local SearchSklenton = .text:0x80035334; // type:function size:0x78 scope:local -fn_800353AC = .text:0x800353AC; // type:function size:0xBC -fn_80035468 = .text:0x80035468; // type:function size:0x188 -fn_800355F0 = .text:0x800355F0; // type:function size:0x1A4 -fn_80035794 = .text:0x80035794; // type:function size:0x100 -fn_80035894 = .text:0x80035894; // type:function size:0x88 -fn_8003591C = .text:0x8003591C; // type:function size:0x4C -fn_80035968 = .text:0x80035968; // type:function size:0x4C -fn_800359B4 = .text:0x800359B4; // type:function size:0x58 -fn_80035A0C = .text:0x80035A0C; // type:function size:0x3C -fn_80035A48 = .text:0x80035A48; // type:function size:0xA4 -fn_80035AEC = .text:0x80035AEC; // type:function size:0x4 -fn_80035AF0 = .text:0x80035AF0; // type:function size:0x8C -fn_80035B7C = .text:0x80035B7C; // type:function size:0x2E0 -fn_80035E5C = .text:0x80035E5C; // type:function size:0x69C +MGSeqInit = .text:0x800353AC; // type:function size:0xBC +MGSeqMain = .text:0x80035468; // type:function size:0x188 +MGSeqVCreate = .text:0x800355F0; // type:function size:0x1A4 +MGSeqCreate = .text:0x80035794; // type:function size:0x100 +MGSeqGetStat = .text:0x80035894; // type:function size:0x88 +MGSeqSetPos = .text:0x8003591C; // type:function size:0x4C +MGSeqSetParam = .text:0x80035968; // type:function size:0x4C +MGSeqKill = .text:0x800359B4; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C +MGSeqIsDone = .text:0x80035A48; // type:function size:0xA4 +MGSeqDummy_80035AEC = .text:0x80035AEC; // type:function size:0x4 +MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C +MGSeqTimerInit = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqTimerUpdate = .text:0x80035E5C; // type:function size:0x69C fn_800364F8 = .text:0x800364F8; // type:function size:0x3D8 fn_800368D0 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 fn_80036D50 = .text:0x80036D50; // type:function size:0x1D0 fn_80036F20 = .text:0x80036F20; // type:function size:0x26C -fn_8003718C = .text:0x8003718C; // type:function size:0x194 -fn_80037320 = .text:0x80037320; // type:function size:0x9D0 -fn_80037CF0 = .text:0x80037CF0; // type:function size:0x2A4 -fn_80037F94 = .text:0x80037F94; // type:function size:0xDA4 -fn_80038D38 = .text:0x80038D38; // type:function size:0xDA4 -fn_80039ADC = .text:0x80039ADC; // type:function size:0xBB8 -fn_8003A694 = .text:0x8003A694; // type:function size:0xAB4 +MGSeqMGBasicInit = .text:0x8003718C; // type:function size:0x194 +MGSeqMGBasicUpdate = .text:0x80037320; // type:function size:0x9D0 +MGSeqMGCommonInit = .text:0x80037CF0; // type:function size:0x2A4 +MGSeqMGBattleUpdate = .text:0x80037F94; // type:function size:0xDA4 +MGSeqMG1vs3Update = .text:0x80038D38; // type:function size:0xDA4 +MGSeqMGStoryUpdate = .text:0x80039ADC; // type:function size:0xBB8 +MGSeqMG2vs2Update = .text:0x8003A694; // type:function size:0xAB4 fn_8003B148 = .text:0x8003B148; // type:function size:0x3C4 fn_8003B50C = .text:0x8003B50C; // type:function size:0x91C -fn_8003BE28 = .text:0x8003BE28; // type:function size:0xC84 +MGSeqMGBowserUpdate = .text:0x8003BE28; // type:function size:0xC84 fn_8003CAAC = .text:0x8003CAAC; // type:function size:0xDC fn_8003CB88 = .text:0x8003CB88; // type:function size:0x3DC -fn_8003CF64 = .text:0x8003CF64; // type:function size:0x8A0 -fn_8003D804 = .text:0x8003D804; // type:function size:0x72C -fn_8003DF30 = .text:0x8003DF30; // type:function size:0x774 -fn_8003E6A4 = .text:0x8003E6A4; // type:function size:0x304 -fn_8003E9A8 = .text:0x8003E9A8; // type:function size:0x6C -fn_8003EA14 = .text:0x8003EA14; // type:function size:0x94C -fn_8003F360 = .text:0x8003F360; // type:function size:0xC -fn_8003F36C = .text:0x8003F36C; // type:function size:0x40 -fn_8003F3AC = .text:0x8003F3AC; // type:function size:0xDC -fn_8003F488 = .text:0x8003F488; // type:function size:0x234 -fn_8003F6BC = .text:0x8003F6BC; // type:function size:0xD4 -fn_8003F790 = .text:0x8003F790; // type:function size:0x128 +MGSeqWinInit = .text:0x8003CF64; // type:function size:0x8A0 +MGSeqWinUpdate = .text:0x8003D804; // type:function size:0x72C +MGSeqRecordInit = .text:0x8003DF30; // type:function size:0x774 +MGSeqRecordUpdate = .text:0x8003E6A4; // type:function size:0x304 +MGSeqPauseStart = .text:0x8003E9A8; // type:function size:0x6C +MGSeqPauseProcFunc = .text:0x8003EA14; // type:function size:0x94C +MGSeqPauseStop = .text:0x8003F360; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F36C; // type:function size:0x40 +MGSeqPracticeStart = .text:0x8003F3AC; // type:function size:0xDC +MGSeqPracticeProc = .text:0x8003F488; // type:function size:0x234 +MGSeqPlaySE = .text:0x8003F6BC; // type:function size:0xD4 +MGSeqPracticeExitCheck = .text:0x8003F790; // type:function size:0x128 espInit = .text:0x8003F8B8; // type:function size:0xA0 espEntry = .text:0x8003F958; // type:function size:0x1B0 espKill = .text:0x8003FB08; // type:function size:0x98 @@ -2885,7 +2885,7 @@ fn_800E4EF8 = .text:0x800E4EF8; // type:function size:0xEC fn_800E4FE4 = .text:0x800E4FE4; // type:function size:0x28C fn_800E5270 = .text:0x800E5270; // type:function size:0x110 fn_800E5380 = .text:0x800E5380; // type:function size:0x70 -fn_800E53F0 = .text:0x800E53F0; // type:function size:0x10 +abs = .text:0x800E53F0; // type:function size:0x10 __flush_buffer = .text:0x800E5400; // type:function size:0xC4 scope:global __prep_buffer = .text:0x800E54C4; // type:function size:0x34 scope:global tolower = .text:0x800E54F8; // type:function size:0x24 @@ -4924,19 +4924,21 @@ lbl_8012F020 = .data:0x8012F020; // type:object size:0x94 lbl_8012F0B4 = .data:0x8012F0B4; // type:object size:0x11 data:string lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A lbl_8012F0FF = .data:0x8012F0FF; // type:object size:0x31 -lbl_8012F130 = .data:0x8012F130; // type:object size:0x1DC +MGSeqTable = .data:0x8012F130; // type:object size:0x1DC lbl_8012F30C = .data:0x8012F30C; // type:object size:0x18 lbl_8012F324 = .data:0x8012F324; // type:object size:0x120 -lbl_8012F444 = .data:0x8012F444; // type:object size:0x18 -lbl_8012F45C = .data:0x8012F45C; // type:object size:0x40 -lbl_8012F49C = .data:0x8012F49C; // type:object size:0x1C -lbl_8012F4B8 = .data:0x8012F4B8; // type:object size:0x38 -lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0x84 -lbl_8012F574 = .data:0x8012F574; // type:object size:0x24 -lbl_8012F598 = .data:0x8012F598; // type:object size:0x50 -lbl_8012F5E8 = .data:0x8012F5E8; // type:object size:0xAC -lbl_8012F694 = .data:0x8012F694; // type:object size:0xC -lbl_8012F6A0 = .data:0x8012F6A0; // type:object size:0xF0 +MGSeqWordTable = .data:0x8012F444; // type:object size:0x18 +MGSeqBattleLetterOfs = .data:0x8012F45C; // type:object size:0x40 +MGSeq2vs2LetterOfs = .data:0x8012F49C; // type:object size:0x1C +MGSeqBowserLetterOfs = .data:0x8012F4B8; // type:object size:0x38 +lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0xC +MGSeqCharStr = .data:0x8012F4FC; // type:object size:0x78 +lbl_8012F574 = .data:0x8012F574; // type:object size:0xC +MGSeqWinStr = .data:0x8012F580; // type:object size:0x18 +MGSeqWinOfs = .data:0x8012F598; // type:object size:0x50 +MGSeqPracticeList = .data:0x8012F5E8; // type:object size:0xAC +MGSeqPracticeYPos = .data:0x8012F694; // type:object size:0xC +MGSeqSfxTable = .data:0x8012F6A0; // type:object size:0xF0 lbl_8012F790 = .data:0x8012F790; // type:object size:0x15 data:string lbl_8012F7A5 = .data:0x8012F7A5; // type:object size:0x10 data:string lbl_8012F7B5 = .data:0x8012F7B5; // type:object size:0x13 data:string @@ -5429,8 +5431,8 @@ CZoomM = .bss:0x801901A0; // type:object size:0x40 omDLLinfoTbl = .bss:0x801901E0; // type:object size:0x50 sndFXBuf = .bss:0x80190230; // type:object size:0x200 scope:local charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 scope:local -lbl_80190450 = .bss:0x80190450; // type:object size:0x400 data:4byte -lbl_80190850 = .bss:0x80190850; // type:object size:0x10 data:2byte +MGSeqDataBuf = .bss:0x80190450; // type:object size:0x400 data:4byte +MGSeqDuration = .bss:0x80190850; // type:object size:0x10 data:2byte lbl_80190860 = .bss:0x80190860; // type:object size:0x600 data:2byte lbl_80190E60 = .bss:0x80190E60; // type:object size:0x1200 data:4byte lbl_80192060 = .bss:0x80192060; // type:object size:0x100 @@ -5654,7 +5656,7 @@ lbl_801D34A0 = .sdata:0x801D34A0; // type:object size:0x4 data:4byte lbl_801D34A4 = .sdata:0x801D34A4; // type:object size:0xC lbl_801D34B0 = .sdata:0x801D34B0; // type:object size:0x1 lbl_801D34B1 = .sdata:0x801D34B1; // type:object size:0x7 -lbl_801D34B8 = .sdata:0x801D34B8; // type:object size:0x4 data:4byte +MGSeqInitFlag = .sdata:0x801D34B8; // type:object size:0x4 data:4byte lbl_801D34BC = .sdata:0x801D34BC; // type:object size:0x7 data:string lbl_801D34C3 = .sdata:0x801D34C3; // type:object size:0x1 data:byte lbl_801D34C6 = .sdata:0x801D34C6; // type:object size:0x6 @@ -6126,17 +6128,17 @@ nMesh = .sbss:0x801D3D64; // type:object size:0x4 scope:local data:4byte nObj = .sbss:0x801D3D68; // type:object size:0x4 scope:local data:4byte MtxTop = .sbss:0x801D3D6C; // type:object size:0x4 data:4byte Vertextop = .sbss:0x801D3D70; // type:object size:0x8 data:4byte -lbl_801D3D78 = .sbss:0x801D3D78; // type:object size:0x4 data:4byte -lbl_801D3D7C = .sbss:0x801D3D7C; // type:object size:0x4 data:4byte -lbl_801D3D80 = .sbss:0x801D3D80; // type:object size:0x4 data:4byte -lbl_801D3D84 = .sbss:0x801D3D84; // type:object size:0x4 data:4byte -lbl_801D3D88 = .sbss:0x801D3D88; // type:object size:0x4 data:4byte -lbl_801D3D8C = .sbss:0x801D3D8C; // type:object size:0x4 data:4byte -lbl_801D3D90 = .sbss:0x801D3D90; // type:object size:0x2 data:2byte -lbl_801D3D92 = .sbss:0x801D3D92; // type:object size:0x2 data:2byte +MGSeqLanguage = .sbss:0x801D3D78; // type:object size:0x4 data:4byte +MGSeqPauseProc = .sbss:0x801D3D7C; // type:object size:0x4 data:4byte +MGSeqPauseActive = .sbss:0x801D3D80; // type:object size:0x4 data:4byte +MGSeqPauseExit = .sbss:0x801D3D84; // type:object size:0x4 data:4byte +MGSeqPauseExitWait = .sbss:0x801D3D88; // type:object size:0x4 data:4byte +MGSeqTempRecord = .sbss:0x801D3D8C; // type:object size:0x4 data:4byte +MGSeqPauseSeq = .sbss:0x801D3D90; // type:object size:0x2 data:2byte +MGSeqTimerSpeed = .sbss:0x801D3D92; // type:object size:0x2 data:2byte lbl_801D3D94 = .sbss:0x801D3D94; // type:object size:0x1 data:byte -lbl_801D3D95 = .sbss:0x801D3D95; // type:object size:0x1 data:byte -lbl_801D3D96 = .sbss:0x801D3D96; // type:object size:0x2 data:2byte +MGSeqDone = .sbss:0x801D3D95; // type:object size:0x1 data:byte +MGSeqTimer = .sbss:0x801D3D96; // type:object size:0x2 data:2byte lbl_801D3D98 = .sbss:0x801D3D98; // type:object size:0x8 data:2byte lbl_801D3DA0 = .sbss:0x801D3DA0; // type:object size:0x8 lbl_801D3DA8 = .sbss:0x801D3DA8; // type:object size:0x8 data:4byte diff --git a/configure.py b/configure.py index 1788a3b1..ba86473a 100755 --- a/configure.py +++ b/configure.py @@ -259,6 +259,7 @@ config.libs = [ Object(Matching, "game/frand.c"), Object(NonMatching, "game/audio.c"), Object(NonMatching, "game/EnvelopeExec.c"), + Object(NonMatching, "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), Object(NonMatching, "game/window.c"), Object(Matching, "game/messdata.c"), diff --git a/include/functions.h b/include/functions.h index c18040d7..3bb1f774 100644 --- a/include/functions.h +++ b/include/functions.h @@ -177,9 +177,9 @@ void HuAudFXListnerKill(void); void HuAudDllSndGrpSet(u16 ovl); void HuAudVoiceInit(s16 ovl); -void fn_80035A0C(void); +void MGSeqKillAll(void); -void fn_8003F3AC(void); +void MGSeqPracticeStart(void); void fn_8004D6F4(s16 arg); s32 _CheckFlag(u32 flag); diff --git a/src/REL/subchrselDll/subchrselDll.c b/src/REL/subchrselDll/subchrselDll.c index ad4b7128..2f846f18 100644 --- a/src/REL/subchrselDll/subchrselDll.c +++ b/src/REL/subchrselDll/subchrselDll.c @@ -96,7 +96,7 @@ static void SubchrMain() HuAudFadeOut(30); WipeCreate(2, 0, -1); HuPrcSleep(wipeData.duration+1.0f); - fn_80035A0C(); + MGSeqKillAll(); omOvlGotoEx(OVL_M433, 1, 0, 0); do { HuPrcVSleep(); @@ -148,7 +148,7 @@ static void SubchrMain() HuAudFadeOut(30); WipeCreate(2, 0, -1); HuPrcSleep(wipeData.duration+1.0f); - fn_80035A0C(); + MGSeqKillAll(); omOvlReturnEx(1, 1); do { HuPrcVSleep(); diff --git a/src/game/objmain.c b/src/game/objmain.c index 5c5feb25..5e75511d 100644 --- a/src/game/objmain.c +++ b/src/game/objmain.c @@ -78,7 +78,7 @@ static void omWatchOverlayProc(void) omovlstat = omnextovlstat; omnextovl = OVL_INVALID; if(_CheckFlag(0x1000C)) { - fn_8003F3AC(); + MGSeqPracticeStart(); } omSysPauseEnable(TRUE); omcurdll = omDLLStart(omcurovl, 0); @@ -136,7 +136,7 @@ void omOvlReturnEx(s16 level, s16 arg2) void omOvlKill(s16 arg) { fn_8004D6F4(-1); - fn_80035A0C(); + MGSeqKillAll(); Hu3DAllKill(); HuWinAllKill(); HuSprClose();