From 2c01a9a5574e7f76d3e630b873297cdc6098068d Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 17 Apr 2022 13:48:31 +1000 Subject: [PATCH] Decompile texSelect --- src/game/activemenu.c | 12 +- src/game/bg.c | 2 +- src/game/camdraw.c | 7 +- src/game/chr.c | 6 +- src/game/credits.c | 4 +- src/game/filemgr.c | 4 +- src/game/game_13c510.c | 2 +- src/game/gunfx.c | 16 +- src/game/mainmenu.c | 12 +- src/game/menu.c | 48 +- src/game/menugfx.c | 26 +- src/game/menuitem.c | 6 +- src/game/mplayer/ingame.c | 2 +- src/game/mplayer/setup.c | 6 +- src/game/nbomb.c | 16 +- src/game/player.c | 2 +- src/game/propobj.c | 8 +- src/game/radar.c | 2 +- src/game/savebuffer.c | 4 +- src/game/shards.c | 8 +- src/game/sight.c | 4 +- src/game/sky.c | 26 +- src/game/sparks.c | 2 +- src/game/tex.c | 1484 +++++++++--------------------------- src/game/texdecompress.c | 58 +- src/game/texreset.c | 14 +- src/game/title.c | 12 +- src/game/trainingmenus.c | 6 +- src/game/wallhit.c | 6 +- src/game/weather.c | 10 +- src/include/bss.h | 2 +- src/include/game/surface.h | 6 +- src/include/game/tex.h | 14 +- src/include/gbiex.h | 7 + src/include/types.h | 26 +- src/lib/model.c | 2 +- 36 files changed, 584 insertions(+), 1288 deletions(-) diff --git a/src/game/activemenu.c b/src/game/activemenu.c index c27e8854e..a110d61d2 100644 --- a/src/game/activemenu.c +++ b/src/game/activemenu.c @@ -2841,7 +2841,7 @@ glabel amRender /* f1017b8: 27a40148 */ addiu $a0,$sp,0x148 /* f1017bc: 00002825 */ move $a1,$zero /* f1017c0: 24060002 */ li $a2,0x2 -/* f1017c4: 0fc2d290 */ jal tex0f0b39c0 +/* f1017c4: 0fc2d290 */ jal texSelect /* f1017c8: 00003825 */ move $a3,$zero /* f1017cc: 8fac0148 */ lw $t4,0x148($sp) /* f1017d0: 3c0eb900 */ lui $t6,0xb900 @@ -3750,7 +3750,7 @@ glabel amRender /* f1014d4: 27a401d8 */ addiu $a0,$sp,0x1d8 /* f1014d8: 00002825 */ move $a1,$zero /* f1014dc: 24060002 */ li $a2,0x2 -/* f1014e0: 0fc2cfb8 */ jal tex0f0b39c0 +/* f1014e0: 0fc2cfb8 */ jal texSelect /* f1014e4: 00003825 */ move $a3,$zero /* f1014e8: 8faf01d8 */ lw $t7,0x1d8($sp) /* f1014ec: 3c19b900 */ lui $t9,0xb900 @@ -5329,7 +5329,7 @@ glabel amRender /* f1012f4: 27a401d8 */ addiu $a0,$sp,0x1d8 /* f1012f8: 00002825 */ move $a1,$zero /* f1012fc: 24060002 */ li $a2,0x2 -/* f101300: 0fc2cf74 */ jal tex0f0b39c0 +/* f101300: 0fc2cf74 */ jal texSelect /* f101304: 00003825 */ move $a3,$zero /* f101308: 8faf01d8 */ lw $t7,0x1d8($sp) /* f10130c: 3c19b900 */ lui $t9,0xb900 @@ -6918,7 +6918,7 @@ glabel amRender /* f100d74: 27a401d8 */ addiu $a0,$sp,0x1d8 /* f100d78: 00002825 */ or $a1,$zero,$zero /* f100d7c: 24060002 */ addiu $a2,$zero,0x2 -/* f100d80: 0fc2ce70 */ jal tex0f0b39c0 +/* f100d80: 0fc2ce70 */ jal texSelect /* f100d84: 00003825 */ or $a3,$zero,$zero /* f100d88: 8fb901d8 */ lw $t9,0x1d8($sp) /* f100d8c: 3c0fb900 */ lui $t7,0xb900 @@ -8507,7 +8507,7 @@ glabel amRender /* f0fced8: 27a401b0 */ addiu $a0,$sp,0x1b0 /* f0fcedc: 00002825 */ or $a1,$zero,$zero /* f0fcee0: 24060002 */ addiu $a2,$zero,0x2 -/* f0fcee4: 0fc2c5c8 */ jal tex0f0b39c0 +/* f0fcee4: 0fc2c5c8 */ jal texSelect /* f0fcee8: 00003825 */ or $a3,$zero,$zero /* f0fceec: 8fb901b0 */ lw $t9,0x1b0($sp) /* f0fcef0: 3c0fb900 */ lui $t7,0xb900 @@ -9806,7 +9806,7 @@ glabel amRender // gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); // gSPClearGeometryMode(gdl++, G_CULL_BOTH); // -// tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); +// texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); // // gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); // diff --git a/src/game/bg.c b/src/game/bg.c index 020ac0871..6c8acf9e6 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -2487,7 +2487,7 @@ Gfx *bgRenderSceneInXray(Gfx *gdl) gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); gSPMatrix(gdl++, osVirtualToPhysical(camGetUnk1758()), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); diff --git a/src/game/camdraw.c b/src/game/camdraw.c index d9ad6fa04..bc55d26a5 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -22,10 +22,7 @@ struct var800a45a0 *var800a45a0; u32 var800a45a4; -u32 var800a45a8; -u32 var800a45ac; -u32 var800a45b0; -u32 var800a45b4; +struct texturething var800a45a8; u32 var800a45b8; u32 var800a45bc; @@ -2080,7 +2077,7 @@ Gfx *func0f14c870(Gfx *gdl, struct textureconfig *tconfig, f32 *arg2, f32 arg3, gDPSetTextureConvert(gdl++, G_TC_FILT); gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); - tex0f0b39c0(&gdl, tconfig, 1, 0, 2, 1, &var800a45a8); + texSelect(&gdl, tconfig, 1, 0, 2, 1, &var800a45a8); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); diff --git a/src/game/chr.c b/src/game/chr.c index 932387b22..56d5ff16d 100644 --- a/src/game/chr.c +++ b/src/game/chr.c @@ -6787,7 +6787,7 @@ glabel var7f1a9ba0pf /* f029df4: 24060004 */ li $a2,0x4 /* f029df8: 24070001 */ li $a3,0x1 /* f029dfc: afa00018 */ sw $zero,0x18($sp) -/* f029e00: 0fc2cfb8 */ jal tex0f0b39c0 +/* f029e00: 0fc2cfb8 */ jal texSelect /* f029e04: e7ae016c */ swc1 $f14,0x16c($sp) /* f029e08: 8fa80204 */ lw $t0,0x204($sp) /* f029e0c: c7ae016c */ lwc1 $f14,0x16c($sp) @@ -8949,7 +8949,7 @@ glabel var7f1a9ba0pf /* f029da0: 24060004 */ li $a2,0x4 /* f029da4: 24070001 */ li $a3,0x1 /* f029da8: afa00018 */ sw $zero,0x18($sp) -/* f029dac: 0fc2cf74 */ jal tex0f0b39c0 +/* f029dac: 0fc2cf74 */ jal texSelect /* f029db0: e7ae016c */ swc1 $f14,0x16c($sp) /* f029db4: 8fa80204 */ lw $t0,0x204($sp) /* f029db8: c7ae016c */ lwc1 $f14,0x16c($sp) @@ -11105,7 +11105,7 @@ glabel var7f1a8980 /* f029cd0: 24060004 */ addiu $a2,$zero,0x4 /* f029cd4: 24070001 */ addiu $a3,$zero,0x1 /* f029cd8: afa00018 */ sw $zero,0x18($sp) -/* f029cdc: 0fc2ce70 */ jal tex0f0b39c0 +/* f029cdc: 0fc2ce70 */ jal texSelect /* f029ce0: e7ae016c */ swc1 $f14,0x16c($sp) /* f029ce4: 8fa80204 */ lw $t0,0x204($sp) /* f029ce8: c7ae016c */ lwc1 $f14,0x16c($sp) diff --git a/src/game/credits.c b/src/game/credits.c index 3500f1ad2..5d5fcc15e 100644 --- a/src/game/credits.c +++ b/src/game/credits.c @@ -206,7 +206,7 @@ Gfx *creditsRenderBackgroundLayer(Gfx *gdl, u8 type, u8 layernum, f32 arg3, u32 gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); gSPClearGeometryMode(gdl++, G_CULL_BOTH); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[g_CreditsBgTypes[type].texturenum], 1, 1, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[g_CreditsBgTypes[type].texturenum], 1, 1, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); @@ -2397,7 +2397,7 @@ glabel var7f1b5850 /* f139590: 24140001 */ addiu $s4,$zero,0x1 /* f139594: 00006812 */ mflo $t5 /* f139598: 01ae2821 */ addu $a1,$t5,$t6 -/* f13959c: 0fc2ce70 */ jal tex0f0b39c0 +/* f13959c: 0fc2ce70 */ jal texSelect /* f1395a0: 00000000 */ nop /* f1395a4: 8fb90118 */ lw $t9,0x118($sp) /* f1395a8: 3c09ba00 */ lui $t1,0xba00 diff --git a/src/game/filemgr.c b/src/game/filemgr.c index 60a5c5547..5c53d7494 100644 --- a/src/game/filemgr.c +++ b/src/game/filemgr.c @@ -2263,7 +2263,7 @@ Gfx *filemgrRenderPerfectHeadThumbnail(Gfx *gdl, struct menuitemrenderdata *rend gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, texture, 1, 0, 2, 1, NULL); + texSelect(&gdl, texture, 1, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); @@ -3148,7 +3148,7 @@ s32 filemgrChooseAgentListMenuHandler(s32 operation, struct menuitem *item, unio gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[texturenum], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[texturenum], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); diff --git a/src/game/game_13c510.c b/src/game/game_13c510.c index 017247e7d..44d2cac3e 100644 --- a/src/game/game_13c510.c +++ b/src/game/game_13c510.c @@ -1105,7 +1105,7 @@ Gfx *func0f13d40c(Gfx *gdl) { struct stagetableentry *stage = stageGetCurrent(); - tex0f0b39c0(&gdl, &g_TexLightGlareConfigs[stage->light_type], 4, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexLightGlareConfigs[stage->light_type], 4, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); diff --git a/src/game/gunfx.c b/src/game/gunfx.c index fcc4ab5c5..c6dd3f818 100644 --- a/src/game/gunfx.c +++ b/src/game/gunfx.c @@ -629,7 +629,7 @@ glabel var7f1acc68 /* f0acb18: 8fa500f4 */ lw $a1,0xf4($sp) /* f0acb1c: 27a400f0 */ addiu $a0,$sp,0xf0 /* f0acb20: 24060004 */ addiu $a2,$zero,0x4 -/* f0acb24: 0fc2ce70 */ jal tex0f0b39c0 +/* f0acb24: 0fc2ce70 */ jal texSelect /* f0acb28: 24070001 */ addiu $a3,$zero,0x1 /* f0acb2c: 8fae00f0 */ lw $t6,0xf0($sp) /* f0acb30: 3c0d0430 */ lui $t5,0x430 @@ -1729,7 +1729,7 @@ glabel var7f1accf4 /* f0ada94: 02202025 */ or $a0,$s1,$zero /* f0ada98: 24060004 */ addiu $a2,$zero,0x4 /* f0ada9c: 8fa70198 */ lw $a3,0x198($sp) -/* f0adaa0: 0fc2ce70 */ jal tex0f0b39c0 +/* f0adaa0: 0fc2ce70 */ jal texSelect /* f0adaa4: afa00018 */ sw $zero,0x18($sp) /* f0adaa8: 8fac0190 */ lw $t4,0x190($sp) /* f0adaac: 3c0e0470 */ lui $t6,0x470 @@ -1758,7 +1758,7 @@ glabel var7f1accf4 /* f0adb08: 8fa70198 */ lw $a3,0x198($sp) /* f0adb0c: 8fa500ec */ lw $a1,0xec($sp) /* f0adb10: 02202025 */ or $a0,$s1,$zero -/* f0adb14: 0fc2ce70 */ jal tex0f0b39c0 +/* f0adb14: 0fc2ce70 */ jal texSelect /* f0adb18: 24060004 */ addiu $a2,$zero,0x4 /* f0adb1c: 8fac0190 */ lw $t4,0x190($sp) /* f0adb20: 3c0eb100 */ lui $t6,0xb100 @@ -1774,7 +1774,7 @@ glabel var7f1accf4 /* f0adb44: 240d0001 */ addiu $t5,$zero,0x1 /* f0adb48: afad0014 */ sw $t5,0x14($sp) /* f0adb4c: afaa0010 */ sw $t2,0x10($sp) -/* f0adb50: 0fc2ce70 */ jal tex0f0b39c0 +/* f0adb50: 0fc2ce70 */ jal texSelect /* f0adb54: afa00018 */ sw $zero,0x18($sp) /* f0adb58: 8fb80190 */ lw $t8,0x190($sp) /* f0adb5c: 3c190430 */ lui $t9,0x430 @@ -4203,7 +4203,7 @@ glabel var7f1acd8c /* f0af6f8: afaf0010 */ sw $t7,0x10($sp) /* f0af6fc: afb80014 */ sw $t8,0x14($sp) /* f0af700: afa00018 */ sw $zero,0x18($sp) -/* f0af704: 0fc2ce70 */ jal tex0f0b39c0 +/* f0af704: 0fc2ce70 */ jal texSelect /* f0af708: 24a50030 */ addiu $a1,$a1,0x0030 /* f0af70c: 44800000 */ mtc1 $zero,$f0 /* f0af710: c7aa00dc */ lwc1 $f10,0xdc($sp) @@ -4558,7 +4558,7 @@ glabel var7f1acd8c // } // } // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[4], 4, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[4], 4, 0, 2, 1, NULL); // // // 724 // if (rot.f[0] == 0 && rot.f[2] == 0) { @@ -4746,7 +4746,7 @@ glabel var7f1acd90 /* f0afc08: 27a401e8 */ addiu $a0,$sp,0x1e8 /* f0afc0c: 24060004 */ addiu $a2,$zero,0x4 /* f0afc10: 00003825 */ or $a3,$zero,$zero -/* f0afc14: 0fc2ce70 */ jal tex0f0b39c0 +/* f0afc14: 0fc2ce70 */ jal texSelect /* f0afc18: 24a50024 */ addiu $a1,$a1,0x0024 /* f0afc1c: 0c00566c */ jal mtx4LoadIdentity /* f0afc20: 27a4014c */ addiu $a0,$sp,0x14c @@ -5181,7 +5181,7 @@ glabel var7f1acd90 // gDPSetCombineMode(gdl++, G_CC_BLENDIA, G_CC_BLENDIA); // gSPClearGeometryMode(gdl++, G_CULL_BOTH); // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[3], 4, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[3], 4, 0, 2, 1, NULL); // mtx4LoadIdentity(&sp14c); // // mtx00015be0(camGetMatrix1740(), &sp14c); diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c index d718c0cbc..31b469729 100644 --- a/src/game/mainmenu.c +++ b/src/game/mainmenu.c @@ -2693,7 +2693,7 @@ glabel var7f1b2dfc /* f104d1c: afa00018 */ sw $zero,0x18($sp) /* f104d20: 02002025 */ or $a0,$s0,$zero /* f104d24: 24060002 */ addiu $a2,$zero,0x2 -/* f104d28: 0fc2ce70 */ jal tex0f0b39c0 +/* f104d28: 0fc2ce70 */ jal texSelect /* f104d2c: 00003825 */ or $a3,$zero,$zero /* f104d30: 8faf0138 */ lw $t7,0x138($sp) /* f104d34: 8faa0134 */ lw $t2,0x134($sp) @@ -2826,7 +2826,7 @@ glabel var7f1b2dfc /* f104f28: 00003825 */ or $a3,$zero,$zero /* f104f2c: afa00018 */ sw $zero,0x18($sp) /* f104f30: afaa0134 */ sw $t2,0x134($sp) -/* f104f34: 0fc2ce70 */ jal tex0f0b39c0 +/* f104f34: 0fc2ce70 */ jal texSelect /* f104f38: 24a501b0 */ addiu $a1,$a1,0x1b0 /* f104f3c: 8fb80138 */ lw $t8,0x138($sp) /* f104f40: 8faa0134 */ lw $t2,0x134($sp) @@ -2990,7 +2990,7 @@ glabel var7f1b2dfc /* f1051a0: afae0010 */ sw $t6,0x10($sp) /* f1051a4: afa00018 */ sw $zero,0x18($sp) /* f1051a8: afaa0134 */ sw $t2,0x134($sp) -/* f1051ac: 0fc2ce70 */ jal tex0f0b39c0 +/* f1051ac: 0fc2ce70 */ jal texSelect /* f1051b0: 24a50198 */ addiu $a1,$a1,0x198 /* f1051b4: 8fb90138 */ lw $t9,0x138($sp) /* f1051b8: 8faa0134 */ lw $t2,0x134($sp) @@ -3696,7 +3696,7 @@ glabel var7f1ad0fcnb /* f100b1c: afa00018 */ sw $zero,0x18($sp) /* f100b20: 02002025 */ or $a0,$s0,$zero /* f100b24: 24060001 */ addiu $a2,$zero,0x1 -/* f100b28: 0fc2c5c8 */ jal tex0f0b39c0 +/* f100b28: 0fc2c5c8 */ jal texSelect /* f100b2c: 00003825 */ or $a3,$zero,$zero /* f100b30: 8faf0130 */ lw $t7,0x130($sp) /* f100b34: 8faa012c */ lw $t2,0x12c($sp) @@ -3815,7 +3815,7 @@ glabel var7f1ad0fcnb /* f100cf0: 00003825 */ or $a3,$zero,$zero /* f100cf4: afa00018 */ sw $zero,0x18($sp) /* f100cf8: afaa012c */ sw $t2,0x12c($sp) -/* f100cfc: 0fc2c5c8 */ jal tex0f0b39c0 +/* f100cfc: 0fc2c5c8 */ jal texSelect /* f100d00: 24a501b0 */ addiu $a1,$a1,0x1b0 /* f100d04: 8fae0130 */ lw $t6,0x130($sp) /* f100d08: 8faa012c */ lw $t2,0x12c($sp) @@ -3965,7 +3965,7 @@ glabel var7f1ad0fcnb /* f100f30: afaf0010 */ sw $t7,0x10($sp) /* f100f34: afa00018 */ sw $zero,0x18($sp) /* f100f38: afaa012c */ sw $t2,0x12c($sp) -/* f100f3c: 0fc2c5c8 */ jal tex0f0b39c0 +/* f100f3c: 0fc2c5c8 */ jal texSelect /* f100f40: 24a50198 */ addiu $a1,$a1,0x198 /* f100f44: 8fae0130 */ lw $t6,0x130($sp) /* f100f48: 8faa012c */ lw $t2,0x12c($sp) diff --git a/src/game/menu.c b/src/game/menu.c index 8aaaf25aa..bf8c3992c 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -5543,7 +5543,7 @@ glabel var7f1b3658jf /* f0f5c14: afa00018 */ sw $zero,0x18($sp) /* f0f5c18: 00002825 */ move $a1,$zero /* f0f5c1c: 24060002 */ li $a2,0x2 -/* f0f5c20: 0fc2d290 */ jal tex0f0b39c0 +/* f0f5c20: 0fc2d290 */ jal texSelect /* f0f5c24: 00003825 */ move $a3,$zero /* f0f5c28: 8fae0440 */ lw $t6,0x440($sp) /* f0f5c2c: 3c18b900 */ lui $t8,0xb900 @@ -5562,7 +5562,7 @@ glabel var7f1b3658jf /* f0f5c60: 02002025 */ move $a0,$s0 /* f0f5c64: 00002825 */ move $a1,$zero /* f0f5c68: 24060002 */ li $a2,0x2 -/* f0f5c6c: 0fc2d290 */ jal tex0f0b39c0 +/* f0f5c6c: 0fc2d290 */ jal texSelect /* f0f5c70: 00003825 */ move $a3,$zero /* f0f5c74: 8faf0440 */ lw $t7,0x440($sp) /* f0f5c78: 3c190600 */ lui $t9,0x600 @@ -7149,7 +7149,7 @@ glabel var7f1b3c40pf /* f0f56b4: afa00018 */ sw $zero,0x18($sp) /* f0f56b8: 00002825 */ move $a1,$zero /* f0f56bc: 24060002 */ li $a2,0x2 -/* f0f56c0: 0fc2cfb8 */ jal tex0f0b39c0 +/* f0f56c0: 0fc2cfb8 */ jal texSelect /* f0f56c4: 00003825 */ move $a3,$zero /* f0f56c8: 8fb90440 */ lw $t9,0x440($sp) /* f0f56cc: 3c09b900 */ lui $t1,0xb900 @@ -7168,7 +7168,7 @@ glabel var7f1b3c40pf /* f0f5700: 02002025 */ move $a0,$s0 /* f0f5704: 00002825 */ move $a1,$zero /* f0f5708: 24060002 */ li $a2,0x2 -/* f0f570c: 0fc2cfb8 */ jal tex0f0b39c0 +/* f0f570c: 0fc2cfb8 */ jal texSelect /* f0f5710: 00003825 */ move $a3,$zero /* f0f5714: 8fac0440 */ lw $t4,0x440($sp) /* f0f5718: 3c0f0600 */ lui $t7,0x600 @@ -8755,7 +8755,7 @@ glabel var7f1b3c40pf /* f0f54cc: afa00018 */ sw $zero,0x18($sp) /* f0f54d0: 00002825 */ move $a1,$zero /* f0f54d4: 24060002 */ li $a2,0x2 -/* f0f54d8: 0fc2cf74 */ jal tex0f0b39c0 +/* f0f54d8: 0fc2cf74 */ jal texSelect /* f0f54dc: 00003825 */ move $a3,$zero /* f0f54e0: 8fb90440 */ lw $t9,0x440($sp) /* f0f54e4: 3c09b900 */ lui $t1,0xb900 @@ -8774,7 +8774,7 @@ glabel var7f1b3c40pf /* f0f5518: 02002025 */ move $a0,$s0 /* f0f551c: 00002825 */ move $a1,$zero /* f0f5520: 24060002 */ li $a2,0x2 -/* f0f5524: 0fc2cf74 */ jal tex0f0b39c0 +/* f0f5524: 0fc2cf74 */ jal texSelect /* f0f5528: 00003825 */ move $a3,$zero /* f0f552c: 8fac0440 */ lw $t4,0x440($sp) /* f0f5530: 3c0f0600 */ lui $t7,0x600 @@ -10364,7 +10364,7 @@ glabel var7f1b2948 /* f0f4f70: afa00018 */ sw $zero,0x18($sp) /* f0f4f74: 00002825 */ or $a1,$zero,$zero /* f0f4f78: 24060002 */ addiu $a2,$zero,0x2 -/* f0f4f7c: 0fc2ce70 */ jal tex0f0b39c0 +/* f0f4f7c: 0fc2ce70 */ jal texSelect /* f0f4f80: 00003825 */ or $a3,$zero,$zero /* f0f4f84: 8fad0440 */ lw $t5,0x440($sp) /* f0f4f88: 3c0cb900 */ lui $t4,0xb900 @@ -10383,7 +10383,7 @@ glabel var7f1b2948 /* f0f4fbc: 02002025 */ or $a0,$s0,$zero /* f0f4fc0: 00002825 */ or $a1,$zero,$zero /* f0f4fc4: 24060002 */ addiu $a2,$zero,0x2 -/* f0f4fc8: 0fc2ce70 */ jal tex0f0b39c0 +/* f0f4fc8: 0fc2ce70 */ jal texSelect /* f0f4fcc: 00003825 */ or $a3,$zero,$zero /* f0f4fd0: 8fb90440 */ lw $t9,0x440($sp) /* f0f4fd4: 3c0d0600 */ lui $t5,0x600 @@ -11998,7 +11998,7 @@ glabel var7f1b2948 /* f0f1b14: afa00018 */ sw $zero,0x18($sp) /* f0f1b18: 00002825 */ or $a1,$zero,$zero /* f0f1b1c: 24060002 */ addiu $a2,$zero,0x2 -/* f0f1b20: 0fc2c5c8 */ jal tex0f0b39c0 +/* f0f1b20: 0fc2c5c8 */ jal texSelect /* f0f1b24: 00003825 */ or $a3,$zero,$zero /* f0f1b28: 8faa0468 */ lw $t2,0x468($sp) /* f0f1b2c: 3c0bb900 */ lui $t3,0xb900 @@ -12017,7 +12017,7 @@ glabel var7f1b2948 /* f0f1b60: 02002025 */ or $a0,$s0,$zero /* f0f1b64: 00002825 */ or $a1,$zero,$zero /* f0f1b68: 24060002 */ addiu $a2,$zero,0x2 -/* f0f1b6c: 0fc2c5c8 */ jal tex0f0b39c0 +/* f0f1b6c: 0fc2c5c8 */ jal texSelect /* f0f1b70: 00003825 */ or $a3,$zero,$zero /* f0f1b74: 8fac0468 */ lw $t4,0x468($sp) /* f0f1b78: 3c0a0600 */ lui $t2,0x600 @@ -12621,11 +12621,11 @@ glabel var7f1b2948 // gSPClearGeometryMode(gdl++, G_CULL_BOTH); // gDPSetTextureFilter(gdl++, G_TF_BILERP); // -// tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); +// texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); // // gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); // -// tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); +// texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); // // gSPDisplayList(gdl++, var800613a0); // } @@ -21263,26 +21263,26 @@ void menuReset(void) g_MenuData.unk5d5_01 = false; - tex0f0b3988(&g_TexGeneralConfigs[1]); - tex0f0b3988(&g_TexGeneralConfigs[6]); - tex0f0b3988(&g_TexGeneralConfigs[51]); - tex0f0b3988(&g_TexGeneralConfigs[52]); - tex0f0b3988(&g_TexGeneralConfigs[53]); - tex0f0b3988(&g_TexGeneralConfigs[54]); - tex0f0b3988(&g_TexGeneralConfigs[55]); + texLoadFromConfig(&g_TexGeneralConfigs[1]); + texLoadFromConfig(&g_TexGeneralConfigs[6]); + texLoadFromConfig(&g_TexGeneralConfigs[51]); + texLoadFromConfig(&g_TexGeneralConfigs[52]); + texLoadFromConfig(&g_TexGeneralConfigs[53]); + texLoadFromConfig(&g_TexGeneralConfigs[54]); + texLoadFromConfig(&g_TexGeneralConfigs[55]); if (g_Vars.stagenum == STAGE_CITRAINING) { for (i = 12; i < 34; i++) { - tex0f0b3988(&g_TexGeneralConfigs[i]); + texLoadFromConfig(&g_TexGeneralConfigs[i]); } - tex0f0b3988(&g_TexGeneralConfigs[34]); - tex0f0b3988(&g_TexGeneralConfigs[36]); - tex0f0b3988(&g_TexGeneralConfigs[35]); + texLoadFromConfig(&g_TexGeneralConfigs[34]); + texLoadFromConfig(&g_TexGeneralConfigs[36]); + texLoadFromConfig(&g_TexGeneralConfigs[35]); } if (g_Vars.mplayerisrunning) { - tex0f0b3988(&g_TexGeneralConfigs[35]); + texLoadFromConfig(&g_TexGeneralConfigs[35]); } for (i = 0; i < 4; i++) { diff --git a/src/game/menugfx.c b/src/game/menugfx.c index 67c72355f..377fe8b39 100644 --- a/src/game/menugfx.c +++ b/src/game/menugfx.c @@ -1659,7 +1659,7 @@ glabel var7f1adf18 /* f0e10f4: 27a40118 */ addiu $a0,$sp,0x118 /* f0e10f8: 24060002 */ addiu $a2,$zero,0x2 /* f0e10fc: 00003825 */ or $a3,$zero,$zero -/* f0e1100: 0fc2ce70 */ jal tex0f0b39c0 +/* f0e1100: 0fc2ce70 */ jal texSelect /* f0e1104: 24a50048 */ addiu $a1,$a1,0x0048 /* f0e1108: 2406000a */ addiu $a2,$zero,0xa /* f0e110c: 02060019 */ multu $s0,$a2 @@ -2060,7 +2060,7 @@ glabel var7f1adf18 // gSPClearGeometryMode(gdl++, G_CULL_BOTH); // gDPSetTextureFilter(gdl++, G_TF_BILERP); // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[6], 2, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[6], 2, 0, 2, 1, NULL); // // gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); // @@ -2219,7 +2219,7 @@ glabel menugfx0f0e1668 /* f0e1760: 27a40078 */ addiu $a0,$sp,0x78 /* f0e1764: 00002825 */ or $a1,$zero,$zero /* f0e1768: 24060002 */ addiu $a2,$zero,0x2 -/* f0e176c: 0fc2ce70 */ jal tex0f0b39c0 +/* f0e176c: 0fc2ce70 */ jal texSelect /* f0e1770: 00003825 */ or $a3,$zero,$zero /* f0e1774: 8fac007c */ lw $t4,0x7c($sp) /* f0e1778: 2408000a */ addiu $t0,$zero,0xa @@ -2363,7 +2363,7 @@ Gfx *menugfxDrawListGroupHeader(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, s32 x3 gSPClearGeometryMode(gdl++, G_CULL_BOTH); gDPSetTextureFilter(gdl++, G_TF_BILERP); - tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); @@ -2501,7 +2501,7 @@ glabel menugfxDrawListGroupHeader /* f0dee88: 27a40090 */ addiu $a0,$sp,0x90 /* f0dee8c: 00002825 */ or $a1,$zero,$zero /* f0dee90: 24060002 */ addiu $a2,$zero,0x2 -/* f0dee94: 0fc2c5c8 */ jal tex0f0b39c0 +/* f0dee94: 0fc2c5c8 */ jal texSelect /* f0dee98: 00003825 */ or $a3,$zero,$zero /* f0dee9c: 8fab0094 */ lw $t3,0x94($sp) /* f0deea0: 2404000a */ addiu $a0,$zero,0xa @@ -2759,7 +2759,7 @@ glabel menugfxRenderGradient /* f0e1de0: 27a40060 */ addiu $a0,$sp,0x60 /* f0e1de4: 00002825 */ or $a1,$zero,$zero /* f0e1de8: 24060002 */ addiu $a2,$zero,0x2 -/* f0e1dec: 0fc2ce70 */ jal tex0f0b39c0 +/* f0e1dec: 0fc2ce70 */ jal texSelect /* f0e1df0: 00003825 */ or $a3,$zero,$zero /* f0e1df4: 8fb90060 */ lw $t9,0x60($sp) /* f0e1df8: 8fab0070 */ lw $t3,0x70($sp) @@ -2889,7 +2889,7 @@ glabel menugfxRenderGradient // gSPClearGeometryMode(gdl++, G_CULL_BOTH); // gDPSetTextureFilter(gdl++, G_TF_BILERP); // -// tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); +// texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); // // gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); // @@ -2960,7 +2960,7 @@ Gfx *menugfxRenderSlider(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, s32 markerx, gSPClearGeometryMode(gdl++, G_CULL_BOTH); gDPSetTextureFilter(gdl++, G_TF_BILERP); - tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); @@ -3050,7 +3050,7 @@ Gfx *menugfx0f0e2498(Gfx *gdl) gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); gSPClearGeometryMode(gdl++, G_CULL_BOTH) - tex0f0b39c0(&gdl, 0, 2, 0, 2, 1, NULL); + texSelect(&gdl, 0, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); @@ -3617,7 +3617,7 @@ Gfx *menugfxDrawCarouselChevron(Gfx *gdl, s32 x, s32 y, s32 size, s32 direction, gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); gSPClearGeometryMode(gdl++, G_CULL_BOTH); - tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_XLU_SURF, G_RM_XLU_SURF2); @@ -3701,7 +3701,7 @@ Gfx *menugfxDrawDialogChevron(Gfx *gdl, s32 x, s32 y, s32 size, s32 direction, u gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); gSPClearGeometryMode(gdl++, G_CULL_BOTH); - tex0f0b39c0(&gdl, NULL, 2, 0, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 0, 2, 1, NULL); gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); @@ -4872,7 +4872,7 @@ glabel var7f1adf90 /* f0e5570: 24070001 */ addiu $a3,$zero,0x1 /* f0e5574: afa00018 */ sw $zero,0x18($sp) /* f0e5578: afa20150 */ sw $v0,0x150($sp) -/* f0e557c: 0fc2ce70 */ jal tex0f0b39c0 +/* f0e557c: 0fc2ce70 */ jal texSelect /* f0e5580: 24a5000c */ addiu $a1,$a1,0x000c /* f0e5584: 8fb80150 */ lw $t8,0x150($sp) /* f0e5588: 3c09ba00 */ lui $t1,0xba00 @@ -5757,7 +5757,7 @@ glabel var7f1adf90 /* f0e5570: 24070001 */ addiu $a3,$zero,0x1 /* f0e5574: afa00018 */ sw $zero,0x18($sp) /* f0e5578: afa20150 */ sw $v0,0x150($sp) -/* f0e557c: 0fc2ce70 */ jal tex0f0b39c0 +/* f0e557c: 0fc2ce70 */ jal texSelect /* f0e5580: 24a5000c */ addiu $a1,$a1,0x000c /* f0e5584: 8fb80150 */ lw $t8,0x150($sp) /* f0e5588: 3c09ba00 */ lui $t1,0xba00 diff --git a/src/game/menuitem.c b/src/game/menuitem.c index 27874ec40..23227fc80 100644 --- a/src/game/menuitem.c +++ b/src/game/menuitem.c @@ -10564,7 +10564,7 @@ Gfx *menuitemControllerRenderTexture(Gfx *gdl, s32 x, s32 y, s32 texturenum, u32 gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[texturenum], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[texturenum], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); @@ -10703,7 +10703,7 @@ glabel menuitemControllerRenderLines /* f0f05d8: 00003825 */ move $a3,$zero /* f0f05dc: 24060002 */ li $a2,0x2 /* f0f05e0: 27a40050 */ addiu $a0,$sp,0x50 -/* f0f05e4: 0fc2d290 */ jal tex0f0b39c0 +/* f0f05e4: 0fc2d290 */ jal texSelect /* f0f05e8: 24a50294 */ addiu $a1,$a1,0x294 /* f0f05ec: 8fb90050 */ lw $t9,0x50($sp) /* f0f05f0: 3c0dba00 */ lui $t5,0xba00 @@ -10905,7 +10905,7 @@ Gfx *menuitemControllerRenderLines(Gfx *gdl, struct menurendercontext *context, gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[55], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[55], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); diff --git a/src/game/mplayer/ingame.c b/src/game/mplayer/ingame.c index 1d89c160d..5646f0c2c 100644 --- a/src/game/mplayer/ingame.c +++ b/src/game/mplayer/ingame.c @@ -605,7 +605,7 @@ s32 mpAwardsMenuHandler(s32 operation, struct menuitem *item, union handlerdata gDPSetTextureConvert(gdl++, G_TC_FILT); gDPSetTextureFilter(gdl++, G_TF_POINT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); diff --git a/src/game/mplayer/setup.c b/src/game/mplayer/setup.c index 3c3041f12..0098e49be 100644 --- a/src/game/mplayer/setup.c +++ b/src/game/mplayer/setup.c @@ -695,7 +695,7 @@ s32 mpChallengesListHandler(s32 operation, struct menuitem *item, union handlerd gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); @@ -928,7 +928,7 @@ s32 mpMedalMenuHandler(s32 operation, struct menuitem *item, union handlerdata * gDPSetTextureConvert(gdl++, G_TC_FILT); gDPSetTextureFilter(gdl++, G_TF_POINT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); @@ -3071,7 +3071,7 @@ s32 mpChallengesListMenuHandler(s32 operation, struct menuitem *item, union hand gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetTextureFilter(gdl++, G_TF_POINT); diff --git a/src/game/nbomb.c b/src/game/nbomb.c index 33fb63766..a5da00528 100644 --- a/src/game/nbomb.c +++ b/src/game/nbomb.c @@ -638,7 +638,7 @@ glabel var7f1a7ee8 /* f0074ac: 27a40150 */ addiu $a0,$sp,0x150 /* f0074b0: 24060002 */ addiu $a2,$zero,0x2 /* f0074b4: 24070001 */ addiu $a3,$zero,0x1 -/* f0074b8: 0fc2ce70 */ jal tex0f0b39c0 +/* f0074b8: 0fc2ce70 */ jal texSelect /* f0074bc: 24a50078 */ addiu $a1,$a1,0x0078 /* f0074c0: 8fb90150 */ lw $t9,0x150($sp) /* f0074c4: 3c07e700 */ lui $a3,0xe700 @@ -769,7 +769,7 @@ glabel var7f1a7ee8 /* f0076b8: 24180001 */ addiu $t8,$zero,0x1 /* f0076bc: afb80014 */ sw $t8,0x14($sp) /* f0076c0: afae0010 */ sw $t6,0x10($sp) -/* f0076c4: 0fc2ce70 */ jal tex0f0b39c0 +/* f0076c4: 0fc2ce70 */ jal texSelect /* f0076c8: afa00018 */ sw $zero,0x18($sp) /* f0076cc: 8fb90150 */ lw $t9,0x150($sp) /* f0076d0: 3c014500 */ lui $at,0x4500 @@ -2806,7 +2806,7 @@ Gfx *nbombCreateGdl(void) gdl = gdlstart = gfxAllocate(gdlsizes[index]); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[0x0a], 2, 1, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[0x0a], 2, 1, 2, 1, NULL); gDPPipeSync(gdl++); gDPSetCycleType(gdl++, G_CYC_1CYCLE); @@ -4095,7 +4095,7 @@ glabel nbombRenderOverlay /* f00a6f4: afa00018 */ sw $zero,0x18($sp) /* f00a6f8: a7a8005e */ sh $t0,0x5e($sp) /* f00a6fc: a7a9003c */ sh $t1,0x3c($sp) -/* f00a700: 0fc2ce70 */ jal tex0f0b39c0 +/* f00a700: 0fc2ce70 */ jal texSelect /* f00a704: 24a50078 */ addiu $a1,$a1,0x0078 /* f00a708: 8fae0080 */ lw $t6,0x80($sp) /* f00a70c: 87a8005e */ lh $t0,0x5e($sp) @@ -4406,7 +4406,7 @@ glabel nbombRenderOverlay /* f00a6f4: afa00018 */ sw $zero,0x18($sp) /* f00a6f8: a7a8005e */ sh $t0,0x5e($sp) /* f00a6fc: a7a9003c */ sh $t1,0x3c($sp) -/* f00a700: 0fc2ce70 */ jal tex0f0b39c0 +/* f00a700: 0fc2ce70 */ jal texSelect /* f00a704: 24a50078 */ addiu $a1,$a1,0x0078 /* f00a708: 8fae0080 */ lw $t6,0x80($sp) /* f00a70c: 87a8005e */ lh $t0,0x5e($sp) @@ -4626,7 +4626,7 @@ glabel nbombRenderOverlay // // gdl = func0f0d479c(gdl); // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[10], 2, 1, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[10], 2, 1, 2, 1, NULL); // // gDPPipeSync(gdl++); // gDPSetCycleType(gdl++, G_CYC_1CYCLE); @@ -5027,7 +5027,7 @@ glabel var7f1a7f5c /* f00ae1c: afa00018 */ sw $zero,0x18($sp) /* f00ae20: a7a80072 */ sh $t0,0x72($sp) /* f00ae24: a7a900fa */ sh $t1,0xfa($sp) -/* f00ae28: 0fc2ce70 */ jal tex0f0b39c0 +/* f00ae28: 0fc2ce70 */ jal texSelect /* f00ae2c: 24a50048 */ addiu $a1,$a1,0x0048 /* f00ae30: 8fb80110 */ lw $t8,0x110($sp) /* f00ae34: 87a80072 */ lh $t0,0x72($sp) @@ -5387,7 +5387,7 @@ const u32 var7f1a7eac[] = {0x00000090}; // // gdl = func0f0d479c(gdl); // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[6], 4, 1, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[6], 4, 1, 2, 1, NULL); // // gDPPipeSync(gdl++); // gDPSetCycleType(gdl++, G_CYC_1CYCLE); diff --git a/src/game/player.c b/src/game/player.c index c482dbfb2..4c434500f 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -5196,7 +5196,7 @@ Gfx *playerRenderShield(Gfx *gdl) } f20 = 1 - g_Vars.currentplayer->shieldshowtime * (1.0f / 60.0f); - tex0f0b39c0(&gdl, &g_TexShieldConfigs[0], 4, 1, 2, 1, NULL); + texSelect(&gdl, &g_TexShieldConfigs[0], 4, 1, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_2CYCLE); gDPSetRenderMode(gdl++, G_RM_PASS, G_RM_CLD_SURF2); diff --git a/src/game/propobj.c b/src/game/propobj.c index c7741e04b..bc5139f5b 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -52025,7 +52025,7 @@ glabel var7f1aa824 /* f0808ac: afae0014 */ sw $t6,0x14($sp) /* f0808b0: afaf0010 */ sw $t7,0x10($sp) /* f0808b4: 8fa700c8 */ lw $a3,0xc8($sp) -/* f0808b8: 0fc2ce70 */ jal tex0f0b39c0 +/* f0808b8: 0fc2ce70 */ jal texSelect /* f0808bc: 8fa600cc */ lw $a2,0xcc($sp) /* f0808c0: 8fb000c4 */ lw $s0,0xc4($sp) /* f0808c4: 3c190102 */ lui $t9,0x102 @@ -52375,7 +52375,7 @@ glabel var7f1aa824 // // Render the image // gSPSetGeometryMode(gdl++, G_CULL_BACK); // -// tex0f0b39c0(&gdl, tconfig, arg5, arg4, 2, 1, NULL); +// texSelect(&gdl, tconfig, arg5, arg4, 2, 1, NULL); // // gSPMatrix(gdl++, osVirtualToPhysical(model->matrices), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); // @@ -52590,9 +52590,9 @@ Gfx *gfxRenderRadialShadow(Gfx *gdl, f32 x, f32 y, f32 z, f32 angle, f32 radius, vertices[3].unk08 = 0; vertices[3].unk0a = tconfig->height * 32 - 1; - tex0f0b39c0(&gdl, tconfig, 4, 1, 2, 1, NULL); + texSelect(&gdl, tconfig, 4, 1, 2, 1, NULL); } else { - tex0f0b39c0(&gdl, NULL, 1, 1, 2, 1, NULL); + texSelect(&gdl, NULL, 1, 1, 2, 1, NULL); } gSPSetGeometryMode(gdl++, G_CULL_BACK); diff --git a/src/game/radar.c b/src/game/radar.c index 8a6424699..8d419b837 100644 --- a/src/game/radar.c +++ b/src/game/radar.c @@ -77,7 +77,7 @@ Gfx *radarRenderBackground(Gfx *gdl, struct textureconfig *tconfig, s32 arg2, s3 spa8[0] = arg4 * g_ScaleX; spa8[1] = arg4; - tex0f0b39c0(&gdl, tconfig, 2, 0, 0, 1, NULL); + texSelect(&gdl, tconfig, 2, 0, 0, 1, NULL); func0f0b278c(&gdl, spb0, spa8, tconfig->width, tconfig->height, 0, 0, 1, 0, 0xff, 0, 40, tconfig->level > 0, 0); diff --git a/src/game/savebuffer.c b/src/game/savebuffer.c index 251d237b6..e255a504d 100644 --- a/src/game/savebuffer.c +++ b/src/game/savebuffer.c @@ -146,9 +146,9 @@ Gfx *func0f0d4a3c(Gfx *gdl, s32 arg1) gDPPipeSync(gdl++); if (arg1 == 0) { - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[6], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[6], 2, 0, 2, 1, NULL); } else if (arg1 == 1) { - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[11], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[11], 2, 0, 2, 1, NULL); } gDPPipeSync(gdl++); diff --git a/src/game/shards.c b/src/game/shards.c index 0cea69c50..0d426b145 100644 --- a/src/game/shards.c +++ b/src/game/shards.c @@ -810,9 +810,9 @@ Gfx *shardsRenderGlass(Gfx *gdl) s32 j; if (g_Vars.currentplayer->visionmode == VISIONMODE_XRAY) { - tex0f0b39c0(&gdl, NULL, 2, 1, 2, 1, NULL); + texSelect(&gdl, NULL, 2, 1, 2, 1, NULL); } else { - tex0f0b39c0(&gdl, &g_TexShardConfigs[1], 2, 1, 2, 1, NULL); + texSelect(&gdl, &g_TexShardConfigs[1], 2, 1, 2, 1, NULL); } gSPTexture(gdl++, 0x0d80, 0x0d80, 2, G_TX_RENDERTILE, G_ON); @@ -966,7 +966,7 @@ glabel shardsRenderGlass /* f14c6b8: 00002825 */ or $a1,$zero,$zero /* f14c6bc: 24060002 */ addiu $a2,$zero,0x2 /* f14c6c0: 24070001 */ addiu $a3,$zero,0x1 -/* f14c6c4: 0fc2c5c8 */ jal tex0f0b39c0 +/* f14c6c4: 0fc2c5c8 */ jal texSelect /* f14c6c8: afa00018 */ sw $zero,0x18($sp) /* f14c6cc: 1000000b */ beqz $zero,.NB0f14c6fc /* f14c6d0: 8fab0138 */ lw $t3,0x138($sp) @@ -978,7 +978,7 @@ glabel shardsRenderGlass /* f14c6e4: afa90010 */ sw $t1,0x10($sp) /* f14c6e8: 24070001 */ addiu $a3,$zero,0x1 /* f14c6ec: afa00018 */ sw $zero,0x18($sp) -/* f14c6f0: 0fc2c5c8 */ jal tex0f0b39c0 +/* f14c6f0: 0fc2c5c8 */ jal texSelect /* f14c6f4: 24a5000c */ addiu $a1,$a1,0xc /* f14c6f8: 8fab0138 */ lw $t3,0x138($sp) .NB0f14c6fc: diff --git a/src/game/sight.c b/src/game/sight.c index 8379891b3..9ece82109 100644 --- a/src/game/sight.c +++ b/src/game/sight.c @@ -5579,7 +5579,7 @@ glabel sightRenderClassic /* f0d97b0: 448f3000 */ mtc1 $t7,$f6 /* f0d97b4: afa00010 */ sw $zero,0x10($sp) /* f0d97b8: 46803220 */ cvt.s.w $f8,$f6 -/* f0d97bc: 0fc2ce70 */ jal tex0f0b39c0 +/* f0d97bc: 0fc2ce70 */ jal texSelect /* f0d97c0: e7a800c0 */ swc1 $f8,0xc0($sp) /* f0d97c4: 92190005 */ lbu $t9,0x5($s0) /* f0d97c8: 92070004 */ lbu $a3,0x4($s0) @@ -5715,7 +5715,7 @@ glabel sightRenderClassic // spbc[0] = (tconfig->width >> 1) * (f32)g_ScaleX; // spbc[1] = tconfig->height >> 1; // -// tex0f0b39c0(&gdl, tconfig, 2, 0, 0, 1, NULL); +// texSelect(&gdl, tconfig, 2, 0, 0, 1, NULL); // // func0f0b278c(&gdl, spc4, spbc, tconfig->width, tconfig->height, // 0, 0, 1, 0xff, 0xff, 0xff, 0x7f, tconfig->level > 0, 0); diff --git a/src/game/sky.c b/src/game/sky.c index e04c8d499..0163c8c9f 100644 --- a/src/game/sky.c +++ b/src/game/sky.c @@ -2209,7 +2209,7 @@ glabel var7f1b50c8 /* f12118c: afad0010 */ sw $t5,0x10($sp) /* f121190: 24060001 */ addiu $a2,$zero,0x1 /* f121194: 00003825 */ or $a3,$zero,$zero -/* f121198: 0fc2ce70 */ jal tex0f0b39c0 +/* f121198: 0fc2ce70 */ jal texSelect /* f12119c: 01792821 */ addu $a1,$t3,$t9 /* f1211a0: 8fb806b0 */ lw $t8,0x6b0($sp) /* f1211a4: 3c0eb900 */ lui $t6,0xb900 @@ -3397,7 +3397,7 @@ glabel var7f1b50c8 /* f1223c8: 27a406b0 */ addiu $a0,$sp,0x6b0 /* f1223cc: 24060001 */ addiu $a2,$zero,0x1 /* f1223d0: 00003825 */ or $a3,$zero,$zero -/* f1223d4: 0fc2ce70 */ jal tex0f0b39c0 +/* f1223d4: 0fc2ce70 */ jal texSelect /* f1223d8: 01f82821 */ addu $a1,$t7,$t8 /* f1223dc: 8fa206b0 */ lw $v0,0x6b0($sp) /* f1223e0: 3c0bfb00 */ lui $t3,0xfb00 @@ -4332,7 +4332,7 @@ glabel var7f1b50c8 // } else { // gDPPipeSync(gdl++); // -// tex0f0b39c0(&gdl, &g_TexWaterConfigs[env->water_type], 1, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexWaterConfigs[env->water_type], 1, 0, 2, 1, NULL); // // gDPSetRenderMode(gdl++, G_RM_OPA_SURF, G_RM_OPA_SURF2); // @@ -4739,7 +4739,7 @@ glabel var7f1b50c8 // // gDPPipeSync(gdl++); // -// tex0f0b39c0(&gdl, &g_TexWaterConfigs[env->unk18], 1, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexWaterConfigs[env->unk18], 1, 0, 2, 1, NULL); // // gDPSetEnvColor(gdl++, env->sky_r, env->sky_g, env->sky_b, 0xff); // gDPSetCombineLERP(gdl++, @@ -8252,7 +8252,7 @@ Gfx *skyRenderSuns(Gfx *gdl, bool xray) g_SunFlareTimers240[i] += g_Vars.lvupdate240; - tex0f0b39c0(&gdl, &g_TexLightGlareConfigs[5], 4, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexLightGlareConfigs[5], 4, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetColorDither(gdl++, G_CD_DISABLE); @@ -8409,7 +8409,7 @@ glabel var7f1b511c /* f126fe0: 24a50048 */ addiu $a1,$a1,0x48 /* f126fe4: 460ae101 */ sub.s $f4,$f28,$f10 /* f126fe8: 46142182 */ mul.s $f6,$f4,$f20 -/* f126fec: 0fc2cfb8 */ jal tex0f0b39c0 +/* f126fec: 0fc2cfb8 */ jal texSelect /* f126ff0: e7a6012c */ swc1 $f6,0x12c($sp) /* f126ff4: 8fa90198 */ lw $t1,0x198($sp) /* f126ff8: 3c10ba00 */ lui $s0,0xba00 @@ -8566,7 +8566,7 @@ glabel var7f1b511c /* f127254: 24060004 */ li $a2,0x4 /* f127258: 00003825 */ move $a3,$zero /* f12725c: afa00018 */ sw $zero,0x18($sp) -/* f127260: 0fc2cfb8 */ jal tex0f0b39c0 +/* f127260: 0fc2cfb8 */ jal texSelect /* f127264: 24a5000c */ addiu $a1,$a1,0xc /* f127268: 8fab0198 */ lw $t3,0x198($sp) /* f12726c: 3c0fba00 */ lui $t7,0xba00 @@ -8988,7 +8988,7 @@ glabel var7f1b511c /* f1279f0: 24a50048 */ addiu $a1,$a1,0x48 /* f1279f4: 460ae101 */ sub.s $f4,$f28,$f10 /* f1279f8: 46142182 */ mul.s $f6,$f4,$f20 -/* f1279fc: 0fc2cf74 */ jal tex0f0b39c0 +/* f1279fc: 0fc2cf74 */ jal texSelect /* f127a00: e7a6012c */ swc1 $f6,0x12c($sp) /* f127a04: 8fa90198 */ lw $t1,0x198($sp) /* f127a08: 3c10ba00 */ lui $s0,0xba00 @@ -9145,7 +9145,7 @@ glabel var7f1b511c /* f127c64: 24060004 */ li $a2,0x4 /* f127c68: 00003825 */ move $a3,$zero /* f127c6c: afa00018 */ sw $zero,0x18($sp) -/* f127c70: 0fc2cf74 */ jal tex0f0b39c0 +/* f127c70: 0fc2cf74 */ jal texSelect /* f127c74: 24a5000c */ addiu $a1,$a1,0xc /* f127c78: 8fab0198 */ lw $t3,0x198($sp) /* f127c7c: 3c0fba00 */ lui $t7,0xba00 @@ -9574,7 +9574,7 @@ glabel var7f1b511c /* f126514: 24a50048 */ addiu $a1,$a1,0x48 /* f126518: 460ae101 */ sub.s $f4,$f28,$f10 /* f12651c: 46142182 */ mul.s $f6,$f4,$f20 -/* f126520: 0fc2ce70 */ jal tex0f0b39c0 +/* f126520: 0fc2ce70 */ jal texSelect /* f126524: e7a60124 */ swc1 $f6,0x124($sp) /* f126528: 8faa0190 */ lw $t2,0x190($sp) /* f12652c: 3c11ba00 */ lui $s1,0xba00 @@ -9729,7 +9729,7 @@ glabel var7f1b511c /* f126780: 24060004 */ addiu $a2,$zero,0x4 /* f126784: 00003825 */ or $a3,$zero,$zero /* f126788: afa00018 */ sw $zero,0x18($sp) -/* f12678c: 0fc2ce70 */ jal tex0f0b39c0 +/* f12678c: 0fc2ce70 */ jal texSelect /* f126790: 24a5000c */ addiu $a1,$a1,0xc /* f126794: 8fa90190 */ lw $t1,0x190($sp) /* f126798: 3c0eba00 */ lui $t6,0xba00 @@ -10083,7 +10083,7 @@ glabel var7f1b511c // sp124 = (y - viGetViewHeight() * 0.5f) * 0.01f; // // // Render the sun -// tex0f0b39c0(&gdl, &g_TexLightGlareConfigs[6], 4, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexLightGlareConfigs[6], 4, 0, 2, 1, NULL); // // gDPSetCycleType(gdl++, G_CYC_1CYCLE); // gDPSetColorDither(gdl++, G_CD_BAYER); @@ -10111,7 +10111,7 @@ glabel var7f1b511c // func0f0b2150(&gdl, sp17c, sp174, g_TexLightGlareConfigs[6].width, g_TexLightGlareConfigs[6].height, 0, 1, 1, 1, 0, 1); // // // Render the artifacts -// tex0f0b39c0(&gdl, &g_TexLightGlareConfigs[1], 4, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexLightGlareConfigs[1], 4, 0, 2, 1, NULL); // // gDPSetCycleType(gdl++, G_CYC_1CYCLE); // gDPSetColorDither(gdl++, G_CD_BAYER); diff --git a/src/game/sparks.c b/src/game/sparks.c index b97936aac..169fa9c86 100644 --- a/src/game/sparks.c +++ b/src/game/sparks.c @@ -331,7 +331,7 @@ Gfx *sparksRender(Gfx *gdl) axis = ABS(g_Vars.currentplayer->cam_look.z) > ABS(g_Vars.currentplayer->cam_look.x) ? 2 : 0; } - tex0f0b39c0(&gdl, &g_TexSparkConfigs[0], 4, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexSparkConfigs[0], 4, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetColorDither(gdl++, G_CD_DISABLE); diff --git a/src/game/tex.c b/src/game/tex.c index 218de6cb8..9844146b1 100644 --- a/src/game/tex.c +++ b/src/game/tex.c @@ -11,7 +11,7 @@ #include "data.h" #include "types.h" -s32 tex0f0b3350(s32 value) +s32 texGetMask(s32 value) { if (value < 2) { return 0; @@ -48,100 +48,100 @@ s32 tex0f0b3350(s32 value) return 8; } -s32 tex0f0b33f8(s32 arg0, s32 arg1, s32 arg2) +s32 tex0f0b33f8(s32 width, s32 height, s32 lod) { s32 sum = 0; - if (arg2 <= 0) { - arg2 = 1; + if (lod <= 0) { + lod = 1; } - while (arg2 > 0) { - sum += (arg0 + 15) / 16 * 4 * arg1; + while (lod > 0) { + sum += (width + 15) / 16 * 4 * height; - arg2--; + lod--; - if (arg0 >= 2) { - arg0 >>= 1; + if (width >= 2) { + width >>= 1; } - if (arg1 >= 2) { - arg1 >>= 1; + if (height >= 2) { + height >>= 1; } } return sum; } -s32 tex0f0b3468(s32 arg0, s32 arg1, s32 arg2) +s32 tex0f0b3468(s32 width, s32 height, s32 lod) { s32 sum = 0; - if (arg2 <= 0) { - arg2 = 1; + if (lod <= 0) { + lod = 1; } - while (arg2 > 0) { - sum += (arg0 + 7) / 8 * 4 * arg1; + while (lod > 0) { + sum += (width + 7) / 8 * 4 * height; - arg2--; + lod--; - if (arg0 >= 2) { - arg0 >>= 1; + if (width >= 2) { + width >>= 1; } - if (arg1 >= 2) { - arg1 >>= 1; + if (height >= 2) { + height >>= 1; } } return sum; } -s32 tex0f0b34d8(s32 arg0, s32 arg1, s32 arg2) +s32 tex0f0b34d8(s32 width, s32 height, s32 lod) { s32 sum = 0; - if (arg2 <= 0) { - arg2 = 1; + if (lod <= 0) { + lod = 1; } - while (arg2 > 0) { - sum += (arg0 + 3) / 4 * 4 * arg1; + while (lod > 0) { + sum += (width + 3) / 4 * 4 * height; - arg2--; + lod--; - if (arg0 >= 2) { - arg0 >>= 1; + if (width >= 2) { + width >>= 1; } - if (arg1 >= 2) { - arg1 >>= 1; + if (height >= 2) { + height >>= 1; } } return sum; } -s32 tex0f0b3548(s32 arg0, s32 arg1, s32 arg2) +s32 tex0f0b3548(s32 width, s32 height, s32 lod) { s32 sum = 0; - if (arg2 <= 0) { - arg2 = 1; + if (lod <= 0) { + lod = 1; } - while (arg2 > 0) { - sum += (arg0 + 3) / 4 * 4 * arg1; + while (lod > 0) { + sum += (width + 3) / 4 * 4 * height; - arg2--; + lod--; - if (arg0 >= 2) { - arg0 >>= 1; + if (width >= 2) { + width >>= 1; } - if (arg1 >= 2) { - arg1 >>= 1; + if (height >= 2) { + height >>= 1; } } @@ -243,1084 +243,334 @@ void texSetRenderMode(Gfx **gdlptr, s32 arg1, s32 numcycles, s32 arg3) *gdlptr = gdl; } -void tex0f0b3988(struct textureconfig *config) +void texLoadFromConfig(struct textureconfig *config) { if ((u32)config->texturenum < NUM_TEXTURES) { - texLoadFromConfigs(config, 1, 0, 0); + texLoadFromConfigs(config, 1, NULL, 0); } } -GLOBAL_ASM( -glabel tex0f0b39c0 -/* f0b39c0: 27bdfe90 */ addiu $sp,$sp,-368 -/* f0b39c4: afbf002c */ sw $ra,0x2c($sp) -/* f0b39c8: afb40028 */ sw $s4,0x28($sp) -/* f0b39cc: afb30024 */ sw $s3,0x24($sp) -/* f0b39d0: afb20020 */ sw $s2,0x20($sp) -/* f0b39d4: afb1001c */ sw $s1,0x1c($sp) -/* f0b39d8: afb00018 */ sw $s0,0x18($sp) -/* f0b39dc: afa40170 */ sw $a0,0x170($sp) -/* f0b39e0: afa50174 */ sw $a1,0x174($sp) -/* f0b39e4: afa60178 */ sw $a2,0x178($sp) -/* f0b39e8: 8c8f0000 */ lw $t7,0x0($a0) -/* f0b39ec: 00e08825 */ or $s1,$a3,$zero -/* f0b39f0: 14a00025 */ bnez $a1,.L0f0b3a88 -/* f0b39f4: afaf0168 */ sw $t7,0x168($sp) -/* f0b39f8: 00c02825 */ or $a1,$a2,$zero -/* f0b39fc: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3a00: 0fc2cd6e */ jal texSetRenderMode -/* f0b3a04: 27a40168 */ addiu $a0,$sp,0x168 -/* f0b3a08: 2a210002 */ slti $at,$s1,0x2 -/* f0b3a0c: 1420000d */ bnez $at,.L0f0b3a44 -/* f0b3a10: 8fae0168 */ lw $t6,0x168($sp) -/* f0b3a14: 8fa20168 */ lw $v0,0x168($sp) -/* f0b3a18: 322e00ff */ andi $t6,$s1,0xff -/* f0b3a1c: 000e7c00 */ sll $t7,$t6,0x10 -/* f0b3a20: 3c01bb00 */ lui $at,0xbb00 -/* f0b3a24: 244d0008 */ addiu $t5,$v0,0x8 -/* f0b3a28: afad0168 */ sw $t5,0x168($sp) -/* f0b3a2c: 01e1c025 */ or $t8,$t7,$at -/* f0b3a30: 37190001 */ ori $t9,$t8,0x1 -/* f0b3a34: 240dffff */ addiu $t5,$zero,-1 -/* f0b3a38: ac4d0004 */ sw $t5,0x4($v0) -/* f0b3a3c: 10000008 */ b .L0f0b3a60 -/* f0b3a40: ac590000 */ sw $t9,0x0($v0) -.L0f0b3a44: -/* f0b3a44: 25cf0008 */ addiu $t7,$t6,0x8 -/* f0b3a48: afaf0168 */ sw $t7,0x168($sp) -/* f0b3a4c: 3c18bb00 */ lui $t8,0xbb00 -/* f0b3a50: 37180001 */ ori $t8,$t8,0x1 -/* f0b3a54: 2419ffff */ addiu $t9,$zero,-1 -/* f0b3a58: add90004 */ sw $t9,0x4($t6) -/* f0b3a5c: add80000 */ sw $t8,0x0($t6) -.L0f0b3a60: -/* f0b3a60: 8fad0168 */ lw $t5,0x168($sp) -/* f0b3a64: 3c0ffcff */ lui $t7,0xfcff -/* f0b3a68: 3c18fffe */ lui $t8,0xfffe -/* f0b3a6c: 25ae0008 */ addiu $t6,$t5,0x8 -/* f0b3a70: afae0168 */ sw $t6,0x168($sp) -/* f0b3a74: 3718793c */ ori $t8,$t8,0x793c -/* f0b3a78: 35efffff */ ori $t7,$t7,0xffff -/* f0b3a7c: adaf0000 */ sw $t7,0x0($t5) -/* f0b3a80: 100003a7 */ b .L0f0b4920 -/* f0b3a84: adb80004 */ sw $t8,0x4($t5) -.L0f0b3a88: -/* f0b3a88: 8fb90174 */ lw $t9,0x174($sp) -/* f0b3a8c: 0000a025 */ or $s4,$zero,$zero -/* f0b3a90: 24050001 */ addiu $a1,$zero,0x1 -/* f0b3a94: 8f2d0000 */ lw $t5,0x0($t9) -/* f0b3a98: 93330004 */ lbu $s3,0x4($t9) -/* f0b3a9c: 93320005 */ lbu $s2,0x5($t9) -/* f0b3aa0: 2da10daf */ sltiu $at,$t5,_numtextures -/* f0b3aa4: 10200004 */ beqz $at,.L0f0b3ab8 -/* f0b3aa8: 03202025 */ or $a0,$t9,$zero -/* f0b3aac: 8fa60188 */ lw $a2,0x188($sp) -/* f0b3ab0: 0fc5cd0d */ jal texLoadFromConfigs -/* f0b3ab4: 00003825 */ or $a3,$zero,$zero -.L0f0b3ab8: -/* f0b3ab8: 8fae0174 */ lw $t6,0x174($sp) -/* f0b3abc: 24010001 */ addiu $at,$zero,0x1 -/* f0b3ac0: 3c0d800b */ lui $t5,%hi(g_TexWallhitConfigs) -/* f0b3ac4: 91cf000b */ lbu $t7,0xb($t6) -/* f0b3ac8: 55e10027 */ bnel $t7,$at,.L0f0b3b68 -/* f0b3acc: 8fad0174 */ lw $t5,0x174($sp) -/* f0b3ad0: 8dc20000 */ lw $v0,0x0($t6) -/* f0b3ad4: 8dadb560 */ lw $t5,%lo(g_TexWallhitConfigs)($t5) -/* f0b3ad8: 3c018000 */ lui $at,0x8000 -/* f0b3adc: 0041c025 */ or $t8,$v0,$at -/* f0b3ae0: 2401000c */ addiu $at,$zero,0xc -/* f0b3ae4: 01cd8023 */ subu $s0,$t6,$t5 -/* f0b3ae8: 0201001a */ div $zero,$s0,$at -/* f0b3aec: 0000c812 */ mflo $t9 -/* f0b3af0: 9703fff8 */ lhu $v1,-0x8($t8) -/* f0b3af4: 0720000b */ bltz $t9,.L0f0b3b24 -/* f0b3af8: 03208025 */ or $s0,$t9,$zero -/* f0b3afc: 3c0f800b */ lui $t7,%hi(g_TexNumConfigs) -/* f0b3b00: 8defb558 */ lw $t7,%lo(g_TexNumConfigs)($t7) -/* f0b3b04: 3c18800b */ lui $t8,%hi(g_TexWords) -/* f0b3b08: 032f082a */ slt $at,$t9,$t7 -/* f0b3b0c: 10200005 */ beqz $at,.L0f0b3b24 -/* f0b3b10: 00000000 */ nop -/* f0b3b14: 8f18b55c */ lw $t8,%lo(g_TexWords)($t8) -/* f0b3b18: 00197080 */ sll $t6,$t9,0x2 -/* f0b3b1c: 030e6821 */ addu $t5,$t8,$t6 -/* f0b3b20: 8db40000 */ lw $s4,0x0($t5) -.L0f0b3b24: -/* f0b3b24: 1680000f */ bnez $s4,.L0f0b3b64 -/* f0b3b28: 00602025 */ or $a0,$v1,$zero -/* f0b3b2c: 0fc5cba3 */ jal tex0f172e8c -/* f0b3b30: 8fa50188 */ lw $a1,0x188($sp) -/* f0b3b34: 0600000b */ bltz $s0,.L0f0b3b64 -/* f0b3b38: 0040a025 */ or $s4,$v0,$zero -/* f0b3b3c: 3c19800b */ lui $t9,%hi(g_TexNumConfigs) -/* f0b3b40: 8f39b558 */ lw $t9,%lo(g_TexNumConfigs)($t9) -/* f0b3b44: 3c0f800b */ lui $t7,%hi(g_TexWords) -/* f0b3b48: 0219082a */ slt $at,$s0,$t9 -/* f0b3b4c: 50200006 */ beqzl $at,.L0f0b3b68 -/* f0b3b50: 8fad0174 */ lw $t5,0x174($sp) -/* f0b3b54: 8defb55c */ lw $t7,%lo(g_TexWords)($t7) -/* f0b3b58: 0010c080 */ sll $t8,$s0,0x2 -/* f0b3b5c: 01f87021 */ addu $t6,$t7,$t8 -/* f0b3b60: adc20000 */ sw $v0,0x0($t6) -.L0f0b3b64: -/* f0b3b64: 8fad0174 */ lw $t5,0x174($sp) -.L0f0b3b68: -/* f0b3b68: 91a20006 */ lbu $v0,0x6($t5) -/* f0b3b6c: 14400172 */ bnez $v0,.L0f0b4138 -/* f0b3b70: 28410007 */ slti $at,$v0,0x7 -/* f0b3b74: 1280000c */ beqz $s4,.L0f0b3ba8 -/* f0b3b78: 8faf0174 */ lw $t7,0x174($sp) -/* f0b3b7c: 8e820008 */ lw $v0,0x8($s4) -/* f0b3b80: 30580003 */ andi $t8,$v0,0x3 -/* f0b3b84: a3b80146 */ sb $t8,0x146($sp) -/* f0b3b88: 8e8e000c */ lw $t6,0xc($s4) -/* f0b3b8c: 000286c0 */ sll $s0,$v0,0x1b -/* f0b3b90: 0010cf42 */ srl $t9,$s0,0x1d -/* f0b3b94: 333000ff */ andi $s0,$t9,0xff -/* f0b3b98: 000e6f82 */ srl $t5,$t6,0x1e -/* f0b3b9c: 000dcb80 */ sll $t9,$t5,0xe -/* f0b3ba0: 10000004 */ b .L0f0b3bb4 -/* f0b3ba4: afb90140 */ sw $t9,0x140($sp) -.L0f0b3ba8: -/* f0b3ba8: 91f80008 */ lbu $t8,0x8($t7) -/* f0b3bac: 91f00007 */ lbu $s0,0x7($t7) -/* f0b3bb0: a3b80146 */ sb $t8,0x146($sp) -.L0f0b3bb4: -/* f0b3bb4: 93a20146 */ lbu $v0,0x146($sp) -/* f0b3bb8: 24180002 */ addiu $t8,$zero,0x2 -/* f0b3bbc: 02602025 */ or $a0,$s3,$zero -/* f0b3bc0: 1040002a */ beqz $v0,.L0f0b3c6c -/* f0b3bc4: 02402825 */ or $a1,$s2,$zero -/* f0b3bc8: 24010001 */ addiu $at,$zero,0x1 -/* f0b3bcc: 1041001d */ beq $v0,$at,.L0f0b3c44 -/* f0b3bd0: 240d0002 */ addiu $t5,$zero,0x2 -/* f0b3bd4: 24010002 */ addiu $at,$zero,0x2 -/* f0b3bd8: 10410010 */ beq $v0,$at,.L0f0b3c1c -/* f0b3bdc: 240f0002 */ addiu $t7,$zero,0x2 -/* f0b3be0: 24010003 */ addiu $at,$zero,0x3 -/* f0b3be4: 10410003 */ beq $v0,$at,.L0f0b3bf4 -/* f0b3be8: 240e0003 */ addiu $t6,$zero,0x3 -/* f0b3bec: 10000026 */ b .L0f0b3c88 -/* f0b3bf0: 8fab0138 */ lw $t3,0x138($sp) -.L0f0b3bf4: -/* f0b3bf4: afae013c */ sw $t6,0x13c($sp) -/* f0b3bf8: 02602025 */ or $a0,$s3,$zero -/* f0b3bfc: 02402825 */ or $a1,$s2,$zero -/* f0b3c00: 0fc2cd52 */ jal tex0f0b3548 -/* f0b3c04: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3c08: 266d0003 */ addiu $t5,$s3,0x3 -/* f0b3c0c: 000dc883 */ sra $t9,$t5,0x2 -/* f0b3c10: 244bffff */ addiu $t3,$v0,-1 -/* f0b3c14: 1000001c */ b .L0f0b3c88 -/* f0b3c18: afb90134 */ sw $t9,0x134($sp) -.L0f0b3c1c: -/* f0b3c1c: afaf013c */ sw $t7,0x13c($sp) -/* f0b3c20: 02602025 */ or $a0,$s3,$zero -/* f0b3c24: 02402825 */ or $a1,$s2,$zero -/* f0b3c28: 0fc2cd36 */ jal tex0f0b34d8 -/* f0b3c2c: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3c30: 26780003 */ addiu $t8,$s3,0x3 -/* f0b3c34: 00187083 */ sra $t6,$t8,0x2 -/* f0b3c38: 244bffff */ addiu $t3,$v0,-1 -/* f0b3c3c: 10000012 */ b .L0f0b3c88 -/* f0b3c40: afae0134 */ sw $t6,0x134($sp) -.L0f0b3c44: -/* f0b3c44: afad013c */ sw $t5,0x13c($sp) -/* f0b3c48: 02602025 */ or $a0,$s3,$zero -/* f0b3c4c: 02402825 */ or $a1,$s2,$zero -/* f0b3c50: 0fc2cd1a */ jal tex0f0b3468 -/* f0b3c54: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3c58: 26790007 */ addiu $t9,$s3,0x7 -/* f0b3c5c: 001978c3 */ sra $t7,$t9,0x3 -/* f0b3c60: 244bffff */ addiu $t3,$v0,-1 -/* f0b3c64: 10000008 */ b .L0f0b3c88 -/* f0b3c68: afaf0134 */ sw $t7,0x134($sp) -.L0f0b3c6c: -/* f0b3c6c: afb8013c */ sw $t8,0x13c($sp) -/* f0b3c70: 0fc2ccfe */ jal tex0f0b33f8 -/* f0b3c74: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3c78: 266e000f */ addiu $t6,$s3,0xf -/* f0b3c7c: 000e6903 */ sra $t5,$t6,0x4 -/* f0b3c80: 244bffff */ addiu $t3,$v0,-1 -/* f0b3c84: afad0134 */ sw $t5,0x134($sp) -.L0f0b3c88: -/* f0b3c88: 8fb90184 */ lw $t9,0x184($sp) -/* f0b3c8c: 27a40168 */ addiu $a0,$sp,0x168 -/* f0b3c90: 8fa50178 */ lw $a1,0x178($sp) -/* f0b3c94: 13200063 */ beqz $t9,.L0f0b3e24 -/* f0b3c98: 24060001 */ addiu $a2,$zero,0x1 -/* f0b3c9c: 02203825 */ or $a3,$s1,$zero -/* f0b3ca0: 0fc2cd6e */ jal texSetRenderMode -/* f0b3ca4: afab0138 */ sw $t3,0x138($sp) -/* f0b3ca8: 2a210002 */ slti $at,$s1,0x2 -/* f0b3cac: 1420000d */ bnez $at,.L0f0b3ce4 -/* f0b3cb0: 8fab0138 */ lw $t3,0x138($sp) -/* f0b3cb4: 8fa20168 */ lw $v0,0x168($sp) -/* f0b3cb8: 322e00ff */ andi $t6,$s1,0xff -/* f0b3cbc: 000e6c00 */ sll $t5,$t6,0x10 -/* f0b3cc0: 3c01bb00 */ lui $at,0xbb00 -/* f0b3cc4: 24580008 */ addiu $t8,$v0,0x8 -/* f0b3cc8: afb80168 */ sw $t8,0x168($sp) -/* f0b3ccc: 01a1c825 */ or $t9,$t5,$at -/* f0b3cd0: 372f0001 */ ori $t7,$t9,0x1 -/* f0b3cd4: 2418ffff */ addiu $t8,$zero,-1 -/* f0b3cd8: ac580004 */ sw $t8,0x4($v0) -/* f0b3cdc: 10000009 */ b .L0f0b3d04 -/* f0b3ce0: ac4f0000 */ sw $t7,0x0($v0) -.L0f0b3ce4: -/* f0b3ce4: 8fae0168 */ lw $t6,0x168($sp) -/* f0b3ce8: 3c19bb00 */ lui $t9,0xbb00 -/* f0b3cec: 37390001 */ ori $t9,$t9,0x1 -/* f0b3cf0: 25cd0008 */ addiu $t5,$t6,0x8 -/* f0b3cf4: afad0168 */ sw $t5,0x168($sp) -/* f0b3cf8: 240fffff */ addiu $t7,$zero,-1 -/* f0b3cfc: adcf0004 */ sw $t7,0x4($t6) -/* f0b3d00: add90000 */ sw $t9,0x0($t6) -.L0f0b3d04: -/* f0b3d04: 8fb80168 */ lw $t8,0x168($sp) -/* f0b3d08: 3c0dba00 */ lui $t5,0xba00 -/* f0b3d0c: 35ad1001 */ ori $t5,$t5,0x1001 -/* f0b3d10: 270e0008 */ addiu $t6,$t8,0x8 -/* f0b3d14: afae0168 */ sw $t6,0x168($sp) -/* f0b3d18: 02003025 */ or $a2,$s0,$zero -/* f0b3d1c: af000004 */ sw $zero,0x4($t8) -/* f0b3d20: 1200000c */ beqz $s0,.L0f0b3d54 -/* f0b3d24: af0d0000 */ sw $t5,0x0($t8) -/* f0b3d28: 24010002 */ addiu $at,$zero,0x2 -/* f0b3d2c: 10c10024 */ beq $a2,$at,.L0f0b3dc0 -/* f0b3d30: 8fb80140 */ lw $t8,0x140($sp) -/* f0b3d34: 24010003 */ addiu $at,$zero,0x3 -/* f0b3d38: 10c10010 */ beq $a2,$at,.L0f0b3d7c -/* f0b3d3c: 8fad0168 */ lw $t5,0x168($sp) -/* f0b3d40: 24010004 */ addiu $at,$zero,0x4 -/* f0b3d44: 10c10016 */ beq $a2,$at,.L0f0b3da0 -/* f0b3d48: 8fae0168 */ lw $t6,0x168($sp) -/* f0b3d4c: 10000036 */ b .L0f0b3e28 -/* f0b3d50: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b3d54: -/* f0b3d54: 8fb90168 */ lw $t9,0x168($sp) -/* f0b3d58: 3c18fc12 */ lui $t8,0xfc12 -/* f0b3d5c: 3c0eff33 */ lui $t6,0xff33 -/* f0b3d60: 272f0008 */ addiu $t7,$t9,0x8 -/* f0b3d64: afaf0168 */ sw $t7,0x168($sp) -/* f0b3d68: 35ceffff */ ori $t6,$t6,0xffff -/* f0b3d6c: 37181824 */ ori $t8,$t8,0x1824 -/* f0b3d70: af380000 */ sw $t8,0x0($t9) -/* f0b3d74: 1000002b */ b .L0f0b3e24 -/* f0b3d78: af2e0004 */ sw $t6,0x4($t9) -.L0f0b3d7c: -/* f0b3d7c: 25b90008 */ addiu $t9,$t5,0x8 -/* f0b3d80: 3c0ffc12 */ lui $t7,0xfc12 -/* f0b3d84: 3c18ff33 */ lui $t8,0xff33 -/* f0b3d88: 3718ffff */ ori $t8,$t8,0xffff -/* f0b3d8c: 35ef1824 */ ori $t7,$t7,0x1824 -/* f0b3d90: afb90168 */ sw $t9,0x168($sp) -/* f0b3d94: adb80004 */ sw $t8,0x4($t5) -/* f0b3d98: 10000022 */ b .L0f0b3e24 -/* f0b3d9c: adaf0000 */ sw $t7,0x0($t5) -.L0f0b3da0: -/* f0b3da0: 25cd0008 */ addiu $t5,$t6,0x8 -/* f0b3da4: 3c19fc12 */ lui $t9,0xfc12 -/* f0b3da8: 37397e24 */ ori $t9,$t9,0x7e24 -/* f0b3dac: afad0168 */ sw $t5,0x168($sp) -/* f0b3db0: 240ff9fc */ addiu $t7,$zero,-1540 -/* f0b3db4: adcf0004 */ sw $t7,0x4($t6) -/* f0b3db8: 1000001a */ b .L0f0b3e24 -/* f0b3dbc: add90000 */ sw $t9,0x0($t6) -.L0f0b3dc0: -/* f0b3dc0: 34018000 */ dli $at,0x8000 -/* f0b3dc4: 13010006 */ beq $t8,$at,.L0f0b3de0 -/* f0b3dc8: 8fae0168 */ lw $t6,0x168($sp) -/* f0b3dcc: 3401c000 */ dli $at,0xc000 -/* f0b3dd0: 1301000c */ beq $t8,$at,.L0f0b3e04 -/* f0b3dd4: 3c0dfc12 */ lui $t5,0xfc12 -/* f0b3dd8: 10000013 */ b .L0f0b3e28 -/* f0b3ddc: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b3de0: -/* f0b3de0: 25cd0008 */ addiu $t5,$t6,0x8 -/* f0b3de4: 3c19fc12 */ lui $t9,0xfc12 -/* f0b3de8: 3c0fff33 */ lui $t7,0xff33 -/* f0b3dec: 35efffff */ ori $t7,$t7,0xffff -/* f0b3df0: 37391824 */ ori $t9,$t9,0x1824 -/* f0b3df4: afad0168 */ sw $t5,0x168($sp) -/* f0b3df8: adcf0004 */ sw $t7,0x4($t6) -/* f0b3dfc: 10000009 */ b .L0f0b3e24 -/* f0b3e00: add90000 */ sw $t9,0x0($t6) -.L0f0b3e04: -/* f0b3e04: 8fb80168 */ lw $t8,0x168($sp) -/* f0b3e08: 3c19ff33 */ lui $t9,0xff33 -/* f0b3e0c: 3739ffff */ ori $t9,$t9,0xffff -/* f0b3e10: 270e0008 */ addiu $t6,$t8,0x8 -/* f0b3e14: afae0168 */ sw $t6,0x168($sp) -/* f0b3e18: 35ad1824 */ ori $t5,$t5,0x1824 -/* f0b3e1c: af0d0000 */ sw $t5,0x0($t8) -/* f0b3e20: af190004 */ sw $t9,0x4($t8) -.L0f0b3e24: -/* f0b3e24: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b3e28: -/* f0b3e28: 8fa4013c */ lw $a0,0x13c($sp) -/* f0b3e2c: 32090007 */ andi $t1,$s0,0x7 -/* f0b3e30: 00097540 */ sll $t6,$t1,0x15 -/* f0b3e34: 3c01fd00 */ lui $at,0xfd00 -/* f0b3e38: 24580008 */ addiu $t8,$v0,0x8 -/* f0b3e3c: 308d0003 */ andi $t5,$a0,0x3 -/* f0b3e40: 000d24c0 */ sll $a0,$t5,0x13 -/* f0b3e44: afb80168 */ sw $t8,0x168($sp) -/* f0b3e48: 01c17825 */ or $t7,$t6,$at -/* f0b3e4c: 01e4c025 */ or $t8,$t7,$a0 -/* f0b3e50: 01c04825 */ or $t1,$t6,$zero -/* f0b3e54: ac580000 */ sw $t8,0x0($v0) -/* f0b3e58: 8fae0174 */ lw $t6,0x174($sp) -/* f0b3e5c: 24010002 */ addiu $at,$zero,0x2 -/* f0b3e60: 02003025 */ or $a2,$s0,$zero -/* f0b3e64: 8dcd0000 */ lw $t5,0x0($t6) -/* f0b3e68: 3c080500 */ lui $t0,0x500 -/* f0b3e6c: ac4d0004 */ sw $t5,0x4($v0) -/* f0b3e70: 8fb9013c */ lw $t9,0x13c($sp) -/* f0b3e74: 8faf0168 */ lw $t7,0x168($sp) -/* f0b3e78: 8fad0168 */ lw $t5,0x168($sp) -/* f0b3e7c: 17210015 */ bne $t9,$at,.L0f0b3ed4 -/* f0b3e80: 25f80008 */ addiu $t8,$t7,0x8 -/* f0b3e84: afb80168 */ sw $t8,0x168($sp) -/* f0b3e88: 3c0ce600 */ lui $t4,0xe600 -/* f0b3e8c: adec0000 */ sw $t4,0x0($t7) -/* f0b3e90: ade00004 */ sw $zero,0x4($t7) -/* f0b3e94: 8fa30168 */ lw $v1,0x168($sp) -/* f0b3e98: 3c19f300 */ lui $t9,0xf300 -/* f0b3e9c: 296107ff */ slti $at,$t3,0x7ff -/* f0b3ea0: 246d0008 */ addiu $t5,$v1,0x8 -/* f0b3ea4: afad0168 */ sw $t5,0x168($sp) -/* f0b3ea8: 10200003 */ beqz $at,.L0f0b3eb8 -/* f0b3eac: ac790000 */ sw $t9,0x0($v1) -/* f0b3eb0: 10000002 */ b .L0f0b3ebc -/* f0b3eb4: 01603825 */ or $a3,$t3,$zero -.L0f0b3eb8: -/* f0b3eb8: 240707ff */ addiu $a3,$zero,0x7ff -.L0f0b3ebc: -/* f0b3ebc: 30ef0fff */ andi $t7,$a3,0xfff -/* f0b3ec0: 000fc300 */ sll $t8,$t7,0xc -/* f0b3ec4: 3c010700 */ lui $at,0x700 -/* f0b3ec8: 03017025 */ or $t6,$t8,$at -/* f0b3ecc: 1000001b */ b .L0f0b3f3c -/* f0b3ed0: ac6e0004 */ sw $t6,0x4($v1) -.L0f0b3ed4: -/* f0b3ed4: 25b90008 */ addiu $t9,$t5,0x8 -/* f0b3ed8: afb90168 */ sw $t9,0x168($sp) -/* f0b3edc: 3c01f500 */ lui $at,0xf500 -/* f0b3ee0: 00817825 */ or $t7,$a0,$at -/* f0b3ee4: adaf0000 */ sw $t7,0x0($t5) -/* f0b3ee8: ada80004 */ sw $t0,0x4($t5) -/* f0b3eec: 8fb80168 */ lw $t8,0x168($sp) -/* f0b3ef0: 3c0ce600 */ lui $t4,0xe600 -/* f0b3ef4: 3c0ff300 */ lui $t7,0xf300 -/* f0b3ef8: 270e0008 */ addiu $t6,$t8,0x8 -/* f0b3efc: afae0168 */ sw $t6,0x168($sp) -/* f0b3f00: af000004 */ sw $zero,0x4($t8) -/* f0b3f04: af0c0000 */ sw $t4,0x0($t8) -/* f0b3f08: 8fa50168 */ lw $a1,0x168($sp) -/* f0b3f0c: 296107ff */ slti $at,$t3,0x7ff -/* f0b3f10: 240707ff */ addiu $a3,$zero,0x7ff -/* f0b3f14: 24b90008 */ addiu $t9,$a1,0x8 -/* f0b3f18: afb90168 */ sw $t9,0x168($sp) -/* f0b3f1c: 10200003 */ beqz $at,.L0f0b3f2c -/* f0b3f20: acaf0000 */ sw $t7,0x0($a1) -/* f0b3f24: 10000001 */ b .L0f0b3f2c -/* f0b3f28: 01603825 */ or $a3,$t3,$zero -.L0f0b3f2c: -/* f0b3f2c: 30f80fff */ andi $t8,$a3,0xfff -/* f0b3f30: 00187300 */ sll $t6,$t8,0xc -/* f0b3f34: 01c86825 */ or $t5,$t6,$t0 -/* f0b3f38: acad0004 */ sw $t5,0x4($a1) -.L0f0b3f3c: -/* f0b3f3c: 8fb90168 */ lw $t9,0x168($sp) -/* f0b3f40: 3c0ae700 */ lui $t2,0xe700 -/* f0b3f44: 24010002 */ addiu $at,$zero,0x2 -/* f0b3f48: 272f0008 */ addiu $t7,$t9,0x8 -/* f0b3f4c: afaf0168 */ sw $t7,0x168($sp) -/* f0b3f50: af200004 */ sw $zero,0x4($t9) -/* f0b3f54: 14c10034 */ bne $a2,$at,.L0f0b4028 -/* f0b3f58: af2a0000 */ sw $t2,0x0($t9) -/* f0b3f5c: 9298000a */ lbu $t8,0xa($s4) -/* f0b3f60: 240e03ff */ addiu $t6,$zero,0x3ff -/* f0b3f64: 25670001 */ addiu $a3,$t3,0x1 -/* f0b3f68: 01d81023 */ subu $v0,$t6,$t8 -/* f0b3f6c: 0047082b */ sltu $at,$v0,$a3 -/* f0b3f70: 10200003 */ beqz $at,.L0f0b3f80 -/* f0b3f74: 8fad0168 */ lw $t5,0x168($sp) -/* f0b3f78: 10000002 */ b .L0f0b3f84 -/* f0b3f7c: 00404025 */ or $t0,$v0,$zero -.L0f0b3f80: -/* f0b3f80: 00004025 */ or $t0,$zero,$zero -.L0f0b3f84: -/* f0b3f84: 25b90008 */ addiu $t9,$t5,0x8 -/* f0b3f88: afb90168 */ sw $t9,0x168($sp) -/* f0b3f8c: ada00004 */ sw $zero,0x4($t5) -/* f0b3f90: adac0000 */ sw $t4,0x0($t5) -/* f0b3f94: 8fa30168 */ lw $v1,0x168($sp) -/* f0b3f98: 00e83023 */ subu $a2,$a3,$t0 -/* f0b3f9c: 30cd03ff */ andi $t5,$a2,0x3ff -/* f0b3fa0: 000dcb80 */ sll $t9,$t5,0xe -/* f0b3fa4: 310403ff */ andi $a0,$t0,0x3ff -/* f0b3fa8: 3c01f000 */ lui $at,0xf000 -/* f0b3fac: 246e0008 */ addiu $t6,$v1,0x8 -/* f0b3fb0: afae0168 */ sw $t6,0x168($sp) -/* f0b3fb4: 03217825 */ or $t7,$t9,$at -/* f0b3fb8: 0004c080 */ sll $t8,$a0,0x2 -/* f0b3fbc: 01f87025 */ or $t6,$t7,$t8 -/* f0b3fc0: 03002025 */ or $a0,$t8,$zero -/* f0b3fc4: ac6e0000 */ sw $t6,0x0($v1) -/* f0b3fc8: 9298000a */ lbu $t8,0xa($s4) -/* f0b3fcc: 3c010600 */ lui $at,0x600 -/* f0b3fd0: 03066821 */ addu $t5,$t8,$a2 -/* f0b3fd4: 31b903ff */ andi $t9,$t5,0x3ff -/* f0b3fd8: 00197b80 */ sll $t7,$t9,0xe -/* f0b3fdc: 01e17025 */ or $t6,$t7,$at -/* f0b3fe0: 01c4c025 */ or $t8,$t6,$a0 -/* f0b3fe4: ac780004 */ sw $t8,0x4($v1) -/* f0b3fe8: 8fad0168 */ lw $t5,0x168($sp) -/* f0b3fec: 25b90008 */ addiu $t9,$t5,0x8 -/* f0b3ff0: afb90168 */ sw $t9,0x168($sp) -/* f0b3ff4: ada00004 */ sw $zero,0x4($t5) -/* f0b3ff8: adaa0000 */ sw $t2,0x0($t5) -/* f0b3ffc: 8faf0184 */ lw $t7,0x184($sp) -/* f0b4000: 8fae0168 */ lw $t6,0x168($sp) -/* f0b4004: 3c0dba00 */ lui $t5,0xba00 -/* f0b4008: 11e00010 */ beqz $t7,.L0f0b404c -/* f0b400c: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b4010: afb80168 */ sw $t8,0x168($sp) -/* f0b4014: 35ad0e02 */ ori $t5,$t5,0xe02 -/* f0b4018: adcd0000 */ sw $t5,0x0($t6) -/* f0b401c: 8fb90140 */ lw $t9,0x140($sp) -/* f0b4020: 1000000a */ b .L0f0b404c -/* f0b4024: add90004 */ sw $t9,0x4($t6) -.L0f0b4028: -/* f0b4028: 8faf0184 */ lw $t7,0x184($sp) -/* f0b402c: 8fae0168 */ lw $t6,0x168($sp) -/* f0b4030: 3c0dba00 */ lui $t5,0xba00 -/* f0b4034: 11e00005 */ beqz $t7,.L0f0b404c -/* f0b4038: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b403c: afb80168 */ sw $t8,0x168($sp) -/* f0b4040: 35ad0e02 */ ori $t5,$t5,0xe02 -/* f0b4044: adcd0000 */ sw $t5,0x0($t6) -/* f0b4048: adc00004 */ sw $zero,0x4($t6) -.L0f0b404c: -/* f0b404c: 8fb90184 */ lw $t9,0x184($sp) -/* f0b4050: 8fb00168 */ lw $s0,0x168($sp) -/* f0b4054: 3c01f500 */ lui $at,0xf500 -/* f0b4058: 13200231 */ beqz $t9,.L0f0b4920 -/* f0b405c: 260e0008 */ addiu $t6,$s0,0x8 -/* f0b4060: 93ad0146 */ lbu $t5,0x146($sp) -/* f0b4064: afae0168 */ sw $t6,0x168($sp) -/* f0b4068: 0121c025 */ or $t8,$t1,$at -/* f0b406c: 31b90003 */ andi $t9,$t5,0x3 -/* f0b4070: 8fad0134 */ lw $t5,0x134($sp) -/* f0b4074: 00197cc0 */ sll $t7,$t9,0x13 -/* f0b4078: 030f7025 */ or $t6,$t8,$t7 -/* f0b407c: 31b901ff */ andi $t9,$t5,0x1ff -/* f0b4080: 0019c240 */ sll $t8,$t9,0x9 -/* f0b4084: 01d87825 */ or $t7,$t6,$t8 -/* f0b4088: ae0f0000 */ sw $t7,0x0($s0) -/* f0b408c: 0fc2ccd4 */ jal tex0f0b3350 -/* f0b4090: 02402025 */ or $a0,$s2,$zero -/* f0b4094: 02602025 */ or $a0,$s3,$zero -/* f0b4098: 0fc2ccd4 */ jal tex0f0b3350 -/* f0b409c: afa20050 */ sw $v0,0x50($sp) -/* f0b40a0: 8fa60174 */ lw $a2,0x174($sp) -/* f0b40a4: 8fa70050 */ lw $a3,0x50($sp) -/* f0b40a8: 304d000f */ andi $t5,$v0,0xf -/* f0b40ac: 90ce000a */ lbu $t6,0xa($a2) -/* f0b40b0: 000dc900 */ sll $t9,$t5,0x4 -/* f0b40b4: 8fa50180 */ lw $a1,0x180($sp) -/* f0b40b8: 31d80003 */ andi $t8,$t6,0x3 -/* f0b40bc: 00187c80 */ sll $t7,$t8,0x12 -/* f0b40c0: 032f6825 */ or $t5,$t9,$t7 -/* f0b40c4: 90cf0009 */ lbu $t7,0x9($a2) -/* f0b40c8: 30ee000f */ andi $t6,$a3,0xf -/* f0b40cc: 000ec380 */ sll $t8,$t6,0xe -/* f0b40d0: 01b8c825 */ or $t9,$t5,$t8 -/* f0b40d4: 31ee0003 */ andi $t6,$t7,0x3 -/* f0b40d8: 000e6a00 */ sll $t5,$t6,0x8 -/* f0b40dc: 032dc025 */ or $t8,$t9,$t5 -/* f0b40e0: ae180004 */ sw $t8,0x4($s0) -/* f0b40e4: 8fa40168 */ lw $a0,0x168($sp) -/* f0b40e8: 30a30fff */ andi $v1,$a1,0xfff -/* f0b40ec: 0003cb00 */ sll $t9,$v1,0xc -/* f0b40f0: 3c01f200 */ lui $at,0xf200 -/* f0b40f4: 248e0008 */ addiu $t6,$a0,0x8 -/* f0b40f8: afae0168 */ sw $t6,0x168($sp) -/* f0b40fc: 03216825 */ or $t5,$t9,$at -/* f0b4100: 266fffff */ addiu $t7,$s3,-1 -/* f0b4104: 000f7080 */ sll $t6,$t7,0x2 -/* f0b4108: 01a3c025 */ or $t8,$t5,$v1 -/* f0b410c: 01c5c821 */ addu $t9,$t6,$a1 -/* f0b4110: 332d0fff */ andi $t5,$t9,0xfff -/* f0b4114: 264fffff */ addiu $t7,$s2,-1 -/* f0b4118: 000f7080 */ sll $t6,$t7,0x2 -/* f0b411c: ac980000 */ sw $t8,0x0($a0) -/* f0b4120: 000dc300 */ sll $t8,$t5,0xc -/* f0b4124: 01c5c821 */ addu $t9,$t6,$a1 -/* f0b4128: 332d0fff */ andi $t5,$t9,0xfff -/* f0b412c: 030d7825 */ or $t7,$t8,$t5 -/* f0b4130: 100001fb */ b .L0f0b4920 -/* f0b4134: ac8f0004 */ sw $t7,0x4($a0) -.L0f0b4138: -/* f0b4138: afa000cc */ sw $zero,0xcc($sp) -/* f0b413c: 14200003 */ bnez $at,.L0f0b414c -/* f0b4140: afa200c8 */ sw $v0,0xc8($sp) -/* f0b4144: 24190006 */ addiu $t9,$zero,0x6 -/* f0b4148: afb900c8 */ sw $t9,0xc8($sp) -.L0f0b414c: -/* f0b414c: 1280000c */ beqz $s4,.L0f0b4180 -/* f0b4150: 8fad0174 */ lw $t5,0x174($sp) -/* f0b4154: 8e820008 */ lw $v0,0x8($s4) -/* f0b4158: 304f0003 */ andi $t7,$v0,0x3 -/* f0b415c: a3af00c6 */ sb $t7,0xc6($sp) -/* f0b4160: 8e8e000c */ lw $t6,0xc($s4) -/* f0b4164: 000286c0 */ sll $s0,$v0,0x1b -/* f0b4168: 0010c742 */ srl $t8,$s0,0x1d -/* f0b416c: 331000ff */ andi $s0,$t8,0xff -/* f0b4170: 000ecf82 */ srl $t9,$t6,0x1e -/* f0b4174: 0019c380 */ sll $t8,$t9,0xe -/* f0b4178: 10000004 */ b .L0f0b418c -/* f0b417c: afb800c0 */ sw $t8,0xc0($sp) -.L0f0b4180: -/* f0b4180: 91af0008 */ lbu $t7,0x8($t5) -/* f0b4184: 91b00007 */ lbu $s0,0x7($t5) -/* f0b4188: a3af00c6 */ sb $t7,0xc6($sp) -.L0f0b418c: -/* f0b418c: 1280000b */ beqz $s4,.L0f0b41bc -/* f0b4190: 93a800c6 */ lbu $t0,0xc6($sp) -/* f0b4194: 8e8e000c */ lw $t6,0xc($s4) -/* f0b4198: 02802025 */ or $a0,$s4,$zero -/* f0b419c: 27a500bc */ addiu $a1,$sp,0xbc -/* f0b41a0: 000ec080 */ sll $t8,$t6,0x2 -/* f0b41a4: 07010005 */ bgez $t8,.L0f0b41bc -/* f0b41a8: 00000000 */ nop -/* f0b41ac: 0fc5cf94 */ jal surface0f173e50 -/* f0b41b0: 27a600b8 */ addiu $a2,$sp,0xb8 -/* f0b41b4: 1000002c */ b .L0f0b4268 -/* f0b41b8: 8fb90184 */ lw $t9,0x184($sp) -.L0f0b41bc: -/* f0b41bc: 11000022 */ beqz $t0,.L0f0b4248 -/* f0b41c0: 240f0002 */ addiu $t7,$zero,0x2 -/* f0b41c4: 24010001 */ addiu $at,$zero,0x1 -/* f0b41c8: 11010017 */ beq $t0,$at,.L0f0b4228 -/* f0b41cc: 24180002 */ addiu $t8,$zero,0x2 -/* f0b41d0: 24010002 */ addiu $at,$zero,0x2 -/* f0b41d4: 1101000c */ beq $t0,$at,.L0f0b4208 -/* f0b41d8: 240e0002 */ addiu $t6,$zero,0x2 -/* f0b41dc: 24010003 */ addiu $at,$zero,0x3 -/* f0b41e0: 15010020 */ bne $t0,$at,.L0f0b4264 -/* f0b41e4: 240d0003 */ addiu $t5,$zero,0x3 -/* f0b41e8: afad00bc */ sw $t5,0xbc($sp) -/* f0b41ec: 02602025 */ or $a0,$s3,$zero -/* f0b41f0: 02402825 */ or $a1,$s2,$zero -/* f0b41f4: 0fc2cd52 */ jal tex0f0b3548 -/* f0b41f8: 8fa600c8 */ lw $a2,0xc8($sp) -/* f0b41fc: 244fffff */ addiu $t7,$v0,-1 -/* f0b4200: 10000018 */ b .L0f0b4264 -/* f0b4204: afaf00b8 */ sw $t7,0xb8($sp) -.L0f0b4208: -/* f0b4208: afae00bc */ sw $t6,0xbc($sp) -/* f0b420c: 02602025 */ or $a0,$s3,$zero -/* f0b4210: 02402825 */ or $a1,$s2,$zero -/* f0b4214: 0fc2cd36 */ jal tex0f0b34d8 -/* f0b4218: 8fa600c8 */ lw $a2,0xc8($sp) -/* f0b421c: 2459ffff */ addiu $t9,$v0,-1 -/* f0b4220: 10000010 */ b .L0f0b4264 -/* f0b4224: afb900b8 */ sw $t9,0xb8($sp) -.L0f0b4228: -/* f0b4228: afb800bc */ sw $t8,0xbc($sp) -/* f0b422c: 02602025 */ or $a0,$s3,$zero -/* f0b4230: 02402825 */ or $a1,$s2,$zero -/* f0b4234: 0fc2cd1a */ jal tex0f0b3468 -/* f0b4238: 8fa600c8 */ lw $a2,0xc8($sp) -/* f0b423c: 244dffff */ addiu $t5,$v0,-1 -/* f0b4240: 10000008 */ b .L0f0b4264 -/* f0b4244: afad00b8 */ sw $t5,0xb8($sp) -.L0f0b4248: -/* f0b4248: afaf00bc */ sw $t7,0xbc($sp) -/* f0b424c: 02602025 */ or $a0,$s3,$zero -/* f0b4250: 02402825 */ or $a1,$s2,$zero -/* f0b4254: 0fc2ccfe */ jal tex0f0b33f8 -/* f0b4258: 8fa600c8 */ lw $a2,0xc8($sp) -/* f0b425c: 244effff */ addiu $t6,$v0,-1 -/* f0b4260: afae00b8 */ sw $t6,0xb8($sp) -.L0f0b4264: -/* f0b4264: 8fb90184 */ lw $t9,0x184($sp) -.L0f0b4268: -/* f0b4268: 27a40168 */ addiu $a0,$sp,0x168 -/* f0b426c: 8fa50178 */ lw $a1,0x178($sp) -/* f0b4270: 1320006d */ beqz $t9,.L0f0b4428 -/* f0b4274: 24060002 */ addiu $a2,$zero,0x2 -/* f0b4278: 0fc2cd6e */ jal texSetRenderMode -/* f0b427c: 02203825 */ or $a3,$s1,$zero -/* f0b4280: 2a210002 */ slti $at,$s1,0x2 -/* f0b4284: 14200012 */ bnez $at,.L0f0b42d0 -/* f0b4288: 02002825 */ or $a1,$s0,$zero -/* f0b428c: 8fa20168 */ lw $v0,0x168($sp) -/* f0b4290: 8fb800c8 */ lw $t8,0xc8($sp) -/* f0b4294: 322f00ff */ andi $t7,$s1,0xff -/* f0b4298: 244d0008 */ addiu $t5,$v0,0x8 -/* f0b429c: afad0168 */ sw $t5,0x168($sp) -/* f0b42a0: 000f7400 */ sll $t6,$t7,0x10 -/* f0b42a4: 3c01bb00 */ lui $at,0xbb00 -/* f0b42a8: 270dffff */ addiu $t5,$t8,-1 -/* f0b42ac: 31af0007 */ andi $t7,$t5,0x7 -/* f0b42b0: 01c1c825 */ or $t9,$t6,$at -/* f0b42b4: 000f72c0 */ sll $t6,$t7,0xb -/* f0b42b8: 032ec025 */ or $t8,$t9,$t6 -/* f0b42bc: 370d0001 */ ori $t5,$t8,0x1 -/* f0b42c0: 240fffff */ addiu $t7,$zero,-1 -/* f0b42c4: ac4f0004 */ sw $t7,0x4($v0) -/* f0b42c8: 1000000e */ b .L0f0b4304 -/* f0b42cc: ac4d0000 */ sw $t5,0x0($v0) -.L0f0b42d0: -/* f0b42d0: 8fb800c8 */ lw $t8,0xc8($sp) -/* f0b42d4: 8fa20168 */ lw $v0,0x168($sp) -/* f0b42d8: 3c01bb00 */ lui $at,0xbb00 -/* f0b42dc: 270dffff */ addiu $t5,$t8,-1 -/* f0b42e0: 31af0007 */ andi $t7,$t5,0x7 -/* f0b42e4: 244e0008 */ addiu $t6,$v0,0x8 -/* f0b42e8: afae0168 */ sw $t6,0x168($sp) -/* f0b42ec: 000fcac0 */ sll $t9,$t7,0xb -/* f0b42f0: 03217025 */ or $t6,$t9,$at -/* f0b42f4: 35d80001 */ ori $t8,$t6,0x1 -/* f0b42f8: 240dffff */ addiu $t5,$zero,-1 -/* f0b42fc: ac4d0004 */ sw $t5,0x4($v0) -/* f0b4300: ac580000 */ sw $t8,0x0($v0) -.L0f0b4304: -/* f0b4304: 8faf0168 */ lw $t7,0x168($sp) -/* f0b4308: 3c0eba00 */ lui $t6,0xba00 -/* f0b430c: 35ce1001 */ ori $t6,$t6,0x1001 -/* f0b4310: 25f90008 */ addiu $t9,$t7,0x8 -/* f0b4314: afb90168 */ sw $t9,0x168($sp) -/* f0b4318: 3c180001 */ lui $t8,0x1 -/* f0b431c: adf80004 */ sw $t8,0x4($t7) -/* f0b4320: 1200000c */ beqz $s0,.L0f0b4354 -/* f0b4324: adee0000 */ sw $t6,0x0($t7) -/* f0b4328: 24010002 */ addiu $at,$zero,0x2 -/* f0b432c: 10a10025 */ beq $a1,$at,.L0f0b43c4 -/* f0b4330: 8fb900c0 */ lw $t9,0xc0($sp) -/* f0b4334: 24010003 */ addiu $at,$zero,0x3 -/* f0b4338: 10a10010 */ beq $a1,$at,.L0f0b437c -/* f0b433c: 8fb80168 */ lw $t8,0x168($sp) -/* f0b4340: 24010004 */ addiu $at,$zero,0x4 -/* f0b4344: 10a10016 */ beq $a1,$at,.L0f0b43a0 -/* f0b4348: 8fae0168 */ lw $t6,0x168($sp) -/* f0b434c: 10000037 */ b .L0f0b442c -/* f0b4350: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b4354: -/* f0b4354: 8fad0168 */ lw $t5,0x168($sp) -/* f0b4358: 3c19fc26 */ lui $t9,0xfc26 -/* f0b435c: 3c0e1f10 */ lui $t6,0x1f10 -/* f0b4360: 25af0008 */ addiu $t7,$t5,0x8 -/* f0b4364: afaf0168 */ sw $t7,0x168($sp) -/* f0b4368: 35ce93ff */ ori $t6,$t6,0x93ff -/* f0b436c: 3739a004 */ ori $t9,$t9,0xa004 -/* f0b4370: adb90000 */ sw $t9,0x0($t5) -/* f0b4374: 1000002c */ b .L0f0b4428 -/* f0b4378: adae0004 */ sw $t6,0x4($t5) -.L0f0b437c: -/* f0b437c: 270d0008 */ addiu $t5,$t8,0x8 -/* f0b4380: 3c0ffc26 */ lui $t7,0xfc26 -/* f0b4384: 3c191f10 */ lui $t9,0x1f10 -/* f0b4388: 373993ff */ ori $t9,$t9,0x93ff -/* f0b438c: 35efa004 */ ori $t7,$t7,0xa004 -/* f0b4390: afad0168 */ sw $t5,0x168($sp) -/* f0b4394: af190004 */ sw $t9,0x4($t8) -/* f0b4398: 10000023 */ b .L0f0b4428 -/* f0b439c: af0f0000 */ sw $t7,0x0($t8) -.L0f0b43a0: -/* f0b43a0: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b43a4: 3c0dfc26 */ lui $t5,0xfc26 -/* f0b43a8: 3c0f1ffc */ lui $t7,0x1ffc -/* f0b43ac: 35ef93fc */ ori $t7,$t7,0x93fc -/* f0b43b0: 35ada004 */ ori $t5,$t5,0xa004 -/* f0b43b4: afb80168 */ sw $t8,0x168($sp) -/* f0b43b8: adcf0004 */ sw $t7,0x4($t6) -/* f0b43bc: 1000001a */ b .L0f0b4428 -/* f0b43c0: adcd0000 */ sw $t5,0x0($t6) -.L0f0b43c4: -/* f0b43c4: 34018000 */ dli $at,0x8000 -/* f0b43c8: 13210006 */ beq $t9,$at,.L0f0b43e4 -/* f0b43cc: 8fae0168 */ lw $t6,0x168($sp) -/* f0b43d0: 3401c000 */ dli $at,0xc000 -/* f0b43d4: 1321000c */ beq $t9,$at,.L0f0b4408 -/* f0b43d8: 3c18fc12 */ lui $t8,0xfc12 -/* f0b43dc: 10000013 */ b .L0f0b442c -/* f0b43e0: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b43e4: -/* f0b43e4: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b43e8: 3c0dfc12 */ lui $t5,0xfc12 -/* f0b43ec: 3c0fff33 */ lui $t7,0xff33 -/* f0b43f0: 35efffff */ ori $t7,$t7,0xffff -/* f0b43f4: 35ad1824 */ ori $t5,$t5,0x1824 -/* f0b43f8: afb80168 */ sw $t8,0x168($sp) -/* f0b43fc: adcf0004 */ sw $t7,0x4($t6) -/* f0b4400: 10000009 */ b .L0f0b4428 -/* f0b4404: adcd0000 */ sw $t5,0x0($t6) -.L0f0b4408: -/* f0b4408: 8fb90168 */ lw $t9,0x168($sp) -/* f0b440c: 3c0dff33 */ lui $t5,0xff33 -/* f0b4410: 35adffff */ ori $t5,$t5,0xffff -/* f0b4414: 272e0008 */ addiu $t6,$t9,0x8 -/* f0b4418: afae0168 */ sw $t6,0x168($sp) -/* f0b441c: 37181824 */ ori $t8,$t8,0x1824 -/* f0b4420: af380000 */ sw $t8,0x0($t9) -/* f0b4424: af2d0004 */ sw $t5,0x4($t9) -.L0f0b4428: -/* f0b4428: 8fa20168 */ lw $v0,0x168($sp) -.L0f0b442c: -/* f0b442c: 8faf00bc */ lw $t7,0xbc($sp) -/* f0b4430: 320e0007 */ andi $t6,$s0,0x7 -/* f0b4434: 000ec540 */ sll $t8,$t6,0x15 -/* f0b4438: 24590008 */ addiu $t9,$v0,0x8 -/* f0b443c: afb90168 */ sw $t9,0x168($sp) -/* f0b4440: 3c01fd00 */ lui $at,0xfd00 -/* f0b4444: 31f90003 */ andi $t9,$t7,0x3 -/* f0b4448: 001974c0 */ sll $t6,$t9,0x13 -/* f0b444c: 03016825 */ or $t5,$t8,$at -/* f0b4450: afb80038 */ sw $t8,0x38($sp) -/* f0b4454: 01aec025 */ or $t8,$t5,$t6 -/* f0b4458: ac580000 */ sw $t8,0x0($v0) -/* f0b445c: 8faf0174 */ lw $t7,0x174($sp) -/* f0b4460: 24010002 */ addiu $at,$zero,0x2 -/* f0b4464: 02002825 */ or $a1,$s0,$zero -/* f0b4468: 8df90000 */ lw $t9,0x0($t7) -/* f0b446c: 3c080500 */ lui $t0,0x500 -/* f0b4470: ac590004 */ sw $t9,0x4($v0) -/* f0b4474: 8fad00bc */ lw $t5,0xbc($sp) -/* f0b4478: 8fa20168 */ lw $v0,0x168($sp) -/* f0b447c: 15a10019 */ bne $t5,$at,.L0f0b44e4 -/* f0b4480: 244e0008 */ addiu $t6,$v0,0x8 -/* f0b4484: 8fae0168 */ lw $t6,0x168($sp) -/* f0b4488: 3c0ce600 */ lui $t4,0xe600 -/* f0b448c: 3c0df300 */ lui $t5,0xf300 -/* f0b4490: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b4494: afb80168 */ sw $t8,0x168($sp) -/* f0b4498: adc00004 */ sw $zero,0x4($t6) -/* f0b449c: adcc0000 */ sw $t4,0x0($t6) -/* f0b44a0: 8fa30168 */ lw $v1,0x168($sp) -/* f0b44a4: 240707ff */ addiu $a3,$zero,0x7ff -/* f0b44a8: 24790008 */ addiu $t9,$v1,0x8 -/* f0b44ac: afb90168 */ sw $t9,0x168($sp) -/* f0b44b0: ac6d0000 */ sw $t5,0x0($v1) -/* f0b44b4: 8fae00b8 */ lw $t6,0xb8($sp) -/* f0b44b8: 29c107ff */ slti $at,$t6,0x7ff -/* f0b44bc: 10200003 */ beqz $at,.L0f0b44cc -/* f0b44c0: 00000000 */ nop -/* f0b44c4: 10000001 */ b .L0f0b44cc -/* f0b44c8: 01c03825 */ or $a3,$t6,$zero -.L0f0b44cc: -/* f0b44cc: 30f80fff */ andi $t8,$a3,0xfff -/* f0b44d0: 00187b00 */ sll $t7,$t8,0xc -/* f0b44d4: 3c010700 */ lui $at,0x700 -/* f0b44d8: 01e1c825 */ or $t9,$t7,$at -/* f0b44dc: 1000001f */ b .L0f0b455c -/* f0b44e0: ac790004 */ sw $t9,0x4($v1) -.L0f0b44e4: -/* f0b44e4: 8fb800bc */ lw $t8,0xbc($sp) -/* f0b44e8: afae0168 */ sw $t6,0x168($sp) -/* f0b44ec: 3c01f500 */ lui $at,0xf500 -/* f0b44f0: 330f0003 */ andi $t7,$t8,0x3 -/* f0b44f4: 000fccc0 */ sll $t9,$t7,0x13 -/* f0b44f8: 03216825 */ or $t5,$t9,$at -/* f0b44fc: ac4d0000 */ sw $t5,0x0($v0) -/* f0b4500: ac480004 */ sw $t0,0x4($v0) -/* f0b4504: 8fae0168 */ lw $t6,0x168($sp) -/* f0b4508: 3c0ce600 */ lui $t4,0xe600 -/* f0b450c: 3c0df300 */ lui $t5,0xf300 -/* f0b4510: 25d80008 */ addiu $t8,$t6,0x8 -/* f0b4514: afb80168 */ sw $t8,0x168($sp) -/* f0b4518: adc00004 */ sw $zero,0x4($t6) -/* f0b451c: adcc0000 */ sw $t4,0x0($t6) -/* f0b4520: 8fa40168 */ lw $a0,0x168($sp) -/* f0b4524: 240707ff */ addiu $a3,$zero,0x7ff -/* f0b4528: 24990008 */ addiu $t9,$a0,0x8 -/* f0b452c: afb90168 */ sw $t9,0x168($sp) -/* f0b4530: ac8d0000 */ sw $t5,0x0($a0) -/* f0b4534: 8fae00b8 */ lw $t6,0xb8($sp) -/* f0b4538: 29c107ff */ slti $at,$t6,0x7ff -/* f0b453c: 10200003 */ beqz $at,.L0f0b454c -/* f0b4540: 00000000 */ nop -/* f0b4544: 10000001 */ b .L0f0b454c -/* f0b4548: 01c03825 */ or $a3,$t6,$zero -.L0f0b454c: -/* f0b454c: 30f80fff */ andi $t8,$a3,0xfff -/* f0b4550: 00187b00 */ sll $t7,$t8,0xc -/* f0b4554: 01e8c825 */ or $t9,$t7,$t0 -/* f0b4558: ac990004 */ sw $t9,0x4($a0) -.L0f0b455c: -/* f0b455c: 8fad0168 */ lw $t5,0x168($sp) -/* f0b4560: 3c0ae700 */ lui $t2,0xe700 -/* f0b4564: 24010002 */ addiu $at,$zero,0x2 -/* f0b4568: 25ae0008 */ addiu $t6,$t5,0x8 -/* f0b456c: afae0168 */ sw $t6,0x168($sp) -/* f0b4570: ada00004 */ sw $zero,0x4($t5) -/* f0b4574: 14a10035 */ bne $a1,$at,.L0f0b464c -/* f0b4578: adaa0000 */ sw $t2,0x0($t5) -/* f0b457c: 8fa300b8 */ lw $v1,0xb8($sp) -/* f0b4580: 9298000a */ lbu $t8,0xa($s4) -/* f0b4584: 240f03ff */ addiu $t7,$zero,0x3ff -/* f0b4588: 24660001 */ addiu $a2,$v1,0x1 -/* f0b458c: 01f81023 */ subu $v0,$t7,$t8 -/* f0b4590: 0046082b */ sltu $at,$v0,$a2 -/* f0b4594: 10200003 */ beqz $at,.L0f0b45a4 -/* f0b4598: 8fb90168 */ lw $t9,0x168($sp) -/* f0b459c: 10000002 */ b .L0f0b45a8 -/* f0b45a0: 00403825 */ or $a3,$v0,$zero -.L0f0b45a4: -/* f0b45a4: 00003825 */ or $a3,$zero,$zero -.L0f0b45a8: -/* f0b45a8: 272d0008 */ addiu $t5,$t9,0x8 -/* f0b45ac: afad0168 */ sw $t5,0x168($sp) -/* f0b45b0: af200004 */ sw $zero,0x4($t9) -/* f0b45b4: af2c0000 */ sw $t4,0x0($t9) -/* f0b45b8: 8fa30168 */ lw $v1,0x168($sp) -/* f0b45bc: 00c73023 */ subu $a2,$a2,$a3 -/* f0b45c0: 30d903ff */ andi $t9,$a2,0x3ff -/* f0b45c4: 00196b80 */ sll $t5,$t9,0xe -/* f0b45c8: 30e403ff */ andi $a0,$a3,0x3ff -/* f0b45cc: 3c01f000 */ lui $at,0xf000 -/* f0b45d0: 246f0008 */ addiu $t7,$v1,0x8 -/* f0b45d4: afaf0168 */ sw $t7,0x168($sp) -/* f0b45d8: 01a17025 */ or $t6,$t5,$at -/* f0b45dc: 0004c080 */ sll $t8,$a0,0x2 -/* f0b45e0: 01d87825 */ or $t7,$t6,$t8 -/* f0b45e4: 03002025 */ or $a0,$t8,$zero -/* f0b45e8: ac6f0000 */ sw $t7,0x0($v1) -/* f0b45ec: 9298000a */ lbu $t8,0xa($s4) -/* f0b45f0: 3c010600 */ lui $at,0x600 -/* f0b45f4: 0306c821 */ addu $t9,$t8,$a2 -/* f0b45f8: 332d03ff */ andi $t5,$t9,0x3ff -/* f0b45fc: 000d7380 */ sll $t6,$t5,0xe -/* f0b4600: 01c17825 */ or $t7,$t6,$at -/* f0b4604: 01e4c025 */ or $t8,$t7,$a0 -/* f0b4608: ac780004 */ sw $t8,0x4($v1) -/* f0b460c: 8fb90168 */ lw $t9,0x168($sp) -/* f0b4610: 272d0008 */ addiu $t5,$t9,0x8 -/* f0b4614: afad0168 */ sw $t5,0x168($sp) -/* f0b4618: af200004 */ sw $zero,0x4($t9) -/* f0b461c: af2a0000 */ sw $t2,0x0($t9) -/* f0b4620: 8fae0184 */ lw $t6,0x184($sp) -/* f0b4624: 8faf0168 */ lw $t7,0x168($sp) -/* f0b4628: 3c19ba00 */ lui $t9,0xba00 -/* f0b462c: 11c00010 */ beqz $t6,.L0f0b4670 -/* f0b4630: 25f80008 */ addiu $t8,$t7,0x8 -/* f0b4634: afb80168 */ sw $t8,0x168($sp) -/* f0b4638: 37390e02 */ ori $t9,$t9,0xe02 -/* f0b463c: adf90000 */ sw $t9,0x0($t7) -/* f0b4640: 8fad00c0 */ lw $t5,0xc0($sp) -/* f0b4644: 1000000a */ b .L0f0b4670 -/* f0b4648: aded0004 */ sw $t5,0x4($t7) -.L0f0b464c: -/* f0b464c: 8fae0184 */ lw $t6,0x184($sp) -/* f0b4650: 8faf0168 */ lw $t7,0x168($sp) -/* f0b4654: 3c19ba00 */ lui $t9,0xba00 -/* f0b4658: 11c00005 */ beqz $t6,.L0f0b4670 -/* f0b465c: 25f80008 */ addiu $t8,$t7,0x8 -/* f0b4660: afb80168 */ sw $t8,0x168($sp) -/* f0b4664: 37390e02 */ ori $t9,$t9,0xe02 -/* f0b4668: adf90000 */ sw $t9,0x0($t7) -/* f0b466c: ade00004 */ sw $zero,0x4($t7) -.L0f0b4670: -/* f0b4670: 8fad00c8 */ lw $t5,0xc8($sp) -/* f0b4674: 00008825 */ or $s1,$zero,$zero -/* f0b4678: 93a800c6 */ lbu $t0,0xc6($sp) -/* f0b467c: 19a000a8 */ blez $t5,.L0f0b4920 -/* f0b4680: 8fb0005c */ lw $s0,0x5c($sp) -.L0f0b4684: -/* f0b4684: 1a200019 */ blez $s1,.L0f0b46ec -/* f0b4688: 00000000 */ nop -/* f0b468c: 12800010 */ beqz $s4,.L0f0b46d0 -/* f0b4690: 2a610002 */ slti $at,$s3,0x2 -/* f0b4694: 8e8e000c */ lw $t6,0xc($s4) -/* f0b4698: 02802025 */ or $a0,$s4,$zero -/* f0b469c: 02202825 */ or $a1,$s1,$zero -/* f0b46a0: 000ec080 */ sll $t8,$t6,0x2 -/* f0b46a4: 0701000a */ bgez $t8,.L0f0b46d0 -/* f0b46a8: 00000000 */ nop -/* f0b46ac: 0fc5cf04 */ jal surface0f173c10 -/* f0b46b0: afa8003c */ sw $t0,0x3c($sp) -/* f0b46b4: 00409825 */ or $s3,$v0,$zero -/* f0b46b8: 02802025 */ or $a0,$s4,$zero -/* f0b46bc: 0fc5cf2e */ jal surface0f173cb8 -/* f0b46c0: 02202825 */ or $a1,$s1,$zero -/* f0b46c4: 8fa8003c */ lw $t0,0x3c($sp) -/* f0b46c8: 10000008 */ b .L0f0b46ec -/* f0b46cc: 00409025 */ or $s2,$v0,$zero -.L0f0b46d0: -/* f0b46d0: 14200002 */ bnez $at,.L0f0b46dc -/* f0b46d4: 0013c843 */ sra $t9,$s3,0x1 -/* f0b46d8: 03209825 */ or $s3,$t9,$zero -.L0f0b46dc: -/* f0b46dc: 2a410002 */ slti $at,$s2,0x2 -/* f0b46e0: 14200002 */ bnez $at,.L0f0b46ec -/* f0b46e4: 00126843 */ sra $t5,$s2,0x1 -/* f0b46e8: 01a09025 */ or $s2,$t5,$zero -.L0f0b46ec: -/* f0b46ec: 1100002a */ beqz $t0,.L0f0b4798 -/* f0b46f0: 8fad0184 */ lw $t5,0x184($sp) -/* f0b46f4: 24010001 */ addiu $at,$zero,0x1 -/* f0b46f8: 1101001d */ beq $t0,$at,.L0f0b4770 -/* f0b46fc: 24010002 */ addiu $at,$zero,0x2 -/* f0b4700: 11010011 */ beq $t0,$at,.L0f0b4748 -/* f0b4704: 24010003 */ addiu $at,$zero,0x3 -/* f0b4708: 51010006 */ beql $t0,$at,.L0f0b4724 -/* f0b470c: 26700003 */ addiu $s0,$s3,0x3 -/* f0b4710: 02120019 */ multu $s0,$s2 -/* f0b4714: 00003012 */ mflo $a2 -/* f0b4718: 10000029 */ b .L0f0b47c0 -/* f0b471c: 00000000 */ nop -/* f0b4720: 26700003 */ addiu $s0,$s3,0x3 -.L0f0b4724: -/* f0b4724: 06010003 */ bgez $s0,.L0f0b4734 -/* f0b4728: 00107083 */ sra $t6,$s0,0x2 -/* f0b472c: 26010003 */ addiu $at,$s0,0x3 -/* f0b4730: 00017083 */ sra $t6,$at,0x2 -.L0f0b4734: -/* f0b4734: 01d20019 */ multu $t6,$s2 -/* f0b4738: 01c08025 */ or $s0,$t6,$zero -/* f0b473c: 00003012 */ mflo $a2 -/* f0b4740: 1000001f */ b .L0f0b47c0 -/* f0b4744: 00000000 */ nop -.L0f0b4748: -/* f0b4748: 26700003 */ addiu $s0,$s3,0x3 -/* f0b474c: 06010003 */ bgez $s0,.L0f0b475c -/* f0b4750: 00107883 */ sra $t7,$s0,0x2 -/* f0b4754: 26010003 */ addiu $at,$s0,0x3 -/* f0b4758: 00017883 */ sra $t7,$at,0x2 -.L0f0b475c: -/* f0b475c: 01f20019 */ multu $t7,$s2 -/* f0b4760: 01e08025 */ or $s0,$t7,$zero -/* f0b4764: 00003012 */ mflo $a2 -/* f0b4768: 10000015 */ b .L0f0b47c0 -/* f0b476c: 00000000 */ nop -.L0f0b4770: -/* f0b4770: 26700007 */ addiu $s0,$s3,0x7 -/* f0b4774: 06010003 */ bgez $s0,.L0f0b4784 -/* f0b4778: 0010c0c3 */ sra $t8,$s0,0x3 -/* f0b477c: 26010007 */ addiu $at,$s0,0x7 -/* f0b4780: 0001c0c3 */ sra $t8,$at,0x3 -.L0f0b4784: -/* f0b4784: 03120019 */ multu $t8,$s2 -/* f0b4788: 03008025 */ or $s0,$t8,$zero -/* f0b478c: 00003012 */ mflo $a2 -/* f0b4790: 1000000b */ b .L0f0b47c0 -/* f0b4794: 00000000 */ nop -.L0f0b4798: -/* f0b4798: 2670000f */ addiu $s0,$s3,0xf -/* f0b479c: 06010003 */ bgez $s0,.L0f0b47ac -/* f0b47a0: 0010c903 */ sra $t9,$s0,0x4 -/* f0b47a4: 2601000f */ addiu $at,$s0,0xf -/* f0b47a8: 0001c903 */ sra $t9,$at,0x4 -.L0f0b47ac: -/* f0b47ac: 03320019 */ multu $t9,$s2 -/* f0b47b0: 03208025 */ or $s0,$t9,$zero -/* f0b47b4: 00003012 */ mflo $a2 -/* f0b47b8: 00000000 */ nop -/* f0b47bc: 00000000 */ nop -.L0f0b47c0: -/* f0b47c0: 11a00050 */ beqz $t5,.L0f0b4904 -/* f0b47c4: 8fa50180 */ lw $a1,0x180($sp) -/* f0b47c8: 8fa20168 */ lw $v0,0x168($sp) -/* f0b47cc: 93ad00c6 */ lbu $t5,0xc6($sp) -/* f0b47d0: 8fb80038 */ lw $t8,0x38($sp) -/* f0b47d4: 244f0008 */ addiu $t7,$v0,0x8 -/* f0b47d8: afaf0168 */ sw $t7,0x168($sp) -/* f0b47dc: 3c01f500 */ lui $at,0xf500 -/* f0b47e0: 31ae0003 */ andi $t6,$t5,0x3 -/* f0b47e4: 000e7cc0 */ sll $t7,$t6,0x13 -/* f0b47e8: 0301c825 */ or $t9,$t8,$at -/* f0b47ec: 032fc025 */ or $t8,$t9,$t7 -/* f0b47f0: 8faf00cc */ lw $t7,0xcc($sp) -/* f0b47f4: 320d01ff */ andi $t5,$s0,0x1ff -/* f0b47f8: 000d7240 */ sll $t6,$t5,0x9 -/* f0b47fc: 030ec825 */ or $t9,$t8,$t6 -/* f0b4800: 31ed01ff */ andi $t5,$t7,0x1ff -/* f0b4804: 032dc025 */ or $t8,$t9,$t5 -/* f0b4808: 30a30fff */ andi $v1,$a1,0xfff -/* f0b480c: 00037300 */ sll $t6,$v1,0xc -/* f0b4810: 3c01f200 */ lui $at,0xf200 -/* f0b4814: 01c17825 */ or $t7,$t6,$at -/* f0b4818: 266dffff */ addiu $t5,$s3,-1 -/* f0b481c: ac580000 */ sw $t8,0x0($v0) -/* f0b4820: 000dc080 */ sll $t8,$t5,0x2 -/* f0b4824: 03057021 */ addu $t6,$t8,$a1 -/* f0b4828: 01e3c825 */ or $t9,$t7,$v1 -/* f0b482c: 31cf0fff */ andi $t7,$t6,0xfff -/* f0b4830: 264dffff */ addiu $t5,$s2,-1 -/* f0b4834: 000dc080 */ sll $t8,$t5,0x2 -/* f0b4838: afb90048 */ sw $t9,0x48($sp) -/* f0b483c: 000fcb00 */ sll $t9,$t7,0xc -/* f0b4840: 03057021 */ addu $t6,$t8,$a1 -/* f0b4844: 31cf0fff */ andi $t7,$t6,0xfff -/* f0b4848: afaf0040 */ sw $t7,0x40($sp) -/* f0b484c: afb90044 */ sw $t9,0x44($sp) -/* f0b4850: afa8003c */ sw $t0,0x3c($sp) -/* f0b4854: afa60034 */ sw $a2,0x34($sp) -/* f0b4858: 02402025 */ or $a0,$s2,$zero -/* f0b485c: 0fc2ccd4 */ jal tex0f0b3350 -/* f0b4860: afa20058 */ sw $v0,0x58($sp) -/* f0b4864: 02602025 */ or $a0,$s3,$zero -/* f0b4868: 0fc2ccd4 */ jal tex0f0b3350 -/* f0b486c: afa20050 */ sw $v0,0x50($sp) -/* f0b4870: 32230007 */ andi $v1,$s1,0x7 -/* f0b4874: 8faf0174 */ lw $t7,0x174($sp) -/* f0b4878: 0003ce00 */ sll $t9,$v1,0x18 -/* f0b487c: 304d000f */ andi $t5,$v0,0xf -/* f0b4880: 000dc100 */ sll $t8,$t5,0x4 -/* f0b4884: 03197025 */ or $t6,$t8,$t9 -/* f0b4888: 03201825 */ or $v1,$t9,$zero -/* f0b488c: 91f9000a */ lbu $t9,0xa($t7) -/* f0b4890: 8fa70050 */ lw $a3,0x50($sp) -/* f0b4894: 3224000f */ andi $a0,$s1,0xf -/* f0b4898: 332d0003 */ andi $t5,$t9,0x3 -/* f0b489c: 000dc480 */ sll $t8,$t5,0x12 -/* f0b48a0: 01d8c825 */ or $t9,$t6,$t8 -/* f0b48a4: 30ed000f */ andi $t5,$a3,0xf -/* f0b48a8: 000d7380 */ sll $t6,$t5,0xe -/* f0b48ac: 032ec025 */ or $t8,$t9,$t6 -/* f0b48b0: 91ee0009 */ lbu $t6,0x9($t7) -/* f0b48b4: 00046a80 */ sll $t5,$a0,0xa -/* f0b48b8: 030dc825 */ or $t9,$t8,$t5 -/* f0b48bc: 31d80003 */ andi $t8,$t6,0x3 -/* f0b48c0: 00186a00 */ sll $t5,$t8,0x8 -/* f0b48c4: 8fb80058 */ lw $t8,0x58($sp) -/* f0b48c8: 032d7825 */ or $t7,$t9,$t5 -/* f0b48cc: 01e47025 */ or $t6,$t7,$a0 -/* f0b48d0: 8fa60034 */ lw $a2,0x34($sp) -/* f0b48d4: 8fa8003c */ lw $t0,0x3c($sp) -/* f0b48d8: af0e0004 */ sw $t6,0x4($t8) -/* f0b48dc: 8fa50168 */ lw $a1,0x168($sp) -/* f0b48e0: 8faf0048 */ lw $t7,0x48($sp) -/* f0b48e4: 24ad0008 */ addiu $t5,$a1,0x8 -/* f0b48e8: afad0168 */ sw $t5,0x168($sp) -/* f0b48ec: acaf0000 */ sw $t7,0x0($a1) -/* f0b48f0: 8fae0044 */ lw $t6,0x44($sp) -/* f0b48f4: 8fb90040 */ lw $t9,0x40($sp) -/* f0b48f8: 006ec025 */ or $t8,$v1,$t6 -/* f0b48fc: 03196825 */ or $t5,$t8,$t9 -/* f0b4900: acad0004 */ sw $t5,0x4($a1) -.L0f0b4904: -/* f0b4904: 8faf00cc */ lw $t7,0xcc($sp) -/* f0b4908: 8fb800c8 */ lw $t8,0xc8($sp) -/* f0b490c: 26310001 */ addiu $s1,$s1,0x1 -/* f0b4910: 01e67021 */ addu $t6,$t7,$a2 -/* f0b4914: 1638ff5b */ bne $s1,$t8,.L0f0b4684 -/* f0b4918: afae00cc */ sw $t6,0xcc($sp) -/* f0b491c: afb0005c */ sw $s0,0x5c($sp) -.L0f0b4920: -/* f0b4920: 8fb90168 */ lw $t9,0x168($sp) -/* f0b4924: 8fad0170 */ lw $t5,0x170($sp) -/* f0b4928: adb90000 */ sw $t9,0x0($t5) -/* f0b492c: 8fbf002c */ lw $ra,0x2c($sp) -/* f0b4930: 8fb40028 */ lw $s4,0x28($sp) -/* f0b4934: 8fb30024 */ lw $s3,0x24($sp) -/* f0b4938: 8fb20020 */ lw $s2,0x20($sp) -/* f0b493c: 8fb1001c */ lw $s1,0x1c($sp) -/* f0b4940: 8fb00018 */ lw $s0,0x18($sp) -/* f0b4944: 03e00008 */ jr $ra -/* f0b4948: 27bd0170 */ addiu $sp,$sp,0x170 -); +void texSelect(Gfx **gdlptr, struct textureconfig *tconfig, u32 arg2, s32 arg3, u32 ulst, bool arg5, struct texturething *arg6) +{ + struct texloadthing *s4; + Gfx *gdl; + s32 tile; + + gdl = *gdlptr; + + if (tconfig == NULL) { + texSetRenderMode(&gdl, arg2, 1, arg3); + + if (arg3 >= 2) { + gSPTextureL(gdl++, 0xffff, 0xffff, 0, arg3, G_TX_RENDERTILE, G_ON); + } else { + gSPTextureL(gdl++, 0xffff, 0xffff, 0, 0, G_TX_RENDERTILE, G_ON); + } + + gDPSetCombineMode(gdl++, G_CC_SHADE, G_CC_SHADE); + } else { + s32 width = tconfig->width; + s32 height = tconfig->height; + u16 *ptr; + s32 index; + u8 format; + u8 depth; + s32 lutmode; + s32 depth2; + s32 lrs; + s32 line; + u16 texturenum; + + s4 = NULL; + + if (tconfig->texturenum < NUM_TEXTURES) { + texLoadFromConfigs(tconfig, 1, arg6, 0); + } + + if (tconfig->unk0b == 1) { + ptr = (u16 *)tconfig->textureptr; + texturenum = ((u16 *)PHYS_TO_K0(ptr))[-4]; + index = tconfig - g_TexWallhitConfigs; + + if (index >= 0 && index < g_TexNumConfigs) { + s4 = g_TexWords[index]; + } + + if (s4 == NULL) { + s4 = tex0f172e8c(texturenum, arg6); + + if (index >= 0 && index < g_TexNumConfigs) { + g_TexWords[index] = s4; + } + } + } + + if (tconfig->level == 0) { + if (s4) { + format = s4->gbiformat; + depth = s4->depth; + lutmode = s4->lutmodeindex << G_MDSFT_TEXTLUT; + } else { + format = tconfig->format; + depth = tconfig->depth; + } + + switch (depth) { + default: + break; + case G_IM_SIZ_32b: + depth2 = G_IM_SIZ_32b; + lrs = tex0f0b3548(width, height, 1) - 1; + line = (width + 3) >> 2; + break; + case G_IM_SIZ_16b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b34d8(width, height, 1) - 1; + line = (width + 3) >> 2; + break; + case G_IM_SIZ_8b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b3468(width, height, 1) - 1; + line = (width + 7) >> 3; + break; + case G_IM_SIZ_4b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b33f8(width, height, 1) - 1; + line = (width + 15) >> 4; + break; + } + + if (arg5) { + texSetRenderMode(&gdl, arg2, 1, arg3); + + if (arg3 >= 2) { + gSPTextureL(gdl++, 0xffff, 0xffff, 0, arg3, G_TX_RENDERTILE, G_ON); + } else { + gSPTextureL(gdl++, 0xffff, 0xffff, 0, 0, G_TX_RENDERTILE, G_ON); + } + + gDPSetTextureLOD(gdl++, G_TL_TILE); + + switch (format) { + case G_IM_FMT_RGBA: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + case G_IM_FMT_IA: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + case G_IM_FMT_I: + gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); + break; + case G_IM_FMT_CI: + switch (lutmode) { + case G_TT_RGBA16: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + case G_TT_IA16: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + } + break; + } + } + + gDPSetTextureImage(gdl++, format, depth2, 1, tconfig->textureptr); + + if (depth2 == G_IM_SIZ_16b) { + gDPLoadSync(gdl++); + gDPLoadBlock(gdl++, G_TX_LOADTILE, 0, 0, lrs, 0); + } else { + gDPSetTile(gdl++, G_IM_FMT_RGBA, depth2, 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); + gDPLoadSync(gdl++); + gDPLoadBlock(gdl++, 5, 0, 0, lrs, 0); + } + + gDPPipeSync(gdl++); + + if (format == G_IM_FMT_CI) { + u32 a3 = lrs + 1; + u32 t0 = (0x3ff - s4->unk0a) < a3 ? (0x3ff - s4->unk0a) : 0; + + a3 -= t0; + + gDPLoadSync(gdl++); + gDPLoadTLUT06(gdl++, a3, t0, s4->unk0a + a3, t0); + gDPPipeSync(gdl++); + + if (arg5) { + gDPSetTextureLUT(gdl++, lutmode); + } + } else { + if (arg5) { + gDPSetTextureLUT(gdl++, G_TT_NONE); + } + } + + if (arg5) { + gDPSetTile(gdl++, format, depth, line, 0x0000, G_TX_RENDERTILE, 0, + tconfig->t, texGetMask(height), G_TX_NOLOD, + tconfig->s, texGetMask(width), G_TX_NOLOD); + + gDPSetTileSize(gdl++, G_TX_RENDERTILE, ulst, ulst, ((width - 1) << 2) + ulst, ((height - 1) << 2) + ulst); + } + } else { + s32 tmem = 0; + s32 lod = tconfig->level; + u8 format; + u8 depth; + s32 lutmode; + s32 depth2; + s32 lrs; + + if (lod > 6) { + lod = 6; + } + + if (s4) { + format = s4->gbiformat; + depth = s4->depth; + lutmode = s4->lutmodeindex << G_MDSFT_TEXTLUT; + } else { + format = tconfig->format; + depth = tconfig->depth; + } + + if (s4 && s4->unk0c_02) { + surface0f173e50(s4, &depth2, &lrs); + } else { + switch (depth) { + case G_IM_SIZ_32b: + depth2 = G_IM_SIZ_32b; + lrs = tex0f0b3548(width, height, lod) - 1; + break; + case G_IM_SIZ_16b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b34d8(width, height, lod) - 1; + break; + case G_IM_SIZ_8b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b3468(width, height, lod) - 1; + break; + case G_IM_SIZ_4b: + depth2 = G_IM_SIZ_16b; + lrs = tex0f0b33f8(width, height, lod) - 1; + break; + } + } + + if (arg5) { + texSetRenderMode(&gdl, arg2, 2, arg3); + + if (arg3 >= 2) { + gSPTextureL(gdl++, 0xffff, 0xffff, lod - 1, arg3, G_TX_RENDERTILE, G_ON); + } else { + gSPTexture(gdl++, 0xffff, 0xffff, lod - 1, G_TX_RENDERTILE, G_ON); + } + + gDPSetTextureLOD(gdl++, G_TL_LOD); + + switch (format) { + case G_IM_FMT_RGBA: + gDPSetCombineMode(gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + break; + case G_IM_FMT_IA: + gDPSetCombineMode(gdl++, G_CC_TRILERP, G_CC_MODULATEIA2); + break; + case G_IM_FMT_I: + gDPSetCombineMode(gdl++, G_CC_TRILERP, G_CC_MODULATEI2); + break; + case G_IM_FMT_CI: + switch (lutmode) { + case G_TT_RGBA16: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + case G_TT_IA16: + gDPSetCombineMode(gdl++, G_CC_MODULATEIA, G_CC_MODULATEIA); + break; + } + break; + } + } + + gDPSetTextureImage(gdl++, format, depth2, 1, tconfig->textureptr); + + if (depth2 == G_IM_SIZ_16b) { + gDPLoadSync(gdl++); + gDPLoadBlock(gdl++, G_TX_LOADTILE, 0, 0, lrs, 0); + } else { + gDPSetTile(gdl++, G_IM_FMT_RGBA, depth2, 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); + gDPLoadSync(gdl++); + gDPLoadBlock(gdl++, 5, 0, 0, lrs, 0); + } + + gDPPipeSync(gdl++); + + if (format == G_IM_FMT_CI) { + u32 a2 = lrs + 1; + u32 a3 = (0x3ff - s4->unk0a) < a2 ? (0x3ff - s4->unk0a) : 0; + + a2 -= a3; + + gDPLoadSync(gdl++); + gDPLoadTLUT06(gdl++, a2, a3, s4->unk0a + a2, a3); + gDPPipeSync(gdl++); + + if (arg5) { + gDPSetTextureLUT(gdl++, lutmode); + } + } else { + if (arg5) { + gDPSetTextureLUT(gdl++, G_TT_NONE); + } + } + + for (tile = 0; tile < lod; tile++) { + s32 line; + + if (tile > 0) { + if (s4 && s4->unk0c_02) { + width = surface0f173c10(s4, tile); + height = surface0f173cb8(s4, tile); + } else { + if (width >= 2) { + width >>= 1; + } + + if (height >= 2) { + height >>= 1; + } + } + } + + switch (depth) { + default: + break; + case G_IM_SIZ_32b: + line = (width + 3) / 4; + break; + case G_IM_SIZ_16b: + line = (width + 3) / 4; + break; + case G_IM_SIZ_8b: + line = (width + 7) / 8; + break; + case G_IM_SIZ_4b: + line = (width + 15) / 16; + break; + } + + if (arg5) { + gDPSetTile(gdl++, format, depth, line, tmem, tile, 0, + tconfig->t, texGetMask(height), tile, + tconfig->s, texGetMask(width), tile); + + gDPSetTileSize(gdl++, tile, ulst, ulst, ((width - 1) << 2) + ulst, ((height - 1) << 2) + ulst); + } + + tmem += line * height; + } + } + } + + *gdlptr = gdl; +} diff --git a/src/game/texdecompress.c b/src/game/texdecompress.c index 191931b7f..6cc06bf70 100644 --- a/src/game/texdecompress.c +++ b/src/game/texdecompress.c @@ -23,7 +23,7 @@ u32 var800ab54c; u32 g_TexBase; u8 *g_TextureConfigSegment; s32 g_TexNumConfigs; -u32 *g_TexWords; +struct texloadthing **g_TexWords; struct textureconfig *g_TexWallhitConfigs; Gfx *g_TexGdl1; Gfx *g_TexGdl2; @@ -62,11 +62,53 @@ s32 g_TexFormatChannelSizes[] = { 256, 32, 256, 32, 256, 16, 8, 256, 16, 256, 16 s32 g_TexFormatBitsPerPixel[] = { 32, 16, 24, 15, 16, 8, 4, 8, 4, 16, 16, 16, 16 }; // Mapping to GBI format -s32 g_TexFormatGbiMappings[] = { G_IM_FMT_RGBA, G_IM_FMT_RGBA, G_IM_FMT_RGBA, G_IM_FMT_RGBA, G_IM_FMT_IA, G_IM_FMT_IA, G_IM_FMT_IA, G_IM_FMT_I, G_IM_FMT_I, G_IM_FMT_CI, G_IM_FMT_CI, G_IM_FMT_CI, G_IM_FMT_CI }; +s32 g_TexFormatGbiMappings[] = { + G_IM_FMT_RGBA, + G_IM_FMT_RGBA, + G_IM_FMT_RGBA, + G_IM_FMT_RGBA, + G_IM_FMT_IA, + G_IM_FMT_IA, + G_IM_FMT_IA, + G_IM_FMT_I, + G_IM_FMT_I, + G_IM_FMT_CI, + G_IM_FMT_CI, + G_IM_FMT_CI, + G_IM_FMT_CI, +}; -s32 var800842bc[] = { 3, 2, 3, 2, 2, 1, 0, 1, 0, 1, 0, 1, 0 }; +s32 g_TexFormatDepths[] = { + G_IM_SIZ_32b, + G_IM_SIZ_16b, + G_IM_SIZ_32b, + G_IM_SIZ_16b, + G_IM_SIZ_16b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, + G_IM_SIZ_8b, + G_IM_SIZ_4b, +}; -s32 var800842f0[] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x8000, 0xc000, 0xc000 }; +s32 g_TexFormatLutModes[] = { + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_NONE, + G_TT_RGBA16, + G_TT_RGBA16, + G_TT_IA16, + G_TT_IA16, +}; void func0f16e810(u32 arg0) { @@ -159,8 +201,8 @@ s32 texInflateZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct textur arg4->unk0c->height = height; arg4->unk0c->unk0a = numcolours - 1; arg4->unk0c->gbiformat = g_TexFormatGbiMappings[format]; - arg4->unk0c->unk0b_06 = var800842bc[format]; - arg4->unk0c->unk0c_00 = var800842f0[format] >> 14; + arg4->unk0c->depth = g_TexFormatDepths[format]; + arg4->unk0c->lutmodeindex = g_TexFormatLutModes[format] >> G_MDSFT_TEXTLUT; } else if (writetocache) { g_TexCacheItems[g_TexCacheCount].widths[j - 1] = width; g_TexCacheItems[g_TexCacheCount].heights[j - 1] = height; @@ -1333,8 +1375,8 @@ s32 texInflateNonZlib(u8 *src, u8 *dst, s32 arg2, s32 forcenumimages, struct tex arg4->unk0c->width = width; arg4->unk0c->height = height; arg4->unk0c->gbiformat = g_TexFormatGbiMappings[format]; - arg4->unk0c->unk0b_06 = var800842bc[format]; - arg4->unk0c->unk0c_00 = var800842f0[format] >> 14; + arg4->unk0c->depth = g_TexFormatDepths[format]; + arg4->unk0c->lutmodeindex = g_TexFormatLutModes[format] >> G_MDSFT_TEXTLUT; } else if (writetocache) { g_TexCacheItems[g_TexCacheCount].widths[i - 1] = width; g_TexCacheItems[g_TexCacheCount].heights[i - 1] = height; diff --git a/src/game/texreset.c b/src/game/texreset.c index 63778be7b..e216f2db7 100644 --- a/src/game/texreset.c +++ b/src/game/texreset.c @@ -91,31 +91,31 @@ void texReset(void) if (IS4MB() && stage != STAGE_TITLE && stage != STAGE_CITRAINING && stage != STAGE_4MBMENU) { for (i = 0; i < ARRAYCOUNT(g_TcWallhitConfigs); i++) { - tex0f0b3988(&g_TexWallhitConfigs[i]); + texLoadFromConfig(&g_TexWallhitConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcBeamConfigs); i++) { - tex0f0b3988(&g_TexBeamConfigs[i]); + texLoadFromConfig(&g_TexBeamConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcWaterConfigs); i++) { - tex0f0b3988(&g_TexWaterConfigs[i]); + texLoadFromConfig(&g_TexWaterConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcGroup06Configs); i++) { - tex0f0b3988(&g_TexShadowConfigs[i]); + texLoadFromConfig(&g_TexShadowConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcShieldConfigs); i++) { - tex0f0b3988(&g_TexShieldConfigs[i]); + texLoadFromConfig(&g_TexShieldConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcRadarConfigs); i++) { - tex0f0b3988(&g_TexRadarConfigs[i]); + texLoadFromConfig(&g_TexRadarConfigs[i]); } for (i = 0; i < ARRAYCOUNT(g_TcSparkConfigs); i++) { - tex0f0b3988(&g_TexSparkConfigs[i]); + texLoadFromConfig(&g_TexSparkConfigs[i]); } } } diff --git a/src/game/title.c b/src/game/title.c index d386ef23f..635397718 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -533,7 +533,7 @@ glabel var7f1a84fcjf /* f0169fc: 27a40130 */ addiu $a0,$sp,0x130 /* f016a00: 24060001 */ li $a2,0x1 /* f016a04: 00003825 */ move $a3,$zero -/* f016a08: 0fc2d290 */ jal tex0f0b39c0 +/* f016a08: 0fc2d290 */ jal texSelect /* f016a0c: 24a50234 */ addiu $a1,$a1,0x234 /* f016a10: 8fab0130 */ lw $t3,0x130($sp) /* f016a14: 3c0eba00 */ lui $t6,0xba00 @@ -652,7 +652,7 @@ glabel var7f1a84fcjf /* f016bd4: 27a40130 */ addiu $a0,$sp,0x130 /* f016bd8: 24060001 */ li $a2,0x1 /* f016bdc: 00003825 */ move $a3,$zero -/* f016be0: 0fc2d290 */ jal tex0f0b39c0 +/* f016be0: 0fc2d290 */ jal texSelect /* f016be4: 24a5024c */ addiu $a1,$a1,0x24c /* f016be8: 8fb80130 */ lw $t8,0x130($sp) /* f016bec: 3c0eba00 */ lui $t6,0xba00 @@ -1057,7 +1057,7 @@ glabel var7f1aa08cnb /* f0169f8: 27a40128 */ addiu $a0,$sp,0x128 /* f0169fc: 24060001 */ li $a2,0x1 /* f016a00: 00003825 */ move $a3,$zero -/* f016a04: 0fc2cf74 */ jal tex0f0b39c0 +/* f016a04: 0fc2cf74 */ jal texSelect /* f016a08: 24a50234 */ addiu $a1,$a1,0x234 /* f016a0c: 8fab0128 */ lw $t3,0x128($sp) /* f016a10: 3c0eba00 */ lui $t6,0xba00 @@ -1176,7 +1176,7 @@ glabel var7f1aa08cnb /* f016bd0: 27a40128 */ addiu $a0,$sp,0x128 /* f016bd4: 24060001 */ li $a2,0x1 /* f016bd8: 00003825 */ move $a3,$zero -/* f016bdc: 0fc2cf74 */ jal tex0f0b39c0 +/* f016bdc: 0fc2cf74 */ jal texSelect /* f016be0: 24a5024c */ addiu $a1,$a1,0x24c /* f016be4: 8fb80128 */ lw $t8,0x128($sp) /* f016be8: 3c0eba00 */ lui $t6,0xba00 @@ -1381,7 +1381,7 @@ Gfx *titleRenderLegal(Gfx *gdl) gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[47], 1, 0, 2, 1, 0); + texSelect(&gdl, &g_TexGeneralConfigs[47], 1, 0, 2, 1, 0); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); @@ -1404,7 +1404,7 @@ Gfx *titleRenderLegal(Gfx *gdl) gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[49], 1, 0, 2, 1, 0); + texSelect(&gdl, &g_TexGeneralConfigs[49], 1, 0, 2, 1, 0); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); diff --git a/src/game/trainingmenus.c b/src/game/trainingmenus.c index 1b2875a8e..e6ec6925b 100644 --- a/src/game/trainingmenus.c +++ b/src/game/trainingmenus.c @@ -165,7 +165,7 @@ s32 frWeaponListMenuHandler(s32 operation, struct menuitem *item, union handlerd gDPSetTextureConvert(gdl++, G_TC_FILT); gDPSetTextureFilter(gdl++, G_TF_POINT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[35], 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); @@ -627,7 +627,7 @@ s32 frScoringMenuHandler(s32 operation, struct menuitem *item, union handlerdata gDPSetTextureConvert(gdl++, G_TC_FILT); gDPSetTextureFilter(gdl++, G_TF_POINT); - tex0f0b39c0(&gdl, tconfig, 2, 0, 2, 1, NULL); + texSelect(&gdl, tconfig, 2, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); @@ -1860,7 +1860,7 @@ s32 ciHangarTitleMenuHandler(s32 operation, struct menuitem *item, union handler gDPSetTextureLOD(gdl++, G_TL_TILE); gDPSetTextureConvert(gdl++, G_TC_FILT); - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[texturenum], 1, 0, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[texturenum], 1, 0, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetCombineMode(gdl++, G_CC_DECALRGBA, G_CC_DECALRGBA); diff --git a/src/game/wallhit.c b/src/game/wallhit.c index 2f33d02ef..8ab0aa1f2 100644 --- a/src/game/wallhit.c +++ b/src/game/wallhit.c @@ -5462,7 +5462,7 @@ Gfx *wallhitRenderBgHitsLayer1(s32 roomnum, Gfx *gdl) } if (hit->texturenum != prevtexturenum || hit->unk6b != prev6b) { - tex0f0b39c0(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); + texSelect(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); prevtexturenum = hit->texturenum; prev6b = hit->unk6b; @@ -5520,7 +5520,7 @@ Gfx *wallhitRenderBgHitsLayer2(s32 roomnum, Gfx *gdl) hit->unk6b = 1; if (hit->texturenum != prevtexturenum || hit->unk6b != prev6b) { - tex0f0b39c0(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); + texSelect(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); prevtexturenum = hit->texturenum; prev6b = hit->unk6b; @@ -5607,7 +5607,7 @@ Gfx *wallhitRenderPropHits(Gfx *gdl, struct prop *prop, bool withalpha) } if (prevtexturenum != hit->texturenum || prev6b != hit->unk6b) { - tex0f0b39c0(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); + texSelect(&gdl, &g_TexWallhitConfigs[hit->texturenum], 2, hit->unk6b, 2, 1, NULL); prevtexturenum = hit->texturenum; prev6b = hit->unk6b; diff --git a/src/game/weather.c b/src/game/weather.c index b7b63500e..1625558cc 100644 --- a/src/game/weather.c +++ b/src/game/weather.c @@ -56,7 +56,7 @@ Gfx *weatherRender(Gfx *gdl) gSPDisplayList(gdl++, &var80061380); if (weather->type == WEATHERTYPE_SNOW) { - tex0f0b39c0(&gdl, &g_TexGeneralConfigs[1], 2, 1, 2, 1, NULL); + texSelect(&gdl, &g_TexGeneralConfigs[1], 2, 1, 2, 1, NULL); gDPSetCycleType(gdl++, G_CYC_1CYCLE); gDPSetColorDither(gdl++, G_CD_NOISE); @@ -886,7 +886,7 @@ glabel var7f1b5780 /* f132f6c: 24060002 */ addiu $a2,$zero,0x2 /* f132f70: 24070001 */ addiu $a3,$zero,0x1 /* f132f74: afa00018 */ sw $zero,0x18($sp) -/* f132f78: 0fc2ce70 */ jal tex0f0b39c0 +/* f132f78: 0fc2ce70 */ jal texSelect /* f132f7c: 24a5000c */ addiu $a1,$a1,0x000c /* f132f80: 8fab0de8 */ lw $t3,0xde8($sp) /* f132f84: 3c0dba00 */ lui $t5,0xba00 @@ -2576,7 +2576,7 @@ u32 var8007f0fc = 22000; // spdb0[i] = 0; // } // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[1], 2, 1, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[1], 2, 1, 2, 1, NULL); // // gDPSetCycleType(gdl++, G_CYC_1CYCLE); // gDPSetColorDither(gdl++, G_CD_DISABLE); @@ -3134,7 +3134,7 @@ glabel var7f1b5790 /* f134720: 24060004 */ addiu $a2,$zero,0x4 /* f134724: afa00018 */ sw $zero,0x18($sp) /* f134728: afa01268 */ sw $zero,0x1268($sp) -/* f13472c: 0fc2ce70 */ jal tex0f0b39c0 +/* f13472c: 0fc2ce70 */ jal texSelect /* f134730: 00003825 */ or $a3,$zero,$zero /* f134734: 8fb81398 */ lw $t8,0x1398($sp) /* f134738: 8fa81268 */ lw $t0,0x1268($sp) @@ -4622,7 +4622,7 @@ u32 var8007f110 = 0xffffff7f; // s7 = 0; // sp1268 = 0; // -// tex0f0b39c0(&gdl, &g_TexGeneralConfigs[0], 4, 0, 2, 1, NULL); +// texSelect(&gdl, &g_TexGeneralConfigs[0], 4, 0, 2, 1, NULL); // // gDPSetCycleType(gdl++, G_CYC_1CYCLE); // gDPSetColorDither(gdl++, G_CD_DISABLE); diff --git a/src/include/bss.h b/src/include/bss.h index 422421f97..a44b63f7c 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -264,7 +264,7 @@ extern u8 *var800ab540; extern u32 var800ab544; extern s32 var800ab548; extern s32 g_TexNumConfigs; -extern u32 *g_TexWords; +extern struct texloadthing **g_TexWords; extern struct textureconfig *g_TexWallhitConfigs; extern Gfx *g_TexGdl1; extern Gfx *g_TexGdl2; diff --git a/src/include/game/surface.h b/src/include/game/surface.h index eeead6a05..ab2ca70f5 100644 --- a/src/include/game/surface.h +++ b/src/include/game/surface.h @@ -10,11 +10,11 @@ void surface0f173a08(void); bool surface0f173a44(u32 value); bool surface0f173a70(s32 index, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10); bool surface0f173b8c(s32 index, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -u32 surface0f173c10(void); -u32 surface0f173cb8(void); +s32 surface0f173c10(struct texloadthing *arg0, s32 arg1); +s32 surface0f173cb8(struct texloadthing *arg0, s32 arg1); u32 surface0f173d60(void); u32 surface0f173e10(void); -u32 surface0f173e50(void); +void surface0f173e50(struct texloadthing *arg0, s32 *arg1, s32 *arg2); s32 surface0f173f18(s32 arg0); u32 surface0f173f48(u32 arg0); u32 surface0f173f78(void); diff --git a/src/include/game/tex.h b/src/include/game/tex.h index df5f0da68..b4b87a8c0 100644 --- a/src/include/game/tex.h +++ b/src/include/game/tex.h @@ -6,13 +6,13 @@ void texInit(void); -s32 tex0f0b3350(s32 value); -s32 tex0f0b33f8(s32 arg0, s32 arg1, s32 arg2); -s32 tex0f0b3468(s32 arg0, s32 arg1, s32 arg2); -s32 tex0f0b34d8(s32 arg0, s32 arg1, s32 arg2); -s32 tex0f0b3548(s32 arg0, s32 arg1, s32 arg2); +s32 texGetMask(s32 value); +s32 tex0f0b33f8(s32 width, s32 height, s32 lod); +s32 tex0f0b3468(s32 width, s32 height, s32 lod); +s32 tex0f0b34d8(s32 width, s32 height, s32 lod); +s32 tex0f0b3548(s32 width, s32 height, s32 lod); void texSetRenderMode(Gfx **gdlptr, s32 arg1, s32 numcycles, s32 arg3); -void tex0f0b3988(struct textureconfig *config); -void tex0f0b39c0(Gfx **gdl, struct textureconfig *arg1, u32 arg2, u32 arg3, u32 arg4, s32 arg5, u32 *arg6); +void texLoadFromConfig(struct textureconfig *config); +void texSelect(Gfx **gdl, struct textureconfig *tconfig, u32 arg2, s32 arg3, u32 arg4, bool arg5, struct texturething *arg6); #endif diff --git a/src/include/gbiex.h b/src/include/gbiex.h index e0a3818da..3f54c30ea 100644 --- a/src/include/gbiex.h +++ b/src/include/gbiex.h @@ -94,6 +94,13 @@ #define gDPTri1(pkt, x1, y1, z1) \ gDPTri4(pkt, x1, y1, z1, 0, 0, 0, 0, 0, 0, 0, 0, 0) +#define gDPLoadTLUT06(pkt, a, b, c, d) \ +{ \ + Gfx *_g = (Gfx *)pkt; \ + _g->words.w0 = _SHIFTL(G_LOADTLUT, 24, 8) | _SHIFTL((a), 14, 10) | _SHIFTL((b), 2, 10); \ + _g->words.w1 = _SHIFTL(0x06, 24, 8) | _SHIFTL((c), 14, 10) | _SHIFTL((d), 2, 10); \ +} + /** * Like gDPSetPrimColor, but is useful when the input colour is already in * RGBA format. It avoids unnecessary bitshifting and masking. diff --git a/src/include/types.h b/src/include/types.h index a3f74262d..339883c8b 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6725,19 +6725,19 @@ struct texturething { }; struct texloadthing { - u16 texturenum : 12; - u16 unk00_0c : 4; - u32 unk04; - u8 width; - u8 height; - u8 unk0a; - u8 unk0b_00 : 3; - u8 gbiformat : 3; - u8 unk0b_06 : 2; - u32 unk0c_00 : 2; - u32 unk0c_02 : 1; - u32 unk0c_03 : 1; - u32 unk0c_04 : 24; + /*0x00*/ u16 texturenum : 12; + /*0x00*/ u16 unk00_0c : 4; + /*0x04*/ u32 unk04; + /*0x08*/ u8 width; + /*0x09*/ u8 height; + /*0x0a*/ u8 unk0a; + /*0x0b*/ u8 unk0b_00 : 3; + /*0x0b*/ u8 gbiformat : 3; + /*0x0b*/ u8 depth : 2; + /*0x0c*/ u32 lutmodeindex : 2; + /*0x0c*/ u32 unk0c_02 : 1; + /*0x0c*/ u32 unk0c_03 : 1; + /*0x0c*/ u32 unk0c_04 : 24; }; struct texcacheitem { diff --git a/src/lib/model.c b/src/lib/model.c index ad62cbb20..45f11dcb8 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -5828,7 +5828,7 @@ glabel modelRenderNodeType16 void model000216cc(struct modelrenderdata *renderdata, struct textureconfig *tconfig, s32 arg2) { - tex0f0b39c0(&renderdata->gdl, tconfig, arg2, renderdata->zbufferenabled, 2, 1, NULL); + texSelect(&renderdata->gdl, tconfig, arg2, renderdata->zbufferenabled, 2, 1, NULL); } GLOBAL_ASM(