diff --git a/src/game/bondview.c b/src/game/bondview.c index 0c2329f54..e40f57ac9 100644 --- a/src/game/bondview.c +++ b/src/game/bondview.c @@ -7137,7 +7137,7 @@ Gfx *bviewRenderHorizonScanner(Gfx *gdl) strcpy(var800a41c0, "BinocularViewGfx"); - if (g_HiResActive == true) { + if (g_ViMode == VIMODE_HIRES) { scale = 2; } diff --git a/src/game/data/data_0160b0.c b/src/game/data/data_0160b0.c index f9d3972db..5a2a8a5e2 100644 --- a/src/game/data/data_0160b0.c +++ b/src/game/data/data_0160b0.c @@ -65,16 +65,28 @@ u32 var800705b4 = 0x00000000; u32 var800705b8 = 0x00000000; u32 var800705bc = 0x00000000; -struct var800705c0 var800705c0[] = { - { 320, 220, 320, 1, 1, 220, 0, 180, 20, 136, 42 }, - { 640, 220, 640, 0.5, 1, 220, 0, 180, 20, 136, 42 }, - { 320, 480, 320, 2, 2, 440, 20, 360, 60, 272, 104 }, - { 440, 330, 440, 1, 1, 330, 0, 330, 0, 330, 0 }, - { 440, 240, 440, 0.72727274894714, 1, 220, 0, 180, 0, 136, 0 }, - { 400, 300, 400, 1, 2, 300, 0, 300, 0, 300, 0 }, +struct vimode g_ViModes[] = { + // fbwidth + // | fbheight + // | | width + // | | | yscale + // | | | | xscale + // | | | | | fullheight + // | | | | | | fulltop + // | | | | | | | wideheight + // | | | | | | | | widetop + // | | | | | | | | | cinemaheight + // | | | | | | | | | | cinematop + // | | | | | | | | | | | + { 320, 220, 320, 1, 1, 220, 0, 180, 20, 136, 42 }, // default + { 640, 220, 640, 0.5, 1, 220, 0, 180, 20, 136, 42 }, // hi-res + { 320, 480, 320, 2, 2, 440, 20, 360, 60, 272, 104 }, // unused + { 440, 330, 440, 1, 1, 330, 0, 330, 0, 330, 0 }, // unused + { 440, 240, 440, 0.72727274894714, 1, 220, 0, 180, 0, 136, 0 }, // unused + { 400, 300, 400, 1, 2, 300, 0, 300, 0, 300, 0 }, // unused }; -s32 g_HiResActive = 0; +s32 g_ViMode = VIMODE_DEFAULT; bool g_HiResEnabled = false; u32 var800706d0 = 0x00000000; u32 var800706d4 = 0x00000000; diff --git a/src/game/game_011110.c b/src/game/game_011110.c index 03a22b0a0..110019ba4 100644 --- a/src/game/game_011110.c +++ b/src/game/game_011110.c @@ -518,7 +518,7 @@ glabel var7f1a827c /* f011930: afa00080 */ sw $zero,0x80($sp) /* f011934: 8e10d03c */ lw $s0,%lo(g_StageSetup+0xc)($s0) /* f011938: a3a0007b */ sb $zero,0x7b($sp) -/* f01193c: 0fc2f0fc */ jal func0f0bc3f0 +/* f01193c: 0fc2f0fc */ jal viResetDefaultModeIf4Mb /* f011940: e7a40088 */ swc1 $f4,0x88($sp) /* f011944: 0fc63956 */ jal func0f18e558 /* f011948: 00000000 */ nop @@ -1304,7 +1304,7 @@ glabel var7f1a827c // s32 bodynum; // s32 headnum; // -// func0f0bc3f0(); +// viResetDefaultModeIf4Mb(); // func0f18e558(); // var80070764 = 0; // var8009de20 = 0; diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 8cd06508c..78bf543e1 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -98,8 +98,8 @@ glabel var7f1a863c .word menuTickAll+0x168c # f01d5b4 .text /* f01bf28: 27bdfe98 */ addiu $sp,$sp,-360 -/* f01bf2c: 3c0e8007 */ lui $t6,%hi(g_HiResActive) -/* f01bf30: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6) +/* f01bf2c: 3c0e8007 */ lui $t6,%hi(g_ViMode) +/* f01bf30: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) /* f01bf34: afb60040 */ sw $s6,0x40($sp) /* f01bf38: 24160001 */ addiu $s6,$zero,0x1 /* f01bf3c: afb00028 */ sw $s0,0x28($sp) @@ -1852,7 +1852,7 @@ glabel var7f1a863c // s32 anyopen = false; // // // bf5c -// g_ScreenWidthMultiplier = g_HiResActive == true ? 2 : 1; +// g_ScreenWidthMultiplier = g_ViMode == VIMODE_HIRES ? 2 : 1; // // // bf7c // func0f0069dc(); diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index f95bf0087..f41471839 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -22181,14 +22181,14 @@ glabel hudRenderAmmo /* f0aa980: 8fa20130 */ lw $v0,0x130($sp) /* f0aa984: 8c6e000c */ lw $t6,0xc($v1) .L0f0aa988: -/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_HiResActive) +/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_ViMode) /* f0aa98c: 29c10005 */ slti $at,$t6,0x5 /* f0aa990: 10200003 */ beqz $at,.L0f0aa9a0 /* f0aa994: 00000000 */ nop /* f0aa998: 10000449 */ b .L0f0abac0 /* f0aa99c: 8fa20130 */ lw $v0,0x130($sp) .L0f0aa9a0: -/* f0aa9a0: 8def06c8 */ lw $t7,%lo(g_HiResActive)($t7) +/* f0aa9a0: 8def06c8 */ lw $t7,%lo(g_ViMode)($t7) /* f0aa9a4: 24020001 */ addiu $v0,$zero,0x1 /* f0aa9a8: 144f0004 */ bne $v0,$t7,.L0f0aa9bc /* f0aa9ac: 24180002 */ addiu $t8,$zero,0x2 diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 57cb36e2a..59a8dd6ef 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -5329,16 +5329,16 @@ void currentPlayerTickExplode(void) } } -void func0f0bc3f0(void) +void viResetDefaultModeIf4Mb(void) { if (IS4MB()) { - var800705c0[0].unk04 = 220; - var800705c0[0].unk18 = 0; - var800705c0[0].unk14 = 220; - var800705c0[0].unk1c = 180; - var800705c0[0].unk20 = 20; - var800705c0[0].unk24 = 136; - var800705c0[0].unk28 = 42; + g_ViModes[VIMODE_DEFAULT].fbheight = 220; + g_ViModes[VIMODE_DEFAULT].fulltop = 0; + g_ViModes[VIMODE_DEFAULT].fullheight = 220; + g_ViModes[VIMODE_DEFAULT].wideheight = 180; + g_ViModes[VIMODE_DEFAULT].widetop = 20; + g_ViModes[VIMODE_DEFAULT].cinemaheight = 136; + g_ViModes[VIMODE_DEFAULT].cinematop = 42; } } @@ -5349,19 +5349,19 @@ void optionsSetHiRes(bool enable) s16 func0f0bc44c(void) { - s16 value = var800705c0[g_HiResActive].unk00; - return value; + s16 width = g_ViModes[g_ViMode].fbwidth; + return width; } s16 func0f0bc478(void) { - s16 value = var800705c0[g_HiResActive].unk04; + s16 height = g_ViModes[g_ViMode].fbheight; if (g_Vars.unk0004e0) { - value = value >> 1; + height = height >> 1; } - return value; + return height; } bool func0f0bc4c0(void) @@ -5382,7 +5382,7 @@ s16 currentPlayerGetViewportWidth(void) if (func0f0bc4c0() == 0) { if (PLAYERCOUNT() >= 3) { // 3/4 players - width = var800705c0[g_HiResActive].unk08 / 2; + width = g_ViModes[g_ViMode].width / 2; if (g_Vars.currentplayernum == 0 || g_Vars.currentplayernum == 2) { width--; @@ -5390,22 +5390,22 @@ s16 currentPlayerGetViewportWidth(void) } else if (PLAYERCOUNT() == 2) { if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || g_Vars.unk0004e0) { // 2 players vsplit - width = var800705c0[g_HiResActive].unk08 / 2; + width = g_ViModes[g_ViMode].width / 2; if (g_Vars.currentplayernum == 0) { width--; } } else { // 2 players full width - width = var800705c0[g_HiResActive].unk08; + width = g_ViModes[g_ViMode].width; } } else { // 1 player - width = var800705c0[g_HiResActive].unk08; + width = g_ViModes[g_ViMode].width; } } else { // Probably cutscene - width = var800705c0[g_HiResActive].unk08; + width = g_ViModes[g_ViMode].width; } return width; @@ -5419,27 +5419,27 @@ s16 currentPlayerGetViewportLeft(void) if (PLAYERCOUNT() >= 3 && !something != 0) { if (g_Vars.currentplayernum == 1 || g_Vars.currentplayernum == 3) { // 3/4 players - right side - left = var800705c0[g_HiResActive].unk08 / 2 + var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = g_ViModes[g_ViMode].width / 2 + g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } else { // 3/4 players - left side - left = var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } } else if (PLAYERCOUNT() == 2 && !something != 0) { if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || g_Vars.unk0004e0) { if (g_Vars.currentplayernum == 1) { // 2 players vsplit - right side - left = (var800705c0[g_HiResActive].unk08 / 2) + var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = (g_ViModes[g_ViMode].width / 2) + g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } else { // 2 players vsplit - left side - left = var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } } else { // 2 players - full width - left = var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } } else { // Full screen - left = var800705c0[g_HiResActive].unk00 - var800705c0[g_HiResActive].unk08; + left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; } return left; @@ -5450,7 +5450,7 @@ s16 currentPlayerGetViewportHeight(void) s16 height; if (PLAYERCOUNT() >= 2 && !func0f0bc4c0()) { - s16 tmp = var800705c0[g_HiResActive].unk14; + s16 tmp = g_ViModes[g_ViMode].fullheight; if (IS4MB() && !g_Vars.unk0004e0) { height = tmp; @@ -5469,21 +5469,21 @@ s16 currentPlayerGetViewportHeight(void) } } else { if (optionsGetEffectiveScreenSize() == SCREENSIZE_WIDE) { - height = var800705c0[g_HiResActive].unk1c; + height = g_ViModes[g_ViMode].wideheight; } else if (optionsGetEffectiveScreenSize() == SCREENSIZE_CINEMA) { - height = var800705c0[g_HiResActive].unk24; + height = g_ViModes[g_ViMode].cinemaheight; } else if (var80070764 && !var8009dfc0) { if (var8009de2c >= 1) { - f32 a = var800705c0[g_HiResActive].unk1c; - f32 b = var800705c0[g_HiResActive].unk14; + f32 a = g_ViModes[g_ViMode].wideheight; + f32 b = g_ViModes[g_ViMode].fullheight; a = a * (1.0f - var8009de30); b = b * var8009de30; height = a + b; } else { - height = var800705c0[g_HiResActive].unk1c; + height = g_ViModes[g_ViMode].wideheight; } } else { - height = var800705c0[g_HiResActive].unk14; + height = g_ViModes[g_ViMode].fullheight; } } @@ -5495,7 +5495,7 @@ s16 currentPlayerGetViewportTop(void) s16 top; if (PLAYERCOUNT() >= 2 && !func0f0bc4c0()) { - top = var800705c0[g_HiResActive].unk18; + top = g_ViModes[g_ViMode].fulltop; if (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL || PLAYERCOUNT() != 2) { if (PLAYERCOUNT() == 2 @@ -5503,43 +5503,43 @@ s16 currentPlayerGetViewportTop(void) && optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && !g_Vars.unk0004e0) { // 2 players hsplit - bottom side - top = var800705c0[g_HiResActive].unk18 + var800705c0[g_HiResActive].unk14 / 2; + top = g_ViModes[g_ViMode].fulltop + g_ViModes[g_ViMode].fullheight / 2; } else if (g_Vars.currentplayernum == 2 || g_Vars.currentplayernum == 3) { // 3/4 players - bottom side - top = var800705c0[g_HiResActive].unk18 + var800705c0[g_HiResActive].unk14 / 2; + top = g_ViModes[g_ViMode].fulltop + g_ViModes[g_ViMode].fullheight / 2; } } } else { if (optionsGetEffectiveScreenSize() == SCREENSIZE_WIDE) { if (var80070764 && optionsGetCutsceneSubtitles() && g_Vars.stagenum != STAGE_CITRAINING) { if (var8009de2c >= 1) { - f32 a = var800705c0[g_HiResActive].unk18; - f32 b = var800705c0[g_HiResActive].unk20; + f32 a = g_ViModes[g_ViMode].fulltop; + f32 b = g_ViModes[g_ViMode].widetop; a = a * (1.0f - var8009de30); b = b * var8009de30; top = a + b; } else { - top = var800705c0[g_HiResActive].unk18; + top = g_ViModes[g_ViMode].fulltop; } } else { - top = var800705c0[g_HiResActive].unk20; + top = g_ViModes[g_ViMode].widetop; } } else if (optionsGetEffectiveScreenSize() == SCREENSIZE_CINEMA) { - top = var800705c0[g_HiResActive].unk28; + top = g_ViModes[g_ViMode].cinematop; } else { if (var80070764 && !var8009dfc0 && (!optionsGetCutsceneSubtitles() || g_Vars.stagenum == STAGE_CITRAINING)) { if (var8009de2c >= 1) { - f32 a = var800705c0[g_HiResActive].unk20; - f32 b = var800705c0[g_HiResActive].unk18; + f32 a = g_ViModes[g_ViMode].widetop; + f32 b = g_ViModes[g_ViMode].fulltop; a = a * (1.0f - var8009de30); b = b * var8009de30; top = a + b; } else { - top = var800705c0[g_HiResActive].unk20; + top = g_ViModes[g_ViMode].widetop; } } else { - return var800705c0[g_HiResActive].unk18; + return g_ViModes[g_ViMode].fulltop; } } } @@ -5549,15 +5549,15 @@ s16 currentPlayerGetViewportTop(void) f32 func0f0bd358(void) { - f32 tmp; + f32 result; s16 stack; - s16 a = currentPlayerGetViewportHeight(); - s16 b = currentPlayerGetViewportWidth(); + s16 height = currentPlayerGetViewportHeight(); + s16 width = currentPlayerGetViewportWidth(); - tmp = (f32)b / (f32)a; - tmp = var800705c0[g_HiResActive].unk0c * tmp; + result = (f32)width / (f32)height; + result = g_ViModes[g_ViMode].yscale * result; - return tmp; + return result; } void func0f0bd3c4(void) @@ -5668,9 +5668,9 @@ glabel func0f0bd764 /* f0bd768: afbf001c */ sw $ra,0x1c($sp) /* f0bd76c: 0fc2f4d6 */ jal func0f0bd358 /* f0bd770: afb00018 */ sw $s0,0x18($sp) -/* f0bd774: 3c018007 */ lui $at,%hi(g_HiResActive) +/* f0bd774: 3c018007 */ lui $at,%hi(g_ViMode) /* f0bd778: e7a00024 */ swc1 $f0,0x24($sp) -/* f0bd77c: ac2006c8 */ sw $zero,%lo(g_HiResActive)($at) +/* f0bd77c: ac2006c8 */ sw $zero,%lo(g_ViMode)($at) /* f0bd780: 0fc54c77 */ jal func0f1531dc /* f0bd784: 00002025 */ or $a0,$zero,$zero /* f0bd788: 3c014270 */ lui $at,0x4270 @@ -5697,9 +5697,9 @@ glabel func0f0bd764 /* f0bd7dc: 02002025 */ or $a0,$s0,$zero /* f0bd7e0: 0fc4a2ae */ jal currentPlayerSetViewPosition /* f0bd7e4: 00402825 */ or $a1,$v0,$zero -/* f0bd7e8: 3c188007 */ lui $t8,%hi(g_HiResActive) -/* f0bd7ec: 8f1806c8 */ lw $t8,%lo(g_HiResActive)($t8) -/* f0bd7f0: 3c048007 */ lui $a0,%hi(var800705c0+0x10) +/* f0bd7e8: 3c188007 */ lui $t8,%hi(g_ViMode) +/* f0bd7ec: 8f1806c8 */ lw $t8,%lo(g_ViMode)($t8) +/* f0bd7f0: 3c048007 */ lui $a0,%hi(g_ViModes+0x10) /* f0bd7f4: 0018c880 */ sll $t9,$t8,0x2 /* f0bd7f8: 0338c823 */ subu $t9,$t9,$t8 /* f0bd7fc: 0019c880 */ sll $t9,$t9,0x2 @@ -5707,7 +5707,7 @@ glabel func0f0bd764 /* f0bd804: 0019c880 */ sll $t9,$t9,0x2 /* f0bd808: 00992021 */ addu $a0,$a0,$t9 /* f0bd80c: 0c002aac */ jal func0000aab0 -/* f0bd810: 8c8405d0 */ lw $a0,%lo(var800705c0+0x10)($a0) +/* f0bd810: 8c8405d0 */ lw $a0,%lo(g_ViModes+0x10)($a0) /* f0bd814: 0fc2f155 */ jal currentPlayerGetViewportWidth /* f0bd818: 00000000 */ nop /* f0bd81c: 00028400 */ sll $s0,$v0,0x10 @@ -5818,8 +5818,8 @@ glabel var7f1ad6ac /* f0bd918: afb10038 */ sw $s1,0x38($sp) /* f0bd91c: 3c0e8007 */ lui $t6,%hi(g_HiResEnabled) /* f0bd920: 8dce06cc */ lw $t6,%lo(g_HiResEnabled)($t6) -/* f0bd924: 3c118007 */ lui $s1,%hi(g_HiResActive) -/* f0bd928: 263106c8 */ addiu $s1,$s1,%lo(g_HiResActive) +/* f0bd924: 3c118007 */ lui $s1,%hi(g_ViMode) +/* f0bd928: 263106c8 */ addiu $s1,$s1,%lo(g_ViMode) /* f0bd92c: afbf004c */ sw $ra,0x4c($sp) /* f0bd930: afb50048 */ sw $s5,0x48($sp) /* f0bd934: afb40044 */ sw $s4,0x44($sp) @@ -5960,7 +5960,7 @@ glabel var7f1ad6ac /* f0bdb1c: 0fc4a2ae */ jal currentPlayerSetViewPosition /* f0bdb20: 00402825 */ or $a1,$v0,$zero /* f0bdb24: 8e2f0000 */ lw $t7,0x0($s1) -/* f0bdb28: 3c048007 */ lui $a0,%hi(var800705c0+0x10) +/* f0bdb28: 3c048007 */ lui $a0,%hi(g_ViModes+0x10) /* f0bdb2c: 000fc080 */ sll $t8,$t7,0x2 /* f0bdb30: 030fc023 */ subu $t8,$t8,$t7 /* f0bdb34: 0018c080 */ sll $t8,$t8,0x2 @@ -5968,7 +5968,7 @@ glabel var7f1ad6ac /* f0bdb3c: 0018c080 */ sll $t8,$t8,0x2 /* f0bdb40: 00982021 */ addu $a0,$a0,$t8 /* f0bdb44: 0c002aac */ jal func0000aab0 -/* f0bdb48: 8c8405d0 */ lw $a0,%lo(var800705c0+0x10)($a0) +/* f0bdb48: 8c8405d0 */ lw $a0,%lo(g_ViModes+0x10)($a0) /* f0bdb4c: 0fc2f155 */ jal currentPlayerGetViewportWidth /* f0bdb50: 00000000 */ nop /* f0bdb54: 00028400 */ sll $s0,$v0,0x10 @@ -8187,14 +8187,14 @@ glabel var7f1ad6ac //{ // f32 aspectratio; // -// g_HiResActive = g_HiResEnabled; +// g_ViMode = g_HiResEnabled; // // if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) && PLAYERCOUNT() > 1) { -// g_HiResActive = false; +// g_ViMode = VIMODE_DEFAULT; // } // // // d9dc -// if (g_HiResActive == true) { +// if (g_ViMode == VIMODE_HIRES) { // func0f1531dc(true); // } else { // func0f1531dc(false); @@ -8234,7 +8234,7 @@ glabel var7f1ad6ac // currentPlayerSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); // // // db44 -// func0000aab0(var800705c0[g_HiResActive].unk10); +// func0000aab0(g_ViModes[g_ViMode].xscale); // viSetFovAspectAndSize(60, aspectratio, currentPlayerGetViewportWidth(), currentPlayerGetViewportHeight()); // viSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); // viSetXY(func0f0bc44c(), func0f0bc478()); diff --git a/src/game/game_0d7070.c b/src/game/game_0d7070.c index 5addf3330..2d9f690b8 100644 --- a/src/game/game_0d7070.c +++ b/src/game/game_0d7070.c @@ -6344,14 +6344,14 @@ glabel var7f1ade74 /* f0dca78: 00801025 */ or $v0,$a0,$zero /* f0dca7c: 8c4f1580 */ lw $t7,0x1580($v0) .L0f0dca80: -/* f0dca80: 3c198007 */ lui $t9,%hi(g_HiResActive) +/* f0dca80: 3c198007 */ lui $t9,%hi(g_ViMode) /* f0dca84: 31f80001 */ andi $t8,$t7,0x1 /* f0dca88: 13000003 */ beqz $t8,.L0f0dca98 /* f0dca8c: 00000000 */ nop /* f0dca90: 100000c2 */ b .L0f0dcd9c /* f0dca94: 8fa20030 */ lw $v0,0x30($sp) .L0f0dca98: -/* f0dca98: 8f3906c8 */ lw $t9,%lo(g_HiResActive)($t9) +/* f0dca98: 8f3906c8 */ lw $t9,%lo(g_ViMode)($t9) /* f0dca9c: 24080001 */ addiu $t0,$zero,0x1 /* f0dcaa0: 24090002 */ addiu $t1,$zero,0x2 /* f0dcaa4: 15190004 */ bne $t0,$t9,.L0f0dcab8 diff --git a/src/game/game_0dcdb0.c b/src/game/game_0dcdb0.c index 9e49ef86f..c6bc400de 100644 --- a/src/game/game_0dcdb0.c +++ b/src/game/game_0dcdb0.c @@ -2752,8 +2752,8 @@ glabel hudmsgCreate .L0f0defbc: /* f0defbc: 04c100e3 */ bgez $a2,.L0f0df34c .L0f0defc0: -/* f0defc0: 3c0a8007 */ lui $t2,%hi(g_HiResActive) -/* f0defc4: 8d4a06c8 */ lw $t2,%lo(g_HiResActive)($t2) +/* f0defc0: 3c0a8007 */ lui $t2,%hi(g_ViMode) +/* f0defc4: 8d4a06c8 */ lw $t2,%lo(g_ViMode)($t2) /* f0defc8: 24030001 */ addiu $v1,$zero,0x1 /* f0defcc: 3c048007 */ lui $a0,%hi(g_NumHudMessages) /* f0defd0: 8c840fe8 */ lw $a0,%lo(g_NumHudMessages)($a0) @@ -3055,7 +3055,7 @@ glabel hudmsgCreate // } // } // -// g_ScreenWidthMultiplier = g_HiResActive == 1 ? 2 : 1; +// g_ScreenWidthMultiplier = g_ViMode == VIMODE_HIRES ? 2 : 1; // // // Find an unused index for the new message // for (index = 0; index < g_NumHudMessages; index++) { @@ -3168,8 +3168,8 @@ glabel var7f1aded8 .word func0f0df364+0x604 # f0df968 .text /* f0df364: 27bdff90 */ addiu $sp,$sp,-112 -/* f0df368: 3c0e8007 */ lui $t6,%hi(g_HiResActive) -/* f0df36c: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6) +/* f0df368: 3c0e8007 */ lui $t6,%hi(g_ViMode) +/* f0df36c: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) /* f0df370: afb20030 */ sw $s2,0x30($sp) /* f0df374: 24120001 */ addiu $s2,$zero,0x1 /* f0df378: 3c018007 */ lui $at,%hi(var80070fb0) @@ -3677,8 +3677,8 @@ glabel var7f1adef4 .word hudRenderMessages+0x7c8 # f0e0298 .text /* f0dfad0: 27bdff00 */ addiu $sp,$sp,-256 -/* f0dfad4: 3c0f8007 */ lui $t7,%hi(g_HiResActive) -/* f0dfad8: 8def06c8 */ lw $t7,%lo(g_HiResActive)($t7) +/* f0dfad4: 3c0f8007 */ lui $t7,%hi(g_ViMode) +/* f0dfad8: 8def06c8 */ lw $t7,%lo(g_ViMode)($t7) /* f0dfadc: afb20060 */ sw $s2,0x60($sp) /* f0dfae0: 24020001 */ addiu $v0,$zero,0x1 /* f0dfae4: 240e00ff */ addiu $t6,$zero,0xff @@ -4530,7 +4530,7 @@ glabel var7f1adef4 // s32 spdc = true; // dc // // // b24 -// if (g_HiResActive == true) { +// if (g_ViMode == VIMODE_HIRES) { // g_ScreenWidthMultiplier = 2; // } else { // g_ScreenWidthMultiplier = 1; diff --git a/src/game/game_0e0770.c b/src/game/game_0e0770.c index 0ce7e01a5..0291b923a 100644 --- a/src/game/game_0e0770.c +++ b/src/game/game_0e0770.c @@ -81,8 +81,8 @@ glabel func0f0e0770 /* f0e079c: afb00018 */ sw $s0,0x18($sp) /* f0e07a0: 0c002f02 */ jal viGetX /* f0e07a4: 00408025 */ or $s0,$v0,$zero -/* f0e07a8: 3c0e8007 */ lui $t6,%hi(g_HiResActive) -/* f0e07ac: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6) +/* f0e07a8: 3c0e8007 */ lui $t6,%hi(g_ViMode) +/* f0e07ac: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) /* f0e07b0: 24110001 */ addiu $s1,$zero,0x1 /* f0e07b4: 0002f840 */ sll $ra,$v0,0x1 /* f0e07b8: 162e0005 */ bne $s1,$t6,.L0f0e07d0 diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 1441f1f2e..c6e57e8cf 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -3623,7 +3623,7 @@ glabel var7f1b2948 /* f0f400c: 46046032 */ c.eq.s $f12,$f4 /* f0f4010: c4202938 */ lwc1 $f0,%lo(var7f1b2938)($at) /* f0f4014: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars) -/* f0f4018: 3c0b8007 */ lui $t3,%hi(g_HiResActive) +/* f0f4018: 3c0b8007 */ lui $t3,%hi(g_ViMode) /* f0f401c: 45030013 */ bc1tl .L0f0f406c /* f0f4020: c60c0540 */ lwc1 $f12,0x540($s0) /* f0f4024: 8c6d0000 */ lw $t5,0x0($v1) @@ -3697,7 +3697,7 @@ glabel var7f1b2948 /* f0f4120: c60e051c */ lwc1 $f14,0x51c($s0) /* f0f4124: c60a0510 */ lwc1 $f10,0x510($s0) .L0f0f4128: -/* f0f4128: 8d6b06c8 */ lw $t3,%lo(g_HiResActive)($t3) +/* f0f4128: 8d6b06c8 */ lw $t3,%lo(g_ViMode)($t3) /* f0f412c: 24010001 */ addiu $at,$zero,0x1 /* f0f4130: e7aa0430 */ swc1 $f10,0x430($sp) /* f0f4134: c6120518 */ lwc1 $f18,0x518($s0) @@ -12383,8 +12383,8 @@ glabel var7f1b2afc /* f0fbc38: 3c118007 */ lui $s1,%hi(g_MpPlayerNum) /* f0fbc3c: 26311448 */ addiu $s1,$s1,%lo(g_MpPlayerNum) /* f0fbc40: ae200000 */ sw $zero,0x0($s1) -/* f0fbc44: 3c0e8007 */ lui $t6,%hi(g_HiResActive) -/* f0fbc48: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6) +/* f0fbc44: 3c0e8007 */ lui $t6,%hi(g_ViMode) +/* f0fbc48: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) /* f0fbc4c: afb50048 */ sw $s5,0x48($sp) /* f0fbc50: 24020001 */ addiu $v0,$zero,0x1 /* f0fbc54: 0080a825 */ or $s5,$a0,$zero diff --git a/src/game/game_0fd660.c b/src/game/game_0fd660.c index e4443b25f..fa4fb3d38 100644 --- a/src/game/game_0fd660.c +++ b/src/game/game_0fd660.c @@ -3085,8 +3085,8 @@ u32 var800719c0 = 0xff4f00ff; GLOBAL_ASM( glabel func0f100ad0 /* f100ad0: 27bdfe28 */ addiu $sp,$sp,-472 -/* f100ad4: 3c0e8007 */ lui $t6,%hi(g_HiResActive) -/* f100ad8: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6) +/* f100ad4: 3c0e8007 */ lui $t6,%hi(g_ViMode) +/* f100ad8: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) /* f100adc: 24010001 */ addiu $at,$zero,0x1 /* f100ae0: afbf004c */ sw $ra,0x4c($sp) /* f100ae4: afbe0048 */ sw $s8,0x48($sp) diff --git a/src/game/game_11f000.c b/src/game/game_11f000.c index 35d9097d4..6ff147b6b 100644 --- a/src/game/game_11f000.c +++ b/src/game/game_11f000.c @@ -7302,14 +7302,14 @@ glabel var7f1b5108 /* f125aec: 11e00005 */ beqz $t7,.L0f125b04 /* f125af0: 00000000 */ nop /* f125af4: 8f18a2d4 */ lw $t8,%lo(g_Vars+0x314)($t8) -/* f125af8: 3c198007 */ lui $t9,%hi(g_HiResActive) +/* f125af8: 3c198007 */ lui $t9,%hi(g_ViMode) /* f125afc: 13000003 */ beqz $t8,.L0f125b0c /* f125b00: 00000000 */ nop .L0f125b04: /* f125b04: 1000020d */ b .L0f12633c /* f125b08: 8fa20170 */ lw $v0,0x170($sp) .L0f125b0c: -/* f125b0c: 8f3906c8 */ lw $t9,%lo(g_HiResActive)($t9) +/* f125b0c: 8f3906c8 */ lw $t9,%lo(g_ViMode)($t9) /* f125b10: 24010001 */ addiu $at,$zero,0x1 /* f125b14: 17210002 */ bne $t9,$at,.L0f125b20 /* f125b18: 00000000 */ nop @@ -7941,7 +7941,7 @@ glabel var7f1b511c /* f126458: af210000 */ sw $at,0x0($t9) /* f12645c: 8f010008 */ lw $at,0x8($t8) /* f126460: 8f08000c */ lw $t0,0xc($t8) -/* f126464: 3c0c8007 */ lui $t4,%hi(g_HiResActive) +/* f126464: 3c0c8007 */ lui $t4,%hi(g_ViMode) /* f126468: af210008 */ sw $at,0x8($t9) /* f12646c: af28000c */ sw $t0,0xc($t9) /* f126470: 8f080014 */ lw $t0,0x14($t8) @@ -7949,7 +7949,7 @@ glabel var7f1b511c /* f126478: 4487b000 */ mtc1 $a3,$f22 /* f12647c: af280014 */ sw $t0,0x14($t9) /* f126480: af210010 */ sw $at,0x10($t9) -/* f126484: 8d8c06c8 */ lw $t4,%lo(g_HiResActive)($t4) +/* f126484: 8d8c06c8 */ lw $t4,%lo(g_ViMode)($t4) /* f126488: 4485d000 */ mtc1 $a1,$f26 /* f12648c: 4486e000 */ mtc1 $a2,$f28 /* f126490: 24010001 */ addiu $at,$zero,0x1 diff --git a/src/game/game_18e5a0.c b/src/game/game_18e5a0.c index ba2111229..beb1f1228 100644 --- a/src/game/game_18e5a0.c +++ b/src/game/game_18e5a0.c @@ -1350,14 +1350,14 @@ glabel func0f18f874 /* f18f9c4: 17000005 */ bnez $t8,.L0f18f9dc /* f18f9c8: 00000000 */ nop /* f18f9cc: 8d0f00d8 */ lw $t7,0xd8($t0) -/* f18f9d0: 3c198007 */ lui $t9,%hi(g_HiResActive) +/* f18f9d0: 3c198007 */ lui $t9,%hi(g_ViMode) /* f18f9d4: 11e00003 */ beqz $t7,.L0f18f9e4 /* f18f9d8: 00000000 */ nop .L0f18f9dc: /* f18f9dc: 1000019a */ b .L0f190048 /* f18f9e0: 8fa20088 */ lw $v0,0x88($sp) .L0f18f9e4: -/* f18f9e4: 8f3906c8 */ lw $t9,%lo(g_HiResActive)($t9) +/* f18f9e4: 8f3906c8 */ lw $t9,%lo(g_ViMode)($t9) /* f18f9e8: 24020001 */ addiu $v0,$zero,0x1 /* f18f9ec: 14590004 */ bne $v0,$t9,.L0f18fa00 /* f18f9f0: 240a0002 */ addiu $t2,$zero,0x2 diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 4a8601687..17a96460b 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -743,8 +743,8 @@ glabel func0f10feac /* f1101d0: 24040008 */ addiu $a0,$zero,0x8 /* f1101d4: 0fc4794c */ jal bitSetByIndex /* f1101d8: 02002825 */ or $a1,$s0,$zero -/* f1101dc: 3c188007 */ lui $t8,%hi(g_HiResActive) -/* f1101e0: 8f1806c8 */ lw $t8,%lo(g_HiResActive)($t8) +/* f1101dc: 3c188007 */ lui $t8,%hi(g_ViMode) +/* f1101e0: 8f1806c8 */ lw $t8,%lo(g_ViMode)($t8) /* f1101e4: 24040022 */ addiu $a0,$zero,0x22 /* f1101e8: 02002825 */ or $a1,$s0,$zero /* f1101ec: 02583026 */ xor $a2,$s2,$t8 diff --git a/src/game/propobj.c b/src/game/propobj.c index ac424ab4a..79b4f99b2 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -47413,8 +47413,8 @@ glabel var7f1ab1a8 /* f090a10: 00000000 */ nop /* f090a14: 26100008 */ addiu $s0,$s0,0x8 .L0f090a18: -/* f090a18: 3c0a8007 */ lui $t2,%hi(g_HiResActive) -/* f090a1c: 8d4a06c8 */ lw $t2,%lo(g_HiResActive)($t2) +/* f090a18: 3c0a8007 */ lui $t2,%hi(g_ViMode) +/* f090a1c: 8d4a06c8 */ lw $t2,%lo(g_ViMode)($t2) /* f090a20: 24010001 */ addiu $at,$zero,0x1 /* f090a24: 44803000 */ mtc1 $zero,$f6 /* f090a28: 55410008 */ bnel $t2,$at,.L0f090a4c diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index db2d1cce9..417c4f5b5 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -14813,7 +14813,7 @@ s32 var8009de20 = 0; s32 var8009de24 = 0; f32 var8009de28 = 0; s32 var8009de2c = 0; -u32 var8009de30 = 0; +f32 var8009de30 = 0; u32 var8009de34 = 0; s16 g_SpawnPoints[MAX_SPAWNPOINTS] = {0}; s32 g_NumSpawnPoints = 0; diff --git a/src/include/constants.h b/src/include/constants.h index 4e51789e1..6fab24b46 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3034,6 +3034,9 @@ #define VERSION_PAL_FINAL 4 #define VERSION_JAP_FINAL 5 +#define VIMODE_DEFAULT 0 +#define VIMODE_HIRES 1 + #define VISIONMODE_NORMAL 0 #define VISIONMODE_XRAY 1 #define VISIONMODE_SLAYERROCKET 2 diff --git a/src/include/game/data/data_0160b0.h b/src/include/game/data/data_0160b0.h index 37186a49f..5cfb4222b 100644 --- a/src/include/game/data/data_0160b0.h +++ b/src/include/game/data/data_0160b0.h @@ -54,8 +54,8 @@ extern u32 var800705b0; extern u32 var800705b4; extern u32 var800705b8; extern u32 var800705bc; -extern struct var800705c0 var800705c0[]; -extern s32 g_HiResActive; +extern struct vimode g_ViModes[]; +extern s32 g_ViMode; extern bool g_HiResEnabled; extern u32 var8007072c; extern u32 var80070738; diff --git a/src/include/game/game_0b63b0.h b/src/include/game/game_0b63b0.h index 7f430efbf..307406c6f 100644 --- a/src/include/game/game_0b63b0.h +++ b/src/include/game/game_0b63b0.h @@ -47,7 +47,7 @@ u32 func0f0bbf14(void); Gfx *hudRenderHealthBar(Gfx *gdl); void currentPlayerSurroundWithExplosions(s32 arg0); void currentPlayerTickExplode(void); -void func0f0bc3f0(void); +void viResetDefaultModeIf4Mb(void); s16 func0f0bc44c(void); s16 func0f0bc478(void); bool func0f0bc4c0(void); diff --git a/src/include/types.h b/src/include/types.h index a06782eb5..e9fc8ac3a 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5027,18 +5027,18 @@ struct var80075c00 { f32 unk14; }; -struct var800705c0 { - s32 unk00; - s32 unk04; - s32 unk08; - f32 unk0c; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1c; - s32 unk20; - s32 unk24; - s32 unk28; +struct vimode { + s32 fbwidth; + s32 fbheight; + s32 width; + f32 yscale; + s32 xscale; + s32 fullheight; + s32 fulltop; + s32 wideheight; + s32 widetop; + s32 cinemaheight; + s32 cinematop; }; struct miscbio {