make requested changes

This commit is contained in:
Fazana
2021-12-02 10:24:00 +00:00
parent 8ef757284c
commit 55f7ffe300
16 changed files with 126 additions and 111 deletions
@@ -97,7 +97,7 @@ glabel func_8007431C
/* 075070 80074470 1605FFFA */ bne $s0, $a1, .L8007445C
/* 075074 80074474 24630004 */ addiu $v1, $v1, 4
.L80074478:
/* 075078 80074478 0C01BAB0 */ jal check_reset_pressed
/* 075078 80074478 0C01BAB0 */ jal is_reset_pressed
/* 07507C 8007447C AFA60054 */ sw $a2, 0x54($sp)
/* 075080 80074480 8FA60054 */ lw $a2, 0x54($sp)
/* 075084 80074484 1440000C */ bnez $v0, .L800744B8
@@ -38,7 +38,7 @@ glabel func_800744DC
/* 07515C 8007455C 02202025 */ move $a0, $s1
/* 075160 80074560 0C01CCBA */ jal func_800732E8
/* 075164 80074564 00402825 */ move $a1, $v0
/* 075168 80074568 0C01BAB0 */ jal check_reset_pressed
/* 075168 80074568 0C01BAB0 */ jal is_reset_pressed
/* 07516C 8007456C 00000000 */ nop
/* 075170 80074570 8FA3002C */ lw $v1, 0x2c($sp)
/* 075174 80074574 1440000C */ bnez $v0, .L800745A8
@@ -24,7 +24,7 @@ glabel func_800746F0
/* 075344 80074744 322F0001 */ andi $t7, $s1, 1
/* 075348 80074748 11E00011 */ beqz $t7, .L80074790
/* 07534C 8007474C AFB10028 */ sw $s1, 0x28($sp)
/* 075350 80074750 0C01BAB0 */ jal check_reset_pressed
/* 075350 80074750 0C01BAB0 */ jal is_reset_pressed
/* 075354 80074754 24110018 */ li $s1, 24
/* 075358 80074758 1440000D */ bnez $v0, .L80074790
/* 07535C 8007475C 00008025 */ move $s0, $zero
@@ -47,7 +47,7 @@ glabel func_800746F0
/* 075398 80074798 31090002 */ andi $t1, $t0, 2
/* 07539C 8007479C 11200012 */ beqz $t1, .L800747E8
/* 0753A0 800747A0 00000000 */ nop
/* 0753A4 800747A4 0C01BAB0 */ jal check_reset_pressed
/* 0753A4 800747A4 0C01BAB0 */ jal is_reset_pressed
/* 0753A8 800747A8 24110018 */ li $s1, 24
/* 0753AC 800747AC 1440000E */ bnez $v0, .L800747E8
/* 0753B0 800747B0 00008025 */ move $s0, $zero
@@ -37,7 +37,7 @@ glabel func_8007497C
/* 075604 80074A04 01C2C025 */ or $t8, $t6, $v0
/* 075608 80074A08 01E3C825 */ or $t9, $t7, $v1
/* 07560C 80074A0C AE190004 */ sw $t9, 4($s0)
/* 075610 80074A10 0C01BAB0 */ jal check_reset_pressed
/* 075610 80074A10 0C01BAB0 */ jal is_reset_pressed
/* 075614 80074A14 AE180000 */ sw $t8, ($s0)
/* 075618 80074A18 14400008 */ bnez $v0, .L80074A3C
/* 07561C 80074A1C 24020001 */ li $v0, 1
+5 -5
View File
@@ -281,12 +281,12 @@ void func_80000CBC(void) {
set_relative_volume_for_music(musicRelativeVolume);
}
void func_80000D00(u8 mulFactor) {
void func_80000D00(u8 updateRate) {
s32 reg_s2;
s32 j;
if (D_80115D3C > 0) {
D_80115D38 += mulFactor;
D_80115D38 += updateRate;
D_800DC650 = ((f32)D_80115D38) / ((f32)D_80115D3C);
if ((f64)D_800DC650 > 1.0f) {
@@ -297,7 +297,7 @@ void func_80000D00(u8 mulFactor) {
set_relative_volume_for_music(musicRelativeVolume);
} else if (D_80115D3C < 0) {
D_80115D38 -= mulFactor;
D_80115D38 -= updateRate;
D_800DC650 = 1.0f - ((f32)D_80115D38) / ((f32)D_80115D3C);
if ((f64)D_800DC650 < 0) {
D_80115D38 = 0;
@@ -308,9 +308,9 @@ void func_80000D00(u8 mulFactor) {
}
if (D_800DC658 > 0) {
//reg_arg0 = mulFactor;
//reg_arg0 = updateRate;
for (reg_s2 = 0; reg_s2 < D_800DC658;) {
D_80115D48[reg_s2].unk2 -= mulFactor;
D_80115D48[reg_s2].unk2 -= updateRate;
if (D_80115D48[reg_s2].unk2 <= 0) {
j = reg_s2;
func_80001D04(D_80115D48[reg_s2].unk0, D_80115D48[reg_s2].unk4);
+1 -1
View File
@@ -350,7 +350,7 @@ s32 func_8007497C(u64 *arg0) {
*arg0 <<= 8;
*arg0 >>= 8;
*arg0 |= (s64)((s32)func_8007480C(*arg0)) << 56;
if (check_reset_pressed() == 0) {
if (is_reset_pressed() == 0) {
osEepromWrite(func_8006A100(), 0xF, (u8 *)arg0);
}
return 1;
+8 -8
View File
@@ -288,12 +288,12 @@ s32 func_800C01D8(FadeTransition *transition) {
GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C01D8.s")
#endif
s32 func_800C0494(s32 mulFactor) {
s32 func_800C0494(s32 updateRate) {
if (D_800E31A4 != 0) {
D_800E31A4 = D_800E31A4 - 1;
mulFactor = 0;
} else if (mulFactor >= 6) {
mulFactor = 5;
updateRate = LOGIC_NULL;
} else if (updateRate >= LOGIC_10FPS) {
updateRate = LOGIC_12FPS;
}
if (D_800E31AC != 0) {
@@ -308,19 +308,19 @@ s32 func_800C0494(s32 mulFactor) {
}
switch (gCurFaceTransition) {
case FADE_FULLSCREEN:
func_800C0834(mulFactor);
func_800C0834(updateRate);
break;
case FADE_BARNDOOR_HORIZONTAL:
case FADE_BARNDOOR_VERTICAL:
case FADE_WAVES:
case FADE_BARNDOOR_DIAGONAL:
func_800C1130(mulFactor);
func_800C1130(updateRate);
break;
case FADE_CIRCLE:
func_800C1EE8(mulFactor);
func_800C1EE8(updateRate);
break;
case FADE_DISABLED:
func_800C27A0(mulFactor);
func_800C27A0(updateRate);
break;
}
}
+4 -4
View File
@@ -243,8 +243,8 @@ void func_800C4404(Gfx **displayList, char *text, s32 alignmentFlags) {
void draw_text(Gfx **displayList, s32 xpos, s32 ypos, char *text, s32 alignmentFlags) {
DialogueBoxBackground *temp = &(*gDialogueBoxBackground)[0];
temp->xpos = (xpos == POS_X_CENTRED) ? temp->width >> 1 : xpos;
temp->ypos = (ypos == POS_X_CENTRED) ? temp->height >> 1 : ypos;
temp->xpos = (xpos == POS_CENTRED) ? temp->width >> 1 : xpos;
temp->ypos = (ypos == POS_CENTRED) ? temp->height >> 1 : ypos;
func_800C45A4(displayList, temp, text, alignmentFlags, 1.0f);
}
@@ -260,8 +260,8 @@ void func_800C44C0(Gfx **displayList, s32 arg1, char *text, s32 alignmentFlags)
void func_800C4510(Gfx **displayList, s32 arg1, s32 xpos, s32 ypos, char *text, s32 alignmentFlags) {
if (arg1 >= 0 && arg1 < 8) {
DialogueBoxBackground *temp = &gDialogueBoxBackground[arg1];
temp->xpos = (xpos == POS_X_CENTRED) ? temp->width >> 1 : xpos;
temp->ypos = (ypos == POS_X_CENTRED) ? temp->height >> 1 : ypos;
temp->xpos = (xpos == POS_CENTRED) ? temp->width >> 1 : xpos;
temp->ypos = (ypos == POS_CENTRED) ? temp->height >> 1 : ypos;
func_800C45A4(displayList, temp, text, alignmentFlags, 1.0f);
}
}
+1 -1
View File
@@ -14,7 +14,7 @@
#include "f3ddkr.h"
#include "textures_sprites.h"
#define POS_X_CENTRED -0x8000
#define POS_CENTRED -0x8000
enum TextFonts {
FONT_COLOURFUL,
+40 -40
View File
@@ -2140,10 +2140,10 @@ void func_800828B8(void) {
}
}
void func_800829F8(Gfx *dl, s32 mulFactor) {
void func_800829F8(Gfx *dl, s32 updateRate) {
s32 temp;
D_800DF46C += mulFactor;
D_800DF46C += updateRate;
if (D_800DF46C & 0x10) {
load_menu_text(get_language());
@@ -2154,7 +2154,7 @@ void func_800829F8(Gfx *dl, s32 mulFactor) {
if (osTvType == TV_TYPE_PAL) {
temp = 0xEA;
}
draw_text(dl, POS_X_CENTRED, temp, gMenuText[151], 0xC);
draw_text(dl, POS_CENTRED, temp, gMenuText[151], 0xC);
}
}
@@ -2215,8 +2215,8 @@ s32 menu_logo_screen_loop(s32 arg0) {
set_text_color(0xFF, 0xFF, 0, 0xFF, phi_v0);
draw_text(&D_801263A0, 0x9F, yOffset + 0xD4, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, 0xA1, yOffset + 0xD4, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, POS_X_CENTRED, yOffset + 0xD3, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, POS_X_CENTRED, yOffset + 0xD5, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, POS_CENTRED, yOffset + 0xD3, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, POS_CENTRED, yOffset + 0xD5, gRareCopyrightString, 0xC);
}
sp20 = yOffset + 0xD4;
if (D_80126450 > 8.0) {
@@ -2225,7 +2225,7 @@ s32 menu_logo_screen_loop(s32 arg0) {
phi_v0 = 0xFF;
}
set_text_color(0xFF, 0xFF, 0xFF, 0xFF, phi_v0);
draw_text(&D_801263A0, POS_X_CENTRED, sp20, gRareCopyrightString, 0xC);
draw_text(&D_801263A0, POS_CENTRED, sp20, gRareCopyrightString, 0xC);
}
return 0;
}
@@ -2349,7 +2349,7 @@ void func_800841B8(s32 arg0) {
phi_a3 = 0;
}
set_text_color(255, 255, 255, phi_a3, 0xFF);
draw_text(&D_801263A0, POS_X_CENTRED, phi_s2, gOptionMenuStrings[phi_s1], 0xC);
draw_text(&D_801263A0, POS_CENTRED, phi_s2, gOptionMenuStrings[phi_s1], 0xC);
phi_s1++;
phi_s2 += 0x1C;
@@ -3067,7 +3067,7 @@ void render_magic_codes_ui(s32 arg0) {
alpha = temp;
}
set_text_color(0xFF, 0xFF, 0xFF, alpha, 0xFF);
draw_text(&D_801263A0, POS_X_CENTRED, yPos, gMagicCodeMenuStrings[i], 0xC);
draw_text(&D_801263A0, POS_CENTRED, yPos, gMagicCodeMenuStrings[i], 0xC);
yPos += yIncr;
}
set_text_font(0);
@@ -3075,15 +3075,15 @@ void render_magic_codes_ui(s32 arg0) {
set_text_background_color(0, 0, 0x80, 0x80);
if (gOptionsMenuItemIndex == 4) {
if (D_80126C4C == -1) {
draw_text(&D_801263A0, POS_X_CENTRED, 0x90, gMenuText[18], 0xC); // gMenuText[18] = "Sorry, the code was incorrect"
draw_text(&D_801263A0, POS_CENTRED, 0x90, gMenuText[18], 0xC); // gMenuText[18] = "Sorry, the code was incorrect"
} else {
// Draw cheat code name.
draw_text(&D_801263A0, POS_X_CENTRED, 0x90, (char *)(*gCheatsAssetData) + (*gCheatsAssetData + 1)[D_80126C4C + 1], 0xC);
draw_text(&D_801263A0, POS_CENTRED, 0x90, (char *)(*gCheatsAssetData) + (*gCheatsAssetData + 1)[D_80126C4C + 1], 0xC);
}
} else if (5 == gOptionsMenuItemIndex) {
draw_text(&D_801263A0, POS_X_CENTRED, 0x90, D_80126C58, 0xC);
draw_text(&D_801263A0, POS_CENTRED, 0x90, D_80126C58, 0xC);
} else if (gOptionsMenuItemIndex == 6) {
draw_text(&D_801263A0, POS_X_CENTRED, 0x90, gMenuText[19], 0xC); // gMenuText[19] = "All cheats have been deleted"
draw_text(&D_801263A0, POS_CENTRED, 0x90, gMenuText[19], 0xC); // gMenuText[19] = "All cheats have been deleted"
}
if (D_801263E0 != 0) {
yPos = 0x78;
@@ -3107,7 +3107,7 @@ void render_magic_codes_ui(s32 arg0) {
set_current_text_colour(6, 0xFF, green, 0xFF, alpha, 0xFF);
// gMenuText[148] = "CLEAR ALL CODES?", [149] = "OK", [150] = "CANCEL"
render_dialogue_text(6, POS_X_CENTRED, yPos, gMenuText[148 + i], 1, 4);
render_dialogue_text(6, POS_CENTRED, yPos, gMenuText[148 + i], 1, 4);
if (i != 0) {
yPos += 0x10;
@@ -3199,7 +3199,7 @@ void render_magic_codes_list_menu_text(s32 arg0) {
if (numOfUnlockedCheats == gOptionsMenuItemIndex) {
set_text_color(0xFF, 0xFF, 0xFF, fp, 0xFF);
}
draw_text(&D_801263A0, POS_X_CENTRED, s2, gMenuText[5], 4); // RETURN
draw_text(&D_801263A0, POS_CENTRED, s2, gMenuText[5], 4); // RETURN
return;
}
if (D_801263BC & 8) {
@@ -4379,7 +4379,7 @@ void render_track_select_setup_ui(s32 arg0) {
set_text_font(2);
set_text_color(0xC0, 0xC0, 0xFF, 0, D_800DF764);
set_text_background_color(0, 0, 0, 0);
draw_text(&D_801263A0, POS_X_CENTRED, 0x2B, func_8006BDDC(gTrackIdForPreview), 0xC); // Draw track name?
draw_text(&D_801263A0, POS_CENTRED, 0x2B, func_8006BDDC(gTrackIdForPreview), 0xC); // Draw track name?
sp84 = D_801263BC * 8;
if (sp84 >= 0x100) {
sp84 = 0x1FF - sp84;
@@ -5951,17 +5951,17 @@ void func_8009CFB0(void) {
}
}
s32 func_8009CFEC(u32 arg0) {
s32 func_8009CFEC(u32 dialogueOption) {
s32 result;
D_800DF4E4[arg0] = 0;
if ((func_800C3400() != 0) && (arg0 != 3)) {
D_800DF4E4[dialogueOption] = 0;
if ((func_800C3400() != 0) && (dialogueOption != DIALOG_CHALLENGE)) {
return 0;
}
if (D_800DF4E0 != 0) {
return 0;
}
if (arg0 != 3) {
if (dialogueOption != 3) {
func_8006F388(1);
}
result = 0;
@@ -5970,7 +5970,7 @@ s32 func_8009CFEC(u32 arg0) {
open_dialogue_box(1);
set_current_dialogue_background_colour(1, 0, 0, 0, 0x80);
func_8001F450();
switch (arg0) {
switch (dialogueOption) {
case DIALOG_TAJ:
result = taj_menu_loop(); // Taj menu
break;
@@ -6011,7 +6011,7 @@ void render_dialogue_option(char *text, s32 yOffset, s32 optionID) {
if (sDialogueOption == sDialogueOptionMax) {
D_80126516 = optionID;
}
render_dialogue_text(1, POS_X_CENTRED, gDialogOptionYOffset, text, 1, 4);
render_dialogue_text(1, POS_CENTRED, gDialogOptionYOffset, text, 1, 4);
gDialogOptionYOffset = (s8)(gDialogOptionYOffset + yOffset);
sDialogueOptionMax = (s8)(sDialogueOptionMax + 1);
}
@@ -6071,7 +6071,7 @@ s32 taj_menu_loop(void) {
switch (sCurrentMenuID) {
case 2:
case 0x62:
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[40], 1, 4); // VEHICLE SELECT
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[40], 1, 4); // VEHICLE SELECT
gDialogOptionYOffset = 30;
render_dialogue_option(gMenuText[41], 20, 0); // CAR
render_dialogue_option(gMenuText[42], 20, 1); // HOVERCRAFT
@@ -6080,7 +6080,7 @@ s32 taj_menu_loop(void) {
break;
case 3:
case 0x63:
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[45], 1, 4); // CHALLENGE SELECT
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[45], 1, 4); // CHALLENGE SELECT
gDialogOptionYOffset = 30;
if (settings->tajFlags & TAJ_FLAGS_CAR_CHAL_UNLOCKED) {
gDialogOptionTangible = settings->tajFlags & TAJ_FLAGS_CAR_CHAL_COMPLETED;
@@ -6106,7 +6106,7 @@ s32 taj_menu_loop(void) {
break;
case 1:
D_800DF4DC = 0;
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[36], 1, 4); // OPTIONS
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[36], 1, 4); // OPTIONS
gDialogOptionYOffset = 30;
render_dialogue_option(gMenuText[37], 0x14, 0); // CHANGE VEHICLE
if (settings->tajFlags & TAJ_FLAGS_UNLOCKED_A_CHALLENGE) {
@@ -6226,8 +6226,8 @@ s32 func_8009D9F4(void) {
playerInput = get_buttons_pressed_from_player(0);
sDialogueOptionMax = 0;
D_800DF4DC = 0;
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[49], 1, 4); // BETTER LUCK
render_dialogue_text(1, POS_X_CENTRED, 20, gMenuText[50], 1, 4); // NEXT TIME!
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[49], 1, 4); // BETTER LUCK
render_dialogue_text(1, POS_CENTRED, 20, gMenuText[50], 1, 4); // NEXT TIME!
gDialogOptionYOffset = 50;
render_dialogue_option(gMenuText[23], 20, 0); // TRY AGAIN
render_dialogue_option(gMenuText[51], 20, 1); // EXIT
@@ -6284,7 +6284,7 @@ s32 tt_menu_loop(void) {
switch (sCurrentMenuID) {
case TT_MENU_ROOT:
case TT_MENU_EXIT:
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[36], 1, 4); // OPTIONS
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[36], 1, 4); // OPTIONS
render_dialogue_option(gMenuText[71], 0x14, 3); // STATUS
if (!is_in_two_player_adventure()) {
if (is_time_trial_enabled()) {
@@ -6354,7 +6354,7 @@ s32 tt_menu_loop(void) {
sp38 -= sp24 * 8;
sp24 = 0;
while (D_801263A4[sp24] != NULL) {
render_dialogue_text(1, POS_X_CENTRED, sp38, D_801263A4[sp24], 1, 4);
render_dialogue_text(1, POS_CENTRED, sp38, D_801263A4[sp24], 1, 4);
sp38 += 0x10;
sp24++;
}
@@ -6374,7 +6374,7 @@ s32 tt_menu_loop(void) {
case TT_MENU_INTRODUCTION:
sp20 = 6;
for (i = 52; gMenuText[i] != NULL; i++) {
render_dialogue_text(1, POS_X_CENTRED, sp20, gMenuText[i], 1, 4);
render_dialogue_text(1, POS_CENTRED, sp20, gMenuText[i], 1, 4);
sp20 += 0x10;
}
if (buttonsPressed & (A_BUTTON | B_BUTTON)) {
@@ -6383,9 +6383,9 @@ s32 tt_menu_loop(void) {
}
break;
case TT_MENU_INSERT_CONT_PAK:
render_dialogue_text(1, POS_X_CENTRED, 34, gMenuText[159], 1, 4); // If you wish to use
render_dialogue_text(1, POS_X_CENTRED, 50, gMenuText[160], 1, 4); // the Controller Pak
render_dialogue_text(1, POS_X_CENTRED, 66, gMenuText[162], 1, 4); // insert it now!
render_dialogue_text(1, POS_CENTRED, 34, gMenuText[159], 1, 4); // If you wish to use
render_dialogue_text(1, POS_CENTRED, 50, gMenuText[160], 1, 4); // the Controller Pak
render_dialogue_text(1, POS_CENTRED, 66, gMenuText[162], 1, 4); // insert it now!
if (buttonsPressed & (A_BUTTON | START_BUTTON)) {
func_80001D04(0xEF, 0);
D_80126398 = 0;
@@ -6397,15 +6397,15 @@ s32 tt_menu_loop(void) {
}
break;
case TT_MENU_INSERT_RUMBLE_PAK:
render_dialogue_text(1, POS_X_CENTRED, 34, gMenuText[159], 1, 4); // If you wish to use
render_dialogue_text(1, POS_X_CENTRED, 50, gMenuText[161], 1, 4); // the Rumble Pak
render_dialogue_text(1, POS_X_CENTRED, 66, gMenuText[162], 1, 4); // insert it now!
render_dialogue_text(1, POS_CENTRED, 34, gMenuText[159], 1, 4); // If you wish to use
render_dialogue_text(1, POS_CENTRED, 50, gMenuText[161], 1, 4); // the Rumble Pak
render_dialogue_text(1, POS_CENTRED, 66, gMenuText[162], 1, 4); // insert it now!
if (buttonsPressed & (A_BUTTON | B_BUTTON | START_BUTTON)) {
sCurrentMenuID = TT_MENU_ROOT;
}
break;
case TT_MENU_SAVE_GHOST:
render_dialogue_text(1, POS_X_CENTRED, 50, gMenuText[124], 1, 4); // PLEASE WAIT
render_dialogue_text(1, POS_CENTRED, 50, gMenuText[124], 1, 4); // PLEASE WAIT
D_80126398++;
if (D_80126398 >= 5) {
s32 result = func_8001B738(0) & 0xFF;
@@ -6446,7 +6446,7 @@ s32 tt_menu_loop(void) {
if ((sCurrentMenuID == TT_MENU_CONT_PAK_ERROR_1) ||
(sCurrentMenuID == TT_MENU_CONT_PAK_ERROR_2) ||
(sCurrentMenuID == TT_MENU_CONT_PAK_ERROR_3)) {
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[64], 1, 4); // PAK ERROR
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[64], 1, 4); // PAK ERROR
}
return currentOption;
@@ -6465,7 +6465,7 @@ s32 trophy_race_cabinet_menu_loop(void) {
set_dialogue_font(1, FONT_COLOURFUL);
currentOption = 0;
buttonsPressed = get_buttons_pressed_from_player(0);
render_dialogue_text(1, POS_X_CENTRED, 6, gMenuText[70], 1, 4); // TROPHY RACE
render_dialogue_text(1, POS_CENTRED, 6, gMenuText[70], 1, 4); // TROPHY RACE
if (gControllersYAxisDirection[0] < 0) {
sDialogueOption++;
} else if (gControllersYAxisDirection[0] > 0) {
@@ -6478,9 +6478,9 @@ s32 trophy_race_cabinet_menu_loop(void) {
sDialogueOption = 1;
}
set_option_text_colour(sDialogueOption == 0);
render_dialogue_text(1, POS_X_CENTRED, 30, gMenuText[180], 1, 4); // ENTER TROPHY RACE
render_dialogue_text(1, POS_CENTRED, 30, gMenuText[180], 1, 4); // ENTER TROPHY RACE
set_option_text_colour(sDialogueOption == 1);
render_dialogue_text(1, POS_X_CENTRED, 50, gMenuText[51], 1, 4); // EXIT
render_dialogue_text(1, POS_CENTRED, 50, gMenuText[51], 1, 4); // EXIT
if (buttonsPressed & A_BUTTON) {
currentOption = sDialogueOption + 1;
}
+1 -1
View File
@@ -665,7 +665,7 @@ s32 menu_loop(Gfx **arg0, s32 **arg1, s32 **arg2, s32 **arg3, s32 arg4);
void func_80081800(s32 arg0, s32 arg1, s32 arg2, u8 arg3, u8 arg4, u8 arg5, u8 arg6);
void func_80081E54(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s32 arg5);
void func_800828B8(void);
void func_800829F8(Gfx *dl, s32 mulFactor);
void func_800829F8(Gfx *dl, s32 updateRate);
void menu_logos_screen_init(void);
s32 menu_logo_screen_loop(s32 arg0);
void func_80082FAC(void);
+2 -2
View File
@@ -241,8 +241,8 @@ s32 func_800B76DC(void) {
}
}
void func_800B77D4(s32 mulFactor) {
D_800E3028 += mulFactor;
void func_800B77D4(s32 updateRate) {
D_800E3028 += updateRate;
if (D_800E3028 >= 0x3D) {
D_800E3028 = 0;
D_800E3024++;
+31 -31
View File
@@ -101,7 +101,7 @@ s8 D_800DD3F0 = 0;
FadeTransition D_800DD3F4 = FADE_TRANSITION(128, FADE_COLOR_BLACK, 20, 0);
// Unused?
FadeTransition D_800DD3FC = FADE_TRANSITION(0, FADE_COLOR_WHITE, 20, -1);
s32 sLogicMulFactor = 12;
s32 sLogicUpdateRate = LOGIC_5FPS;
FadeTransition D_800DD408 = FADE_TRANSITION(0, FADE_COLOR_WHITE, 30, -1);
// Unused?
char *D_800DD410[3] = {
@@ -786,7 +786,7 @@ void thread3_main(s32 arg0) {
D_80123520 = 0;
sRenderContext = DRAW_INTRO;
while (1) {
if (check_reset_pressed() != 0) {
if (is_reset_pressed()) {
func_80072708();
audioStopThread();
stop_thread30();
@@ -862,7 +862,7 @@ void func_8006C3E0(void) {
void render(void) {
s32 phi_v0;
s32 phi_v0_2;
s32 tempLogicMulFactor, tempLogicMulFactorMax;
s32 tempLogicUpdateRate, tempLogicUpdateRateMax;
osSetTime(0);
@@ -894,7 +894,7 @@ void render(void) {
init_rsp(&gCurrDisplayList);
init_rdp_and_framebuffer(&gCurrDisplayList);
render_background(&gCurrDisplayList, &gCurrHudMat, 1);
D_800DD37C = func_8006A1C4(D_800DD37C, sLogicMulFactor);
D_800DD37C = func_8006A1C4(D_800DD37C, sLogicUpdateRate);
if (func_800B76DC() != 0) {
render_epc_lock_up_display();
sRenderContext = DRAW_CRASH_SCREEN;
@@ -914,29 +914,29 @@ void render(void) {
func_8006F43C();
break;
case DRAW_MENU: // In a menu
func_8006DCF8(sLogicMulFactor);
func_8006DCF8(sLogicUpdateRate);
break;
case DRAW_GAME: // In game (Controlling a character)
func_8006CCF0(sLogicMulFactor);
func_8006CCF0(sLogicUpdateRate);
break;
case DRAW_CRASH_SCREEN: // EPC (lockup display)
func_800B77D4(sLogicMulFactor);
func_800B77D4(sLogicUpdateRate);
break;
}
// This is a good spot to place custom text if you want it to overlay it over ALL the
// menus & gameplay.
func_80000D00((u8)sLogicMulFactor);
func_80000D00((u8)sLogicUpdateRate);
func_800B5F78(&gCurrDisplayList);
func_800C56FC(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts);
close_dialogue_box(4);
func_800C5494(4);
if (func_800C0494(sLogicMulFactor) != 0) {
if (func_800C0494(sLogicUpdateRate) != 0) {
render_fade_transition(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts);
}
if ((D_80123520 >= 8) && (func_8006F4C8() != 0)) {
func_800829F8(&gCurrDisplayList, sLogicMulFactor);
func_800829F8(&gCurrDisplayList, sLogicUpdateRate);
}
gDPFullSync(gCurrDisplayList++);
@@ -962,15 +962,15 @@ void render(void) {
}
func_80070B04(gVideoLastFramebuffer, gVideoCurrFramebuffer, gVideoCurrFramebuffer + phi_v0_2);
}
// tempLogicMulFactor will be set to a value 2 or higher, based on the framerate.
// tempLogicUpdateRate will be set to a value 2 or higher, based on the framerate.
// the mul factor is hardcapped at 6, which happens at 10FPS. The mul factor
// affects frameskipping, to maintain consistent game speed, through the (many)
// dropped frames in DKR.
tempLogicMulFactor = func_8007A98C(D_800DD380);
sLogicMulFactor = tempLogicMulFactor;
tempLogicMulFactorMax = 6;
if (tempLogicMulFactor > tempLogicMulFactorMax) {
sLogicMulFactor = tempLogicMulFactorMax;
tempLogicUpdateRate = func_8007A98C(D_800DD380);
sLogicUpdateRate = tempLogicUpdateRate;
tempLogicUpdateRateMax = LOGIC_10FPS;
if (tempLogicUpdateRate > tempLogicUpdateRateMax) {
sLogicUpdateRate = tempLogicUpdateRateMax;
}
}
@@ -985,7 +985,7 @@ void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) {
}
/**
* Calls load_level() with the same arguments except for the cutsceneId,
* Calls load_level() with the same arguments except for the cutsceneId,
* which is the value at D_80123508. Also does some other stuff.
* Needs a better name!
*/
@@ -1024,7 +1024,7 @@ void func_8006CC14(void) {
#ifdef NON_MATCHING
// Almost matching except for a couple minor issues.
void func_8006CCF0(s32 mulFactor) {
void func_8006CCF0(s32 updateRate) {
s32 i, buttonHeldInputs, sp40, sp3C, buttonPressedInputs, phi_v1_2;
sp40 = 0;
@@ -1039,7 +1039,7 @@ void func_8006CCF0(s32 mulFactor) {
buttonPressedInputs |= START_BUTTON;
}
if (!gIsPaused) {
func_80010994(mulFactor);
func_80010994(updateRate);
if (func_80066510() == 0 || func_8001139C()) {
if ((buttonPressedInputs & START_BUTTON) && (func_8006C2F0() == 0) && (D_800DD390 == 0)
&& (sRenderContext == DRAW_GAME) && (D_80123516 == 0) && (D_800DD394 == 0) && (D_800DD398 == 0)) {
@@ -1051,7 +1051,7 @@ void func_8006CCF0(s32 mulFactor) {
} else {
func_80028FA0(1);
}
D_800DD398 -= mulFactor;
D_800DD398 -= updateRate;
if (D_800DD398 < 0) {
D_800DD398 = 0;
}
@@ -1060,13 +1060,13 @@ void func_8006CCF0(s32 mulFactor) {
}
gParticlePtrList_flush();
func_8001BF20();
func_80024D54(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, mulFactor);
func_80024D54(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, updateRate);
if (sRenderContext == DRAW_GAME) {
// Ignore the user's L/R/Z buttons.
buttonHeldInputs &= ~(L_TRIG | R_TRIG | Z_TRIG);
}
if (D_80123516 != 0) {
i = func_80095728(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, mulFactor);
i = func_80095728(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, updateRate);
switch (i - 1) {
case 1:
buttonHeldInputs |= (L_TRIG | Z_TRIG);
@@ -1111,7 +1111,7 @@ void func_8006CCF0(s32 mulFactor) {
break;
}
}
func_800C3440(mulFactor);
func_800C3440(updateRate);
i = func_800C3400();
if (i != 0) {
if (i == 2) {
@@ -1123,7 +1123,7 @@ void func_8006CCF0(s32 mulFactor) {
}
}
if (gIsPaused) {
i = func_80094170(&gCurrDisplayList, mulFactor);
i = func_80094170(&gCurrDisplayList, updateRate);
switch (i - 1) {
case 0:
gIsPaused = FALSE;
@@ -1172,7 +1172,7 @@ void func_8006CCF0(s32 mulFactor) {
}
init_rdp_and_framebuffer(&gCurrDisplayList);
render_borders_for_multiplayer(&gCurrDisplayList);
func_800A8474(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, mulFactor);
func_800A8474(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, updateRate);
func_80077268(&gCurrDisplayList);
if (D_800DD39C != 0) {
if (func_800214C4() != 0) {
@@ -1184,7 +1184,7 @@ void func_8006CCF0(s32 mulFactor) {
}
phi_v1_2 = FALSE;
if (D_800DD390 != 0) {
D_800DD390 -= mulFactor;
D_800DD390 -= updateRate;
if (D_800DD390 <= 0) {
D_800DD390 = 0;
func_8006C1AC(0, 0, 0, 0);
@@ -1193,7 +1193,7 @@ void func_8006CCF0(s32 mulFactor) {
}
}
if (D_800DD394 > 0) {
D_800DD394 -= mulFactor;
D_800DD394 -= updateRate;
if (D_800DD394 <= 0) {
buttonHeldInputs = L_TRIG;
switch (D_80123524) {
@@ -1492,15 +1492,15 @@ void func_8006DC58(s32 arg0) {
#ifdef NON_MATCHING
// Minor & regalloc issues.
void func_8006DCF8(s32 mulFactor) {
void func_8006DCF8(s32 updateRate) {
s32 menuLoopResult, temp, temp2, tempResult;
gIsPaused = FALSE;
D_80123516 = 0;
if (!D_80123514 && D_801234F0) {
func_8006DC58(mulFactor);
func_8006DC58(updateRate);
}
menuLoopResult = menu_loop(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, mulFactor);
menuLoopResult = menu_loop(&gCurrDisplayList, &gCurrHudMat, &gCurrHudVerts, &gCurrHudTris, updateRate);
D_801234F0 = TRUE;
if (menuLoopResult == -2) {
D_801234F0 = FALSE;
@@ -1772,7 +1772,7 @@ s8 func_8006EAB0(void) {
return D_80123516;
}
s32 check_reset_pressed(void) {
s32 is_reset_pressed(void) {
if (D_80123560[0] == 0) {
D_80123560[0] = (s32)((osRecvMesg(&gNMIMesgQueue, NULL, 0) + 1) != 0);
}
+1 -1
View File
@@ -157,7 +157,7 @@ void func_8006EA58(void);
Settings *get_settings(void);
s8 is_game_paused(void);
s8 func_8006EAB0(void);
s32 check_reset_pressed(void);
s32 is_reset_pressed(void);
s32 func_8006EB14(void);
void func_8006EB24(void);
void func_8006EB40(void);
+12 -12
View File
@@ -233,9 +233,9 @@ void func_8007A974(void) {
#ifdef NON_MATCHING
// regalloc & stack issues
s32 func_8007A98C(s32 arg0) {
s32 tempMulFactor;
s32 tempUpdateRate;
tempMulFactor = 1;
tempUpdateRate = LOGIC_60FPS;
if (D_801262D0 != 0) {
D_801262D0--;
if (D_801262D0 == 0) {
@@ -246,32 +246,32 @@ s32 func_8007A98C(s32 arg0) {
swap_framebuffers();
}
while (osRecvMesg(&D_801261A0, NULL, 0) != -1) {
s0 += 1;
s0 &= 0xFF;
tempUpdateRate += 1;
tempUpdateRate &= 0xFF;
}
if (tempMulFactor < D_80126309) {
if (tempUpdateRate < D_80126309) {
if (D_80126308 < 0x14) {
D_80126308++;
}
if (D_80126308 == 0x14) {
D_80126309 = tempMulFactor;
D_80126309 = tempUpdateRate;
D_80126308 = 0;
}
} else {
D_80126308 = 0;
if ((D_80126309 >= tempMulFactor) || (D_801262E4 > tempMulFactor)) {
D_80126309 = tempMulFactor;
if ((D_80126309 >= tempUpdateRate) || (D_801262E4 > tempUpdateRate)) {
D_80126309 = tempUpdateRate;
}
}
while (tempMulFactor < D_80126309) {
while (tempUpdateRate < D_80126309) {
osRecvMesg(&D_801261A0, NULL, 1);
tempMulFactor += 1;
tempMulFactor &= 0xFF;
tempUpdateRate += 1;
tempUpdateRate &= 0xFF;
}
osViSwapBuffer(gVideoLastFramebuffer);
osRecvMesg(&D_801261A0, NULL, 1);
return tempMulFactor;
return tempUpdateRate;
}
#else
GLOBAL_ASM("asm/non_matchings/video/func_8007A98C.s")
+15
View File
@@ -32,6 +32,21 @@
#define HEIGHT_RATIO_NTSC (LOW_RES_NTSC_HEIGHT / LOW_RES_NTSC_HEIGHT)
#define HEIGHT_RATIO_MPAL (LOW_RES_MPAL_HEIGHT / LOW_RES_NTSC_HEIGHT)
/**
* Values for the rate game logic will work depending on the framerate. Vanilla DKR will default to LOGIC_30FPS (2)
*/
enum LogicUpdateRates {
LOGIC_NULL,
LOGIC_60FPS,
LOGIC_30FPS,
LOGIC_20FPS,
LOGIC_15FPS,
LOGIC_12FPS,
LOGIC_10FPS,
LOGIC_5FPS = 12,
};
extern s32 gVideoRefreshRate;
extern u16 *gVideoDepthBuffer;