Various documentation (#309)

* Various matches

* Various documentation

* fix
This commit is contained in:
MegaMech 2023-04-18 22:31:05 -06:00 committed by GitHub
parent da05f2e245
commit eda4a3f117
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 189 additions and 155 deletions

View File

@ -250,7 +250,7 @@ glabel gActorList
glabel D_80162578
.skip 112
glabel D_801625E8
glabel gDebugPathCount
.skip 2
glabel sIsController1Unplugged

View File

@ -1,7 +1,7 @@
glabel func_800729EC
/* 0735EC 800729EC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0735F0 800729F0 AFBF0014 */ sw $ra, 0x14($sp)
/* 0735F4 800729F4 0C0A3B6A */ jal func_8028EDA8
/* 0735F4 800729F4 0C0A3B6A */ jal start_race
/* 0735F8 800729F8 AFA40018 */ sw $a0, 0x18($sp)
/* 0735FC 800729FC 0C01C922 */ jal func_80072488
/* 073600 80072A00 8FA40018 */ lw $a0, 0x18($sp)

View File

@ -1,6 +1,60 @@
#ifndef DEFINES_H
#define DEFINES_H
/**
* Enable debug mode
*
* Press start to skip through menus
*
* Toggle resource meters by holding R and tapping B. L must not be held.
*
* Reset to start screen by holding A, B, R, and R.
*
* View player direction and currentPathPoint in a single player race during staging tap L while holding A and B.
* Turn off this UI by tapping R while holding A and B.
* @bug This looks like it should work at any point in the race.
*
* Set player 1 to the final lap by tapping D-pad up.
* Set player 1 and player 2 to the final lap by tapping D-pad right.
* Set player all players to the final lap by tapping D-pad down.
*
* Immediately start the race if any controller presses Z.
*
* As the ceremony cutscene starts hold a C or D-pad to switch characters.
* C UP = LUIGI
* C LEFT = YOSHI
* C RIGHT = TOAD
* C DOWN = DK
* D-pad UP = WARIO
* D-pad LEFT = PEACH
* D-pad RIGHT = BOWSER
* D-pad DOWN = MARIO
*
*/
#define DEBUG_MODE FALSE
#define HOLD_ALL_DPAD_AND_C_BUTTONS (U_JPAD | L_JPAD | R_JPAD | D_JPAD | U_CBUTTONS | L_CBUTTONS | R_CBUTTONS | D_CBUTTONS)
/**
* Options for gDebugMenuSelection
*/
#define DEBUG_MENU_DISABLED 1
#define DEBUG_MENU_DEBUG_MODE 2
#define DEBUG_MENU_COURSE 3
#define DEBUG_MENU_SCREEN_MODE 4
#define DEBUG_MENU_PLAYER 5
#define DEBUG_MENU_SOUND_MODE 6
#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7
#define DEBUG_MENU_EXITED 64
/**
* Options for gDebugGotoScene
*/
#define DEBUG_GOTO_RACING 0
#define DEBUG_GOTO_ENDING_SEQUENCE 1
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3
/**
* Racing terms:
* Staging means aligning a racecar to the starting line.
@ -138,26 +192,6 @@
#define CONTROLLER_PAK_MENU_ERASE_ERROR_NO_PAK 9
#define CONTROLLER_PAK_MENU_ERASE_ERROR_PAK_CHANGED 10
/**
* Options for gDebugMenuSelection
*/
#define DEBUG_MENU_DISABLED 1
#define DEBUG_MENU_DEBUG_MODE 2
#define DEBUG_MENU_COURSE 3
#define DEBUG_MENU_SCREEN_MODE 4
#define DEBUG_MENU_PLAYER 5
#define DEBUG_MENU_SOUND_MODE 6
#define DEBUG_MENU_GIVE_ALL_GOLD_CUP 7
#define DEBUG_MENU_EXITED 64
/**
* Options for gDebugGotoScene
*/
#define DEBUG_GOTO_RACING 0
#define DEBUG_GOTO_ENDING_SEQUENCE 1
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_50 2
#define DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA 3
/**
* Options for gScreenModeSelection and gActiveScreenMode
*/

View File

@ -367,7 +367,7 @@ void func_800729EC(s32 arg0) {
s8 temp_v1;
struct_8018CA70_entry *var_v0;
func_8028EDA8();
start_race();
func_80072488(arg0);
D_8018D2BC = 1;
D_8018D2A4 = 1;

View File

@ -1675,7 +1675,7 @@ void func_80095574(void) {
debug_print_str2(0x00000046, 0x00000096, "*");
break;
}
if (gEnableDebugMode != 0) {
if (gEnableDebugMode) {
debug_print_str2(0x000000AA, 0x00000064, "on");
} else {
debug_print_str2(0x000000AA, 0x00000064, "off");

View File

@ -14,10 +14,9 @@
#include "code_80005FD0.h"
#include "code_802AAA70.h"
// unk4 is buttonDown?
void func_80281780(void) {
if (gEnableDebugMode != 0) {
if (gControllerOne->button & 0x0F0F) {
void debug_switch_character_ceremony_cutscene(void) {
if (gEnableDebugMode) {
if (gControllerOne->button & HOLD_ALL_DPAD_AND_C_BUTTONS) {
// Allows to switch character in debug mode?
if (gControllerOne->button & U_CBUTTONS) {
gCharacterSelections[0] = LUIGI;
@ -42,6 +41,7 @@ void func_80281780(void) {
} else {
gCharacterSelections[0] = MARIO;
}
// D_80284ED0 appears to be unused.
bcopy(&D_80284ED0, &gCharacterIdByGPOverallRank, 8);
}
}
@ -132,7 +132,7 @@ void load_ceremony_cutscene(void) {
func_802AF5AC(0x70023F8, 1);
func_802AF5AC(0x7002478, 1);
func_80295C6C();
func_80281780();
debug_switch_character_ceremony_cutscene();
func_802818BC();
func_8003D080();
func_8006E9C0();

View File

@ -3,7 +3,7 @@
/* Function Prototypes */
void func_80281780(void);
void debug_switch_character_ceremony_cutscene(void);
s32 func_80281880(s32 arg0);
void func_802818BC(void);
void load_ceremony_cutscene(void);

View File

@ -32,6 +32,7 @@
#include "render_courses.h"
#include "actors.h"
#include "staff_ghosts.h"
#include <defines.h>
// Declarations (not in this file)
void func_80091B78(void);
@ -59,7 +60,7 @@ struct Controller *gControllerOne = &gControllers[0];
struct Controller *gControllerTwo = &gControllers[1];
struct Controller *gControllerThree = &gControllers[2];
struct Controller *gControllerFour = &gControllers[3];
struct Controller *gControllerFive = &gControllers[4];
struct Controller *gControllerFive = &gControllers[4]; // All physical controllers combined.`
struct Controller *gControllerSix = &gControllers[5];
struct Controller *gControllerSeven = &gControllers[6];
struct Controller *gControllerEight = &gControllers[7];
@ -167,7 +168,7 @@ u16 D_800DC510 = 0;
u16 D_800DC514 = 0;
u16 D_800DC518 = 0;
u16 D_800DC51C = 0;
u16 gEnableDebugMode = 0;
u16 gEnableDebugMode = DEBUG_MODE;
s32 gGamestateNext = 7; // = COURSE_DATA_MENU?;
UNUSED s32 D_800DC528 = 1;
s32 gActiveScreenMode = SCREEN_MODE_1P;
@ -581,36 +582,36 @@ void race_logic_loop(void) {
profiler_log_thread5_time(LEVEL_SCRIPT_EXECUTE);
D_8015F788 = 0;
func_802A59A4();
if (gEnableDebugMode == 0) {
D_800DC514 = 0;
if (!gEnableDebugMode) {
D_800DC514 = FALSE;
} else {
if (D_800DC514 != 0) {
if (D_800DC514) {
if ((gControllerOne->buttonPressed & R_TRIG) &&
(gControllerOne->button & A_BUTTON) &&
(gControllerOne->button & B_BUTTON)) {
D_800DC514 = 0;
D_800DC514 = FALSE;
}
rotY = camera1->rot[1];
D_801625E8 = D_800DC5EC->pathCounter;
gDebugPathCount = D_800DC5EC->pathCounter;
if (rotY < 0x2000) {
func_80057A50(40, 100, "SOUTH ", D_801625E8);
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
} else if (rotY < 0x6000) {
func_80057A50(40, 100, "EAST ", D_801625E8);
func_80057A50(40, 100, "EAST ", gDebugPathCount);
} else if (rotY < 0xA000) {
func_80057A50(40, 100, "NORTH ", D_801625E8);
func_80057A50(40, 100, "NORTH ", gDebugPathCount);
} else if (rotY < 0xE000) {
func_80057A50(40, 100, "WEST ", D_801625E8);
func_80057A50(40, 100, "WEST ", gDebugPathCount);
} else {
func_80057A50(40, 100, "SOUTH ", D_801625E8);
func_80057A50(40, 100, "SOUTH ", gDebugPathCount);
}
} else {
if ((gControllerOne->buttonPressed & L_TRIG) &&
(gControllerOne->button & A_BUTTON) &&
(gControllerOne->button & B_BUTTON)) {
D_800DC514 = 1;
D_800DC514 = TRUE;
}
}
}
@ -793,10 +794,10 @@ void race_logic_loop(void) {
break;
}
if (gEnableDebugMode == 0) {
if (!gEnableDebugMode) {
gEnableResourceMeters = 0;
} else {
if (gEnableResourceMeters != 0) {
if (gEnableResourceMeters) {
resource_display();
if ((!(gControllerOne->button & L_TRIG)) &&
(gControllerOne->button & R_TRIG) &&

View File

@ -121,7 +121,7 @@ extern u16 gIsInQuitToMenuTransition;
extern s32 D_8015F788;
extern s16 D_801625E8;
extern s16 gDebugPathCount;
extern struct UnkStruct_800DC5EC *D_800DC5EC;
extern u16 D_800DC5B0;

View File

@ -235,8 +235,8 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
btnAndStick = (controller->buttonPressed | controller->stickPressed);
if (!gEnableDebugMode && (btnAndStick & CONT_START)) {
btnAndStick |= CONT_A;
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
}
if (!func_800B4520()) {
@ -249,7 +249,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x18:
{
sp2C = FALSE;
if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x18)) {
if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x18)) {
D_8018EDEC += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -258,7 +258,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
sp38->unk8 = 1;
sp2C = TRUE;
}
if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x16)) {
if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x16)) {
D_8018EDEC -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -273,7 +273,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
update_save_data_backup();
sp38->unk4 = gSoundMode;
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
func_8009E280();
play_sound2(SOUND_MENU_GO_BACK);
if (gSoundMode != sp38->unk4) {
@ -284,7 +284,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
return;
}
if (btnAndStick & CONT_A) {
if (btnAndStick & A_BUTTON) {
switch (D_8018EDEC) {
case 0x16:
if (gSoundMode < 3) {
@ -384,7 +384,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x1E:
case 0x1F:
{
if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x1F)) {
if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x1F)) {
D_8018EDEC += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -392,7 +392,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = 1;
}
if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x1F)) {
if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x1F)) {
D_8018EDEC -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -400,12 +400,12 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = -1;
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEC = 0x18;
play_sound2(SOUND_MENU_GO_BACK);
return;
}
if (btnAndStick & CONT_A) {
if (btnAndStick & A_BUTTON) {
switch (D_8018EDEC) {
case 0x1E:
D_8018EDEC = 0x18;
@ -423,7 +423,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
case 0x20:
{
if (btnAndStick & (CONT_A | CONT_B | CONT_START)) {
if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) {
D_8018EDEC = 0x18;
play_sound2(SOUND_MENU_GO_BACK);
}
@ -432,7 +432,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x28:
case 0x29:
{
if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x29) && (sp30[1].ghostDataSaved)) {
if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x29) && (sp30[1].ghostDataSaved)) {
D_8018EDEC += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -440,7 +440,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = 1;
}
if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x29) && sp30[0].ghostDataSaved) {
if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x29) && sp30[0].ghostDataSaved) {
D_8018EDEC -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -448,12 +448,12 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = -1;
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEC = 0x17;
play_sound2(SOUND_MENU_GO_BACK);
return;
}
if (btnAndStick & CONT_A) {
if (btnAndStick & A_BUTTON) {
sp38->unk20 = D_8018EDEC - 0x28;
if (sp30[sp38->unk20].courseIndex == D_8018EE10[1].courseIndex && D_8018EE10[1].ghostDataSaved) {
D_8018EDEC = 0x33;
@ -469,7 +469,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
{
// bit of a fake match, but if it works it works?
if ((sp30[sp38->unk20].courseIndex != ((0, (D_8018EE10 + (D_8018EDEC - 0x32))->courseIndex))) || ((D_8018EE10 + (D_8018EDEC - 0x32))->ghostDataSaved == 0)) {
if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x33)) {
if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x33)) {
D_8018EDEC += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -477,7 +477,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = 1;
}
if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x33)) {
if ((btnAndStick & U_JPAD) && (D_8018EDEC >= 0x33)) {
D_8018EDEC -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -486,10 +486,10 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
sp38->unk8 = -1;
}
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEC = sp38->unk20 + 0x28;
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
sp38->unk1C = D_8018EDEC - 0x32;
if (D_8018EE10[(sp38->unk1C)].ghostDataSaved) {
D_8018EDEC = 0x38;
@ -512,7 +512,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x41:
case 0x42:
{
if (btnAndStick & (CONT_A | CONT_B | CONT_START)) {
if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) {
D_8018EDEC = 0x17;
play_sound2(SOUND_MENU_GO_BACK);
}
@ -521,7 +521,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x38:
case 0x39:
{
if ((btnAndStick & CONT_RIGHT) && D_8018EDEC < 0x39) {
if ((btnAndStick & R_JPAD) && D_8018EDEC < 0x39) {
D_8018EDEC += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -529,7 +529,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = 1;
}
if ((btnAndStick & CONT_LEFT) && D_8018EDEC >= 0x39) {
if ((btnAndStick & L_JPAD) && D_8018EDEC >= 0x39) {
D_8018EDEC -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp38->unk24 < 4.2) {
@ -537,12 +537,12 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
}
sp38->unk8 = -1;
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEC = sp38->unk1C + 0x32;
play_sound2(SOUND_MENU_GO_BACK);
return;
}
if (btnAndStick & CONT_A) {
if (btnAndStick & A_BUTTON) {
if (D_8018EDEC == 0x38) {
D_8018EDEC = 0x17;
play_sound2(SOUND_MENU_GO_BACK);
@ -686,20 +686,20 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
btnAndStick = (controller->buttonPressed | controller->stickPressed);
if (!gEnableDebugMode && (btnAndStick & CONT_START)) {
btnAndStick |= CONT_A;
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
}
if (!func_800B4520()) {
switch(D_8018EDEC) {
case 0x0B:
{
if ((btnAndStick & CONT_LEFT) && (gTimeTrialDataCourseIndex > 0)) {
if ((btnAndStick & L_JPAD) && (gTimeTrialDataCourseIndex > 0)) {
gTimeTrialDataCourseIndex -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if ((btnAndStick & CONT_RIGHT) && (gTimeTrialDataCourseIndex < 15)) {
if ((btnAndStick & R_JPAD) && (gTimeTrialDataCourseIndex < 15)) {
gTimeTrialDataCourseIndex += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@ -716,7 +716,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
gCourseRecordsMenuSelection -= 1;
}
if ((btnAndStick & CONT_UP) && (gCourseRecordsMenuSelection > 0)) {
if ((btnAndStick & U_JPAD) && (gCourseRecordsMenuSelection > 0)) {
gCourseRecordsMenuSelection -= 1;
if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) {
gCourseRecordsMenuSelection -= 1;
@ -728,7 +728,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
sp28->unk8 = -1;
}
if ((btnAndStick & CONT_DOWN) && (gCourseRecordsMenuSelection < 2)) {
if ((btnAndStick & D_JPAD) && (gCourseRecordsMenuSelection < 2)) {
gCourseRecordsMenuSelection += 1;
if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) {
gCourseRecordsMenuSelection += 1;
@ -749,10 +749,10 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
}
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
func_8009E208();
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
if (sp28->unk24 < 4.2) {
sp28->unk24 += 4.0;
}
@ -770,7 +770,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
case 0x0C:
{
sp28 = find_8018D9E0_entry_dupe(0xE9);
if ((btnAndStick & CONT_UP) && (D_8018EDF9 > 0)) {
if ((btnAndStick & U_JPAD) && (D_8018EDF9 > 0)) {
D_8018EDF9 -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
@ -779,7 +779,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
sp28->unk8 = -1;
}
if ((btnAndStick & CONT_DOWN) && (D_8018EDF9 <= 0)) {
if ((btnAndStick & D_JPAD) && (D_8018EDF9 <= 0)) {
D_8018EDF9 += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (sp28->unk24 < 4.2) {
@ -788,10 +788,10 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
sp28->unk8 = 1;
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEC = 0xB;
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
if (D_8018EDF9 != 0) {
res = 0;
switch (gCourseRecordsMenuSelection) {
@ -831,7 +831,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
}
case 0x0D:
{
if (btnAndStick & (CONT_A | CONT_B | CONT_START)) {
if (btnAndStick & (A_BUTTON | B_BUTTON | START_BUTTON)) {
D_8018EDEC = 0xB;
}
break;
@ -1008,12 +1008,11 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
if (arg1 == 0) {
gMenuDelayTimer += 1;
}
switch (gDebugMenuSelection) {
case DEBUG_MENU_DISABLED:
{
sp28 = FALSE;
if ((gMenuDelayTimer >= 0x2E) && (btnAndStick & (CONT_A | CONT_START))) {
if ((gMenuDelayTimer >= 0x2E) && (btnAndStick & (A_BUTTON | START_BUTTON))) {
func_8009E1C0();
func_800CA330(0x19);
play_sound2(SOUND_INTRO_ENTER_MENU);
@ -1024,15 +1023,15 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_DEBUG_MODE:
{
if (btnAndStick & (CONT_RIGHT | CONT_LEFT)) {
if (btnAndStick & (R_JPAD | L_JPAD)) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (gEnableDebugMode) {
gEnableDebugMode = FALSE;
gEnableDebugMode = DEBUG_MODE;
} else {
gEnableDebugMode = TRUE;
}
}
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
gDebugMenuSelection = DEBUG_MENU_COURSE;
}
@ -1040,7 +1039,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_COURSE:
{
if (btnAndStick & CONT_RIGHT) {
if (btnAndStick & R_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (gCurrentCourseId < 0x13) {
gCurrentCourseId += 1;
@ -1048,7 +1047,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
gCurrentCourseId = 0;
}
}
if (btnAndStick & CONT_LEFT) {
if (btnAndStick & L_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (gCurrentCourseId > 0) {
gCurrentCourseId -= 1;
@ -1056,11 +1055,11 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
gCurrentCourseId = 0x13;
}
}
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
gDebugMenuSelection = DEBUG_MENU_DEBUG_MODE;
}
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
gDebugMenuSelection = DEBUG_MENU_SCREEN_MODE;
}
@ -1068,21 +1067,21 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_SCREEN_MODE:
{
if ((btnAndStick & CONT_RIGHT) && (D_8018EDF1 < 4)) {
if ((btnAndStick & R_JPAD) && (D_8018EDF1 < 4)) {
D_8018EDF1 += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
gScreenModeSelection = D_800F2B50[D_8018EDF1];
}
if ((btnAndStick & CONT_LEFT) && (D_8018EDF1 > 0)) {
if ((btnAndStick & L_JPAD) && (D_8018EDF1 > 0)) {
D_8018EDF1 -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
gScreenModeSelection = D_800F2B50[D_8018EDF1];
}
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
gDebugMenuSelection = DEBUG_MENU_COURSE;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
gDebugMenuSelection = DEBUG_MENU_PLAYER;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@ -1090,19 +1089,19 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_PLAYER:
{
if ((btnAndStick & CONT_RIGHT) && (*gCharacterSelections < 7)) {
if ((btnAndStick & R_JPAD) && (*gCharacterSelections < 7)) {
gCharacterSelections[0] += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if ((btnAndStick & CONT_LEFT) && (gCharacterSelections[0] > 0)) {
if ((btnAndStick & L_JPAD) && (gCharacterSelections[0] > 0)) {
gCharacterSelections[0] -= 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
gDebugMenuSelection = DEBUG_MENU_SCREEN_MODE;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
gDebugMenuSelection = DEBUG_MENU_SOUND_MODE;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@ -1110,7 +1109,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_SOUND_MODE:
{
if ((btnAndStick & CONT_RIGHT) && (gSoundMode < 3)) {
if ((btnAndStick & R_JPAD) && (gSoundMode < 3)) {
gSoundMode += 1;
if (gSoundMode == SOUND_UNUSED) {
gSoundMode = SOUND_MONO;
@ -1121,7 +1120,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
write_save_data_grand_prix_points_and_sound_mode();
update_save_data_backup();
}
if ((btnAndStick & CONT_LEFT) && (gSoundMode > 0)) {
if ((btnAndStick & L_JPAD) && (gSoundMode > 0)) {
gSoundMode -= 1;
if (gSoundMode == SOUND_UNUSED) {
gSoundMode = SOUND_HEADPHONES;
@ -1131,11 +1130,11 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
gSaveDataSoundMode = gSoundMode;
write_save_data_grand_prix_points_and_sound_mode();
}
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
gDebugMenuSelection = DEBUG_MENU_PLAYER;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
gDebugMenuSelection = DEBUG_MENU_GIVE_ALL_GOLD_CUP;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
@ -1143,11 +1142,11 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
case DEBUG_MENU_GIVE_ALL_GOLD_CUP:
{
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
gDebugMenuSelection = DEBUG_MENU_SOUND_MODE;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
for (i = 0; i < 16; i++) {
func_800B5404(0, i);
}
@ -1160,7 +1159,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
play_sound2(SOUND_MENU_SELECT);
break;
} else if (btnAndStick & CONT_LEFT) {
} else if (btnAndStick & L_JPAD) {
reset_save_data_grand_prix_points_and_sound_mode();
for (i = 0; i < 16; i++) {
if (i % 4 == 2) {
@ -1181,7 +1180,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
gPlayerCountSelection1 = D_8018EDF3 = D_800F2B58[D_8018EDF1];
if (sp28) {
if (btnAndStick & (CONT_A | CONT_START)) {
if (btnAndStick & (A_BUTTON | START_BUTTON)) {
func_8009E1C0();
func_800CA330(0x19);
gDebugMenuSelection = DEBUG_MENU_EXITED;
@ -1193,14 +1192,14 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
}
if (controller->button & Z_TRIG) {
if (btnAndStick & CONT_A) {
if (btnAndStick & A_BUTTON) {
gDebugGotoScene = DEBUG_GOTO_ENDING_SEQUENCE;
} else {
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA;
}
}
play_sound2(SOUND_MENU_OK_CLICKED);
} else if ((btnAndStick & CONT_B) && (controller->button & Z_TRIG)) {
} else if ((btnAndStick & B_BUTTON) && (controller->button & Z_TRIG)) {
func_8009E1C0();
func_800CA330(0x19);
gDebugMenuSelection = DEBUG_MENU_EXITED;
@ -1256,8 +1255,8 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
s32 newMode; // temp_v1_2?
btnAndStick = controller->buttonPressed | controller->stickPressed;
if (!gEnableDebugMode && (btnAndStick & CONT_START)) {
btnAndStick |= CONT_A;
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
}
if (!func_800B4520()) {
@ -1269,12 +1268,12 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
case PLAYER_NUM_SELECTION:
{
if ((btnAndStick & CONT_RIGHT) && D_8018EDF3 < 4) {
if ((btnAndStick & R_JPAD) && D_8018EDF3 < 4) {
D_8018EDF3 += 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if ((btnAndStick & CONT_LEFT) && D_8018EDF3 >= 2) {
if ((btnAndStick & L_JPAD) && D_8018EDF3 >= 2) {
D_8018EDF3 -= 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
@ -1288,13 +1287,13 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
case 4: gScreenModeSelection = SCREEN_MODE_3P_4P_SPLITSCREEN; break;
}
// L800B2B94
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
func_8009E0F0(0x14);
func_800CA330(0x19);
D_8018EDE0 = 1;
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]];
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
// L800B2C00
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
func_800B44AC();
@ -1318,7 +1317,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
case GAME_MODE_SELECTION:
{
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
if (D_800E86AC[D_8018EDF3 - 1] < D_800F2B58[D_8018EDF3 + 7]) {
D_800E86AC[D_8018EDF3 - 1] += 1;
func_800B44AC();
@ -1326,7 +1325,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
}
// L800B2D94
if (btnAndStick & CONT_UP) {
if (btnAndStick & U_JPAD) {
if (D_800E86AC[D_8018EDF3 - 1] > 0) {
D_800E86AC[D_8018EDF3 - 1] -= 1;
func_800B44AC();
@ -1334,12 +1333,12 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
}
// L800B2DE0
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
gMainMenuSelectionDepth = PLAYER_NUM_SELECTION;
func_800B44AC();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]];
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
// L800B2E3C
switch(gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) {
case 0:
@ -1383,13 +1382,13 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
// L800B3000
sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]];
if ((btnAndStick & CONT_UP) && (sp28 > 0)) {
if ((btnAndStick & U_JPAD) && (sp28 > 0)) {
D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]] -= 1;
func_800B44AC();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
// L800B3068
if (btnAndStick & CONT_DOWN) {
if (btnAndStick & D_JPAD) {
sp24 = FALSE;
if (func_800B555C()) {
if (sp28 < D_800F2B60[D_8018EDF3 + 4][D_800E86AC[D_8018EDF3 - 1] + 1]) {
@ -1410,12 +1409,12 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
}
// L800B3150
sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]];
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
gMainMenuSelectionDepth = GAME_MODE_SELECTION;
func_800B44AC();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]];
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
// L800B31DC
func_800B44AC();
if (D_8018EDF3 == 1 && D_800E86AC[D_8018EDF3 - 1] == 1 && sp28 == 1) {
@ -1440,7 +1439,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
play_sound2(SOUND_MENU_OK);
}
// L800B330C
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) {
case 0:
case 1:
@ -1457,7 +1456,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
play_sound2(SOUND_MENU_GO_BACK);
gMenuTimingCounter = 0;
newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]];
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
// L800B33D8
func_8009E1C0();
play_sound2(SOUND_MENU_OK_CLICKED);
@ -1507,8 +1506,8 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
s8 i;
btnAndStick = (controller->buttonPressed) | (controller->stickPressed);
if (!gEnableDebugMode && btnAndStick & CONT_START) {
btnAndStick |= CONT_A;
if (!gEnableDebugMode && btnAndStick & START_BUTTON) {
btnAndStick |= A_BUTTON;
}
if (!func_800B4520()) {
@ -1516,14 +1515,14 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
case 1:
{
if (gCharacterGridSelections[arg1] == 0) {
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
func_8009E208();
play_sound2(SOUND_MENU_GO_BACK);
}
return;
}
// L800B3630
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
if (D_8018EDE8[arg1]) {
D_8018EDE8[arg1] = FALSE;
play_sound2(SOUND_MENU_GO_BACK);
@ -1533,7 +1532,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
}
}
// L800B3684
if ((btnAndStick & CONT_A) && !D_8018EDE8[arg1]) {
if ((btnAndStick & A_BUTTON) && !D_8018EDE8[arg1]) {
D_8018EDE8[arg1] = TRUE;
func_800C90F4(
arg1,
@ -1556,7 +1555,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
}
// L800B3768
if (D_8018EDE8[arg1]) {
if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_DOWN)) {
if ((btnAndStick & R_JPAD) && (btnAndStick & D_JPAD)) {
if (gCharacterGridSelections[arg1] == 1 || gCharacterGridSelections[arg1] == 2 || gCharacterGridSelections[arg1] == 3) {
// L800B37B0
if (is_character_spot_free(gCharacterGridSelections[arg1] + 5)) {
@ -1567,7 +1566,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B37E4
if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_DOWN)) {
if ((btnAndStick & L_JPAD) && (btnAndStick & D_JPAD)) {
if (gCharacterGridSelections[arg1] == 2 || gCharacterGridSelections[arg1] == 3 || gCharacterGridSelections[arg1] == 4) {
if (is_character_spot_free(gCharacterGridSelections[arg1] + 3)) {
gCharacterGridSelections[arg1] += 3;
@ -1577,7 +1576,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B3844
if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_UP)) {
if ((btnAndStick & R_JPAD) && (btnAndStick & U_JPAD)) {
if (gCharacterGridSelections[arg1] == 5 || gCharacterGridSelections[arg1] == 6 || gCharacterGridSelections[arg1] == 7) {
if (is_character_spot_free(gCharacterGridSelections[arg1] - 3)) {
gCharacterGridSelections[arg1] -= 3;
@ -1587,7 +1586,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B38A0
if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_UP)) {
if ((btnAndStick & L_JPAD) && (btnAndStick & U_JPAD)) {
if (gCharacterGridSelections[arg1] == 6 || gCharacterGridSelections[arg1] == 7 || gCharacterGridSelections[arg1] == 8) {
if (is_character_spot_free(gCharacterGridSelections[arg1] - 5)) {
gCharacterGridSelections[arg1] -= 5;
@ -1597,7 +1596,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B38FC
if (btnAndStick & CONT_RIGHT) {
if (btnAndStick & R_JPAD) {
if (gCharacterGridSelections[arg1] != 4 && gCharacterGridSelections[arg1] != 8) {
do {
// L800B391C
@ -1613,7 +1612,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B3978
if (btnAndStick & CONT_LEFT) {
if (btnAndStick & L_JPAD) {
if (gCharacterGridSelections[arg1] != 1 && gCharacterGridSelections[arg1] != 5) {
do {
if (is_character_spot_free(gCharacterGridSelections[arg1] - 1)) {
@ -1627,10 +1626,10 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
return;
}
// L800B39F4
if ((btnAndStick & CONT_UP) && (gCharacterGridSelections[arg1] >= 5)) {
if ((btnAndStick & U_JPAD) && (gCharacterGridSelections[arg1] >= 5)) {
gCharacterGridSelections[arg1] -= 4;
}
if ((btnAndStick & CONT_DOWN) && (gCharacterGridSelections[arg1] < 5)) {
if ((btnAndStick & D_JPAD) && (gCharacterGridSelections[arg1] < 5)) {
gCharacterGridSelections[arg1] += 4;
}
// L800B3A30
@ -1648,11 +1647,11 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
play_sound2(SOUND_MENU_OK);
}
// L800B3AA4
if (btnAndStick & CONT_B) {
if (btnAndStick & B_BUTTON) {
D_8018EDEE = 1;
D_8018EDE8[arg1] = FALSE;
play_sound2(SOUND_MENU_GO_BACK);
} else if (btnAndStick & CONT_A) {
} else if (btnAndStick & A_BUTTON) {
func_8009E1C0();
play_sound2(SOUND_MENU_OK_CLICKED);
func_8000F124();
@ -1675,7 +1674,7 @@ GLOBAL_ASM("asm/non_matchings/menus/player_select_menu_act.s")
void course_select_menu_act(struct Controller *arg0, u16 arg1) {
u16 buttonAndStickPress = (arg0->buttonPressed | arg0->stickPressed);
if ((gEnableDebugMode == 0) && ((buttonAndStickPress & 0x1000) != 0)) {
if ((!gEnableDebugMode) && ((buttonAndStickPress & 0x1000) != 0)) {
buttonAndStickPress |= 0x8000;
}
@ -1813,7 +1812,7 @@ void func_800B3F74(s32 menuSelection) {
case 10:
{
gIsMirrorMode = 0;
gEnableDebugMode = 0;
gEnableDebugMode = DEBUG_MODE;
gCupSelection = MUSHROOM_CUP;
gCupCourseSelection = 0;
gTimeTrialDataCourseIndex = 0;
@ -1832,7 +1831,7 @@ void func_800B3F74(s32 menuSelection) {
case 1:
case 11:
{
gEnableDebugMode = 0;
gEnableDebugMode = DEBUG_MODE;
gIsMirrorMode = 0;
D_8018EDFC = 0;
func_800B5F30();

View File

@ -535,7 +535,7 @@ void func_8028EC98(s32 arg0) {
}
void func_8028EDA8(void) {
void start_race(void) {
s32 i;
D_8015011E = -1;
@ -738,11 +738,11 @@ void func_8028F474(void) {
}
void func_8028F4E8(void) {
if (gEnableDebugMode != 0) {
if (((gControllerFive->button & 0x10) != 0) &&
((gControllerFive->button & 0x20) != 0) &&
((gControllerFive->button & 0x8000) != 0) &&
((gControllerFive->button & 0x4000) != 0)) {
if (gEnableDebugMode) {
if (((gControllerFive->button & R_TRIG) != 0) &&
((gControllerFive->button & L_TRIG) != 0) &&
((gControllerFive->button & A_BUTTON) != 0) &&
((gControllerFive->button & B_BUTTON) != 0)) {
func_800CA330(0x19);
func_800CA388(0x19);
@ -1040,11 +1040,11 @@ void func_8028FCBC(void) {
func_8028F4E8();
break;
case 2:
if (D_800DC51C != 0) {
func_8028EDA8();
if (D_800DC51C) {
start_race();
}
if ((gEnableDebugMode != 0) && ((gControllerFive->buttonPressed & 0x2000) != 0)) {
func_8028EDA8();
if ((gEnableDebugMode) && (gControllerFive->buttonPressed & Z_TRIG)) {
start_race();
}
func_8028F4E8();
break;

View File

@ -14,7 +14,7 @@ void func_8028E438();
void func_8028E678();
void func_8028EC38(s32);
void func_8028EC98(s32);
void func_8028EDA8();
void start_race();
f32 func_8028EE8C(s32);
void func_8028EEF0(s32);
void func_8028EF28();