Decompile currentPlayerGetViewportWidth

This commit is contained in:
Ryan Dwyer
2020-11-28 22:03:43 +10:00
parent 30eb19fc46
commit 47cde9c239
4 changed files with 47 additions and 190 deletions
+6 -6
View File
@@ -66,12 +66,12 @@ u32 var800705b8 = 0x00000000;
u32 var800705bc = 0x00000000;
struct var800705c0 var800705c0[] = {
{ 0x0000, 0x0140, 0x00dc, 0x00000140, 1, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a },
{ 0x0000, 0x0280, 0x00dc, 0x00000280, 0.5, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000014, 0x00000088, 0x0000002a },
{ 0x0000, 0x0140, 0x01e0, 0x00000140, 2, 0x00000002, 0x000001b8, 0x00000014, 0x00000168, 0x0000003c, 0x00000110, 0x00000068 },
{ 0x0000, 0x01b8, 0x014a, 0x000001b8, 1, 0x00000001, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000, 0x0000014a, 0x00000000 },
{ 0x0000, 0x01b8, 0x00f0, 0x000001b8, 0.72727274894714, 0x00000001, 0x000000dc, 0x00000000, 0x000000b4, 0x00000000, 0x00000088, 0x00000000 },
{ 0x0000, 0x0190, 0x012c, 0x00000190, 1, 0x00000002, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000, 0x0000012c, 0x00000000 },
{ 320, 220, 320, 1, 0x00000001, 220, 0, 180, 20, 0x00000088, 0x0000002a },
{ 640, 220, 640, 0.5, 0x00000001, 220, 0, 180, 20, 0x00000088, 0x0000002a },
{ 320, 480, 320, 2, 0x00000002, 440, 20, 360, 60, 0x00000110, 0x00000068 },
{ 440, 330, 440, 1, 0x00000001, 330, 0, 330, 0, 0x0000014a, 0x00000000 },
{ 440, 240, 440, 0.72727274894714, 0x00000001, 220, 0, 180, 0, 0x00000088, 0x00000000 },
{ 400, 300, 400, 1, 0x00000002, 300, 0, 300, 0, 0x0000012c, 0x00000000 },
};
s32 g_HiResActive = 0;
+38 -180
View File
@@ -5753,7 +5753,7 @@ void optionsSetHiRes(bool enable)
s16 func0f0bc44c(void)
{
s16 value = var800705c0[g_HiResActive].unk02;
s16 value = var800705c0[g_HiResActive].unk00;
return value;
}
@@ -5779,178 +5779,36 @@ bool func0f0bc4c0(void)
return (var80070764 && !var8005d9d0) || menuGetRoot() == MENUROOT_9;
}
GLOBAL_ASM(
glabel func0f0bc554
/* f0bc554: 27bdffe8 */ addiu $sp,$sp,-24
/* f0bc558: afbf0014 */ sw $ra,0x14($sp)
/* f0bc55c: 0fc2f130 */ jal func0f0bc4c0
/* f0bc560: 00000000 */ nop
/* f0bc564: 14400083 */ bnez $v0,.L0f0bc774
/* f0bc568: 3c0c8007 */ lui $t4,%hi(g_HiResActive)
/* f0bc56c: 3c06800a */ lui $a2,%hi(g_Vars)
/* f0bc570: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f0bc574: 8cc7006c */ lw $a3,0x6c($a2)
/* f0bc578: 00002825 */ or $a1,$zero,$zero
/* f0bc57c: 00002025 */ or $a0,$zero,$zero
/* f0bc580: 10e00003 */ beqz $a3,.L0f0bc590
/* f0bc584: 00001825 */ or $v1,$zero,$zero
/* f0bc588: 10000001 */ b .L0f0bc590
/* f0bc58c: 24050001 */ addiu $a1,$zero,0x1
.L0f0bc590:
/* f0bc590: 8cc80068 */ lw $t0,0x68($a2)
/* f0bc594: 00001025 */ or $v0,$zero,$zero
/* f0bc598: 11000003 */ beqz $t0,.L0f0bc5a8
/* f0bc59c: 00000000 */ nop
/* f0bc5a0: 10000001 */ b .L0f0bc5a8
/* f0bc5a4: 24040001 */ addiu $a0,$zero,0x1
.L0f0bc5a8:
/* f0bc5a8: 8cc90064 */ lw $t1,0x64($a2)
/* f0bc5ac: 11200003 */ beqz $t1,.L0f0bc5bc
/* f0bc5b0: 00000000 */ nop
/* f0bc5b4: 10000001 */ b .L0f0bc5bc
/* f0bc5b8: 24030001 */ addiu $v1,$zero,0x1
.L0f0bc5bc:
/* f0bc5bc: 8cca0070 */ lw $t2,0x70($a2)
/* f0bc5c0: 3c198007 */ lui $t9,%hi(g_HiResActive)
/* f0bc5c4: 11400003 */ beqz $t2,.L0f0bc5d4
/* f0bc5c8: 00000000 */ nop
/* f0bc5cc: 10000001 */ b .L0f0bc5d4
/* f0bc5d0: 24020001 */ addiu $v0,$zero,0x1
.L0f0bc5d4:
/* f0bc5d4: 00437021 */ addu $t6,$v0,$v1
/* f0bc5d8: 01c47821 */ addu $t7,$t6,$a0
/* f0bc5dc: 01e5c021 */ addu $t8,$t7,$a1
/* f0bc5e0: 2b010003 */ slti $at,$t8,0x3
/* f0bc5e4: 14200019 */ bnez $at,.L0f0bc64c
/* f0bc5e8: 00000000 */ nop
/* f0bc5ec: 8f3906c8 */ lw $t9,%lo(g_HiResActive)($t9)
/* f0bc5f0: 3c038007 */ lui $v1,%hi(var800705c0+0x8)
/* f0bc5f4: 8cc2028c */ lw $v0,0x28c($a2)
/* f0bc5f8: 00195880 */ sll $t3,$t9,0x2
/* f0bc5fc: 01795823 */ subu $t3,$t3,$t9
/* f0bc600: 000b5880 */ sll $t3,$t3,0x2
/* f0bc604: 01795823 */ subu $t3,$t3,$t9
/* f0bc608: 000b5880 */ sll $t3,$t3,0x2
/* f0bc60c: 006b1821 */ addu $v1,$v1,$t3
/* f0bc610: 8c6305c8 */ lw $v1,%lo(var800705c0+0x8)($v1)
/* f0bc614: 04610003 */ bgez $v1,.L0f0bc624
/* f0bc618: 00036043 */ sra $t4,$v1,0x1
/* f0bc61c: 24610001 */ addiu $at,$v1,0x1
/* f0bc620: 00016043 */ sra $t4,$at,0x1
.L0f0bc624:
/* f0bc624: 000c6c00 */ sll $t5,$t4,0x10
/* f0bc628: 10400004 */ beqz $v0,.L0f0bc63c
/* f0bc62c: 000d1c03 */ sra $v1,$t5,0x10
/* f0bc630: 24010002 */ addiu $at,$zero,0x2
/* f0bc634: 54410059 */ bnel $v0,$at,.L0f0bc79c
/* f0bc638: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0bc63c:
/* f0bc63c: 2463ffff */ addiu $v1,$v1,-1
/* f0bc640: 00037c00 */ sll $t7,$v1,0x10
/* f0bc644: 10000054 */ b .L0f0bc798
/* f0bc648: 000f1c03 */ sra $v1,$t7,0x10
.L0f0bc64c:
/* f0bc64c: 10e00003 */ beqz $a3,.L0f0bc65c
/* f0bc650: 24010002 */ addiu $at,$zero,0x2
/* f0bc654: 10000002 */ b .L0f0bc660
/* f0bc658: 24050001 */ addiu $a1,$zero,0x1
.L0f0bc65c:
/* f0bc65c: 00002825 */ or $a1,$zero,$zero
.L0f0bc660:
/* f0bc660: 11000003 */ beqz $t0,.L0f0bc670
/* f0bc664: 00002025 */ or $a0,$zero,$zero
/* f0bc668: 10000001 */ b .L0f0bc670
/* f0bc66c: 24040001 */ addiu $a0,$zero,0x1
.L0f0bc670:
/* f0bc670: 11200003 */ beqz $t1,.L0f0bc680
/* f0bc674: 00001825 */ or $v1,$zero,$zero
/* f0bc678: 10000001 */ b .L0f0bc680
/* f0bc67c: 24030001 */ addiu $v1,$zero,0x1
.L0f0bc680:
/* f0bc680: 11400003 */ beqz $t2,.L0f0bc690
/* f0bc684: 00001025 */ or $v0,$zero,$zero
/* f0bc688: 10000001 */ b .L0f0bc690
/* f0bc68c: 24020001 */ addiu $v0,$zero,0x1
.L0f0bc690:
/* f0bc690: 0043c821 */ addu $t9,$v0,$v1
/* f0bc694: 03245821 */ addu $t3,$t9,$a0
/* f0bc698: 01656021 */ addu $t4,$t3,$a1
/* f0bc69c: 1581002b */ bne $t4,$at,.L0f0bc74c
/* f0bc6a0: 3c198007 */ lui $t9,%hi(g_HiResActive)
/* f0bc6a4: 0fc54bcd */ jal optionsGetScreenSplit
/* f0bc6a8: 00000000 */ nop
/* f0bc6ac: 3c06800a */ lui $a2,%hi(g_Vars)
/* f0bc6b0: 24010001 */ addiu $at,$zero,0x1
/* f0bc6b4: 10410004 */ beq $v0,$at,.L0f0bc6c8
/* f0bc6b8: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars)
/* f0bc6bc: 90cd04e0 */ lbu $t5,0x4e0($a2)
/* f0bc6c0: 3c0f8007 */ lui $t7,%hi(g_HiResActive)
/* f0bc6c4: 11a00017 */ beqz $t5,.L0f0bc724
.L0f0bc6c8:
/* f0bc6c8: 3c0e8007 */ lui $t6,%hi(g_HiResActive)
/* f0bc6cc: 8dce06c8 */ lw $t6,%lo(g_HiResActive)($t6)
/* f0bc6d0: 3c038007 */ lui $v1,%hi(var800705c0+0x8)
/* f0bc6d4: 8ccc028c */ lw $t4,0x28c($a2)
/* f0bc6d8: 000e7880 */ sll $t7,$t6,0x2
/* f0bc6dc: 01ee7823 */ subu $t7,$t7,$t6
/* f0bc6e0: 000f7880 */ sll $t7,$t7,0x2
/* f0bc6e4: 01ee7823 */ subu $t7,$t7,$t6
/* f0bc6e8: 000f7880 */ sll $t7,$t7,0x2
/* f0bc6ec: 006f1821 */ addu $v1,$v1,$t7
/* f0bc6f0: 8c6305c8 */ lw $v1,%lo(var800705c0+0x8)($v1)
/* f0bc6f4: 04610003 */ bgez $v1,.L0f0bc704
/* f0bc6f8: 0003c043 */ sra $t8,$v1,0x1
/* f0bc6fc: 24610001 */ addiu $at,$v1,0x1
/* f0bc700: 0001c043 */ sra $t8,$at,0x1
.L0f0bc704:
/* f0bc704: 0018cc00 */ sll $t9,$t8,0x10
/* f0bc708: 00195c03 */ sra $t3,$t9,0x10
/* f0bc70c: 15800022 */ bnez $t4,.L0f0bc798
/* f0bc710: 01601825 */ or $v1,$t3,$zero
/* f0bc714: 2563ffff */ addiu $v1,$t3,-1
/* f0bc718: 00036c00 */ sll $t5,$v1,0x10
/* f0bc71c: 1000001e */ b .L0f0bc798
/* f0bc720: 000d1c03 */ sra $v1,$t5,0x10
.L0f0bc724:
/* f0bc724: 8def06c8 */ lw $t7,%lo(g_HiResActive)($t7)
/* f0bc728: 3c038007 */ lui $v1,%hi(var800705c0+0xa)
/* f0bc72c: 000fc080 */ sll $t8,$t7,0x2
/* f0bc730: 030fc023 */ subu $t8,$t8,$t7
/* f0bc734: 0018c080 */ sll $t8,$t8,0x2
/* f0bc738: 030fc023 */ subu $t8,$t8,$t7
/* f0bc73c: 0018c080 */ sll $t8,$t8,0x2
/* f0bc740: 00781821 */ addu $v1,$v1,$t8
/* f0bc744: 10000014 */ b .L0f0bc798
/* f0bc748: 846305ca */ lh $v1,%lo(var800705c0+0xa)($v1)
.L0f0bc74c:
/* f0bc74c: 8f3906c8 */ lw $t9,%lo(g_HiResActive)($t9)
/* f0bc750: 3c038007 */ lui $v1,%hi(var800705c0+0xa)
/* f0bc754: 00195880 */ sll $t3,$t9,0x2
/* f0bc758: 01795823 */ subu $t3,$t3,$t9
/* f0bc75c: 000b5880 */ sll $t3,$t3,0x2
/* f0bc760: 01795823 */ subu $t3,$t3,$t9
/* f0bc764: 000b5880 */ sll $t3,$t3,0x2
/* f0bc768: 006b1821 */ addu $v1,$v1,$t3
/* f0bc76c: 1000000a */ b .L0f0bc798
/* f0bc770: 846305ca */ lh $v1,%lo(var800705c0+0xa)($v1)
.L0f0bc774:
/* f0bc774: 8d8c06c8 */ lw $t4,%lo(g_HiResActive)($t4)
/* f0bc778: 3c038007 */ lui $v1,%hi(var800705c0+0xa)
/* f0bc77c: 000c6880 */ sll $t5,$t4,0x2
/* f0bc780: 01ac6823 */ subu $t5,$t5,$t4
/* f0bc784: 000d6880 */ sll $t5,$t5,0x2
/* f0bc788: 01ac6823 */ subu $t5,$t5,$t4
/* f0bc78c: 000d6880 */ sll $t5,$t5,0x2
/* f0bc790: 006d1821 */ addu $v1,$v1,$t5
/* f0bc794: 846305ca */ lh $v1,%lo(var800705c0+0xa)($v1)
.L0f0bc798:
/* f0bc798: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0bc79c:
/* f0bc79c: 27bd0018 */ addiu $sp,$sp,0x18
/* f0bc7a0: 00601025 */ or $v0,$v1,$zero
/* f0bc7a4: 03e00008 */ jr $ra
/* f0bc7a8: 00000000 */ nop
);
s16 currentPlayerGetViewportWidth(void)
{
s16 width;
if (func0f0bc4c0() == 0) {
if (PLAYERCOUNT() >= 3) {
width = var800705c0[g_HiResActive].unk08 / 2;
if (g_Vars.currentplayernum == 0 || g_Vars.currentplayernum == 2) {
width--;
}
} else if (PLAYERCOUNT() == 2) {
if (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || g_Vars.unk0004e0) {
width = var800705c0[g_HiResActive].unk08 / 2;
if (g_Vars.currentplayernum == 0) {
width--;
}
} else {
width = var800705c0[g_HiResActive].unk08;
}
} else {
width = var800705c0[g_HiResActive].unk08;
}
} else {
width = var800705c0[g_HiResActive].unk08;
}
return width;
}
GLOBAL_ASM(
glabel func0f0bc7ac
@@ -6787,7 +6645,7 @@ f32 func0f0bd358(void)
f32 tmp;
s16 stack;
s16 a = func0f0bcaa0();
s16 b = func0f0bc554();
s16 b = currentPlayerGetViewportWidth();
tmp = (f32)b / (f32)a;
tmp = var800705c0[g_HiResActive].unk0c * tmp;
@@ -6907,7 +6765,7 @@ glabel func0f0bd764
/* f0bd794: 00000000 */ nop
/* f0bd798: 0fc4a2b9 */ jal currentPlayerSetAspectRatio
/* f0bd79c: c7ac0024 */ lwc1 $f12,0x24($sp)
/* f0bd7a0: 0fc2f155 */ jal func0f0bc554
/* f0bd7a0: 0fc2f155 */ jal currentPlayerGetViewportWidth
/* f0bd7a4: 00000000 */ nop
/* f0bd7a8: 00028400 */ sll $s0,$v0,0x10
/* f0bd7ac: 00107403 */ sra $t6,$s0,0x10
@@ -6936,7 +6794,7 @@ glabel func0f0bd764
/* f0bd808: 00992021 */ addu $a0,$a0,$t9
/* f0bd80c: 0c002aac */ jal func0000aab0
/* f0bd810: 8c8405d0 */ lw $a0,%lo(var800705c0+0x10)($a0)
/* f0bd814: 0fc2f155 */ jal func0f0bc554
/* f0bd814: 0fc2f155 */ jal currentPlayerGetViewportWidth
/* f0bd818: 00000000 */ nop
/* f0bd81c: 00028400 */ sll $s0,$v0,0x10
/* f0bd820: 00104403 */ sra $t0,$s0,0x10
@@ -7169,7 +7027,7 @@ glabel var7f1ad6ac
/* f0bdad0: 00000000 */ nop
/* f0bdad4: 0fc4a2b9 */ jal currentPlayerSetAspectRatio
/* f0bdad8: c7ac032c */ lwc1 $f12,0x32c($sp)
/* f0bdadc: 0fc2f155 */ jal func0f0bc554
/* f0bdadc: 0fc2f155 */ jal currentPlayerGetViewportWidth
/* f0bdae0: 00000000 */ nop
/* f0bdae4: 00028400 */ sll $s0,$v0,0x10
/* f0bdae8: 00106c03 */ sra $t5,$s0,0x10
@@ -7197,7 +7055,7 @@ glabel var7f1ad6ac
/* f0bdb40: 00982021 */ addu $a0,$a0,$t8
/* f0bdb44: 0c002aac */ jal func0000aab0
/* f0bdb48: 8c8405d0 */ lw $a0,%lo(var800705c0+0x10)($a0)
/* f0bdb4c: 0fc2f155 */ jal func0f0bc554
/* f0bdb4c: 0fc2f155 */ jal currentPlayerGetViewportWidth
/* f0bdb50: 00000000 */ nop
/* f0bdb54: 00028400 */ sll $s0,$v0,0x10
/* f0bdb58: 0010cc03 */ sra $t9,$s0,0x10
@@ -9458,12 +9316,12 @@ glabel var7f1ad6ac
// // dac8
// currentPlayerSetFovY(60);
// currentPlayerSetAspectRatio(aspectratio);
// currentPlayerSetViewSize(func0f0bc554(), func0f0bcaa0());
// currentPlayerSetViewSize(currentPlayerGetViewportWidth(), func0f0bcaa0());
// currentPlayerSetViewPosition(func0f0bc7ac(), func0f0bce24());
//
// // db44
// func0000aab0(var800705c0[g_HiResActive].unk10);
// viSetFovAspectAndSize(60, aspectratio, func0f0bc554(), func0f0bcaa0());
// viSetFovAspectAndSize(60, aspectratio, currentPlayerGetViewportWidth(), func0f0bcaa0());
// viSetViewPosition(func0f0bc7ac(), func0f0bce24());
// viSetXY(func0f0bc44c(), func0f0bc478());
// viSetBuf(func0f0bc44c(), func0f0bc478());
+1 -1
View File
@@ -51,7 +51,7 @@ void func0f0bc3f0(void);
s16 func0f0bc44c(void);
s16 func0f0bc478(void);
bool func0f0bc4c0(void);
s16 func0f0bc554(void);
s16 currentPlayerGetViewportWidth(void);
s16 func0f0bc7ac(void);
s16 func0f0bcaa0(void);
s16 func0f0bce24(void);
+2 -3
View File
@@ -5030,10 +5030,9 @@ struct var80075c00 {
};
struct var800705c0 {
u16 unk00;
s16 unk02;
s32 unk00;
u32 unk04;
u32 unk08;
s32 unk08;
f32 unk0c;
u32 unk10;
u32 unk14;