From 329f3351f4e59df96fd6e2b4013de7e90b9a39e1 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 10 Oct 2021 20:51:42 +1000 Subject: [PATCH] Attempt to decompile viUpdateMode, and rename many VI symbols --- src/game/activemenu/activemenu.c | 6 +- src/game/bg.c | 4 +- src/game/bondgun.c | 12 +- src/game/bondview.c | 34 +- src/game/chr/chr.c | 6 +- src/game/explosions/explosions.c | 4 +- src/game/explosions/reset.c | 2 +- src/game/game_011110.c | 8 +- src/game/game_015470.c | 4 +- src/game/game_01afc0.c | 2 +- src/game/game_01bea0.c | 6 +- src/game/game_0b69d0.c | 142 ++++---- src/game/game_0e0770.c | 12 +- src/game/game_0f09f0.c | 24 +- src/game/game_11f000.c | 8 +- src/game/game_176080.c | 14 +- src/game/gamefile.c | 2 +- src/game/hudmsg.c | 22 +- src/game/lv.c | 6 +- src/game/menu/items.c | 96 ++--- src/game/propobj.c | 2 +- src/game/radar.c | 2 +- src/game/sight.c | 2 +- src/game/title.c | 22 +- src/game/training/menus.c | 4 +- src/include/PR/libultra.h | 2 +- src/include/bss.h | 2 +- src/include/constants.h | 8 +- src/include/data.h | 14 +- src/include/game/game_0b69d0.h | 2 +- src/include/lib/lib_09a80.h | 30 +- src/lib/lib_09a80.c | 592 ++++++++++++++++++++----------- src/lib/main.c | 52 +-- src/lib/sched.c | 28 +- src/lib/ultra/io/conteepread.c | 2 +- 35 files changed, 676 insertions(+), 502 deletions(-) diff --git a/src/game/activemenu/activemenu.c b/src/game/activemenu/activemenu.c index 55083150a..70fb02048 100644 --- a/src/game/activemenu/activemenu.c +++ b/src/game/activemenu/activemenu.c @@ -3818,8 +3818,8 @@ glabel amRender GLOBAL_ASM( glabel amRender /* f100ad0: 27bdfe28 */ addiu $sp,$sp,-472 -/* f100ad4: 3c0e8007 */ lui $t6,%hi(g_ViMode) -/* f100ad8: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) +/* f100ad4: 3c0e8007 */ lui $t6,%hi(g_ViRes) +/* f100ad8: 8dce06c8 */ lw $t6,%lo(g_ViRes)($t6) /* f100adc: 24010001 */ addiu $at,$zero,0x1 /* f100ae0: afbf004c */ sw $ra,0x4c($sp) /* f100ae4: afbe0048 */ sw $s8,0x48($sp) @@ -6838,7 +6838,7 @@ glabel amRender // s16 tmp2; // s32 buddynum; // -// if (g_ViMode == VIMODE_HIRES) { +// if (g_ViRes == VIRES_HI) { // g_ScaleX = 2; // } else { // g_ScaleX = 1; diff --git a/src/game/bg.c b/src/game/bg.c index a4a82ae76..bb3574655 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -3159,7 +3159,7 @@ glabel func0f15a6f4 /* f15ab5c: 35ad000e */ ori $t5,$t5,0xe /* f15ab60: 02208025 */ or $s0,$s1,$zero /* f15ab64: ae0d0000 */ sw $t5,0x0($s0) -/* f15ab68: 0c002adb */ jal vi0000ab6c +/* f15ab68: 0c002adb */ jal viGetPerspScale /* f15ab6c: 26310008 */ addiu $s1,$s1,0x8 /* f15ab70: ae020004 */ sw $v0,0x4($s0) .L0f15ab74: @@ -3869,7 +3869,7 @@ glabel func0f15a6f4 /* f1551bc: 35ad000e */ ori $t5,$t5,0xe /* f1551c0: 02208025 */ or $s0,$s1,$zero /* f1551c4: ae0d0000 */ sw $t5,0x0($s0) -/* f1551c8: 0c002b3b */ jal vi0000ab6c +/* f1551c8: 0c002b3b */ jal viGetPerspScale /* f1551cc: 26310008 */ addiu $s1,$s1,0x8 /* f1551d0: ae020004 */ sw $v0,0x4($s0) .NB0f1551d4: diff --git a/src/game/bondgun.c b/src/game/bondgun.c index a98d240e8..db571f2cc 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -25363,7 +25363,7 @@ glabel var7f1aca90 /* f0a7be0: 272f0008 */ addiu $t7,$t9,0x8 /* f0a7be4: afaf014c */ sw $t7,0x14c($sp) /* f0a7be8: af290000 */ sw $t1,0x0($t9) -/* f0a7bec: 0c002adb */ jal vi0000ab6c +/* f0a7bec: 0c002adb */ jal viGetPerspScale /* f0a7bf0: afb90074 */ sw $t9,0x74($sp) /* f0a7bf4: 8fa30074 */ lw $v1,0x74($sp) /* f0a7bf8: ac620004 */ sw $v0,0x4($v1) @@ -26204,7 +26204,7 @@ glabel var7f1aca90 /* f0a7be0: 272f0008 */ addiu $t7,$t9,0x8 /* f0a7be4: afaf014c */ sw $t7,0x14c($sp) /* f0a7be8: af290000 */ sw $t1,0x0($t9) -/* f0a7bec: 0c002adb */ jal vi0000ab6c +/* f0a7bec: 0c002adb */ jal viGetPerspScale /* f0a7bf0: afb90074 */ sw $t9,0x74($sp) /* f0a7bf4: 8fa30074 */ lw $v1,0x74($sp) /* f0a7bf8: ac620004 */ sw $v0,0x4($v1) @@ -27036,7 +27036,7 @@ glabel var7f1aca90 /* f0a590c: 25b80008 */ addiu $t8,$t5,0x8 /* f0a5910: afb80144 */ sw $t8,0x144($sp) /* f0a5914: adb90000 */ sw $t9,0x0($t5) -/* f0a5918: 0c002b3b */ jal vi0000ab6c +/* f0a5918: 0c002b3b */ jal viGetPerspScale /* f0a591c: afad0070 */ sw $t5,0x70($sp) /* f0a5920: 8fa30070 */ lw $v1,0x70($sp) /* f0a5924: ac620004 */ sw $v0,0x4($v1) @@ -32032,14 +32032,14 @@ glabel bgunRenderHud /* f0aa980: 8fa20130 */ lw $v0,0x130($sp) /* f0aa984: 8c6e000c */ lw $t6,0xc($v1) .L0f0aa988: -/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_ViMode) +/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_ViRes) /* 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_ViMode)($t7) +/* f0aa9a0: 8def06c8 */ lw $t7,%lo(g_ViRes)($t7) /* f0aa9a4: 24020001 */ addiu $v0,$zero,0x1 /* f0aa9a8: 144f0004 */ bne $v0,$t7,.L0f0aa9bc /* f0aa9ac: 24180002 */ addiu $t8,$zero,0x2 @@ -34548,7 +34548,7 @@ const char var7f1ac19c[] = "%02d:%02d\n"; //#if PAL // g_ScaleX = 1; //#else -// if (g_ViMode == VIMODE_HIRES) { +// if (g_ViRes == VIRES_HI) { // g_ScaleX = 2; // } else { // g_ScaleX = 1; diff --git a/src/game/bondview.c b/src/game/bondview.c index 5ca81b088..e05f3bef6 100644 --- a/src/game/bondview.c +++ b/src/game/bondview.c @@ -513,7 +513,7 @@ Gfx *bviewPrepareStaticI8(Gfx *gdl, u32 colour, u32 alpha) Gfx *bviewRenderMotionBlur(Gfx *gdl, u32 colour, u32 alpha) { - u8 *fb = vi2GetUnk28(); + u8 *fb = viGetFrontBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); f32 fxxx; @@ -562,7 +562,7 @@ Gfx *bviewRenderMotionBlur(Gfx *gdl, u32 colour, u32 alpha) Gfx *bviewRenderStatic(Gfx *gdl, u32 arg1, s32 arg2) { - u8 *fb = vi2GetUnk28(); + u8 *fb = viGetFrontBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 viewwidth = viGetViewWidth(); @@ -587,7 +587,7 @@ Gfx *bviewRenderStatic(Gfx *gdl, u32 arg1, s32 arg2) Gfx *bviewRenderSlayerRocketLens(Gfx *gdl, u32 colour, u32 alpha) { - u8 *fb = viGetUnk28(); + u8 *fb = viGetBackBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 viewwidth = viGetViewWidth(); @@ -632,7 +632,7 @@ Gfx *bviewRenderSlayerRocketLens(Gfx *gdl, u32 colour, u32 alpha) Gfx *bviewRenderFilmLens(Gfx *gdl, u32 colour, u32 alpha) { - u8 *fb = viGetUnk28(); + u8 *fb = viGetBackBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 y; @@ -682,7 +682,7 @@ Gfx *bviewRenderFilmLens(Gfx *gdl, u32 colour, u32 alpha) */ Gfx *bviewRenderZoomBlur(Gfx *gdl, u32 colour, s32 alpha, f32 arg3, f32 arg4) { - u8 *fb = vi2GetUnk28(); + u8 *fb = viGetFrontBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 viewwidth = viGetViewWidth(); @@ -762,7 +762,7 @@ glabel var7f1b5f48 /* f1439a8: f7b80038 */ sdc1 $f24,0x38($sp) /* f1439ac: f7b60030 */ sdc1 $f22,0x30($sp) /* f1439b0: f7b40028 */ sdc1 $f20,0x28($sp) -/* f1439b4: 0c002a18 */ jal viGetUnk28 +/* f1439b4: 0c002a18 */ jal viGetBackBuffer /* f1439b8: afa70144 */ sw $a3,0x144($sp) /* f1439bc: 0c002e95 */ jal viGetViewTop /* f1439c0: afa20134 */ sw $v0,0x134($sp) @@ -1444,7 +1444,7 @@ glabel var7f1b5f48 /* f142e44: f7b80038 */ sdc1 $f24,0x38($sp) /* f142e48: f7b60030 */ sdc1 $f22,0x30($sp) /* f142e4c: f7b40028 */ sdc1 $f20,0x28($sp) -/* f142e50: 0c002ac7 */ jal viGetUnk28 +/* f142e50: 0c002ac7 */ jal viGetBackBuffer /* f142e54: afa7013c */ sw $a3,0x13c($sp) /* f142e58: 0c002f44 */ jal viGetViewTop /* f142e5c: afa2012c */ sw $v0,0x12c($sp) @@ -14762,7 +14762,7 @@ glabel bviewRenderNvLens /* f147320: afb3003c */ sw $s3,0x3c($sp) /* f147324: afb20038 */ sw $s2,0x38($sp) /* f147328: afb00030 */ sw $s0,0x30($sp) -/* f14732c: 0c002ac7 */ jal viGetUnk28 +/* f14732c: 0c002ac7 */ jal viGetBackBuffer /* f147330: f7b40028 */ sdc1 $f20,0x28($sp) /* f147334: 0c002f26 */ jal viGetViewHeight /* f147338: afa2005c */ sw $v0,0x5c($sp) @@ -14922,7 +14922,7 @@ glabel bviewRenderNvLens // and regalloc near random(). //Gfx *bviewRenderNvLens(Gfx *gdl) //{ -// u8 *fb = viGetUnk28(); +// u8 *fb = viGetBackBuffer(); // s32 viewheight = viGetViewHeight(); // s32 viewwidth = viGetViewWidth(); // s32 viewtop = viGetViewTop(); @@ -15009,7 +15009,7 @@ glabel bviewRenderIrLens /* f1475a0: afb1003c */ sw $s1,0x3c($sp) /* f1475a4: afb00038 */ sw $s0,0x38($sp) /* f1475a8: f7b60030 */ sdc1 $f22,0x30($sp) -/* f1475ac: 0c002ac7 */ jal viGetUnk28 +/* f1475ac: 0c002ac7 */ jal viGetBackBuffer /* f1475b0: f7b40028 */ sdc1 $f20,0x28($sp) /* f1475b4: 0c002f26 */ jal viGetViewHeight /* f1475b8: 0040f025 */ or $s8,$v0,$zero @@ -15388,7 +15388,7 @@ glabel bviewRenderIrLens /* f147b30: f7b80038 */ sdc1 $f24,0x38($sp) /* f147b34: f7b60030 */ sdc1 $f22,0x30($sp) /* f147b38: f7b40028 */ sdc1 $f20,0x28($sp) -/* f147b3c: 0c002ac7 */ jal viGetUnk28 +/* f147b3c: 0c002ac7 */ jal viGetBackBuffer /* f147b40: afa5008c */ sw $a1,0x8c($sp) /* f147b44: 0c002f44 */ jal viGetViewTop /* f147b48: 0040b025 */ or $s6,$v0,$zero @@ -15523,7 +15523,7 @@ glabel bviewRenderIrLens /* f141e34: afb1003c */ sw $s1,0x3c($sp) /* f141e38: afb00038 */ sw $s0,0x38($sp) /* f141e3c: f7b60030 */ sdc1 $f22,0x30($sp) -/* f141e40: 0c002b27 */ jal viGetUnk28 +/* f141e40: 0c002b27 */ jal viGetBackBuffer /* f141e44: f7b40028 */ sdc1 $f20,0x28($sp) /* f141e48: 0c002f9b */ jal viGetViewHeight /* f141e4c: 0040f025 */ or $s8,$v0,$zero @@ -15872,7 +15872,7 @@ glabel bviewRenderIrLens /* f14234c: f7b80038 */ sdc1 $f24,0x38($sp) /* f142350: f7b60030 */ sdc1 $f22,0x30($sp) /* f142354: f7b40028 */ sdc1 $f20,0x28($sp) -/* f142358: 0c002b27 */ jal viGetUnk28 +/* f142358: 0c002b27 */ jal viGetBackBuffer /* f14235c: afa5008c */ sw $a1,0x8c($sp) /* f142360: 0c002fb9 */ jal viGetViewTop /* f142364: 0040b025 */ or $s6,$v0,$zero @@ -15998,7 +15998,7 @@ glabel bviewRenderIrLens */ Gfx *bviewRenderRarePresents(Gfx *gdl) { - u8 *fb = viGetUnk28(); + u8 *fb = viGetBackBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 viewwidth = viGetViewWidth(); @@ -16029,7 +16029,7 @@ u8 var8007f878 = 0; #if VERSION >= VERSION_NTSC_1_0 Gfx *bviewRenderHorizonScanner(Gfx *gdl) { - u8 *fb = viGetUnk28(); + u8 *fb = viGetBackBuffer(); s32 viewtop = viGetViewTop(); s32 viewheight = viGetViewHeight(); s32 viewwidth = viGetViewWidth(); @@ -16075,7 +16075,7 @@ Gfx *bviewRenderHorizonScanner(Gfx *gdl) strcpy(var800a41c0, "BinocularViewGfx"); - if (!PAL && g_ViMode == VIMODE_HIRES) { + if (!PAL && g_ViRes == VIRES_HI) { scale = 2; } @@ -16265,7 +16265,7 @@ glabel var7f1b04c8nb /* f142654: afb10048 */ sw $s1,0x48($sp) /* f142658: afb00044 */ sw $s0,0x44($sp) /* f14265c: f7b60038 */ sdc1 $f22,0x38($sp) -/* f142660: 0c002b27 */ jal viGetUnk28 +/* f142660: 0c002b27 */ jal viGetBackBuffer /* f142664: f7b40030 */ sdc1 $f20,0x30($sp) /* f142668: 0c002fb9 */ jal viGetViewTop /* f14266c: afa2015c */ sw $v0,0x15c($sp) diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index a2d3445c5..793623fbc 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -21348,7 +21348,7 @@ glabel func0f02bdf8 /* f02c33c: 332c0fff */ andi $t4,$t9,0xfff /* f02c340: 3c01fd10 */ lui $at,0xfd10 /* f02c344: 01816825 */ or $t5,$t4,$at -/* f02c348: 0c002ac7 */ jal viGetUnk28 +/* f02c348: 0c002ac7 */ jal viGetBackBuffer /* f02c34c: ae4d0000 */ sw $t5,0x0($s2) /* f02c350: 2663000f */ addiu $v1,$s3,0xf /* f02c354: 00734823 */ subu $t1,$v1,$s3 @@ -21497,13 +21497,13 @@ glabel func0f02bdf8 /* f02c568: 02208025 */ or $s0,$s1,$zero /* f02c56c: ac800004 */ sw $zero,0x4($a0) /* f02c570: ac990000 */ sw $t9,0x0($a0) -/* f02c574: 0c002ef1 */ jal viGetBufX +/* f02c574: 0c002ef1 */ jal viGetBufWidth /* f02c578: 26310008 */ addiu $s1,$s1,0x8 /* f02c57c: 244cffff */ addiu $t4,$v0,-1 /* f02c580: 318d0fff */ andi $t5,$t4,0xfff /* f02c584: 3c01ff10 */ lui $at,0xff10 /* f02c588: 01a17825 */ or $t7,$t5,$at -/* f02c58c: 0c002ac7 */ jal viGetUnk28 +/* f02c58c: 0c002ac7 */ jal viGetBackBuffer /* f02c590: ae0f0000 */ sw $t7,0x0($s0) /* f02c594: 3c018000 */ lui $at,0x8000 /* f02c598: 0041c021 */ addu $t8,$v0,$at diff --git a/src/game/explosions/explosions.c b/src/game/explosions/explosions.c index 05bd7123d..fd8352253 100644 --- a/src/game/explosions/explosions.c +++ b/src/game/explosions/explosions.c @@ -1197,7 +1197,7 @@ glabel var7f1b558c /* f12ad2c: 15c00006 */ bnez $t6,.L0f12ad48 /* f12ad30: afa60070 */ sw $a2,0x70($sp) /* f12ad34: 44806000 */ mtc1 $zero,$f12 -/* f12ad38: 0c002a94 */ jal vi0000aa50 +/* f12ad38: 0c002a94 */ jal viShake /* f12ad3c: 00000000 */ nop /* f12ad40: 1000007a */ b .L0f12af2c /* f12ad44: 8fbf004c */ lw $ra,0x4c($sp) @@ -1327,7 +1327,7 @@ glabel var7f1b558c /* f12af14: 00000000 */ nop /* f12af18: 468084a0 */ cvt.s.w $f18,$f16 /* f12af1c: 46149302 */ mul.s $f12,$f18,$f20 -/* f12af20: 0c002a94 */ jal vi0000aa50 +/* f12af20: 0c002a94 */ jal viShake /* f12af24: 00000000 */ nop /* f12af28: 8fbf004c */ lw $ra,0x4c($sp) .L0f12af2c: diff --git a/src/game/explosions/reset.c b/src/game/explosions/reset.c index 78065028a..b1f210193 100644 --- a/src/game/explosions/reset.c +++ b/src/game/explosions/reset.c @@ -11,7 +11,7 @@ void explosionsReset(void) s32 i; var8007e4a0 = 0; - vi0000aa50(0); + viShake(0); if (g_Explosions) { for (i = 0; i < 6; i++) { diff --git a/src/game/game_011110.c b/src/game/game_011110.c index 14a0a0ddf..8f0d0b5e4 100644 --- a/src/game/game_011110.c +++ b/src/game/game_011110.c @@ -513,7 +513,7 @@ glabel var7f1a827c /* f011950: afa00080 */ sw $zero,0x80($sp) /* f011954: 8e10d59c */ lw $s0,-0x2a64($s0) /* f011958: a3a0007b */ sb $zero,0x7b($sp) -/* f01195c: 0fc2f254 */ jal viResetDefaultModeIf4Mb +/* f01195c: 0fc2f254 */ jal viResetLoResIf4Mb /* f011960: e7a40088 */ swc1 $f4,0x88($sp) /* f011964: 0fc63d8b */ jal func0f18e558 /* f011968: 00000000 */ nop @@ -1335,7 +1335,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 viResetDefaultModeIf4Mb +/* f01193c: 0fc2f0fc */ jal viResetLoResIf4Mb /* f011940: e7a40088 */ swc1 $f4,0x88($sp) /* f011944: 0fc63956 */ jal func0f18e558 /* f011948: 00000000 */ nop @@ -2156,7 +2156,7 @@ glabel var7f1a827c /* f011670: afa00080 */ sw $zero,0x80($sp) /* f011674: 8e10176c */ lw $s0,0x176c($s0) /* f011678: a3a0007b */ sb $zero,0x7b($sp) -/* f01167c: 0fc2e831 */ jal viResetDefaultModeIf4Mb +/* f01167c: 0fc2e831 */ jal viResetLoResIf4Mb /* f011680: e7a40088 */ swc1 $f4,0x88($sp) /* f011684: 0fc621c6 */ jal func0f18e558 /* f011688: 00000000 */ sll $zero,$zero,0x0 @@ -2934,7 +2934,7 @@ glabel var7f1a827c // s32 bodynum; // s32 headnum; // -// viResetDefaultModeIf4Mb(); +// viResetLoResIf4Mb(); // func0f18e558(); // // g_InCutscene = false; diff --git a/src/game/game_015470.c b/src/game/game_015470.c index d3fcb96f6..6233ebd7c 100644 --- a/src/game/game_015470.c +++ b/src/game/game_015470.c @@ -98,7 +98,7 @@ glabel func0f0155f0 /* f01567c: 31f80fff */ andi $t8,$t7,0xfff /* f015680: 3c01ff10 */ lui $at,0xff10 /* f015684: 0301c825 */ or $t9,$t8,$at -/* f015688: 0c002ac7 */ jal viGetUnk28 +/* f015688: 0c002ac7 */ jal viGetBackBuffer /* f01568c: add90000 */ sw $t9,0x0($t6) /* f015690: 0c012d20 */ jal osVirtualToPhysical /* f015694: 00402025 */ or $a0,$v0,$zero @@ -612,7 +612,7 @@ Gfx *func0f0155f0(Gfx *gdl, s32 arg1, u32 arg2); // var80062494 = 0; // } else { // gDPSetCycleType(gdl++, G_CYC_FILL); -// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetWidth(), osVirtualToPhysical(viGetUnk28())); +// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetWidth(), osVirtualToPhysical(viGetBackBuffer())); // gDPSetFillColor(gdl++, 0x00010001); // gDPFillRectangle(gdl++, 200, 100, 439, 379); // } diff --git a/src/game/game_01afc0.c b/src/game/game_01afc0.c index 8785787e3..dd3ff7e44 100644 --- a/src/game/game_01afc0.c +++ b/src/game/game_01afc0.c @@ -8,7 +8,7 @@ Gfx *func0f01afc0(Gfx *gdl) { gDPSetCycleType(gdl++, G_CYC_FILL); - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetWidth(), osVirtualToPhysical((void *)viGetUnk28())); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetWidth(), osVirtualToPhysical((void *)viGetBackBuffer())); gDPSetFillColor(gdl++, 0x00010001); gDPFillRectangle(gdl++, 0, 0, viGetWidth() - 1, viGetHeight() - 1); diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index b1a07297e..ad41746dd 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -1858,8 +1858,8 @@ glabel var7f1a863c .word menuTickAll+0x168c # f01d5b4 .text /* f01bf28: 27bdfe98 */ addiu $sp,$sp,-360 -/* f01bf2c: 3c0e8007 */ lui $t6,%hi(g_ViMode) -/* f01bf30: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) +/* f01bf2c: 3c0e8007 */ lui $t6,%hi(g_ViRes) +/* f01bf30: 8dce06c8 */ lw $t6,%lo(g_ViRes)($t6) /* f01bf34: afb60040 */ sw $s6,0x40($sp) /* f01bf38: 24160001 */ addiu $s6,$zero,0x1 /* f01bf3c: afb00028 */ sw $s0,0x28($sp) @@ -5381,7 +5381,7 @@ glabel var7f1a863c // s32 anyopen = false; // // // bf5c -// g_ScaleX = g_ViMode == VIMODE_HIRES ? 2 : 1; +// g_ScaleX = g_ViRes == VIRES_HI ? 2 : 1; // // // bf7c // func0f0069dc(); diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 12ad14bd3..ad4581715 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -142,7 +142,7 @@ struct vimode g_ViModes[] = { #endif }; -s32 g_ViMode = VIMODE_DEFAULT; +s32 g_ViRes = VIRES_LO; bool g_HiResEnabled = false; u32 var800706d0 = 0x00000000; u32 var800706d4 = 0x00000000; @@ -4389,27 +4389,27 @@ void currentPlayerTickExplode(void) } } -void viResetDefaultModeIf4Mb(void) +void viResetLoResIf4Mb(void) { if (IS4MB()) { #if PAL - g_ViModes[VIMODE_DEFAULT].fbwidth = 320; - g_ViModes[VIMODE_DEFAULT].fbheight = 220; - g_ViModes[VIMODE_DEFAULT].width = 320; - g_ViModes[VIMODE_DEFAULT].yscale = 1; - g_ViModes[VIMODE_DEFAULT].xscale = 1; - g_ViModes[VIMODE_DEFAULT].fullheight = 220; - g_ViModes[VIMODE_DEFAULT].fulltop = 0; + g_ViModes[VIRES_LO].fbwidth = 320; + g_ViModes[VIRES_LO].fbheight = 220; + g_ViModes[VIRES_LO].width = 320; + g_ViModes[VIRES_LO].yscale = 1; + g_ViModes[VIRES_LO].xscale = 1; + g_ViModes[VIRES_LO].fullheight = 220; + g_ViModes[VIRES_LO].fulltop = 0; #else - g_ViModes[VIMODE_DEFAULT].fbheight = 220; - g_ViModes[VIMODE_DEFAULT].fulltop = 0; - g_ViModes[VIMODE_DEFAULT].fullheight = 220; + g_ViModes[VIRES_LO].fbheight = 220; + g_ViModes[VIRES_LO].fulltop = 0; + g_ViModes[VIRES_LO].fullheight = 220; #endif - g_ViModes[VIMODE_DEFAULT].wideheight = 180; - g_ViModes[VIMODE_DEFAULT].widetop = 20; - g_ViModes[VIMODE_DEFAULT].cinemaheight = 136; - g_ViModes[VIMODE_DEFAULT].cinematop = 42; + g_ViModes[VIRES_LO].wideheight = 180; + g_ViModes[VIRES_LO].widetop = 20; + g_ViModes[VIRES_LO].cinemaheight = 136; + g_ViModes[VIRES_LO].cinematop = 42; } } @@ -4420,13 +4420,13 @@ void optionsSetHiRes(bool enable) s16 viGetFbWidth(void) { - s16 width = g_ViModes[g_ViMode].fbwidth; + s16 width = g_ViModes[g_ViRes].fbwidth; return width; } s16 viGetFbHeight(void) { - s16 height = g_ViModes[g_ViMode].fbheight; + s16 height = g_ViModes[g_ViRes].fbheight; if (g_Vars.fourmeg2player) { height = height >> 1; @@ -4460,7 +4460,7 @@ s16 currentPlayerGetViewportWidth(void) { if (PLAYERCOUNT() >= 3) { // 3/4 players - width = g_ViModes[g_ViMode].width / 2; + width = g_ViModes[g_ViRes].width / 2; if (g_Vars.currentplayernum == 0 || g_Vars.currentplayernum == 2) { width--; @@ -4468,22 +4468,22 @@ s16 currentPlayerGetViewportWidth(void) } else if (PLAYERCOUNT() == 2) { if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || g_Vars.fourmeg2player) { // 2 players vsplit - width = g_ViModes[g_ViMode].width / 2; + width = g_ViModes[g_ViRes].width / 2; if (g_Vars.currentplayernum == 0) { width--; } } else { // 2 players full width - width = g_ViModes[g_ViMode].width; + width = g_ViModes[g_ViRes].width; } } else { // 1 player - width = g_ViModes[g_ViMode].width; + width = g_ViModes[g_ViRes].width; } } else { // Probably cutscene - width = g_ViModes[g_ViMode].width; + width = g_ViModes[g_ViRes].width; } return width; @@ -4501,27 +4501,27 @@ s16 currentPlayerGetViewportLeft(void) if (PLAYERCOUNT() >= 3 && something != 0) { if (g_Vars.currentplayernum == 1 || g_Vars.currentplayernum == 3) { // 3/4 players - right side - left = g_ViModes[g_ViMode].width / 2 + g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = g_ViModes[g_ViRes].width / 2 + g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } else { // 3/4 players - left side - left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } } else if (PLAYERCOUNT() == 2 && something != 0) { if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || g_Vars.fourmeg2player) { if (g_Vars.currentplayernum == 1) { // 2 players vsplit - right side - left = (g_ViModes[g_ViMode].width / 2) + g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = (g_ViModes[g_ViRes].width / 2) + g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } else { // 2 players vsplit - left side - left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } } else { // 2 players - full width - left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } } else { // Full screen - left = g_ViModes[g_ViMode].fbwidth - g_ViModes[g_ViMode].width; + left = g_ViModes[g_ViRes].fbwidth - g_ViModes[g_ViRes].width; } return left; @@ -4538,7 +4538,7 @@ s16 currentPlayerGetViewportHeight(void) && !((g_InCutscene && !g_MainIsEndscreen) || menuGetRoot() == MENUROOT_COOPCONTINUE) #endif ) { - s16 tmp = g_ViModes[g_ViMode].fullheight; + s16 tmp = g_ViModes[g_ViRes].fullheight; if (IS4MB() && !g_Vars.fourmeg2player) { height = tmp; @@ -4557,21 +4557,21 @@ s16 currentPlayerGetViewportHeight(void) } } else { if (optionsGetEffectiveScreenSize() == SCREENSIZE_WIDE) { - height = g_ViModes[g_ViMode].wideheight; + height = g_ViModes[g_ViRes].wideheight; } else if (optionsGetEffectiveScreenSize() == SCREENSIZE_CINEMA) { - height = g_ViModes[g_ViMode].cinemaheight; + height = g_ViModes[g_ViRes].cinemaheight; } else if (g_InCutscene && !var8009dfc0) { if (var8009de2c >= 1) { - f32 a = g_ViModes[g_ViMode].wideheight; - f32 b = g_ViModes[g_ViMode].fullheight; + f32 a = g_ViModes[g_ViRes].wideheight; + f32 b = g_ViModes[g_ViRes].fullheight; a = a * (1.0f - g_CutsceneBarFrac); b = b * g_CutsceneBarFrac; height = a + b; } else { - height = g_ViModes[g_ViMode].wideheight; + height = g_ViModes[g_ViRes].wideheight; } } else { - height = g_ViModes[g_ViMode].fullheight; + height = g_ViModes[g_ViRes].fullheight; } } @@ -4590,7 +4590,7 @@ s16 currentPlayerGetViewportTop(void) && !((g_InCutscene && !g_MainIsEndscreen) || menuGetRoot() == MENUROOT_COOPCONTINUE) #endif ) { - top = g_ViModes[g_ViMode].fulltop; + top = g_ViModes[g_ViRes].fulltop; if (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL || PLAYERCOUNT() != 2) { if (PLAYERCOUNT() == 2 @@ -4598,43 +4598,43 @@ s16 currentPlayerGetViewportTop(void) && optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && !g_Vars.fourmeg2player) { // 2 players hsplit - bottom side - top = g_ViModes[g_ViMode].fulltop + g_ViModes[g_ViMode].fullheight / 2; + top = g_ViModes[g_ViRes].fulltop + g_ViModes[g_ViRes].fullheight / 2; } else if (g_Vars.currentplayernum == 2 || g_Vars.currentplayernum == 3) { // 3/4 players - bottom side - top = g_ViModes[g_ViMode].fulltop + g_ViModes[g_ViMode].fullheight / 2; + top = g_ViModes[g_ViRes].fulltop + g_ViModes[g_ViRes].fullheight / 2; } } } else { if (optionsGetEffectiveScreenSize() == SCREENSIZE_WIDE) { if (g_InCutscene && optionsGetCutsceneSubtitles() && g_Vars.stagenum != STAGE_CITRAINING) { if (var8009de2c >= 1) { - f32 a = g_ViModes[g_ViMode].fulltop; - f32 b = g_ViModes[g_ViMode].widetop; + f32 a = g_ViModes[g_ViRes].fulltop; + f32 b = g_ViModes[g_ViRes].widetop; a = a * (1.0f - g_CutsceneBarFrac); b = b * g_CutsceneBarFrac; top = a + b; } else { - top = g_ViModes[g_ViMode].fulltop; + top = g_ViModes[g_ViRes].fulltop; } } else { - top = g_ViModes[g_ViMode].widetop; + top = g_ViModes[g_ViRes].widetop; } } else if (optionsGetEffectiveScreenSize() == SCREENSIZE_CINEMA) { - top = g_ViModes[g_ViMode].cinematop; + top = g_ViModes[g_ViRes].cinematop; } else { if (g_InCutscene && !var8009dfc0 && (!optionsGetCutsceneSubtitles() || g_Vars.stagenum == STAGE_CITRAINING)) { if (var8009de2c >= 1) { - f32 a = g_ViModes[g_ViMode].widetop; - f32 b = g_ViModes[g_ViMode].fulltop; + f32 a = g_ViModes[g_ViRes].widetop; + f32 b = g_ViModes[g_ViRes].fulltop; a = a * (1.0f - g_CutsceneBarFrac); b = b * g_CutsceneBarFrac; top = a + b; } else { - top = g_ViModes[g_ViMode].widetop; + top = g_ViModes[g_ViRes].widetop; } } else { - return g_ViModes[g_ViMode].fulltop; + return g_ViModes[g_ViRes].fulltop; } } } @@ -4994,7 +4994,7 @@ f32 func0f0bd358(void) s16 width = currentPlayerGetViewportWidth(); result = (f32)width / (f32)height; - result = g_ViModes[g_ViMode].yscale * result; + result = g_ViModes[g_ViRes].yscale * result; return result; } @@ -5006,7 +5006,7 @@ void func0f0bd3c4(void) if (g_Vars.currentplayer->isdead == false) { func0f12acec(&g_Vars.currentplayer->bond2.unk10, &g_Vars.currentplayer->bond2.unk1c, &coord); } else { - vi0000aa50(0); + viShake(0); } } @@ -5104,7 +5104,7 @@ void currentPlayerTickTeleport(f32 *aspectratio) void currentPlayerConfigureVi(void) { f32 ratio = func0f0bd358(); - g_ViMode = VIMODE_DEFAULT; + g_ViRes = VIRES_LO; func0f1531dc(false); @@ -5113,13 +5113,13 @@ void currentPlayerConfigureVi(void) currentPlayerSetViewSize(currentPlayerGetViewportWidth(), currentPlayerGetViewportHeight()); currentPlayerSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); - vi0000aab0(g_ViModes[g_ViMode].xscale); + viSetMode(g_ViModes[g_ViRes].xscale); viSetFovAspectAndSize(60, ratio, currentPlayerGetViewportWidth(), currentPlayerGetViewportHeight()); viSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); - viSetXY(viGetFbWidth(), viGetFbHeight()); - viSetBuf(viGetFbWidth(), viGetFbHeight()); + viSetSize(viGetFbWidth(), viGetFbHeight()); + viSetBufSize(viGetFbWidth(), viGetFbHeight()); } const char var7f1ad524[] = "tps"; @@ -5316,7 +5316,7 @@ glabel var7f1ad6ac /* f0be0a4: 01ee7823 */ subu $t7,$t7,$t6 /* f0be0a8: 000f7880 */ sll $t7,$t7,0x2 /* f0be0ac: 008f2021 */ addu $a0,$a0,$t7 -/* f0be0b0: 0c0029fd */ jal vi0000aab0 +/* f0be0b0: 0c0029fd */ jal viSetMode /* f0be0b4: 8c840960 */ lw $a0,0x960($a0) /* f0be0b8: 0fc2f2b4 */ jal currentPlayerGetViewportWidth /* f0be0bc: 00000000 */ nop @@ -5358,7 +5358,7 @@ glabel var7f1ad6ac /* f0be14c: 00057c03 */ sra $t7,$a1,0x10 /* f0be150: 00047403 */ sra $t6,$a0,0x10 /* f0be154: 01c02025 */ move $a0,$t6 -/* f0be158: 0c002e4a */ jal viSetXY +/* f0be158: 0c002e4a */ jal viSetSize /* f0be15c: 01e02825 */ move $a1,$t7 /* f0be160: 0fc2f272 */ jal viGetFbWidth /* f0be164: 00000000 */ nop @@ -5371,7 +5371,7 @@ glabel var7f1ad6ac /* f0be180: 00054c03 */ sra $t1,$a1,0x10 /* f0be184: 0004cc03 */ sra $t9,$a0,0x10 /* f0be188: 03202025 */ move $a0,$t9 -/* f0be18c: 0c002e39 */ jal viSetBuf +/* f0be18c: 0c002e39 */ jal viSetBufSize /* f0be190: 01202825 */ move $a1,$t1 /* f0be194: 0fc2ee63 */ jal currentPlayerUpdateColourScreenProperties /* f0be198: 00000000 */ nop @@ -7568,8 +7568,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_ViMode) -/* f0bd928: 263106c8 */ addiu $s1,$s1,%lo(g_ViMode) +/* f0bd924: 3c118007 */ lui $s1,%hi(g_ViRes) +/* f0bd928: 263106c8 */ addiu $s1,$s1,%lo(g_ViRes) /* f0bd92c: afbf004c */ sw $ra,0x4c($sp) /* f0bd930: afb50048 */ sw $s5,0x48($sp) /* f0bd934: afb40044 */ sw $s4,0x44($sp) @@ -7717,7 +7717,7 @@ glabel var7f1ad6ac /* f0bdb38: 030fc023 */ subu $t8,$t8,$t7 /* f0bdb3c: 0018c080 */ sll $t8,$t8,0x2 /* f0bdb40: 00982021 */ addu $a0,$a0,$t8 -/* f0bdb44: 0c002aac */ jal vi0000aab0 +/* f0bdb44: 0c002aac */ jal viSetMode /* f0bdb48: 8c8405d0 */ lw $a0,%lo(g_ViModes+0x10)($a0) /* f0bdb4c: 0fc2f155 */ jal currentPlayerGetViewportWidth /* f0bdb50: 00000000 */ nop @@ -7759,7 +7759,7 @@ glabel var7f1ad6ac /* f0bdbe0: 0005c403 */ sra $t8,$a1,0x10 /* f0bdbe4: 00047c03 */ sra $t7,$a0,0x10 /* f0bdbe8: 01e02025 */ or $a0,$t7,$zero -/* f0bdbec: 0c002ef9 */ jal viSetXY +/* f0bdbec: 0c002ef9 */ jal viSetSize /* f0bdbf0: 03002825 */ or $a1,$t8,$zero /* f0bdbf4: 0fc2f113 */ jal viGetFbWidth /* f0bdbf8: 00000000 */ nop @@ -7772,7 +7772,7 @@ glabel var7f1ad6ac /* f0bdc14: 00055403 */ sra $t2,$a1,0x10 /* f0bdc18: 00044c03 */ sra $t1,$a0,0x10 /* f0bdc1c: 01202025 */ or $a0,$t1,$zero -/* f0bdc20: 0c002ee8 */ jal viSetBuf +/* f0bdc20: 0c002ee8 */ jal viSetBufSize /* f0bdc24: 01402825 */ or $a1,$t2,$zero /* f0bdc28: 0fc2ed0b */ jal currentPlayerUpdateColourScreenProperties /* f0bdc2c: 00000000 */ nop @@ -10118,7 +10118,7 @@ glabel var7f1ad6ac /* f0bb7a0: 030fc023 */ subu $t8,$t8,$t7 /* f0bb7a4: 0018c080 */ sll $t8,$t8,0x2 /* f0bb7a8: 00982021 */ addu $a0,$a0,$t8 -/* f0bb7ac: 0c002b0c */ jal vi0000aab0 +/* f0bb7ac: 0c002b0c */ jal viSetMode /* f0bb7b0: 8c842c90 */ lw $a0,0x2c90($a0) /* f0bb7b4: 0fc2e865 */ jal currentPlayerGetViewportWidth /* f0bb7b8: 00000000 */ sll $zero,$zero,0x0 @@ -10160,7 +10160,7 @@ glabel var7f1ad6ac /* f0bb848: 0005c403 */ sra $t8,$a1,0x10 /* f0bb84c: 00047c03 */ sra $t7,$a0,0x10 /* f0bb850: 01e02025 */ or $a0,$t7,$zero -/* f0bb854: 0c002f6e */ jal viSetXY +/* f0bb854: 0c002f6e */ jal viSetSize /* f0bb858: 03002825 */ or $a1,$t8,$zero /* f0bb85c: 0fc2e848 */ jal viGetFbWidth /* f0bb860: 00000000 */ sll $zero,$zero,0x0 @@ -10173,7 +10173,7 @@ glabel var7f1ad6ac /* f0bb87c: 00055403 */ sra $t2,$a1,0x10 /* f0bb880: 00044c03 */ sra $t1,$a0,0x10 /* f0bb884: 01202025 */ or $a0,$t1,$zero -/* f0bb888: 0c002f5d */ jal viSetBuf +/* f0bb888: 0c002f5d */ jal viSetBufSize /* f0bb88c: 01402825 */ or $a1,$t2,$zero /* f0bb890: 0fc2e440 */ jal currentPlayerUpdateColourScreenProperties /* f0bb894: 00000000 */ sll $zero,$zero,0x0 @@ -12301,14 +12301,14 @@ glabel var7f1ad6ac //{ // f32 aspectratio; // -// g_ViMode = g_HiResEnabled; +// g_ViRes = g_HiResEnabled; // // if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) && PLAYERCOUNT() > 1) { -// g_ViMode = VIMODE_DEFAULT; +// g_ViRes = VIRES_LO; // } // // // d9dc -// if (g_ViMode == VIMODE_HIRES) { +// if (g_ViRes == VIRES_HI) { // func0f1531dc(true); // } else { // func0f1531dc(false); @@ -12348,11 +12348,11 @@ glabel var7f1ad6ac // currentPlayerSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); // // // db44 -// vi0000aab0(g_ViModes[g_ViMode].xscale); +// viSetMode(g_ViModes[g_ViRes].xscale); // viSetFovAspectAndSize(60, aspectratio, currentPlayerGetViewportWidth(), currentPlayerGetViewportHeight()); // viSetViewPosition(currentPlayerGetViewportLeft(), currentPlayerGetViewportTop()); -// viSetXY(viGetFbWidth(), viGetFbHeight()); -// viSetBuf(viGetFbWidth(), viGetFbHeight()); +// viSetSize(viGetFbWidth(), viGetFbHeight()); +// viSetBufSize(viGetFbWidth(), viGetFbHeight()); // currentPlayerUpdateColourScreenProperties(); // currentPlayerTickChrFade(); // bmoveSetAutoAimY(optionsGetAutoAim(g_Vars.currentplayerstats->mpindex)); diff --git a/src/game/game_0e0770.c b/src/game/game_0e0770.c index 8f3572930..ed59ebeb6 100644 --- a/src/game/game_0e0770.c +++ b/src/game/game_0e0770.c @@ -72,7 +72,7 @@ glabel func0f0e0770 /* f0e0dcc: afb30024 */ sw $s3,0x24($sp) /* f0e0dd0: afb20020 */ sw $s2,0x20($sp) /* f0e0dd4: afb1001c */ sw $s1,0x1c($sp) -/* f0e0dd8: 0c002a1c */ jal vi2GetUnk28 +/* f0e0dd8: 0c002a1c */ jal viGetFrontBuffer /* f0e0ddc: afb00018 */ sw $s0,0x18($sp) /* f0e0de0: 0c002e53 */ jal viGetWidth /* f0e0de4: 00408025 */ move $s0,$v0 @@ -93,7 +93,7 @@ glabel func0f0e0770 /* f0e0e20: 15e10007 */ bne $t7,$at,.PF0f0e0e40 /* f0e0e24: 46083003 */ div.s $f0,$f6,$f8 /* f0e0e28: afad0070 */ sw $t5,0x70($sp) -/* f0e0e2c: 0c002a1c */ jal vi2GetUnk28 +/* f0e0e2c: 0c002a1c */ jal viGetFrontBuffer /* f0e0e30: e7a0006c */ swc1 $f0,0x6c($sp) /* f0e0e34: 8fad0070 */ lw $t5,0x70($sp) /* f0e0e38: c7a0006c */ lwc1 $f0,0x6c($sp) @@ -243,12 +243,12 @@ glabel func0f0e0770 /* f0e078c: afb30024 */ sw $s3,0x24($sp) /* f0e0790: afb20020 */ sw $s2,0x20($sp) /* f0e0794: afb1001c */ sw $s1,0x1c($sp) -/* f0e0798: 0c002acb */ jal vi2GetUnk28 +/* f0e0798: 0c002acb */ jal viGetFrontBuffer /* f0e079c: afb00018 */ sw $s0,0x18($sp) /* f0e07a0: 0c002f02 */ jal viGetWidth /* f0e07a4: 00408025 */ or $s0,$v0,$zero -/* f0e07a8: 3c0e8007 */ lui $t6,%hi(g_ViMode) -/* f0e07ac: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) +/* f0e07a8: 3c0e8007 */ lui $t6,%hi(g_ViRes) +/* f0e07ac: 8dce06c8 */ lw $t6,%lo(g_ViRes)($t6) /* f0e07b0: 24110001 */ addiu $s1,$zero,0x1 /* f0e07b4: 0002f840 */ sll $ra,$v0,0x1 /* f0e07b8: 162e0005 */ bne $s1,$t6,.L0f0e07d0 @@ -266,7 +266,7 @@ glabel func0f0e0770 /* f0e07e0: 17010006 */ bne $t8,$at,.L0f0e07fc /* f0e07e4: 00000000 */ nop /* f0e07e8: afbf0070 */ sw $ra,0x70($sp) -/* f0e07ec: 0c002acb */ jal vi2GetUnk28 +/* f0e07ec: 0c002acb */ jal viGetFrontBuffer /* f0e07f0: 00000000 */ nop /* f0e07f4: 8fbf0070 */ lw $ra,0x70($sp) /* f0e07f8: 00408025 */ or $s0,$v0,$zero diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 7b55f5b3b..d763359e0 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -7304,7 +7304,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_ViMode) +/* f0f4018: 3c0b8007 */ lui $t3,%hi(g_ViRes) /* f0f401c: 45030013 */ bc1tl .L0f0f406c /* f0f4020: c60c0540 */ lwc1 $f12,0x540($s0) /* f0f4024: 8c6d0000 */ lw $t5,0x0($v1) @@ -7378,7 +7378,7 @@ glabel var7f1b2948 /* f0f4120: c60e051c */ lwc1 $f14,0x51c($s0) /* f0f4124: c60a0510 */ lwc1 $f10,0x510($s0) .L0f0f4128: -/* f0f4128: 8d6b06c8 */ lw $t3,%lo(g_ViMode)($t3) +/* f0f4128: 8d6b06c8 */ lw $t3,%lo(g_ViRes)($t3) /* f0f412c: 24010001 */ addiu $at,$zero,0x1 /* f0f4130: e7aa0430 */ swc1 $f10,0x430($sp) /* f0f4134: c6120518 */ lwc1 $f18,0x518($s0) @@ -10145,43 +10145,43 @@ glabel func0f0f50fc /* f0f51b0: 00000000 */ nop /* f0f51b4: ace00000 */ sw $zero,0x0($a3) .L0f0f51b8: -/* f0f51b8: 0c002ef1 */ jal viGetBufX +/* f0f51b8: 0c002ef1 */ jal viGetBufWidth /* f0f51bc: afa40018 */ sw $a0,0x18($sp) /* f0f51c0: 3c188007 */ lui $t8,%hi(g_ScissorX1) /* f0f51c4: 8f181190 */ lw $t8,%lo(g_ScissorX1)($t8) /* f0f51c8: 0058082a */ slt $at,$v0,$t8 /* f0f51cc: 10200005 */ beqz $at,.L0f0f51e4 /* f0f51d0: 00000000 */ nop -/* f0f51d4: 0c002ef1 */ jal viGetBufX +/* f0f51d4: 0c002ef1 */ jal viGetBufWidth /* f0f51d8: 00000000 */ nop /* f0f51dc: 3c018007 */ lui $at,%hi(g_ScissorX1) /* f0f51e0: ac221190 */ sw $v0,%lo(g_ScissorX1)($at) .L0f0f51e4: -/* f0f51e4: 0c002ef1 */ jal viGetBufX +/* f0f51e4: 0c002ef1 */ jal viGetBufWidth /* f0f51e8: 00000000 */ nop /* f0f51ec: 3c198007 */ lui $t9,%hi(g_ScissorX2) /* f0f51f0: 8f391194 */ lw $t9,%lo(g_ScissorX2)($t9) /* f0f51f4: 0059082a */ slt $at,$v0,$t9 /* f0f51f8: 10200005 */ beqz $at,.L0f0f5210 /* f0f51fc: 00000000 */ nop -/* f0f5200: 0c002ef1 */ jal viGetBufX +/* f0f5200: 0c002ef1 */ jal viGetBufWidth /* f0f5204: 00000000 */ nop /* f0f5208: 3c018007 */ lui $at,%hi(g_ScissorX2) /* f0f520c: ac221194 */ sw $v0,%lo(g_ScissorX2)($at) .L0f0f5210: -/* f0f5210: 0c002ef5 */ jal viGetBufY +/* f0f5210: 0c002ef5 */ jal viGetBufHeight /* f0f5214: 00000000 */ nop /* f0f5218: 3c098007 */ lui $t1,%hi(g_ScissorY1) /* f0f521c: 8d291198 */ lw $t1,%lo(g_ScissorY1)($t1) /* f0f5220: 0049082a */ slt $at,$v0,$t1 /* f0f5224: 10200005 */ beqz $at,.L0f0f523c /* f0f5228: 00000000 */ nop -/* f0f522c: 0c002ef5 */ jal viGetBufY +/* f0f522c: 0c002ef5 */ jal viGetBufHeight /* f0f5230: 00000000 */ nop /* f0f5234: 3c018007 */ lui $at,%hi(g_ScissorY1) /* f0f5238: ac221198 */ sw $v0,%lo(g_ScissorY1)($at) .L0f0f523c: -/* f0f523c: 0c002ef5 */ jal viGetBufY +/* f0f523c: 0c002ef5 */ jal viGetBufHeight /* f0f5240: 00000000 */ nop /* f0f5244: 3c078007 */ lui $a3,%hi(g_ScissorY2) /* f0f5248: 24e7119c */ addiu $a3,$a3,%lo(g_ScissorY2) @@ -10189,7 +10189,7 @@ glabel func0f0f50fc /* f0f5250: 0043082a */ slt $at,$v0,$v1 /* f0f5254: 10200009 */ beqz $at,.L0f0f527c /* f0f5258: 00000000 */ nop -/* f0f525c: 0c002ef5 */ jal viGetBufY +/* f0f525c: 0c002ef5 */ jal viGetBufHeight /* f0f5260: 00000000 */ nop /* f0f5264: 3c018007 */ lui $at,%hi(g_ScissorY2) /* f0f5268: ac22119c */ sw $v0,%lo(g_ScissorY2)($at) @@ -25373,8 +25373,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_ViMode) -/* f0fbc48: 8dce06c8 */ lw $t6,%lo(g_ViMode)($t6) +/* f0fbc44: 3c0e8007 */ lui $t6,%hi(g_ViRes) +/* f0fbc48: 8dce06c8 */ lw $t6,%lo(g_ViRes)($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_11f000.c b/src/game/game_11f000.c index f168c099c..476ade21a 100644 --- a/src/game/game_11f000.c +++ b/src/game/game_11f000.c @@ -7912,14 +7912,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_ViMode) +/* f125af8: 3c198007 */ lui $t9,%hi(g_ViRes) /* 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_ViMode)($t9) +/* f125b0c: 8f3906c8 */ lw $t9,%lo(g_ViRes)($t9) /* f125b10: 24010001 */ addiu $at,$zero,0x1 /* f125b14: 17210002 */ bne $t9,$at,.L0f125b20 /* f125b18: 00000000 */ nop @@ -9132,7 +9132,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_ViMode) +/* f126464: 3c0c8007 */ lui $t4,%hi(g_ViRes) /* f126468: af210008 */ sw $at,0x8($t9) /* f12646c: af28000c */ sw $t0,0xc($t9) /* f126470: 8f080014 */ lw $t0,0x14($t8) @@ -9140,7 +9140,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_ViMode)($t4) +/* f126484: 8d8c06c8 */ lw $t4,%lo(g_ViRes)($t4) /* f126488: 4485d000 */ mtc1 $a1,$f26 /* f12648c: 4486e000 */ mtc1 $a2,$f28 /* f126490: 24010001 */ addiu $at,$zero,0x1 diff --git a/src/game/game_176080.c b/src/game/game_176080.c index 930939707..3216049a5 100644 --- a/src/game/game_176080.c +++ b/src/game/game_176080.c @@ -190,7 +190,7 @@ glabel func0f1766b4 /* f1766ec: 8dce44f0 */ lw $t6,%lo(var800844f0)($t6) /* f1766f0: 00409025 */ or $s2,$v0,$zero /* f1766f4: 0000a025 */ or $s4,$zero,$zero -/* f1766f8: 0c002ac7 */ jal viGetUnk28 +/* f1766f8: 0c002ac7 */ jal viGetBackBuffer /* f1766fc: afae004c */ sw $t6,0x4c($sp) /* f176700: 3c138009 */ lui $s3,%hi(g_BootBufferIndex0) /* f176704: 2673fa6c */ addiu $s3,$s3,%lo(g_BootBufferIndex0) @@ -208,7 +208,7 @@ glabel func0f1766b4 /* f176734: 02008825 */ or $s1,$s0,$zero /* f176738: ac600004 */ sw $zero,0x4($v1) /* f17673c: ac760000 */ sw $s6,0x0($v1) -/* f176740: 0c002ef1 */ jal viGetBufX +/* f176740: 0c002ef1 */ jal viGetBufWidth /* f176744: 26100008 */ addiu $s0,$s0,0x8 /* f176748: 2459ffff */ addiu $t9,$v0,-1 /* f17674c: 33280fff */ andi $t0,$t9,0xfff @@ -455,13 +455,13 @@ glabel func0f1766b4 /* f176b04: 02008825 */ or $s1,$s0,$zero /* f176b08: ac8b0000 */ sw $t3,0x0($a0) /* f176b0c: ac800004 */ sw $zero,0x4($a0) -/* f176b10: 0c002ef1 */ jal viGetBufX +/* f176b10: 0c002ef1 */ jal viGetBufWidth /* f176b14: 26100008 */ addiu $s0,$s0,0x8 /* f176b18: 244cffff */ addiu $t4,$v0,-1 /* f176b1c: 318d0fff */ andi $t5,$t4,0xfff /* f176b20: 3c01ff10 */ lui $at,0xff10 /* f176b24: 01a17025 */ or $t6,$t5,$at -/* f176b28: 0c002ac7 */ jal viGetUnk28 +/* f176b28: 0c002ac7 */ jal viGetBackBuffer /* f176b2c: ae2e0000 */ sw $t6,0x0($s1) /* f176b30: 3c018000 */ lui $at,0x8000 /* f176b34: 00417821 */ addu $t7,$v0,$at @@ -543,12 +543,12 @@ glabel func0f1766b4 // u32 sp44; // s32 i; // -// viGetUnk28(); +// viGetBackBuffer(); // sp44 = (u32)func0f176668(g_BootBufferIndex0); // g_BootBufferDirtyIndexes[g_BootBufferIndex0] = 1; // // gDPPipeSync(gdl++); -// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetBufX(), OS_PHYSICAL_TO_K0(sp44)); +// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetBufWidth(), OS_PHYSICAL_TO_K0(sp44)); // gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, 320, 240); // gDPSetCycleType(gdl++, G_CYC_COPY); // gDPSetTile(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, 5, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); @@ -596,7 +596,7 @@ glabel func0f1766b4 // gDPPipeSync(gdl++); // gDPLoadSync(gdl++); // gDPTileSync(gdl++); -// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetBufX(), OS_PHYSICAL_TO_K0(viGetUnk28())); +// gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetBufWidth(), OS_PHYSICAL_TO_K0(viGetBackBuffer())); // gDPSetScissorFrac(gdl++, G_SC_NON_INTERLACE, 0, 0, viGetWidth() * 4.0f, viGetHeight() * 4.0f); // gSPSetGeometryMode(gdl++, G_ZBUFFER); // gDPSetTextureFilter(gdl++, G_TF_BILERP); diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 5972bfaa5..e5b45c252 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -1050,7 +1050,7 @@ s32 gamefileSave(s32 device, s32 fileid, u16 deviceserial) pakSetBitflag(GAMEFILEFLAG_SCREENSIZE_CINEMA, g_GameFile.flags, optionsGetEffectiveScreenSize() == SCREENSIZE_CINEMA); #endif - pakSetBitflag(GAMEFILEFLAG_HIRES, g_GameFile.flags, g_ViMode == VIMODE_HIRES); + pakSetBitflag(GAMEFILEFLAG_HIRES, g_GameFile.flags, g_ViRes == VIRES_HI); pakSetBitflag(GAMEFILEFLAG_INGAMESUBTITLES, g_GameFile.flags, optionsGetInGameSubtitles()); pakSetBitflag(GAMEFILEFLAG_CUTSCENESUBTITLES, g_GameFile.flags, optionsGetCutsceneSubtitles()); pakSetBitflag(GAMEFILEFLAG_LANGFILTERON, g_GameFile.flags, g_Vars.langfilteron); diff --git a/src/game/hudmsg.c b/src/game/hudmsg.c index 1b37d3146..1cf1bdc19 100644 --- a/src/game/hudmsg.c +++ b/src/game/hudmsg.c @@ -1277,7 +1277,7 @@ s32 func0f0ddb1c(s32 *arg0, s32 arg1) if (PLAYERCOUNT() == 1 || (PLAYERCOUNT() == 2 && g_InCutscene && !g_MainIsEndscreen)) { result -= 16; - if (g_ViMode == VIMODE_HIRES) { + if (g_ViRes == VIRES_HI) { result -= 16; } } @@ -2892,8 +2892,8 @@ glabel hudmsgCreateFromArgs .L0f0defbc: /* f0defbc: 04c100e3 */ bgez $a2,.L0f0df34c .L0f0defc0: -/* f0defc0: 3c0a8007 */ lui $t2,%hi(g_ViMode) -/* f0defc4: 8d4a06c8 */ lw $t2,%lo(g_ViMode)($t2) +/* f0defc0: 3c0a8007 */ lui $t2,%hi(g_ViRes) +/* f0defc4: 8d4a06c8 */ lw $t2,%lo(g_ViRes)($t2) /* f0defc8: 24030001 */ addiu $v1,$zero,0x1 /* f0defcc: 3c048007 */ lui $a0,%hi(g_NumHudMessages) /* f0defd0: 8c840fe8 */ lw $a0,%lo(g_NumHudMessages)($a0) @@ -3196,7 +3196,7 @@ glabel hudmsgCreateFromArgs // } // } // -// g_ScaleX = g_ViMode == VIMODE_HIRES ? 2 : 1; +// g_ScaleX = g_ViRes == VIRES_HI ? 2 : 1; // // // Find an unused index for the new message // for (index = 0; index < g_NumHudMessages; index++) { @@ -3312,7 +3312,7 @@ void hudmsgsTick(void) #if PAL g_ScaleX = 1; #else - g_ScaleX = (g_ViMode == VIMODE_HIRES) ? 2 : 1; + g_ScaleX = (g_ViRes == VIRES_HI) ? 2 : 1; #endif #if VERSION >= VERSION_NTSC_1_0 @@ -4213,7 +4213,7 @@ glabel var7f1af1e0 /* f0e0458: 330f0fff */ andi $t7,$t8,0xfff /* f0e045c: 000fcb00 */ sll $t9,$t7,0xc /* f0e0460: 03214025 */ or $t0,$t9,$at -/* f0e0464: 0c002e46 */ jal viGetBufY +/* f0e0464: 0c002e46 */ jal viGetBufHeight /* f0e0468: ae280000 */ sw $t0,0x0($s1) /* f0e046c: 8fa900e8 */ lw $t1,0xe8($sp) /* f0e0470: 960b001c */ lhu $t3,0x1c($s0) @@ -4840,8 +4840,8 @@ glabel var7f1adef4 .word hudmsgsRender+0x7c8 # f0e0298 .text /* f0dfad0: 27bdff00 */ addiu $sp,$sp,-256 -/* f0dfad4: 3c0f8007 */ lui $t7,%hi(g_ViMode) -/* f0dfad8: 8def06c8 */ lw $t7,%lo(g_ViMode)($t7) +/* f0dfad4: 3c0f8007 */ lui $t7,%hi(g_ViRes) +/* f0dfad8: 8def06c8 */ lw $t7,%lo(g_ViRes)($t7) /* f0dfadc: afb20060 */ sw $s2,0x60($sp) /* f0dfae0: 24020001 */ addiu $v0,$zero,0x1 /* f0dfae4: 240e00ff */ addiu $t6,$zero,0xff @@ -5071,7 +5071,7 @@ glabel var7f1adef4 /* f0dfe1c: 330f0fff */ andi $t7,$t8,0xfff /* f0dfe20: 000fcb00 */ sll $t9,$t7,0xc /* f0dfe24: 03214025 */ or $t0,$t9,$at -/* f0dfe28: 0c002ef5 */ jal viGetBufY +/* f0dfe28: 0c002ef5 */ jal viGetBufHeight /* f0dfe2c: ae280000 */ sw $t0,0x0($s1) /* f0dfe30: 8fa900e8 */ lw $t1,0xe8($sp) /* f0dfe34: 960b001c */ lhu $t3,0x1c($s0) @@ -6562,7 +6562,7 @@ glabel var7f1adef4 // s32 spdc = true; // dc // // // b24 -// if (g_ViMode == VIMODE_HIRES) { +// if (g_ViRes == VIRES_HI) { // g_ScaleX = 2; // } else { // g_ScaleX = 1; @@ -6637,7 +6637,7 @@ glabel var7f1adef4 // if (msg->type == HUDMSGTYPE_CUTSCENESUBTITLE) { // gDPSetScissor(gdl++, 0, // (x - 4) * g_ScaleX, 0, -// (x + msg->width + 3) * g_ScaleX, viGetBufY()); +// (x + msg->width + 3) * g_ScaleX, viGetBufHeight()); // } // // // e9c diff --git a/src/game/lv.c b/src/game/lv.c index 3892fa415..6c6f6acff 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -2017,7 +2017,7 @@ glabel var7f1b8e7cpf /* f16a684: 26730008 */ addiu $s3,$s3,0x8 /* f16a688: 0fc4a4ff */ jal setCurrentPlayerNum /* f16a68c: 00002025 */ move $a0,$zero -/* f16a690: 0c0029fd */ jal vi0000aab0 +/* f16a690: 0c0029fd */ jal viSetMode /* f16a694: 24040001 */ li $a0,0x1 /* f16a698: 8e500284 */ lw $s0,0x284($s2) /* f16a69c: 86040634 */ lh $a0,0x634($s0) @@ -2030,7 +2030,7 @@ glabel var7f1b8e7cpf /* f16a6b8: 00022c00 */ sll $a1,$v0,0x10 /* f16a6bc: 00055403 */ sra $t2,$a1,0x10 /* f16a6c0: 01402825 */ move $a1,$t2 -/* f16a6c4: 0c002e4a */ jal viSetXY +/* f16a6c4: 0c002e4a */ jal viSetSize /* f16a6c8: 87a40090 */ lh $a0,0x90($sp) /* f16a6cc: 0fc2f272 */ jal viGetFbWidth /* f16a6d0: 00000000 */ nop @@ -2039,7 +2039,7 @@ glabel var7f1b8e7cpf /* f16a6dc: 00022c00 */ sll $a1,$v0,0x10 /* f16a6e0: 00055c03 */ sra $t3,$a1,0x10 /* f16a6e4: 01602825 */ move $a1,$t3 -/* f16a6e8: 0c002e39 */ jal viSetBuf +/* f16a6e8: 0c002e39 */ jal viSetBufSize /* f16a6ec: 87a40090 */ lh $a0,0x90($sp) /* f16a6f0: 0fc2f272 */ jal viGetFbWidth /* f16a6f4: 00000000 */ nop diff --git a/src/game/menu/items.c b/src/game/menu/items.c index 5bfb8a6f3..e4dd9db50 100644 --- a/src/game/menu/items.c +++ b/src/game/menu/items.c @@ -711,47 +711,47 @@ glabel menuRenderItemList /* f0e6490: 00000000 */ nop /* f0e6494: afc00000 */ sw $zero,0x0($s8) .L0f0e6498: -/* f0e6498: 0c002ef1 */ jal viGetBufX +/* f0e6498: 0c002ef1 */ jal viGetBufWidth /* f0e649c: a7a500ee */ sh $a1,0xee($sp) /* f0e64a0: 3c0a8007 */ lui $t2,%hi(g_ScissorX1) /* f0e64a4: 8d4a1190 */ lw $t2,%lo(g_ScissorX1)($t2) /* f0e64a8: 004a082a */ slt $at,$v0,$t2 /* f0e64ac: 10200005 */ beqz $at,.L0f0e64c4 /* f0e64b0: 00000000 */ nop -/* f0e64b4: 0c002ef1 */ jal viGetBufX +/* f0e64b4: 0c002ef1 */ jal viGetBufWidth /* f0e64b8: 00000000 */ nop /* f0e64bc: 3c018007 */ lui $at,%hi(g_ScissorX1) /* f0e64c0: ac221190 */ sw $v0,%lo(g_ScissorX1)($at) .L0f0e64c4: -/* f0e64c4: 0c002ef1 */ jal viGetBufX +/* f0e64c4: 0c002ef1 */ jal viGetBufWidth /* f0e64c8: 00000000 */ nop /* f0e64cc: 8eeb0000 */ lw $t3,0x0($s7) /* f0e64d0: 004b082a */ slt $at,$v0,$t3 /* f0e64d4: 10200004 */ beqz $at,.L0f0e64e8 /* f0e64d8: 00000000 */ nop -/* f0e64dc: 0c002ef1 */ jal viGetBufX +/* f0e64dc: 0c002ef1 */ jal viGetBufWidth /* f0e64e0: 00000000 */ nop /* f0e64e4: aee20000 */ sw $v0,0x0($s7) .L0f0e64e8: -/* f0e64e8: 0c002ef5 */ jal viGetBufY +/* f0e64e8: 0c002ef5 */ jal viGetBufHeight /* f0e64ec: 00000000 */ nop /* f0e64f0: 3c0c8007 */ lui $t4,%hi(g_ScissorY1) /* f0e64f4: 8d8c1198 */ lw $t4,%lo(g_ScissorY1)($t4) /* f0e64f8: 004c082a */ slt $at,$v0,$t4 /* f0e64fc: 10200005 */ beqz $at,.L0f0e6514 /* f0e6500: 00000000 */ nop -/* f0e6504: 0c002ef5 */ jal viGetBufY +/* f0e6504: 0c002ef5 */ jal viGetBufHeight /* f0e6508: 00000000 */ nop /* f0e650c: 3c018007 */ lui $at,%hi(g_ScissorY1) /* f0e6510: ac221198 */ sw $v0,%lo(g_ScissorY1)($at) .L0f0e6514: -/* f0e6514: 0c002ef5 */ jal viGetBufY +/* f0e6514: 0c002ef5 */ jal viGetBufHeight /* f0e6518: 00000000 */ nop /* f0e651c: 8fc30000 */ lw $v1,0x0($s8) /* f0e6520: 0043082a */ slt $at,$v0,$v1 /* f0e6524: 10200005 */ beqz $at,.L0f0e653c /* f0e6528: 00000000 */ nop -/* f0e652c: 0c002ef5 */ jal viGetBufY +/* f0e652c: 0c002ef5 */ jal viGetBufHeight /* f0e6530: 00000000 */ nop /* f0e6534: afc20000 */ sw $v0,0x0($s8) /* f0e6538: 00401825 */ or $v1,$v0,$zero @@ -1542,47 +1542,47 @@ glabel menuRenderItemList /* f0e70a4: 00000000 */ nop /* f0e70a8: afc00000 */ sw $zero,0x0($s8) .L0f0e70ac: -/* f0e70ac: 0c002ef1 */ jal viGetBufX +/* f0e70ac: 0c002ef1 */ jal viGetBufWidth /* f0e70b0: 00000000 */ nop /* f0e70b4: 3c0e8007 */ lui $t6,%hi(g_ScissorX1) /* f0e70b8: 8dce1190 */ lw $t6,%lo(g_ScissorX1)($t6) /* f0e70bc: 004e082a */ slt $at,$v0,$t6 /* f0e70c0: 10200005 */ beqz $at,.L0f0e70d8 /* f0e70c4: 00000000 */ nop -/* f0e70c8: 0c002ef1 */ jal viGetBufX +/* f0e70c8: 0c002ef1 */ jal viGetBufWidth /* f0e70cc: 00000000 */ nop /* f0e70d0: 3c018007 */ lui $at,%hi(g_ScissorX1) /* f0e70d4: ac221190 */ sw $v0,%lo(g_ScissorX1)($at) .L0f0e70d8: -/* f0e70d8: 0c002ef1 */ jal viGetBufX +/* f0e70d8: 0c002ef1 */ jal viGetBufWidth /* f0e70dc: 00000000 */ nop /* f0e70e0: 8eef0000 */ lw $t7,0x0($s7) /* f0e70e4: 004f082a */ slt $at,$v0,$t7 /* f0e70e8: 10200004 */ beqz $at,.L0f0e70fc /* f0e70ec: 00000000 */ nop -/* f0e70f0: 0c002ef1 */ jal viGetBufX +/* f0e70f0: 0c002ef1 */ jal viGetBufWidth /* f0e70f4: 00000000 */ nop /* f0e70f8: aee20000 */ sw $v0,0x0($s7) .L0f0e70fc: -/* f0e70fc: 0c002ef5 */ jal viGetBufY +/* f0e70fc: 0c002ef5 */ jal viGetBufHeight /* f0e7100: 00000000 */ nop /* f0e7104: 3c188007 */ lui $t8,%hi(g_ScissorY1) /* f0e7108: 8f181198 */ lw $t8,%lo(g_ScissorY1)($t8) /* f0e710c: 0058082a */ slt $at,$v0,$t8 /* f0e7110: 10200005 */ beqz $at,.L0f0e7128 /* f0e7114: 00000000 */ nop -/* f0e7118: 0c002ef5 */ jal viGetBufY +/* f0e7118: 0c002ef5 */ jal viGetBufHeight /* f0e711c: 00000000 */ nop /* f0e7120: 3c018007 */ lui $at,%hi(g_ScissorY1) /* f0e7124: ac221198 */ sw $v0,%lo(g_ScissorY1)($at) .L0f0e7128: -/* f0e7128: 0c002ef5 */ jal viGetBufY +/* f0e7128: 0c002ef5 */ jal viGetBufHeight /* f0e712c: 00000000 */ nop /* f0e7130: 8fc30000 */ lw $v1,0x0($s8) /* f0e7134: 0043082a */ slt $at,$v0,$v1 /* f0e7138: 10200005 */ beqz $at,.L0f0e7150 /* f0e713c: 00000000 */ nop -/* f0e7140: 0c002ef5 */ jal viGetBufY +/* f0e7140: 0c002ef5 */ jal viGetBufHeight /* f0e7144: 00000000 */ nop /* f0e7148: afc20000 */ sw $v0,0x0($s8) /* f0e714c: 00401825 */ or $v1,$v0,$zero @@ -8641,43 +8641,43 @@ glabel menuRenderItemMarquee /* f0ed7b4: 00000000 */ nop /* f0ed7b8: aca00000 */ sw $zero,0x0($a1) .L0f0ed7bc: -/* f0ed7bc: 0c002ef1 */ jal viGetBufX +/* f0ed7bc: 0c002ef1 */ jal viGetBufWidth /* f0ed7c0: 00000000 */ nop /* f0ed7c4: 3c198007 */ lui $t9,%hi(g_ScissorX1) /* f0ed7c8: 8f391190 */ lw $t9,%lo(g_ScissorX1)($t9) /* f0ed7cc: 0059082a */ slt $at,$v0,$t9 /* f0ed7d0: 10200005 */ beqz $at,.L0f0ed7e8 /* f0ed7d4: 00000000 */ nop -/* f0ed7d8: 0c002ef1 */ jal viGetBufX +/* f0ed7d8: 0c002ef1 */ jal viGetBufWidth /* f0ed7dc: 00000000 */ nop /* f0ed7e0: 3c018007 */ lui $at,%hi(g_ScissorX1) /* f0ed7e4: ac221190 */ sw $v0,%lo(g_ScissorX1)($at) .L0f0ed7e8: -/* f0ed7e8: 0c002ef1 */ jal viGetBufX +/* f0ed7e8: 0c002ef1 */ jal viGetBufWidth /* f0ed7ec: 00000000 */ nop /* f0ed7f0: 3c088007 */ lui $t0,%hi(g_ScissorX2) /* f0ed7f4: 8d081194 */ lw $t0,%lo(g_ScissorX2)($t0) /* f0ed7f8: 0048082a */ slt $at,$v0,$t0 /* f0ed7fc: 10200005 */ beqz $at,.L0f0ed814 /* f0ed800: 00000000 */ nop -/* f0ed804: 0c002ef1 */ jal viGetBufX +/* f0ed804: 0c002ef1 */ jal viGetBufWidth /* f0ed808: 00000000 */ nop /* f0ed80c: 3c018007 */ lui $at,%hi(g_ScissorX2) /* f0ed810: ac221194 */ sw $v0,%lo(g_ScissorX2)($at) .L0f0ed814: -/* f0ed814: 0c002ef5 */ jal viGetBufY +/* f0ed814: 0c002ef5 */ jal viGetBufHeight /* f0ed818: 00000000 */ nop /* f0ed81c: 3c098007 */ lui $t1,%hi(g_ScissorY1) /* f0ed820: 8d291198 */ lw $t1,%lo(g_ScissorY1)($t1) /* f0ed824: 0049082a */ slt $at,$v0,$t1 /* f0ed828: 10200005 */ beqz $at,.L0f0ed840 /* f0ed82c: 00000000 */ nop -/* f0ed830: 0c002ef5 */ jal viGetBufY +/* f0ed830: 0c002ef5 */ jal viGetBufHeight /* f0ed834: 00000000 */ nop /* f0ed838: 3c018007 */ lui $at,%hi(g_ScissorY1) /* f0ed83c: ac221198 */ sw $v0,%lo(g_ScissorY1)($at) .L0f0ed840: -/* f0ed840: 0c002ef5 */ jal viGetBufY +/* f0ed840: 0c002ef5 */ jal viGetBufHeight /* f0ed844: 00000000 */ nop /* f0ed848: 3c068007 */ lui $a2,%hi(g_ScissorY2) /* f0ed84c: 24c6119c */ addiu $a2,$a2,%lo(g_ScissorY2) @@ -8685,7 +8685,7 @@ glabel menuRenderItemMarquee /* f0ed854: 0045082a */ slt $at,$v0,$a1 /* f0ed858: 10200009 */ beqz $at,.L0f0ed880 /* f0ed85c: 00000000 */ nop -/* f0ed860: 0c002ef5 */ jal viGetBufY +/* f0ed860: 0c002ef5 */ jal viGetBufHeight /* f0ed864: 00000000 */ nop /* f0ed868: 3c018007 */ lui $at,%hi(g_ScissorY2) /* f0ed86c: ac22119c */ sw $v0,%lo(g_ScissorY2)($at) @@ -9159,20 +9159,20 @@ u32 var800711ec = 0x20000000; // g_ScissorY2 = 0; // } // -// if (g_ScissorX1 > viGetBufX()) { -// g_ScissorX1 = viGetBufX(); +// if (g_ScissorX1 > viGetBufWidth()) { +// g_ScissorX1 = viGetBufWidth(); // } // -// if (g_ScissorX2 > viGetBufX()) { -// g_ScissorX2 = viGetBufX(); +// if (g_ScissorX2 > viGetBufWidth()) { +// g_ScissorX2 = viGetBufWidth(); // } // -// if (g_ScissorY1 > viGetBufY()) { -// g_ScissorY1 = viGetBufY(); +// if (g_ScissorY1 > viGetBufHeight()) { +// g_ScissorY1 = viGetBufHeight(); // } // -// if (g_ScissorY2 > viGetBufY()) { -// g_ScissorY2 = viGetBufY(); +// if (g_ScissorY2 > viGetBufHeight()) { +// g_ScissorY2 = viGetBufHeight(); // } // // if (g_ScissorX2 < g_ScissorX1) { @@ -9489,20 +9489,20 @@ Gfx *menuRenderItemRanking(Gfx *gdl, struct menurendercontext *context) g_ScissorY2 = 0; } - if (g_ScissorX1 > viGetBufX()) { - g_ScissorX1 = viGetBufX(); + if (g_ScissorX1 > viGetBufWidth()) { + g_ScissorX1 = viGetBufWidth(); } - if (g_ScissorX2 > viGetBufX()) { - g_ScissorX2 = viGetBufX(); + if (g_ScissorX2 > viGetBufWidth()) { + g_ScissorX2 = viGetBufWidth(); } - if (g_ScissorY1 > viGetBufY()) { - g_ScissorY1 = viGetBufY(); + if (g_ScissorY1 > viGetBufHeight()) { + g_ScissorY1 = viGetBufHeight(); } - if (g_ScissorY2 > viGetBufY()) { - g_ScissorY2 = viGetBufY(); + if (g_ScissorY2 > viGetBufHeight()) { + g_ScissorY2 = viGetBufHeight(); } if (g_ScissorX2 < g_ScissorX1) { @@ -10349,20 +10349,20 @@ Gfx *menuRenderItemPlayerStats(Gfx *gdl, struct menurendercontext *context) g_ScissorY2 = 0; } - if (g_ScissorX1 > viGetBufX()) { - g_ScissorX1 = viGetBufX(); + if (g_ScissorX1 > viGetBufWidth()) { + g_ScissorX1 = viGetBufWidth(); } - if (g_ScissorX2 > viGetBufX()) { - g_ScissorX2 = viGetBufX(); + if (g_ScissorX2 > viGetBufWidth()) { + g_ScissorX2 = viGetBufWidth(); } - if (g_ScissorY1 > viGetBufY()) { - g_ScissorY1 = viGetBufY(); + if (g_ScissorY1 > viGetBufHeight()) { + g_ScissorY1 = viGetBufHeight(); } - if (g_ScissorY2 > viGetBufY()) { - g_ScissorY2 = viGetBufY(); + if (g_ScissorY2 > viGetBufHeight()) { + g_ScissorY2 = viGetBufHeight(); } if (g_ScissorX2 < g_ScissorX1) { diff --git a/src/game/propobj.c b/src/game/propobj.c index 04fa52aca..0d483a659 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -68801,7 +68801,7 @@ Gfx *countdownTimerRender(Gfx *gdl) } #if !PAL - if (g_ViMode == VIMODE_HIRES) { + if (g_ViRes == VIRES_HI) { viewright = viewright / 2; } #endif diff --git a/src/game/radar.c b/src/game/radar.c index 8d2bbd4e8..ca30e5492 100644 --- a/src/game/radar.c +++ b/src/game/radar.c @@ -277,7 +277,7 @@ Gfx *radarRender(Gfx *gdl) #if PAL g_ScaleX = 1; #else - if (g_ViMode == VIMODE_HIRES) { + if (g_ViRes == VIRES_HI) { g_ScaleX = 2; } else { g_ScaleX = 1; diff --git a/src/game/sight.c b/src/game/sight.c index 26bf6a505..94e98905a 100644 --- a/src/game/sight.c +++ b/src/game/sight.c @@ -8093,7 +8093,7 @@ Gfx *sightRender(Gfx *gdl, bool sighton, s32 sight) #if PAL g_ScaleX = 1; #else - if (g_ViMode == VIMODE_HIRES) { + if (g_ViRes == VIRES_HI) { g_ScaleX = 2; } else { g_ScaleX = 1; diff --git a/src/game/title.c b/src/game/title.c index bc2d786e3..e0eab2a63 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -453,8 +453,8 @@ void titleInitCheckControllers(void) void titleExitCheckControllers(void) { var800624e8 = 0; - vi00009ab0(); - vi0000aab0(2); + viConfigureForLogos(); + viSetMode(VIMODE_HI); viBlack(false); } @@ -3116,7 +3116,7 @@ glabel var7f1a8468 .PF0f018494: /* f018494: 0c002f12 */ jal viSetFillColour /* f018498: 00002825 */ move $a1,$zero -/* f01849c: 0c002c02 */ jal func0000b2c4 +/* f01849c: 0c002c02 */ jal viFillBuffer /* f0184a0: 00402025 */ move $a0,$v0 /* f0184a4: 3c188006 */ lui $t8,0x8006 /* f0184a8: 8f18249c */ lw $t8,0x249c($t8) @@ -4447,7 +4447,7 @@ glabel var7f1a8468 .L0f0183b0: /* f0183b0: 0c002fc1 */ jal viSetFillColour /* f0183b4: 00002825 */ or $a1,$zero,$zero -/* f0183b8: 0c002cb1 */ jal func0000b2c4 +/* f0183b8: 0c002cb1 */ jal viFillBuffer /* f0183bc: 00402025 */ or $a0,$v0,$zero /* f0183c0: 3c0e8006 */ lui $t6,%hi(var800627cc) /* f0183c4: 8dce27cc */ lw $t6,%lo(var800627cc)($t6) @@ -6998,8 +6998,8 @@ void titleInitSkip(void) if (IS4MB()) { g_TitleNextStage = STAGE_4MBMENU; viSetAspect(PAL ? 1.7316017150879f : 1.4545454978943f); - viSetXY(320, 220); - viSetBuf(320, 220); + viSetSize(320, 220); + viSetBufSize(320, 220); currentPlayerSetViewSize(320, 220); viSetViewSize(320, 220); } @@ -7303,8 +7303,8 @@ void titleTick(void) #else viSetAspect(576.0f / var800624a0); #endif - viSetXY(576, var800624a0); - viSetBuf(576, var800624a0); + viSetSize(576, var800624a0); + viSetBufSize(576, var800624a0); currentPlayerSetViewSize(576, var800624a0); viSetViewSize(576, var800624a0); currentPlayerSetViewPosition(0, 0); @@ -7516,9 +7516,9 @@ bool func0f01ad5c(void) void func0f01adb8(void) { - vi0000aab0(2); - viSetXY(576, var800624a0); - viSetBuf(576, var800624a0); + viSetMode(VIMODE_HI); + viSetSize(576, var800624a0); + viSetBufSize(576, var800624a0); currentPlayerSetViewSize(576, var800624a0); viSetViewSize(576, var800624a0); currentPlayerSetViewPosition(0, 0); diff --git a/src/game/training/menus.c b/src/game/training/menus.c index 9ec645b26..acd559068 100644 --- a/src/game/training/menus.c +++ b/src/game/training/menus.c @@ -4735,7 +4735,7 @@ s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialog *dialog, union g_Menus[g_MpPlayerNum].unkdc0 = 0; #if VERSION >= VERSION_PAL_FINAL - if (g_ViMode != VIMODE_HIRES) { + if (g_ViRes != VIRES_HI) { x = -117; if (optionsGetScreenRatio() == SCREENRATIO_16_9) { @@ -5000,7 +5000,7 @@ s32 dtTrainingDetailsMenuDialog(s32 operation, struct menudialog *dialog, union func0f105948(weaponnum); #if VERSION >= VERSION_PAL_FINAL - if (g_ViMode == VIMODE_HIRES) { + if (g_ViRes == VIRES_HI) { if (optionsGetScreenRatio() == SCREENRATIO_16_9) { g_Menus[g_MpPlayerNum].unkd78 = 84; g_Menus[g_MpPlayerNum].unkd50 = 84; diff --git a/src/include/PR/libultra.h b/src/include/PR/libultra.h index f1730bde4..07dd0f401 100644 --- a/src/include/PR/libultra.h +++ b/src/include/PR/libultra.h @@ -9,7 +9,7 @@ #define RESET_TYPE_NMI 1 #define RESET_TYPE_BOOT_DISK 2 -extern u32 osTvType; +extern s32 osTvType; extern u32 osRomBase; extern u32 osResetType; extern u32 osMemSize; diff --git a/src/include/bss.h b/src/include/bss.h index 0b19bad47..e909512cc 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -73,7 +73,7 @@ extern OSMesgQueue __osEepromTimerQ; extern OSMesg __osEepromTimerMsg; extern OSPifRam __osEepPifRam; extern u32 var8009ca84; -extern u8 *var8009cac0[2]; +extern u8 *g_FrameBuffers[2]; extern u8 var8009caec[4]; extern u8 var8009caf0; extern struct prop *g_DangerousProps[MAX_DANGEROUSPROPS]; diff --git a/src/include/constants.h b/src/include/constants.h index d65c69219..c6beccc73 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3830,8 +3830,12 @@ #define VEHICLEMODE_ENGINESTART 1 #define VEHICLEMODE_RUNNING 2 -#define VIMODE_DEFAULT 0 -#define VIMODE_HIRES 1 +#define VIMODE_NONE 0 +#define VIMODE_LO 1 +#define VIMODE_HI 2 + +#define VIRES_LO 0 +#define VIRES_HI 1 #define VISIONMODE_NORMAL 0 #define VISIONMODE_XRAY 1 diff --git a/src/include/data.h b/src/include/data.h index 800361b07..bad9732f9 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -16,13 +16,13 @@ extern u32 var8005ce68; extern u32 var8005ce6c; extern u32 var8005ce70; extern s32 var8005ce74; -extern f32 var8005ce78[2]; -extern f32 var8005ce80[2]; -extern u32 var8005ce88[2]; +extern f32 g_ViXScalesBySlot[2]; +extern f32 g_ViYScalesBySlot[2]; +extern u32 g_SchedViModesPending[2]; extern s32 g_ViUnblackTimer; -extern s32 var8005ce94; -extern s32 var8005ce98; -extern u32 var8005ce9c; +extern s32 g_ViShakeDirection; +extern s32 g_ViShakeIntensity; +extern s32 g_ViShakeTimer; extern OSMesg var8005cea8; extern u32 var8005cec8; extern s8 g_Resetting; @@ -283,7 +283,7 @@ extern u32 var800705b0; extern u32 var800705b4; extern u32 var800705b8; extern u32 var800705bc; -extern s32 g_ViMode; +extern s32 g_ViRes; extern bool g_HiResEnabled; extern s32 var8007072c; extern u32 var80070738; diff --git a/src/include/game/game_0b69d0.h b/src/include/game/game_0b69d0.h index 5b1ba8393..302316f96 100644 --- a/src/include/game/game_0b69d0.h +++ b/src/include/game/game_0b69d0.h @@ -41,7 +41,7 @@ void currentPlayerDisplayDamage(void); Gfx *hudRenderHealthBar(Gfx *gdl); void currentPlayerSurroundWithExplosions(s32 arg0); void currentPlayerTickExplode(void); -void viResetDefaultModeIf4Mb(void); +void viResetLoResIf4Mb(void); s16 viGetFbWidth(void); s16 viGetFbHeight(void); bool is2PSharedViewport(void); diff --git a/src/include/lib/lib_09a80.h b/src/include/lib/lib_09a80.h index 84b3aec30..4b07339e9 100644 --- a/src/include/lib/lib_09a80.h +++ b/src/include/lib/lib_09a80.h @@ -10,19 +10,19 @@ void vi00009a90(void); void vi00009a98(void); void vi00009aa0(u32 arg0); Gfx *viRenderDebug(Gfx *gdl); -void vi00009ab0(void); -void vi00009b50(u8 *fb); -void vi00009bf8(void); +void viConfigureForLogos(void); +void viConfigureForBanner(u8 *fb); +void viConfigureForLegal(void); void viAllocateFbs(s32 stagenum); void viBlack(bool black); void vi00009ed4(void); -void vi0000a044(void); -void vi0000aa50(f32 arg0); -void vi0000aab0(s32 arg0); -u8 *viGetUnk28(void); -u8 *vi2GetUnk28(void); +void viUpdateMode(void); +void viShake(f32 intensity); +void viSetMode(s32 mode); +u8 *viGetBackBuffer(void); +u8 *viGetFrontBuffer(void); Vp *viGetCurrentPlayerViewport(void); -u16 vi0000ab6c(void); +u16 viGetPerspScale(void); Gfx *vi0000ab78(Gfx *gdl); Gfx *vi0000aca4(Gfx *gdl, f32 znear, f32 zfar); Gfx *vi0000ad5c(Gfx *gdl, Vp *vp); @@ -31,15 +31,15 @@ Gfx *vi0000b0e8(Gfx *gdl, f32 fovy, f32 aspect); Gfx *vi0000b1a8(Gfx *gdl); Gfx *vi0000b1d0(Gfx *gdl); Gfx *vi0000b280(Gfx *gdl); -Gfx *func0000b2c4(Gfx *gdl); +Gfx *viFillBuffer(Gfx *gdl); Gfx *viRenderViewportEdges(Gfx *gdl); -void viSetBuf(s16 x, s16 y); -s16 viGetBufX(void); -s16 viGetBufY(void); -void viSetXY(s16 x, s16 y); +void viSetBufSize(s16 width, s16 height); +s16 viGetBufWidth(void); +s16 viGetBufHeight(void); +void viSetSize(s16 width, s16 height); s16 viGetWidth(void); s16 viGetHeight(void); -void viSetViewSize(s16 x, s16 y); +void viSetViewSize(s16 width, s16 height); s16 viGetViewWidth(void); s16 viGetViewHeight(void); void viSetViewPosition(s16 left, s16 top); diff --git a/src/lib/lib_09a80.c b/src/lib/lib_09a80.c index a33e6df68..9a6e68279 100644 --- a/src/lib/lib_09a80.c +++ b/src/lib/lib_09a80.c @@ -19,18 +19,17 @@ #define TO_U16_A(x) ((u16)(x)) #define TO_U16_B(x) (x & 0xffff) #define TO_U16_C(x) ((u16)(x & 0xffff)) -#define TO_U16_M(x) ((x) % 0xffff) -#define ADD_LOW_AND_HI_16_TRUNCATE(x32, add16) ((TO_U16_B(TO_U16_A((x32) >> 16) + (add16)) << 16) | TO_U16_B(TO_U16_A(x32) + (add16))) -#define ADD_LOW_AND_HI_16_MOD(x32, add16) ((TO_U16_M(TO_U16_B((x32) >> 16) + (add16)) << 16) | TO_U16_M(TO_U16_A(x32) + (add16))) +#define ADD_LOW_AND_HI_16_TRUNCATE(reg, add) ((TO_U16_B(TO_U16_A((reg) >> 16) + (add)) << 16) | TO_U16_B(TO_U16_A(reg) + (add))) +#define ADD_LOW_AND_HI_16_MOD(reg, add) ((((((reg >> 16) & 0xffff) + add) % 0xffff) << 16) | (((((reg >> 0) & 0xffff) + add) % 0xffff) << 0)) Mtxf var80092830; Mtx *var80092870; -u16 var80092874; -u8 var80092876; -u8 var80092877; +u16 g_ViPerspScale; +u8 g_ViFrontIndex; +u8 g_ViBackIndex; -struct rend_vidat var8005d530[] = { +struct rend_vidat g_ViDataArray[] = { { 0, 0, 0, 0, 320, 220, // x and y @@ -58,13 +57,13 @@ struct rend_vidat var8005d530[] = { }, }; -u32 var8005d588 = 0; -u32 var8005d58c = 0; -struct rend_vidat *var8005d590 = &var8005d530[0]; -struct rend_vidat *g_ViData = &var8005d530[0]; +s32 var8005d588 = 0; +s32 var8005d58c = 0; +struct rend_vidat *g_ViFrontData = &g_ViDataArray[0]; +struct rend_vidat *g_ViBackData = &g_ViDataArray[0]; bool g_ViIs16Bit = true; -s32 var8005d59c = 0; -u32 var8005d5a0 = 0x00000000; +bool g_ViReconfigured = false; +s32 g_ViSlot = 0; void vi00009a80(void) { @@ -96,23 +95,23 @@ Gfx *viRenderDebug(Gfx *gdl) return gdl; } -void vi00009ab0(void) +void viConfigureForLogos(void) { - var80092876 = 0; - var80092877 = 1; + g_ViFrontIndex = 0; + g_ViBackIndex = 1; - var8005d590 = var8005d530 + var80092876; - g_ViData = var8005d530 + var80092877; + g_ViFrontData = g_ViDataArray + g_ViFrontIndex; + g_ViBackData = g_ViDataArray + g_ViBackIndex; #if VERSION >= VERSION_PAL_FINAL if (IS4MB()) { - var8005d530[0].y = 220; - var8005d530[0].bufy = 220; - var8005d530[0].viewy = 220; + g_ViDataArray[0].y = 220; + g_ViDataArray[0].bufy = 220; + g_ViDataArray[0].viewy = 220; - var8005d530[1].y = 220; - var8005d530[1].bufy = 220; - var8005d530[1].viewy = 220; + g_ViDataArray[1].y = 220; + g_ViDataArray[1].bufy = 220; + g_ViDataArray[1].viewy = 220; var8005d588 = 0; var8005d58c = 0; @@ -125,67 +124,82 @@ void vi00009ab0(void) var8005d58c = 0; if (IS4MB()) { - var8005d530[0].y = 220; - var8005d530[0].bufy = 220; - var8005d530[0].viewy = 220; + g_ViDataArray[0].y = 220; + g_ViDataArray[0].bufy = 220; + g_ViDataArray[0].viewy = 220; - var8005d530[1].y = 220; - var8005d530[1].bufy = 220; - var8005d530[1].viewy = 220; + g_ViDataArray[1].y = 220; + g_ViDataArray[1].bufy = 220; + g_ViDataArray[1].viewy = 220; } #endif } -void vi00009b50(u8 *fb) +/** + * Configure the VI to display a banner texture. + * + * The banner texture is the first thing displayed after power on. + * It is either the copyright notice, or the "Accessing Pak" message + * if holding start to enter the boot pak menu. + * + * Both textures are 576 x 48. + */ +void viConfigureForBanner(u8 *texturedata) { s32 i; for (i = 0; i < 2; i++) { - var8009cac0[i] = fb; + g_FrameBuffers[i] = texturedata; - var8005d530[i].x = 576; - var8005d530[i].bufx = 576; - var8005d530[i].viewx = (VERSION >= VERSION_NTSC_1_0 ? 576 : 480); + g_ViDataArray[i].x = 576; + g_ViDataArray[i].bufx = 576; + g_ViDataArray[i].viewx = (VERSION >= VERSION_NTSC_1_0 ? 576 : 480); - var8005d530[i].y = 48; - var8005d530[i].bufy = 48; - var8005d530[i].viewy = 48; + g_ViDataArray[i].y = 48; + g_ViDataArray[i].bufy = 48; + g_ViDataArray[i].viewy = 48; } - var8005d590->fb = var8009cac0[var80092876]; - g_ViData->fb = var8009cac0[var80092877]; + g_ViFrontData->fb = g_FrameBuffers[g_ViFrontIndex]; + g_ViBackData->fb = g_FrameBuffers[g_ViBackIndex]; - var8005d59c = 1; + g_ViReconfigured = true; g_Vars.fourmeg2player = false; } -void vi00009bf8(void) +/** + * Configure the VI to display the legal screen. + * + * It's also used for the "check controllers" message + * if controller 1 is not connected. + */ +void viConfigureForLegal(void) { s32 i; for (i = 0; i < 2; i++) { - var8005d530[i].x = 320; - var8005d530[i].bufx = 320; - var8005d530[i].viewx = 320; + g_ViDataArray[i].x = 320; + g_ViDataArray[i].bufx = 320; + g_ViDataArray[i].viewx = 320; - var8005d530[i].y = 220; - var8005d530[i].bufy = 220; - var8005d530[i].viewy = 220; + g_ViDataArray[i].y = 220; + g_ViDataArray[i].bufy = 220; + g_ViDataArray[i].viewy = 220; } g_Vars.fourmeg2player = false; #if VERSION >= VERSION_PAL_FINAL - viResetDefaultModeIf4Mb(); + viResetLoResIf4Mb(); #endif } -const s16 var700526d0[] = {320, 320, 640}; +const s16 g_ViModeWidths[] = {320, 320, 640}; #if PAL -const s16 var700526d8[] = {220, 220, 504}; +const s16 g_ViModeHeights[] = {220, 220, 504}; #else -const s16 var700526d8[] = {220, 220, 440}; +const s16 g_ViModeHeights[] = {220, 220, 440}; #endif /** @@ -210,14 +224,14 @@ void viAllocateFbs(s32 stagenum) if (stagenum == STAGE_TITLE || stagenum == STAGE_TEST_OLD) { if (IS4MB()) { - vi0000aab0(2); + viSetMode(VIMODE_HI); fbsize = 640 * 440 * 2; } else { - vi0000aab0(2); - fbsize = var700526d0[2] * var700526d8[2] * 2; + viSetMode(VIMODE_HI); + fbsize = g_ViModeWidths[2] * g_ViModeHeights[2] * 2; } } else { - vi0000aab0(1); + viSetMode(VIMODE_LO); if (1); @@ -239,21 +253,21 @@ void viAllocateFbs(s32 stagenum) ptr = (u8 *)(((u32)ptr + 0x3f) & 0xffffffc0); - var8009cac0[0] = &ptr[0]; - var8009cac0[1] = fbsize + ptr; + g_FrameBuffers[0] = &ptr[0]; + g_FrameBuffers[1] = fbsize + ptr; - var8005d590->fb = var8009cac0[var80092876]; - g_ViData->fb = var8009cac0[var80092877]; + g_ViFrontData->fb = g_FrameBuffers[g_ViFrontIndex]; + g_ViBackData->fb = g_FrameBuffers[g_ViBackIndex]; - fb0 = var8009cac0[0]; - fb1 = var8009cac0[1]; + fb0 = g_FrameBuffers[0]; + fb1 = g_FrameBuffers[1]; for (i = 0; i < fbsize; i++) { fb0[i] = 0; fb1[i] = 0; } - var8005d59c = 1; + g_ViReconfigured = true; } /** @@ -272,29 +286,29 @@ void viBlack(bool black) void vi00009ed4(void) { s32 prevmask; - s32 value; - s32 tmp; + s32 offset; + s32 reg; - if (var8005ce9c != 0) { - var8005ce9c--; + if (g_ViShakeTimer != 0) { + g_ViShakeTimer--; - if (var8005ce9c == 0) { - var8005ce98 = 0; + if (g_ViShakeTimer == 0) { + g_ViShakeIntensity = 0; } } - value = var8005ce94 * var8005ce98; - var8005ce94 = -var8005ce94; + offset = g_ViShakeDirection * g_ViShakeIntensity; + g_ViShakeDirection = -g_ViShakeDirection; #if VERSION >= VERSION_NTSC_1_0 prevmask = osSetIntMask(1); #endif - tmp = var8008de0c; - var8008dd60[1 - var8005ce74]->fldRegs[0].vStart = ADD_LOW_AND_HI_16_TRUNCATE(tmp, value); + reg = var8008de0c; + var8008dd60[1 - var8005ce74]->fldRegs[0].vStart = ADD_LOW_AND_HI_16_TRUNCATE(reg, offset); - tmp = var8008de10; - var8008dd60[1 - var8005ce74]->fldRegs[1].vStart = ADD_LOW_AND_HI_16_TRUNCATE(tmp, value); + reg = var8008de10; + var8008dd60[1 - var8005ce74]->fldRegs[1].vStart = ADD_LOW_AND_HI_16_TRUNCATE(reg, offset); #if VERSION >= VERSION_NTSC_1_0 osSetIntMask(prevmask); @@ -302,14 +316,14 @@ void vi00009ed4(void) osViSetMode(var8008dd60[1 - var8005ce74]); osViBlack(g_ViUnblackTimer); - osViSetXScale(var8005ce78[1 - var8005ce74]); - osViSetYScale(var8005ce80[1 - var8005ce74]); + osViSetXScale(g_ViXScalesBySlot[1 - var8005ce74]); + osViSetYScale(g_ViYScalesBySlot[1 - var8005ce74]); osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON); } #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( -glabel vi0000a044 +glabel viUpdateMode /* 9f64: 3c098006 */ lui $t1,0x8006 /* 9f68: 3c0e8006 */ lui $t6,0x8006 /* 9f6c: 8dced230 */ lw $t6,-0x2dd0($t6) @@ -884,11 +898,11 @@ glabel vi0000a044 ); #else GLOBAL_ASM( -glabel vi0000a044 -/* a044: 3c098006 */ lui $t1,%hi(g_ViData) -/* a048: 3c0e8006 */ lui $t6,%hi(var8005d590) -/* a04c: 8dced590 */ lw $t6,%lo(var8005d590)($t6) -/* a050: 8d29d594 */ lw $t1,%lo(g_ViData)($t1) +glabel viUpdateMode +/* a044: 3c098006 */ lui $t1,%hi(g_ViBackData) +/* a048: 3c0e8006 */ lui $t6,%hi(g_ViFrontData) +/* a04c: 8dced590 */ lw $t6,%lo(g_ViFrontData)($t6) +/* a050: 8d29d594 */ lw $t1,%lo(g_ViBackData)($t1) /* a054: 27bdffe8 */ addiu $sp,$sp,-24 /* a058: afbf0014 */ sw $ra,0x14($sp) /* a05c: 91cf0000 */ lbu $t7,0x0($t6) @@ -911,8 +925,8 @@ glabel vi0000a044 /* a09c: 00000000 */ nop /* a0a0: 0c012338 */ jal osViBlack /* a0a4: 24040001 */ addiu $a0,$zero,0x1 -/* a0a8: 3c098006 */ lui $t1,%hi(g_ViData) -/* a0ac: 8d29d594 */ lw $t1,%lo(g_ViData)($t1) +/* a0a8: 3c098006 */ lui $t1,%hi(g_ViBackData) +/* a0ac: 8d29d594 */ lw $t1,%lo(g_ViBackData)($t1) /* a0b0: 91230000 */ lbu $v1,0x0($t1) .L0000a0b4: /* a0b4: 85380004 */ lh $t8,0x4($t1) @@ -928,7 +942,7 @@ glabel vi0000a044 /* a0d8: 24040002 */ addiu $a0,$zero,0x2 /* a0dc: 241f0001 */ addiu $ra,$zero,0x1 /* a0e0: 468042a0 */ cvt.s.w $f10,$f8 -/* a0e4: 3c0b8006 */ lui $t3,%hi(var8005d5a0) +/* a0e4: 3c0b8006 */ lui $t3,%hi(g_ViSlot) /* a0e8: 3c013f80 */ lui $at,0x3f80 /* a0ec: 468084a0 */ cvt.s.w $f18,$f16 /* a0f0: 46802220 */ cvt.s.w $f8,$f4 @@ -938,14 +952,14 @@ glabel vi0000a044 /* a100: 44810000 */ mtc1 $at,$f0 /* a104: 00000000 */ nop .L0000a108: -/* a108: 8d6bd5a0 */ lw $t3,%lo(var8005d5a0)($t3) -/* a10c: 3c018006 */ lui $at,%hi(var8005ce78) +/* a108: 8d6bd5a0 */ lw $t3,%lo(g_ViSlot)($t3) +/* a10c: 3c018006 */ lui $at,%hi(g_ViXScalesBySlot) /* a110: 000b6080 */ sll $t4,$t3,0x2 /* a114: 002c0821 */ addu $at,$at,$t4 -/* a118: e422ce78 */ swc1 $f2,%lo(var8005ce78)($at) -/* a11c: 3c018006 */ lui $at,%hi(var8005ce80) +/* a118: e422ce78 */ swc1 $f2,%lo(g_ViXScalesBySlot)($at) +/* a11c: 3c018006 */ lui $at,%hi(g_ViYScalesBySlot) /* a120: 002c0821 */ addu $at,$at,$t4 -/* a124: e420ce80 */ swc1 $f0,%lo(var8005ce80)($at) +/* a124: e420ce80 */ swc1 $f0,%lo(g_ViYScalesBySlot)($at) /* a128: 91230000 */ lbu $v1,0x0($t1) /* a12c: 17e30101 */ bne $ra,$v1,.L0000a534 /* a130: 00000000 */ nop @@ -1220,14 +1234,14 @@ glabel vi0000a044 .L0000a50c: /* a50c: 0000c010 */ mfhi $t8 /* a510: 03381025 */ or $v0,$t9,$t8 -/* a514: 3c018006 */ lui $at,%hi(var8005ce88) +/* a514: 3c018006 */ lui $at,%hi(g_SchedViModesPending) /* a518: ac820030 */ sw $v0,0x30($a0) /* a51c: ada20000 */ sw $v0,0x0($t5) /* a520: ac820044 */ sw $v0,0x44($a0) /* a524: afe20000 */ sw $v0,0x0($ra) /* a528: 002c0821 */ addu $at,$at,$t4 /* a52c: 100000f6 */ b .L0000a908 -/* a530: ac2fce88 */ sw $t7,%lo(var8005ce88)($at) +/* a530: ac2fce88 */ sw $t7,%lo(g_SchedViModesPending)($at) .L0000a534: /* a534: 148300ef */ bne $a0,$v1,.L0000a8f4 /* a538: 3c0e8000 */ lui $t6,0x8000 @@ -1487,18 +1501,18 @@ glabel vi0000a044 /* a8d4: 00000000 */ nop /* a8d8: 0006000d */ break 0x6 .L0000a8dc: -/* a8dc: 3c018006 */ lui $at,%hi(var8005ce88) +/* a8dc: 3c018006 */ lui $at,%hi(g_SchedViModesPending) /* a8e0: 002c0821 */ addu $at,$at,$t4 /* a8e4: 24180001 */ addiu $t8,$zero,0x1 -/* a8e8: ac38ce88 */ sw $t8,%lo(var8005ce88)($at) +/* a8e8: ac38ce88 */ sw $t8,%lo(g_SchedViModesPending)($at) /* a8ec: 10000006 */ b .L0000a908 /* a8f0: 8d4ad598 */ lw $t2,%lo(g_ViIs16Bit)($t2) .L0000a8f4: -/* a8f4: 3c018006 */ lui $at,%hi(var8005ce88) +/* a8f4: 3c018006 */ lui $at,%hi(g_SchedViModesPending) /* a8f8: 002c0821 */ addu $at,$at,$t4 /* a8fc: 3c0a8006 */ lui $t2,%hi(g_ViIs16Bit) /* a900: 8d4ad598 */ lw $t2,%lo(g_ViIs16Bit)($t2) -/* a904: ac20ce88 */ sw $zero,%lo(var8005ce88)($at) +/* a904: ac20ce88 */ sw $zero,%lo(g_SchedViModesPending)($at) .L0000a908: /* a908: 256b0001 */ addiu $t3,$t3,0x1 /* a90c: 05610004 */ bgez $t3,.L0000a920 @@ -1507,33 +1521,33 @@ glabel vi0000a044 /* a918: 00000000 */ nop /* a91c: 25cefffe */ addiu $t6,$t6,-2 .L0000a920: -/* a920: 3c018006 */ lui $at,%hi(var8005d5a0) +/* a920: 3c018006 */ lui $at,%hi(g_ViSlot) /* a924: 11400006 */ beqz $t2,.L0000a940 -/* a928: ac2ed5a0 */ sw $t6,%lo(var8005d5a0)($at) +/* a928: ac2ed5a0 */ sw $t6,%lo(g_ViSlot)($at) /* a92c: 3c0f8006 */ lui $t7,%hi(g_RdpCurTask) /* a930: 8deff108 */ lw $t7,%lo(g_RdpCurTask)($t7) /* a934: 8d390028 */ lw $t9,0x28($t1) /* a938: 10000006 */ b .L0000a954 /* a93c: adf90058 */ sw $t9,0x58($t7) .L0000a940: -/* a940: 3c18800a */ lui $t8,%hi(var8009cac0) +/* a940: 3c18800a */ lui $t8,%hi(g_FrameBuffers) /* a944: 3c0e8006 */ lui $t6,%hi(g_RdpCurTask) /* a948: 8dcef108 */ lw $t6,%lo(g_RdpCurTask)($t6) -/* a94c: 8f18cac0 */ lw $t8,%lo(var8009cac0)($t8) +/* a94c: 8f18cac0 */ lw $t8,%lo(g_FrameBuffers)($t8) /* a950: add80058 */ sw $t8,0x58($t6) .L0000a954: -/* a954: 3c028009 */ lui $v0,%hi(var80092874+0x2) -/* a958: 24422876 */ addiu $v0,$v0,%lo(var80092874+0x2) +/* a954: 3c028009 */ lui $v0,%hi(g_ViPerspScale+0x2) +/* a958: 24422876 */ addiu $v0,$v0,%lo(g_ViPerspScale+0x2) /* a95c: 90590000 */ lbu $t9,0x0($v0) -/* a960: 3c048006 */ lui $a0,%hi(g_ViData) -/* a964: 8c84d594 */ lw $a0,%lo(g_ViData)($a0) +/* a960: 3c048006 */ lui $a0,%hi(g_ViBackData) +/* a964: 8c84d594 */ lw $a0,%lo(g_ViBackData)($a0) /* a968: 272f0001 */ addiu $t7,$t9,0x1 -/* a96c: 3c038009 */ lui $v1,%hi(var80092874+0x3) +/* a96c: 3c038009 */ lui $v1,%hi(g_ViPerspScale+0x3) /* a970: 2408002c */ addiu $t0,$zero,0x2c -/* a974: 24632877 */ addiu $v1,$v1,%lo(var80092874+0x3) +/* a974: 24632877 */ addiu $v1,$v1,%lo(g_ViPerspScale+0x3) /* a978: 906e0000 */ lbu $t6,0x0($v1) -/* a97c: 3c078006 */ lui $a3,%hi(var8005d530) -/* a980: 24e7d530 */ addiu $a3,$a3,%lo(var8005d530) +/* a97c: 3c078006 */ lui $a3,%hi(g_ViDataArray) +/* a980: 24e7d530 */ addiu $a3,$a3,%lo(g_ViDataArray) /* a984: 05e10004 */ bgez $t7,.L0000a998 /* a988: 31f80001 */ andi $t8,$t7,0x1 /* a98c: 13000002 */ beqz $t8,.L0000a998 @@ -1551,31 +1565,31 @@ glabel vi0000a044 .L0000a9b8: /* a9b8: 03080019 */ multu $t8,$t0 /* a9bc: a06f0000 */ sb $t7,0x0($v1) -/* a9c0: 3c018006 */ lui $at,%hi(var8005d590) -/* a9c4: 3c058006 */ lui $a1,%hi(g_ViData) +/* a9c0: 3c018006 */ lui $at,%hi(g_ViFrontData) +/* a9c4: 3c058006 */ lui $a1,%hi(g_ViBackData) /* a9c8: 2406002c */ addiu $a2,$zero,0x2c /* a9cc: 00007012 */ mflo $t6 /* a9d0: 00eec821 */ addu $t9,$a3,$t6 -/* a9d4: ac39d590 */ sw $t9,%lo(var8005d590)($at) +/* a9d4: ac39d590 */ sw $t9,%lo(g_ViFrontData)($at) /* a9d8: 906f0000 */ lbu $t7,0x0($v1) -/* a9dc: 3c018006 */ lui $at,%hi(g_ViData) +/* a9dc: 3c018006 */ lui $at,%hi(g_ViBackData) /* a9e0: 01e80019 */ multu $t7,$t0 /* a9e4: 0000c012 */ mflo $t8 /* a9e8: 00f87021 */ addu $t6,$a3,$t8 -/* a9ec: ac2ed594 */ sw $t6,%lo(g_ViData)($at) +/* a9ec: ac2ed594 */ sw $t6,%lo(g_ViBackData)($at) /* a9f0: 0c012c5c */ jal bcopy -/* a9f4: 8ca5d594 */ lw $a1,%lo(g_ViData)($a1) -/* a9f8: 3c038009 */ lui $v1,%hi(var80092874+0x3) -/* a9fc: 24632877 */ addiu $v1,$v1,%lo(var80092874+0x3) +/* a9f4: 8ca5d594 */ lw $a1,%lo(g_ViBackData)($a1) +/* a9f8: 3c038009 */ lui $v1,%hi(g_ViPerspScale+0x3) +/* a9fc: 24632877 */ addiu $v1,$v1,%lo(g_ViPerspScale+0x3) /* aa00: 90790000 */ lbu $t9,0x0($v1) -/* aa04: 3c18800a */ lui $t8,%hi(var8009cac0) -/* aa08: 3c0e8006 */ lui $t6,%hi(g_ViData) +/* aa04: 3c18800a */ lui $t8,%hi(g_FrameBuffers) +/* aa08: 3c0e8006 */ lui $t6,%hi(g_ViBackData) /* aa0c: 00197880 */ sll $t7,$t9,0x2 /* aa10: 030fc021 */ addu $t8,$t8,$t7 -/* aa14: 8f18cac0 */ lw $t8,%lo(var8009cac0)($t8) -/* aa18: 8dced594 */ lw $t6,%lo(g_ViData)($t6) -/* aa1c: 3c028006 */ lui $v0,%hi(var8005d59c) -/* aa20: 2442d59c */ addiu $v0,$v0,%lo(var8005d59c) +/* aa14: 8f18cac0 */ lw $t8,%lo(g_FrameBuffers)($t8) +/* aa18: 8dced594 */ lw $t6,%lo(g_ViBackData)($t6) +/* aa1c: 3c028006 */ lui $v0,%hi(g_ViReconfigured) +/* aa20: 2442d59c */ addiu $v0,$v0,%lo(g_ViReconfigured) /* aa24: add80028 */ sw $t8,0x28($t6) /* aa28: 8c590000 */ lw $t9,0x0($v0) /* aa2c: 53200005 */ beqzl $t9,.L0000aa44 @@ -1591,26 +1605,182 @@ glabel vi0000a044 ); #endif -void vi0000aa50(f32 arg0) +// Mismatch: Different codegen near reg usage +//void viUpdateMode(void) +//{ +// struct rend_vidat *prevdata; +// f32 x; +// f32 y; +// s32 reg; +// s32 v1; +// s32 tmp; +// +// if (g_ViBackData->mode != g_ViFrontData->mode) { +// switch (g_ViBackData->mode) { +// case 0: +// osViSetYScale(1); +// osViBlack(true); +// break; +// case 1: +// break; +// case 2: +// break; +// } +// } +// +// x = (f32)g_ViBackData->x / (f32)g_ViBackData->bufx; +// y = (f32)g_ViBackData->y / (f32)g_ViBackData->bufy; +// +// if (g_ViBackData->mode == VIMODE_NONE) { +// y = 1; +// } +// +// g_ViXScalesBySlot[g_ViSlot] = x; +// g_ViYScalesBySlot[g_ViSlot] = y; +// +// // 12c +// if (g_ViBackData->mode == VIMODE_LO) { +// if (g_ViIs16Bit) { +// if (osTvType == OS_TV_MPAL) { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_MPAL_LAN1]; +// } else { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_NTSC_LAN1]; +// } +// } else { +// if (osTvType == OS_TV_MPAL) { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_MPAL_LAN2]; +// } else { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_NTSC_LAN2]; +// } +// } +// +// var8008dcc0[g_ViSlot].comRegs.width = g_ViBackData->bufx; +// var8008dcc0[g_ViSlot].comRegs.xScale = g_ViBackData->bufx * 1024 / 640; +// var8008dcc0[g_ViSlot].fldRegs[0].origin = g_ViBackData->bufx * 2; +// var8008dcc0[g_ViSlot].fldRegs[1].origin = g_ViBackData->bufx * 2; +// +// // 324 +// if (IS4MB()) { +// var8008dcc0[g_ViSlot].fldRegs[0].yScale = 1024; +// var8008dcc0[g_ViSlot].fldRegs[1].yScale = 1024; +// } else { +// var8008dcc0[g_ViSlot].fldRegs[0].yScale = g_ViBackData->bufy * 2048 / 440; +// var8008dcc0[g_ViSlot].fldRegs[1].yScale = g_ViBackData->bufy * 2048 / 440; +// } +// +// // 3ac +// reg = var8008dcc0[g_ViSlot].comRegs.hStart; +// reg = ADD_LOW_AND_HI_16_MOD(reg, var8005d588); +// var8008dcc0[g_ViSlot].comRegs.hStart = reg; +// var8008dcc0[g_ViSlot].fldRegs[0].vStart = reg; +// var8008dcc0[g_ViSlot].fldRegs[1].vStart = reg; +// var8008de08 = reg; +// +// v1 = g_ViBackData->bufy * 1024 / var8008dcc0[g_ViSlot].fldRegs[0].yScale; +// +// // 458 +// if (v1 > 300) { +// v1 >>= 1; +// } +// +// tmp = 277 - v1; +// reg = ((tmp + 2) << 16) | (tmp + ((v1 - 2) * 2) + 2); +// reg = ADD_LOW_AND_HI_16_MOD(reg, var8005d58c); +// var8008de0c = reg; +// var8008de10 = reg; +// +// g_SchedViModesPending[g_ViSlot] = true; +// } else /*534*/ if (g_ViBackData->mode == VIMODE_HI) { +// if (osTvType == OS_TV_MPAL) { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_MPAL_HAF1]; +// } else { +// var8008dcc0[g_ViSlot] = osViModeTable[OS_VI_NTSC_HAF1]; +// } +// +// var8008dcc0[g_ViSlot].comRegs.width = g_ViBackData->bufx; +// var8008dcc0[g_ViSlot].comRegs.xScale = g_ViBackData->bufx * 1024 / 640; +// var8008dcc0[g_ViSlot].fldRegs[0].yScale = 2048; +// var8008dcc0[g_ViSlot].fldRegs[1].yScale = 2048; +// var8008dcc0[g_ViSlot].fldRegs[0].origin = g_ViBackData->bufx * 2; +// var8008dcc0[g_ViSlot].fldRegs[1].origin = g_ViBackData->bufx * 4; +// +// reg = var8008dcc0[g_ViSlot].comRegs.hStart; +// reg = ADD_LOW_AND_HI_16_MOD(reg, var8005d588); +// var8008dcc0[g_ViSlot].comRegs.hStart = reg; +// var8008de08 = reg; +// +// reg = var8008dcc0[g_ViSlot].fldRegs[0].vStart; +// reg = ADD_LOW_AND_HI_16_MOD(reg, var8005d58c); +// var8008dcc0[g_ViSlot].fldRegs[0].vStart = reg; +// var8008de0c = reg; +// +// reg = var8008dcc0[g_ViSlot].fldRegs[1].vStart; +// reg = ADD_LOW_AND_HI_16_MOD(reg, var8005d58c); +// var8008dcc0[g_ViSlot].fldRegs[1].vStart = reg; +// var8008de10 = reg; +// +// // 7f8 +// if (var8005dd18) { +// reg = var8005d58c; +// reg = (reg + 431) % 0xffff << 16 | (reg + 123) % 0xffff; +// var8008dcc0[g_ViSlot].fldRegs[0].vStart = reg; +// var8008de0c = reg; +// +// reg = var8005d58c; +// reg = (reg + 433) % 0xffff << 16 | (reg + 121) % 0xffff; +// var8008dcc0[g_ViSlot].fldRegs[1].vStart = reg; +// var8008de10 = reg; +// } +// +// g_SchedViModesPending[g_ViSlot] = true; +// } else { +// // 8f4 +// g_SchedViModesPending[g_ViSlot] = false; +// } +// +// // 908 +// g_ViSlot = (g_ViSlot + 1) % 2; +// +// g_RdpCurTask->framebuffer = g_ViIs16Bit ? g_ViBackData->fb : g_FrameBuffers[0]; +// +// prevdata = g_ViBackData; +// +// g_ViFrontIndex = (g_ViFrontIndex + 1) % 2; +// g_ViBackIndex = (g_ViBackIndex + 1) % 2; +// +// g_ViFrontData = g_ViDataArray + g_ViFrontIndex; +// g_ViBackData = g_ViDataArray + g_ViBackIndex; +// +// bcopy(prevdata, g_ViBackData, sizeof(g_ViBackData)); +// +// g_ViBackData->fb = g_FrameBuffers[g_ViBackIndex]; +// +// if (g_ViReconfigured) { +// g_ViReconfigured = false; +// viBlack(false); +// } +//} + +void viShake(f32 intensity) { - if (arg0 > 14) { - arg0 = 14; + if (intensity > 14) { + intensity = 14; } - if (arg0 < 0) { - arg0 = 0; + if (intensity < 0) { + intensity = 0; } - var8005ce98 = arg0; - var8005ce9c = 10; + g_ViShakeIntensity = intensity; + g_ViShakeTimer = 10; } -void vi0000aab0(s32 mode) +void viSetMode(s32 mode) { - g_ViData->mode = mode; + g_ViBackData->mode = mode; - g_ViData->x = g_ViData->bufx = var700526d0[mode]; - g_ViData->y = g_ViData->bufy = var700526d8[mode]; + g_ViBackData->x = g_ViBackData->bufx = g_ViModeWidths[mode]; + g_ViBackData->y = g_ViBackData->bufy = g_ViModeHeights[mode]; } void viSet16Bit(void) @@ -1623,29 +1793,29 @@ void viSet32Bit(void) g_ViIs16Bit = false; } -u8 *viGetUnk28(void) +u8 *viGetBackBuffer(void) { - return g_ViData->fb; + return g_ViBackData->fb; } -u8 *vi2GetUnk28(void) +u8 *viGetFrontBuffer(void) { - return var8005d590->fb; + return g_ViFrontData->fb; } -void viSetUnk28(u8 *fb) +void viSetBackBuffer(u8 *fb) { - g_ViData->fb = fb; + g_ViBackData->fb = fb; } Vp *viGetCurrentPlayerViewport(void) { - return &g_Vars.currentplayer->viewport[var80092877]; + return &g_Vars.currentplayer->viewport[g_ViBackIndex]; } -u16 vi0000ab6c(void) +u16 viGetPerspScale(void) { - return var80092874; + return g_ViPerspScale; } Gfx *vi0000ab78(Gfx *gdl) @@ -1658,7 +1828,7 @@ Gfx *vi0000ab78(Gfx *gdl) Mtx *sp48; u16 sp46; - guPerspectiveF(sp110.m, &sp46, g_ViData->fovy, g_ViData->aspect, g_ViData->znear, g_ViData->zfar + g_ViData->zfar, 1); + guPerspectiveF(sp110.m, &sp46, g_ViBackData->fovy, g_ViBackData->aspect, g_ViBackData->znear, g_ViBackData->zfar + g_ViBackData->zfar, 1); func00015d18(currentPlayerGetMatrix1740(), &sp90); sp90.m[3][0] = 0; @@ -1686,7 +1856,7 @@ Gfx *vi0000aca4(Gfx *gdl, f32 znear, f32 zfar) Mtxf tmp; Mtx *mtx = gfxAllocateMatrix(); - guPerspectiveF(tmp.m, &scale, g_ViData->fovy, g_ViData->aspect, znear, zfar, 1); + guPerspectiveF(tmp.m, &scale, g_ViBackData->fovy, g_ViBackData->aspect, znear, zfar, 1); guMtxF2L(tmp.m, mtx); gSPMatrix(gdl++, OS_K0_TO_PHYSICAL(mtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); @@ -1697,20 +1867,20 @@ Gfx *vi0000aca4(Gfx *gdl, f32 znear, f32 zfar) Gfx *vi0000ad5c(Gfx *gdl, Vp *vp) { - vp[var80092877].vp.vscale[0] = g_ViData->viewx * 2; - vp[var80092877].vp.vtrans[0] = g_ViData->viewx * 2 + g_ViData->viewleft * 4; + vp[g_ViBackIndex].vp.vscale[0] = g_ViBackData->viewx * 2; + vp[g_ViBackIndex].vp.vtrans[0] = g_ViBackData->viewx * 2 + g_ViBackData->viewleft * 4; - vp[var80092877].vp.vscale[1] = g_ViData->viewy * 2; - vp[var80092877].vp.vtrans[1] = g_ViData->viewy * 2 + g_ViData->viewtop * 4; + vp[g_ViBackIndex].vp.vscale[1] = g_ViBackData->viewy * 2; + vp[g_ViBackIndex].vp.vtrans[1] = g_ViBackData->viewy * 2 + g_ViBackData->viewtop * 4; - gSPViewport(gdl++, OS_K0_TO_PHYSICAL(&vp[var80092877])); + gSPViewport(gdl++, OS_K0_TO_PHYSICAL(&vp[g_ViBackIndex])); var80092870 = gfxAllocateMatrix(); - guPerspectiveF(var80092830.m, &var80092874, g_ViData->fovy, g_ViData->aspect, g_ViData->znear, g_ViData->zfar, 1); + guPerspectiveF(var80092830.m, &g_ViPerspScale, g_ViBackData->fovy, g_ViBackData->aspect, g_ViBackData->znear, g_ViBackData->zfar, 1); guMtxF2L(var80092830.m, var80092870); gSPMatrix(gdl++, OS_K0_TO_PHYSICAL(var80092870), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPPerspNormalize(gdl++, var80092874); + gSPPerspNormalize(gdl++, g_ViPerspScale); currentPlayerSetUnk1750(var80092870); currentPlayerSetUnk1754(&var80092830); @@ -1720,26 +1890,26 @@ Gfx *vi0000ad5c(Gfx *gdl, Vp *vp) Gfx *vi0000af00(Gfx *gdl, Vp *vp) { - vp[var80092877].vp.vscale[0] = g_ViData->viewx * 2; - vp[var80092877].vp.vtrans[0] = g_ViData->viewx * 2 + g_ViData->viewleft * 4; + vp[g_ViBackIndex].vp.vscale[0] = g_ViBackData->viewx * 2; + vp[g_ViBackIndex].vp.vtrans[0] = g_ViBackData->viewx * 2 + g_ViBackData->viewleft * 4; - vp[var80092877].vp.vscale[1] = g_ViData->viewy * 2; - vp[var80092877].vp.vtrans[1] = g_ViData->viewy * 2 + g_ViData->viewtop * 4; + vp[g_ViBackIndex].vp.vscale[1] = g_ViBackData->viewy * 2; + vp[g_ViBackIndex].vp.vtrans[1] = g_ViBackData->viewy * 2 + g_ViBackData->viewtop * 4; - vp[var80092877].vp.vscale[2] = 511; - vp[var80092877].vp.vtrans[2] = 511; + vp[g_ViBackIndex].vp.vscale[2] = 511; + vp[g_ViBackIndex].vp.vtrans[2] = 511; - vp[var80092877].vp.vscale[3] = 0; - vp[var80092877].vp.vtrans[3] = 0; + vp[g_ViBackIndex].vp.vscale[3] = 0; + vp[g_ViBackIndex].vp.vtrans[3] = 0; - gSPViewport(gdl++, OS_K0_TO_PHYSICAL(&vp[var80092877])); + gSPViewport(gdl++, OS_K0_TO_PHYSICAL(&vp[g_ViBackIndex])); var80092870 = gfxAllocateMatrix(); - guPerspectiveF(var80092830.m, &var80092874, g_ViData->fovy, g_ViData->aspect, g_ViData->znear, g_ViData->zfar, 1); + guPerspectiveF(var80092830.m, &g_ViPerspScale, g_ViBackData->fovy, g_ViBackData->aspect, g_ViBackData->znear, g_ViBackData->zfar, 1); guMtxF2L(var80092830.m, var80092870); gSPMatrix(gdl++, OS_K0_TO_PHYSICAL(var80092870), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPPerspNormalize(gdl++, var80092874); + gSPPerspNormalize(gdl++, g_ViPerspScale); currentPlayerSetUnk1750(var80092870); currentPlayerSetUnk1754(&var80092830); @@ -1752,11 +1922,11 @@ Gfx *vi0000b0e8(Gfx *gdl, f32 fovy, f32 aspect) Mtxf tmp; Mtx *mtx = gfxAllocateMatrix(); - guPerspectiveF(tmp.m, &var80092874, fovy, aspect, g_ViData->znear, g_ViData->zfar, 1); + guPerspectiveF(tmp.m, &g_ViPerspScale, fovy, aspect, g_ViBackData->znear, g_ViBackData->zfar, 1); guMtxF2L(tmp.m, mtx); gSPMatrix(gdl++, OS_K0_TO_PHYSICAL(mtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPPerspNormalize(gdl++, var80092874); + gSPPerspNormalize(gdl++, g_ViPerspScale); return gdl; } @@ -1771,9 +1941,9 @@ Gfx *vi0000b1d0(Gfx *gdl) gdl = vi0000b1a8(gdl); if (g_ViIs16Bit) { - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, g_ViData->bufx, OS_K0_TO_PHYSICAL(g_ViData->fb)); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, g_ViBackData->bufx, OS_K0_TO_PHYSICAL(g_ViBackData->fb)); } else { - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_32b, g_ViData->bufx, OS_K0_TO_PHYSICAL(var8009cac0[0])); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_32b, g_ViBackData->bufx, OS_K0_TO_PHYSICAL(g_FrameBuffers[0])); } return gdl; @@ -1781,7 +1951,7 @@ Gfx *vi0000b1d0(Gfx *gdl) Gfx *vi0000b280(Gfx *gdl) { - if (g_ViData->usezbuf) { + if (g_ViBackData->usezbuf) { gdl = func0f1762ac(gdl); gdl = func0f1763f4(gdl); } @@ -1789,10 +1959,10 @@ Gfx *vi0000b280(Gfx *gdl) return gdl; } -Gfx *func0000b2c4(Gfx *gdl) +Gfx *viFillBuffer(Gfx *gdl) { gDPSetCycleType(gdl++, G_CYC_FILL); - gDPFillRectangle(gdl++, 0, 0, g_ViData->bufx - 1, g_ViData->bufy - 1); + gDPFillRectangle(gdl++, 0, 0, g_ViBackData->bufx - 1, g_ViBackData->bufy - 1); gDPPipeSync(gdl++); return gdl; @@ -1920,131 +2090,131 @@ glabel vi0000bd68nb ); #endif -void viSetBuf(s16 x, s16 y) +void viSetBufSize(s16 width, s16 height) { - g_ViData->bufx = x; - g_ViData->bufy = y; + g_ViBackData->bufx = width; + g_ViBackData->bufy = height; } -s16 viGetBufX(void) +s16 viGetBufWidth(void) { - return g_ViData->bufx; + return g_ViBackData->bufx; } -s16 viGetBufY(void) +s16 viGetBufHeight(void) { - return g_ViData->bufy; + return g_ViBackData->bufy; } -void viSetXY(s16 x, s16 y) +void viSetSize(s16 width, s16 height) { - g_ViData->x = x; - g_ViData->y = y; + g_ViBackData->x = width; + g_ViBackData->y = height; } s16 viGetWidth(void) { - return g_ViData->x; + return g_ViBackData->x; } s16 viGetHeight(void) { - return g_ViData->y; + return g_ViBackData->y; } -void viSetViewSize(s16 x, s16 y) +void viSetViewSize(s16 width, s16 height) { - g_ViData->viewx = x; - g_ViData->viewy = y; + g_ViBackData->viewx = width; + g_ViBackData->viewy = height; - currentPlayerSetScreenSize(g_ViData->viewx, g_ViData->viewy); + currentPlayerSetScreenSize(g_ViBackData->viewx, g_ViBackData->viewy); currentPlayerSetCameraScale(); } s16 viGetViewWidth(void) { - return g_ViData->viewx; + return g_ViBackData->viewx; } s16 viGetViewHeight(void) { - return g_ViData->viewy; + return g_ViBackData->viewy; } void viSetViewPosition(s16 left, s16 top) { - g_ViData->viewleft = left; - g_ViData->viewtop = top; + g_ViBackData->viewleft = left; + g_ViBackData->viewtop = top; - currentPlayerSetScreenPosition(g_ViData->viewleft, g_ViData->viewtop); + currentPlayerSetScreenPosition(g_ViBackData->viewleft, g_ViBackData->viewtop); } s16 viGetViewLeft(void) { - return g_ViData->viewleft; + return g_ViBackData->viewleft; } s16 viGetViewTop(void) { - return g_ViData->viewtop; + return g_ViBackData->viewtop; } void viSetUseZBuf(bool use) { - g_ViData->usezbuf = use; + g_ViBackData->usezbuf = use; } void viSetFovY(f32 fovy) { - g_ViData->fovy = fovy; + g_ViBackData->fovy = fovy; - currentPlayerSetPerspective(g_ViData->znear, g_ViData->fovy, g_ViData->aspect); + currentPlayerSetPerspective(g_ViBackData->znear, g_ViBackData->fovy, g_ViBackData->aspect); currentPlayerSetCameraScale(); } void viSetAspect(f32 aspect) { - g_ViData->aspect = aspect; + g_ViBackData->aspect = aspect; - currentPlayerSetPerspective(g_ViData->znear, g_ViData->fovy, g_ViData->aspect); + currentPlayerSetPerspective(g_ViBackData->znear, g_ViBackData->fovy, g_ViBackData->aspect); currentPlayerSetCameraScale(); } f32 viGetAspect(void) { - return g_ViData->aspect; + return g_ViBackData->aspect; } void viSetFovAspectAndSize(f32 fovy, f32 aspect, s16 width, s16 height) { - g_ViData->fovy = fovy; - g_ViData->aspect = aspect; - g_ViData->viewx = width; - g_ViData->viewy = height; + g_ViBackData->fovy = fovy; + g_ViBackData->aspect = aspect; + g_ViBackData->viewx = width; + g_ViBackData->viewy = height; - currentPlayerSetScreenSize(g_ViData->viewx, g_ViData->viewy); - currentPlayerSetPerspective(g_ViData->znear, g_ViData->fovy, g_ViData->aspect); + currentPlayerSetScreenSize(g_ViBackData->viewx, g_ViBackData->viewy); + currentPlayerSetPerspective(g_ViBackData->znear, g_ViBackData->fovy, g_ViBackData->aspect); currentPlayerSetCameraScale(); } f32 viGetFovY(void) { - return g_ViData->fovy; + return g_ViBackData->fovy; } void viSetZRange(f32 near, f32 far) { - g_ViData->znear = near; - g_ViData->zfar = far; + g_ViBackData->znear = near; + g_ViBackData->zfar = far; - currentPlayerSetPerspective(g_ViData->znear, g_ViData->fovy, g_ViData->aspect); + currentPlayerSetPerspective(g_ViBackData->znear, g_ViBackData->fovy, g_ViBackData->aspect); currentPlayerSetCameraScale(); } void viGetZRange(struct zrange *zrange) { - zrange->near = g_ViData->znear; - zrange->far = g_ViData->zfar; + zrange->near = g_ViBackData->znear; + zrange->far = g_ViBackData->zfar; } Gfx *viSetFillColour(Gfx *gdl, s32 r, s32 g, s32 b) diff --git a/src/lib/main.c b/src/lib/main.c index 2eb19bc96..8efe87341 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -67,7 +67,7 @@ u32 var8005d9b8 = 0x0004b000; s32 var8005d9bc = 0; s32 var8005d9c0 = 0; s32 var8005d9c4 = 0; -s32 var8005d9c8 = 1; +bool g_MainGameLogicEnabled = true; u32 var8005d9cc = 0; bool g_MainIsEndscreen = false; s32 g_DoBootPakMenu = 0; @@ -311,7 +311,7 @@ glabel mainInit /* d294: 00000000 */ nop /* d298: 0c004d3a */ jal func00013758 /* d29c: 00000000 */ nop -/* d2a0: 0c002668 */ jal vi00009ab0 +/* d2a0: 0c002668 */ jal viConfigureForLogos /* d2a4: 00000000 */ nop /* d2a8: 0c00bcc2 */ jal rmonIsDisabled /* d2ac: 00000000 */ nop @@ -517,9 +517,9 @@ glabel mainInit /* d594: 14c9fff3 */ bne $a2,$t1,.PF0000d564 /* d598: 24e70240 */ addiu $a3,$a3,0x240 .PF0000d59c: -/* d59c: 0c0029fd */ jal vi0000aab0 +/* d59c: 0c0029fd */ jal viSetMode /* d5a0: 24040002 */ li $a0,0x2 -/* d5a4: 0c002696 */ jal vi00009b50 +/* d5a4: 0c002696 */ jal viConfigureForBanner /* d5a8: 02002025 */ move $a0,$s0 /* d5ac: 8faa0048 */ lw $t2,0x48($sp) /* d5b0: 3c018006 */ lui $at,0x8006 @@ -557,7 +557,7 @@ glabel mainInit /* d624: 27b01458 */ addiu $s0,$sp,0x1458 /* d628: 5561000d */ bnel $t3,$at,.PF0000d660 /* d62c: 28610006 */ slti $at,$v1,0x6 -/* d630: 0c0027d9 */ jal vi0000a044 +/* d630: 0c0027d9 */ jal viUpdateMode /* d634: afa31490 */ sw $v1,0x1490($sp) /* d638: 3c048006 */ lui $a0,0x8006 /* d63c: 3c058006 */ lui $a1,0x8006 @@ -676,7 +676,7 @@ glabel mainInit /* d7f0: 00000000 */ nop /* d7f4: 0fc00024 */ jal func0f000090 /* d7f8: 00000000 */ nop -/* d7fc: 0c0026c0 */ jal vi00009bf8 +/* d7fc: 0c0026c0 */ jal viConfigureForLegal /* d800: 00000000 */ nop /* d804: 0c002779 */ jal viBlack /* d808: 24040001 */ li $a0,0x1 @@ -714,7 +714,7 @@ glabel mainInit /* d554: 00000000 */ nop /* d558: 0c004dd6 */ jal func00013758 /* d55c: 00000000 */ nop -/* d560: 0c0026ac */ jal vi00009ab0 +/* d560: 0c0026ac */ jal viConfigureForLogos /* d564: 00000000 */ nop /* d568: 0c00be82 */ jal rmonIsDisabled /* d56c: 00000000 */ nop @@ -920,9 +920,9 @@ glabel mainInit /* d858: 14c9fff3 */ bne $a2,$t1,.L0000d828 /* d85c: 24e70240 */ addiu $a3,$a3,0x240 .L0000d860: -/* d860: 0c002aac */ jal vi0000aab0 +/* d860: 0c002aac */ jal viSetMode /* d864: 24040002 */ addiu $a0,$zero,0x2 -/* d868: 0c0026d4 */ jal vi00009b50 +/* d868: 0c0026d4 */ jal viConfigureForBanner /* d86c: 02002025 */ or $a0,$s0,$zero /* d870: 8faa0048 */ lw $t2,0x48($sp) /* d874: 3c018006 */ lui $at,%hi(g_RdpOutBufferStart) @@ -960,7 +960,7 @@ glabel mainInit /* d8e8: 27b01450 */ addiu $s0,$sp,0x1450 /* d8ec: 5561000d */ bnel $t3,$at,.L0000d924 /* d8f0: 28610006 */ slti $at,$v1,0x6 -/* d8f4: 0c002811 */ jal vi0000a044 +/* d8f4: 0c002811 */ jal viUpdateMode /* d8f8: afa31488 */ sw $v1,0x1488($sp) /* d8fc: 3c048006 */ lui $a0,%hi(var8005dcc8) /* d900: 3c058006 */ lui $a1,%hi(var8005dcf0) @@ -1079,7 +1079,7 @@ glabel mainInit /* dab4: 00000000 */ nop /* dab8: 0fc00024 */ jal func0f000090 /* dabc: 00000000 */ nop -/* dac0: 0c0026fe */ jal vi00009bf8 +/* dac0: 0c0026fe */ jal viConfigureForLegal /* dac4: 00000000 */ nop /* dac8: 0c0027b1 */ jal viBlack /* dacc: 24040001 */ addiu $a0,$zero,0x1 @@ -1111,7 +1111,7 @@ glabel mainInit /* dabc: 00000000 */ sll $zero,$zero,0x0 /* dac0: 0c004fea */ jal func00013758 /* dac4: 00000000 */ sll $zero,$zero,0x0 -/* dac8: 0c002714 */ jal vi00009ab0 +/* dac8: 0c002714 */ jal viConfigureForLogos /* dacc: 00000000 */ sll $zero,$zero,0x0 /* dad0: 0c00c456 */ jal rmonIsDisabled /* dad4: 00000000 */ sll $zero,$zero,0x0 @@ -1298,9 +1298,9 @@ glabel mainInit /* dd78: 28c15f10 */ slti $at,$a2,0x5f10 /* dd7c: 1420fff2 */ bnez $at,.NB0000dd48 /* dd80: 24e70240 */ addiu $a3,$a3,0x240 -/* dd84: 0c002b0c */ jal vi0000aab0 +/* dd84: 0c002b0c */ jal viSetMode /* dd88: 24040002 */ addiu $a0,$zero,0x2 -/* dd8c: 0c00273c */ jal vi00009b50 +/* dd8c: 0c00273c */ jal viConfigureForBanner /* dd90: 02202025 */ or $a0,$s1,$zero /* dd94: 3c018006 */ lui $at,0x8006 /* dd98: 3c118009 */ lui $s1,0x8009 @@ -1336,7 +1336,7 @@ glabel mainInit /* de04: 854b0000 */ lh $t3,0x0($t2) /* de08: 5561000b */ bnel $t3,$at,.NB0000de38 /* de0c: 2a010006 */ slti $at,$s0,0x6 -/* de10: 0c002871 */ jal vi0000a044 +/* de10: 0c002871 */ jal viUpdateMode /* de14: afae0054 */ sw $t6,0x54($sp) /* de18: 3c058006 */ lui $a1,0x8006 /* de1c: 24a5f610 */ addiu $a1,$a1,-2544 @@ -1452,7 +1452,7 @@ glabel mainInit /* dfc4: 00000000 */ sll $zero,$zero,0x0 /* dfc8: 0fc00024 */ jal func0f000090 /* dfcc: 00000000 */ sll $zero,$zero,0x0 -/* dfd0: 0c002767 */ jal vi00009bf8 +/* dfd0: 0c002767 */ jal viConfigureForLegal /* dfd4: 00000000 */ sll $zero,$zero,0x0 /* dfd8: 0c00281a */ jal viBlack /* dfdc: 24040001 */ addiu $a0,$zero,0x1 @@ -1501,7 +1501,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // func000121e0(); // func00012a0c(); // func00013758(); -// vi00009ab0(); +// viConfigureForLogos(); // var8005d9b0 = rmonIsDisabled(); // joySystemInit(); // osCreateMesgQueue(&queue, &msg, 1); @@ -1588,8 +1588,8 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // } // } // -// vi0000aab0(2); -// vi00009b50(fb); +// viSetMode(VIMODE_HI); +// viConfigureForBanner(fb); // // g_RdpOutBufferStart = texture; // g_RdpOutBufferEnd = texture + 0x400; // 0x800 bytes, because texture is u16 @@ -1606,7 +1606,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // osRecvMesg(&var8008db30, &sp1470, OS_MESG_BLOCK); // // if (*(s16 *)sp1470 == 1) { -// vi0000a044(); +// viUpdateMode(); // rdpCreateTask(var8005dcc8, var8005dcf0, 0, sp1450); // j++; // } @@ -1673,7 +1673,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // stub0f000850(); // stub0f000860(); // func0f000090(); -// vi00009bf8(); +// viConfigureForLegal(); // viBlack(true); // // var8005dd18 = 0; @@ -1780,7 +1780,7 @@ void mainLoop(void) // Outer loop - this is infinite because ending is never changed while (!ending) { var8005d9cc = 0; - var8005d9c8 = 1; + g_MainGameLogicEnabled = true; msg = NULL; g_MainIsEndscreen = false; @@ -2607,7 +2607,7 @@ void mainTick(void) joyDebugJoy(); func00001b28(0); - if (var8005d9c8) { + if (g_MainGameLogicEnabled) { gdl = gdlstart = gfxGetMasterDisplayList(); gDPSetTile(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); @@ -2642,9 +2642,9 @@ void mainTick(void) gSPEndDisplayList(gdl++); } - if (var8005d9c8) { + if (g_MainGameLogicEnabled) { gfxSwapBuffers(); - vi0000a044(); + viUpdateMode(); } rdpCreateTask(gdlstart, gdl, 0, array); @@ -3014,7 +3014,7 @@ glabel mainTick /* ee24: 8fa40090 */ lw $a0,0x90($sp) /* ee28: 0fc588d6 */ jal gfxSwapBuffers /* ee2c: 00000000 */ sll $zero,$zero,0x0 -/* ee30: 0c002871 */ jal vi0000a044 +/* ee30: 0c002871 */ jal viUpdateMode /* ee34: 00000000 */ sll $zero,$zero,0x0 /* ee38: 8fa40090 */ lw $a0,0x90($sp) .NB0000ee3c: diff --git a/src/lib/sched.c b/src/lib/sched.c index 4a50934f2..9067661a4 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -42,13 +42,13 @@ u32 var8005ce68 = 0x00000000; u32 var8005ce6c = 0x02aea540; u32 var8005ce70 = 0x00000000; s32 var8005ce74 = 0; -f32 var8005ce78[2] = {1, 1}; -f32 var8005ce80[2] = {1, 1}; -u32 var8005ce88[2] = {0}; +f32 g_ViXScalesBySlot[2] = {1, 1}; +f32 g_ViYScalesBySlot[2] = {1, 1}; +u32 g_SchedViModesPending[2] = {false, false}; s32 g_ViUnblackTimer = 3; -s32 var8005ce94 = 1; -s32 var8005ce98 = 0; -u32 var8005ce9c = 0x00000000; +s32 g_ViShakeDirection = 1; +s32 g_ViShakeIntensity = 0; +s32 g_ViShakeTimer = 0; u32 var8005cea0 = 0x00000000; u32 var8005cea4 = 0x00000000; OSMesg var8005cea8 = (OSMesg)0x00040000; @@ -94,8 +94,8 @@ void func00001b98(u32 value) { if ((value & 0xf) == 0 && ((var8005ce68 && var8005ce64) || var8005ce60)) { if (osGetCount() - var8005ce70 > var8005ce6c) { - func0000cf54(var8009cac0[0]); - func0000cf54(var8009cac0[1]); + func0000cf54(g_FrameBuffers[0]); + func0000cf54(g_FrameBuffers[1]); } } } @@ -519,13 +519,13 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t) && (t->flags & OS_SC_SWAPBUFFER) && (t->flags & OS_SC_LAST_TASK)) { if (var8005cec8) { - osViBlack(0); + osViBlack(false); var8005cec8 = 0; } var8005ce74 = (var8005ce74 + 1) % 2; - if (var8005ce88[1 - var8005ce74] != 0) { + if (g_SchedViModesPending[1 - var8005ce74]) { if (var8008dd60[1 - var8005ce74]->comRegs.width != var8008dcc0[1 - var8005ce74].comRegs.width || var8008dd60[1 - var8005ce74]->comRegs.xScale != var8008dcc0[1 - var8005ce74].comRegs.xScale || var8008dd60[1 - var8005ce74]->fldRegs[0].yScale != var8008dcc0[1 - var8005ce74].fldRegs[0].yScale @@ -540,12 +540,12 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t) osViSetMode(var8008dd60[1 - var8005ce74]); osViBlack(g_ViUnblackTimer); - osViSetXScale(var8005ce78[1 - var8005ce74]); - osViSetYScale(var8005ce80[1 - var8005ce74]); - osViSetSpecialFeatures(0x42); + osViSetXScale(g_ViXScalesBySlot[1 - var8005ce74]); + osViSetYScale(g_ViYScalesBySlot[1 - var8005ce74]); + osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON); } - var8005ce88[1 - var8005ce74] = 0; + g_SchedViModesPending[1 - var8005ce74] = false; } if (g_ViUnblackTimer != 0 && g_ViUnblackTimer < 3) { diff --git a/src/lib/ultra/io/conteepread.c b/src/lib/ultra/io/conteepread.c index 4171f0d4e..f6cbd00f5 100644 --- a/src/lib/ultra/io/conteepread.c +++ b/src/lib/ultra/io/conteepread.c @@ -8,7 +8,7 @@ OSPifRam __osEepPifRam; u32 var8009d010pf[4]; #endif -u8 *var8009cac0[2]; +u8 *g_FrameBuffers[2]; void __osPackEepReadData(u8 address);