diff --git a/src/game/debug2.c b/src/game/debug2.c index e7741d9a1..02690485c 100644 --- a/src/game/debug2.c +++ b/src/game/debug2.c @@ -486,7 +486,7 @@ glabel var7f1af4ecnb /* f1194ac: 00000000 */ sll $zero,$zero,0x0 /* f1194b0: 3c048008 */ lui $a0,0x8008 /* f1194b4: 24848814 */ addiu $a0,$a0,-30700 -/* f1194b8: 0c002b20 */ jal vi0000ab00 +/* f1194b8: 0c002b20 */ jal viSet16Bit /* f1194bc: ac800000 */ sw $zero,0x0($a0) /* f1194c0: 0c01282c */ jal osViBlack /* f1194c4: 00002025 */ or $a0,$zero,$zero @@ -503,7 +503,7 @@ glabel var7f1af4ecnb /* f1194ec: 00000000 */ sll $zero,$zero,0x0 /* f1194f0: 3c048008 */ lui $a0,0x8008 /* f1194f4: 24848818 */ addiu $a0,$a0,-30696 -/* f1194f8: 0c002b20 */ jal vi0000ab00 +/* f1194f8: 0c002b20 */ jal viSet16Bit /* f1194fc: ac800000 */ sw $zero,0x0($a0) /* f119500: 0c01282c */ jal osViBlack /* f119504: 00002025 */ or $a0,$zero,$zero diff --git a/src/game/game_11f000.c b/src/game/game_11f000.c index 281848698..f168c099c 100644 --- a/src/game/game_11f000.c +++ b/src/game/game_11f000.c @@ -908,14 +908,14 @@ glabel var7f1b50c8 /* f11fa88: 54ab0007 */ bnel $a1,$t3,.L0f11faa8 /* f11fa8c: 91050008 */ lbu $a1,0x8($t0) /* f11fa90: 8fa406b0 */ lw $a0,0x6b0($sp) -/* f11fa94: 0c002fc1 */ jal vi0000bf04 +/* f11fa94: 0c002fc1 */ jal viSetFillColour /* f11fa98: 00002825 */ or $a1,$zero,$zero /* f11fa9c: 10000007 */ b .L0f11fabc /* f11faa0: 00401825 */ or $v1,$v0,$zero /* f11faa4: 91050008 */ lbu $a1,0x8($t0) .L0f11faa8: /* f11faa8: 91060009 */ lbu $a2,0x9($t0) -/* f11faac: 0c002fc1 */ jal vi0000bf04 +/* f11faac: 0c002fc1 */ jal viSetFillColour /* f11fab0: 9107000a */ lbu $a3,0xa($t0) /* f11fab4: afa206b0 */ sw $v0,0x6b0($sp) /* f11fab8: 00401825 */ or $v1,$v0,$zero @@ -985,14 +985,14 @@ glabel var7f1b50c8 /* f11fbb0: 54af0007 */ bnel $a1,$t7,.L0f11fbd0 /* f11fbb4: 91050008 */ lbu $a1,0x8($t0) /* f11fbb8: 8fa406b0 */ lw $a0,0x6b0($sp) -/* f11fbbc: 0c002fc1 */ jal vi0000bf04 +/* f11fbbc: 0c002fc1 */ jal viSetFillColour /* f11fbc0: 00002825 */ or $a1,$zero,$zero /* f11fbc4: 10000006 */ b .L0f11fbe0 /* f11fbc8: afa206b0 */ sw $v0,0x6b0($sp) /* f11fbcc: 91050008 */ lbu $a1,0x8($t0) .L0f11fbd0: /* f11fbd0: 91060009 */ lbu $a2,0x9($t0) -/* f11fbd4: 0c002fc1 */ jal vi0000bf04 +/* f11fbd4: 0c002fc1 */ jal viSetFillColour /* f11fbd8: 9107000a */ lbu $a3,0xa($t0) /* f11fbdc: afa206b0 */ sw $v0,0x6b0($sp) .L0f11fbe0: @@ -1045,7 +1045,7 @@ glabel var7f1b50c8 /* f11fc94: 91060009 */ lbu $a2,0x9($t0) /* f11fc98: 9107000a */ lbu $a3,0xa($t0) /* f11fc9c: afa8042c */ sw $t0,0x42c($sp) -/* f11fca0: 0c002fc1 */ jal vi0000bf04 +/* f11fca0: 0c002fc1 */ jal viSetFillColour /* f11fca4: 8fa406b0 */ lw $a0,0x6b0($sp) /* f11fca8: 44806000 */ mtc1 $zero,$f12 /* f11fcac: 27b106a4 */ addiu $s1,$sp,0x6a4 diff --git a/src/game/title.c b/src/game/title.c index 8f40c8bf0..bc2d786e3 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -3114,7 +3114,7 @@ glabel var7f1a8468 .PF0f018490: /* f018490: 8fa40330 */ lw $a0,0x330($sp) .PF0f018494: -/* f018494: 0c002f12 */ jal vi0000bf04 +/* f018494: 0c002f12 */ jal viSetFillColour /* f018498: 00002825 */ move $a1,$zero /* f01849c: 0c002c02 */ jal func0000b2c4 /* f0184a0: 00402025 */ move $a0,$v0 @@ -4445,7 +4445,7 @@ glabel var7f1a8468 .L0f0183ac: /* f0183ac: 8fa40330 */ lw $a0,0x330($sp) .L0f0183b0: -/* f0183b0: 0c002fc1 */ jal vi0000bf04 +/* f0183b0: 0c002fc1 */ jal viSetFillColour /* f0183b4: 00002825 */ or $a1,$zero,$zero /* f0183b8: 0c002cb1 */ jal func0000b2c4 /* f0183bc: 00402025 */ or $a0,$v0,$zero diff --git a/src/include/lib/lib_09a80.h b/src/include/lib/lib_09a80.h index 7cbcf3fd4..c2ecf101e 100644 --- a/src/include/lib/lib_09a80.h +++ b/src/include/lib/lib_09a80.h @@ -53,6 +53,6 @@ void viSetFovAspectAndSize(f32 fovy, f32 aspect, s16 width, s16 height); f32 viGetFovY(void); void viSetZRange(f32 arg0, f32 arg1); void viGetZRange(struct zrange *zrange); -u32 vi0000bf04(void); +Gfx *viSetFillColour(Gfx *gdl, s32 r, s32 g, s32 b); #endif diff --git a/src/lib/lib_09a80.c b/src/lib/lib_09a80.c index d37c91ceb..d3d385070 100644 --- a/src/lib/lib_09a80.c +++ b/src/lib/lib_09a80.c @@ -54,7 +54,7 @@ u32 var8005d588 = 0; u32 var8005d58c = 0; struct rend_vidat *var8005d590 = &var8005d530[0]; struct rend_vidat *g_ViData = &var8005d530[0]; -bool var8005d598 = true; +bool g_ViIs16Bit = true; s32 var8005d59c = 0; u32 var8005d5a0 = 0x00000000; @@ -1090,8 +1090,8 @@ glabel vi0000a044 /* a128: 91230000 */ lbu $v1,0x0($t1) /* a12c: 17e30101 */ bne $ra,$v1,.L0000a534 /* a130: 00000000 */ nop -/* a134: 3c0a8006 */ lui $t2,%hi(var8005d598) -/* a138: 8d4ad598 */ lw $t2,%lo(var8005d598)($t2) +/* a134: 3c0a8006 */ lui $t2,%hi(g_ViIs16Bit) +/* a138: 8d4ad598 */ lw $t2,%lo(g_ViIs16Bit)($t2) /* a13c: 3c188000 */ lui $t8,0x8000 /* a140: 11400033 */ beqz $t2,.L0000a210 /* a144: 00000000 */ nop @@ -1562,7 +1562,7 @@ glabel vi0000a044 /* a7ec: 00000000 */ nop /* a7f0: 0006000d */ break 0x6 .L0000a7f4: -/* a7f4: 3c0a8006 */ lui $t2,%hi(var8005d598) +/* a7f4: 3c0a8006 */ lui $t2,%hi(g_ViIs16Bit) /* a7f8: 13000038 */ beqz $t8,.L0000a8dc /* a7fc: 24ae01af */ addiu $t6,$a1,0x1af /* a800: 01c6001a */ div $zero,$t6,$a2 @@ -1633,12 +1633,12 @@ glabel vi0000a044 /* a8e4: 24180001 */ addiu $t8,$zero,0x1 /* a8e8: ac38ce88 */ sw $t8,%lo(var8005ce88)($at) /* a8ec: 10000006 */ b .L0000a908 -/* a8f0: 8d4ad598 */ lw $t2,%lo(var8005d598)($t2) +/* a8f0: 8d4ad598 */ lw $t2,%lo(g_ViIs16Bit)($t2) .L0000a8f4: /* a8f4: 3c018006 */ lui $at,%hi(var8005ce88) /* a8f8: 002c0821 */ addu $at,$at,$t4 -/* a8fc: 3c0a8006 */ lui $t2,%hi(var8005d598) -/* a900: 8d4ad598 */ lw $t2,%lo(var8005d598)($t2) +/* a8fc: 3c0a8006 */ lui $t2,%hi(g_ViIs16Bit) +/* a900: 8d4ad598 */ lw $t2,%lo(g_ViIs16Bit)($t2) /* a904: ac20ce88 */ sw $zero,%lo(var8005ce88)($at) .L0000a908: /* a908: 256b0001 */ addiu $t3,$t3,0x1 @@ -1754,14 +1754,14 @@ void vi0000aab0(s32 mode) g_ViData->y = g_ViData->bufy = var700526d8[mode]; } -void vi0000ab00(void) +void viSet16Bit(void) { - var8005d598 = true; + g_ViIs16Bit = true; } -void vi0000ab10(void) +void viSet32Bit(void) { - var8005d598 = false; + g_ViIs16Bit = false; } u8 *viGetUnk28(void) @@ -2128,7 +2128,7 @@ Gfx *vi0000b1d0(Gfx *gdl) { gdl = vi0000b1a8(gdl); - if (var8005d598) { + if (g_ViIs16Bit) { gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, g_ViData->bufx, OS_K0_TO_PHYSICAL(g_ViData->fb)); } else { gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_32b, g_ViData->bufx, OS_K0_TO_PHYSICAL(var8009cac0[0])); @@ -3513,9 +3513,9 @@ void viGetZRange(struct zrange *zrange) } GLOBAL_ASM( -glabel vi0000bf04 -/* bf04: 3c0e8006 */ lui $t6,%hi(var8005d598) -/* bf08: 8dced598 */ lw $t6,%lo(var8005d598)($t6) +glabel viSetFillColour +/* bf04: 3c0e8006 */ lui $t6,%hi(g_ViIs16Bit) +/* bf08: 8dced598 */ lw $t6,%lo(g_ViIs16Bit)($t6) /* bf0c: 00801025 */ or $v0,$a0,$zero /* bf10: 3c18f700 */ lui $t8,0xf700 /* bf14: 11c00013 */ beqz $t6,.L0000bf64 @@ -3551,6 +3551,22 @@ glabel vi0000bf04 /* bf88: 00801025 */ or $v0,$a0,$zero ); +// Mismatch: regalloc +//Gfx *viSetFillColour(Gfx *gdl, s32 r, s32 g, s32 b) +//{ +// u32 colour; +// +// if (g_ViIs16Bit) { +// colour = (r << 8) & 0xf800 | (g << 3) & 0x7c0 | (b >> 2) & 0x3e | 1; +// gDPSetFillColor(gdl++, colour | colour << 16); +// } else { +// colour = r << 24 | g << 16 | b << 8 | 0xff; +// gDPSetFillColor(gdl++, colour); +// } +// +// return gdl; +//} + void vi0000bf8c(void) { // empty