core2/code_C0E60.c done

This commit is contained in:
Banjo Kazooie
2022-12-10 14:10:22 -06:00
parent 915a2c9ec9
commit d89b777c9e
5 changed files with 45 additions and 47 deletions

View File

@@ -1,4 +1,4 @@
# banjo (95.3650%) # banjo (95.7970%)
<img src="./progress/progress_total.svg"> <img src="./progress/progress_total.svg">

View File

@@ -828,7 +828,7 @@ segments:
- [0x1014880, c, code_BEF20] - [0x1014880, c, code_BEF20]
- [0x10164E0, c, code_C0B80] #DONE - [0x10164E0, c, code_C0B80] #DONE
- [0x1016650, c, code_C0CF0] #DONE - [0x1016650, c, code_C0CF0] #DONE
- [0x10167C0, c, code_C0E60] - [0x10167C0, c, code_C0E60] #DONE
- [0x1018580, c, code_C2C20] #DONE - [0x1018580, c, code_C2C20] #DONE
- [0x1018890, c, code_C2F30] #DONE - [0x1018890, c, code_C2F30] #DONE
- [0x1018B00, c, code_C31A0] #DONE - [0x1018B00, c, code_C31A0] #DONE

View File

@@ -9,7 +9,7 @@
</mask> </mask>
<g mask="url(#anybadge_1)"> <g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h44v20H0z"/> <path fill="#555" d="M0 0h44v20H0z"/>
<path fill="#1ce000" d="M44 0h67v20H44z"/> <path fill="#18e000" d="M44 0h67v20H44z"/>
<path fill="url(#b)" d="M0 0h111v20H0z"/> <path fill="url(#b)" d="M0 0h111v20H0z"/>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@@ -17,7 +17,7 @@
<text x="22.0" y="14">core2</text> <text x="22.0" y="14">core2</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">93.7877%</text> <text x="78.5" y="15" fill="#010101" fill-opacity=".3">94.5406%</text>
<text x="77.5" y="14">93.7877%</text> <text x="77.5" y="14">94.5406%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -9,7 +9,7 @@
</mask> </mask>
<g mask="url(#anybadge_1)"> <g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h150v20H0z"/> <path fill="#555" d="M0 0h150v20H0z"/>
<path fill="#15e000" d="M150 0h67v20H150z"/> <path fill="#13e000" d="M150 0h67v20H150z"/>
<path fill="url(#b)" d="M0 0h217v20H0z"/> <path fill="url(#b)" d="M0 0h217v20H0z"/>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@@ -17,7 +17,7 @@
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text> <text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">95.3650%</text> <text x="184.5" y="15" fill="#010101" fill-opacity=".3">95.7970%</text>
<text x="183.5" y="14">95.3650%</text> <text x="183.5" y="14">95.7970%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -22,8 +22,8 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
tmem, rtile, pal, cmt, \ tmem, rtile, pal, cmt, \
maskt, shiftt, cms, masks, shifts); \ maskt, shiftt, cms, masks, shifts); \
gDPSetTileSize(pkt, rtile, \ gDPSetTileSize(pkt, rtile, \
(uls)<<G_TEXTURE_IMAGE_FRAC, \ (uls), \
(ult)<<G_TEXTURE_IMAGE_FRAC, \ (ult), \
((width)-1) << G_TEXTURE_IMAGE_FRAC, \ ((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC) \ ((height)-1) << G_TEXTURE_IMAGE_FRAC) \
} }
@@ -44,8 +44,8 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
rtile, pal, cmt, maskt, shiftt, cms, masks, \ rtile, pal, cmt, maskt, shiftt, cms, masks, \
shifts); \ shifts); \
gDPSetTileSize(pkt, rtile, \ gDPSetTileSize(pkt, rtile, \
(uls)<<G_TEXTURE_IMAGE_FRAC, \ (uls), \
(ult)<<G_TEXTURE_IMAGE_FRAC, \ (ult), \
((width)-1) << G_TEXTURE_IMAGE_FRAC, \ ((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC) \ ((height)-1) << G_TEXTURE_IMAGE_FRAC) \
} }
@@ -67,7 +67,7 @@ s32 D_803860A0;
s32 D_803860A4; s32 D_803860A4;
s32 D_803860A8; s32 D_803860A8;
s32 D_803860AC; s32 D_803860AC;
s32 D_803860B0; s32 spriteRenderHasPalette;
s32 D_803860B4; s32 D_803860B4;
/* .code */ /* .code */
@@ -123,44 +123,40 @@ void func_80347FC0(Gfx **gfx, BKSprite *sprite, s32 frame, s32 tmem, s32 rtile,
); );
} }
#ifndef NONMATCHING
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_C0E60/func_80348044.s")
#else
void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *argF) { void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile, s32 arg5, s32 arg6, s32 cms, s32 cmt, s32 *width, s32 *height, s32 *argB, s32 *argC, s32 *argD, s32 *argE, s32 *argF) {
s32 sp144; BKSpriteFrame *sprite_frame;
s32 temp_a2;
BKSpriteFrame *temp_v0;
s32 palette_addr; s32 palette_addr;
BKSpriteTextureBlock *var_v1; BKSpriteTextureBlock *var_v1;
s32 timg; s32 timg;
s32 sp144;
s32 var_a0; s32 var_a0;
s32 chunk_count; s32 chunk_count;
s32 masks; s32 masks;
s32 var_v0; s32 var_v0;
s32 maskt; s32 maskt;
temp_v0 = spriteGetFramePtr(sprite, frame); sprite_frame = spriteGetFramePtr(sprite, frame);
*argB = (s32) temp_v0->w; *argB = (s32) sprite_frame->w;
*argC = (s32) temp_v0->h; *argC = (s32) sprite_frame->h;
if (*argF == -1) { if (*argF == -1) {
*argF = (s32) temp_v0->chunkCnt; *argF = (s32) sprite_frame->chunkCnt;
} }
(*argF)--; (*argF)--;
chunk_count = *argF; chunk_count = (*argF);
if (sprite->type & SPRITE_TYPE_CI4) { if (sprite->type & SPRITE_TYPE_CI4) {
for(palette_addr = (s32)(temp_v0 + 1); palette_addr % 8; palette_addr++); for(palette_addr = (s32)(sprite_frame + 1); palette_addr % 8; palette_addr++);
gDPSetTextureLUT((*gfx)++, G_TT_RGBA16); gDPSetTextureLUT((*gfx)++, G_TT_RGBA16);
gDPLoadTLUT_pal16((*gfx)++, 0, palette_addr); gDPLoadTLUT_pal16((*gfx)++, 0, palette_addr);
D_803860B0 = TRUE; spriteRenderHasPalette = TRUE;
D_803860B4 = 0; D_803860B4 = 0;
D_80386074 = NULL; D_80386074 = 0;
D_8038607C = 0; var_v1 = palette_addr + 0x20;
D_80386098 = 0; D_80386098 = D_8038607C = 0;
} else if (sprite->type & SPRITE_TYPE_CI8) { } else if (sprite->type & SPRITE_TYPE_CI8) {
gDPPipelineMode((*gfx)++, G_PM_1PRIMITIVE); gDPPipelineMode((*gfx)++, G_PM_1PRIMITIVE);
for(palette_addr = (s32)(temp_v0 + 1); palette_addr % 8; palette_addr++); for(palette_addr = (s32)(sprite_frame + 1); palette_addr % 8; palette_addr++);
D_803860B0 = TRUE; D_803860B4 = spriteRenderHasPalette = TRUE;
D_803860B4 = 1; // D_803860B4 = 1;
D_80386074 = NULL; D_80386074 = NULL;
D_8038607C = 0; D_8038607C = 0;
var_v1 = palette_addr + 0x200; var_v1 = palette_addr + 0x200;
@@ -173,24 +169,24 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
gDPSetTextureLUT((*gfx)++, G_TT_RGBA16); gDPSetTextureLUT((*gfx)++, G_TT_RGBA16);
gDPLoadTLUT_pal256((*gfx)++, palette_addr); gDPLoadTLUT_pal256((*gfx)++, palette_addr);
} else { } else {
D_803860B0 = FALSE; var_v1 = (BKSpriteTextureBlock *)(sprite_frame + 1);
var_v1 = temp_v0 + 0x14; spriteRenderHasPalette = FALSE;
} }
if ((D_8038607C == 0) || (tmem == D_80386078)) { if ((D_8038607C == 0) || (tmem == D_80386078)) {
D_80386078 = tmem; D_80386078 = tmem;
D_80386070 = temp_v0; D_80386070 = sprite_frame;
D_80386080 = arg5; D_80386080 = arg5;
D_80386084 = arg6; D_80386084 = arg6;
sp144 = 0;
D_80386088 = rtile; D_80386088 = rtile;
sp144 = 0;
} else { } else {
D_80386094 = tmem; D_80386094 = tmem;
D_80386074 = temp_v0; D_80386074 = sprite_frame;
D_8038609C = arg5; D_8038609C = arg5;
D_803860A0 = arg6; D_803860A0 = arg6;
sp144 = 1;
D_803860A4 = rtile; D_803860A4 = rtile;
sp144 = 1;
} }
*width = (s32) var_v1->w; *width = (s32) var_v1->w;
@@ -217,8 +213,9 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
} else { } else {
masks = 0; masks = 0;
} }
var_v0 = *height - 1; maskt = *height - 1;
var_v0 = maskt;
if ((*height & 7) == 0) { if ((*height & 7) == 0) {
maskt = 0; maskt = 0;
while (var_v0 != 0) { while (var_v0 != 0) {
@@ -272,25 +269,26 @@ void func_80348044(Gfx **gfx, BKSprite* sprite, s32 frame, s32 tmem, s32 rtile,
D_80386098 = (s32) D_80386098 >> 1; D_80386098 = (s32) D_80386098 >> 1;
} }
} else if (sprite->type & SPRITE_TYPE_CI4) { } else if (sprite->type & SPRITE_TYPE_CI4) {
rare_gDPLoadMultiBlock((*gfx)++, timg, tmem, rtile, G_IM_FMT_CI, G_IM_SIZ_4b, *width, *height, arg5, arg6, 0, cms, cmt, masks, maskt, G_TX_NOLOD, G_TX_NOLOD); rare_gDPLoadMultiBlock_4b((*gfx)++, timg, tmem, rtile, G_IM_FMT_RGBA, *width, *height, arg5, arg6, 0, cms, cmt, masks, maskt, G_TX_NOLOD, G_TX_NOLOD);
D_8038607C = D_8038607C >> 4; D_8038607C = D_8038607C >> 4;
} else if (sprite->type & SPRITE_TYPE_CI8) { } else if (sprite->type & SPRITE_TYPE_CI8) {
rare_gDPLoadMultiBlock((*gfx)++, timg, tmem, rtile, G_IM_FMT_CI, G_IM_SIZ_8b, *width, *height, arg5, arg6, 0, cms, cmt, masks, maskt, G_TX_NOLOD, G_TX_NOLOD); rare_gDPLoadMultiBlock((*gfx)++, timg, tmem, rtile, G_IM_FMT_CI, G_IM_SIZ_8b, *width, *height, arg5, arg6, 0, cms, cmt, masks, maskt, G_TX_NOLOD, G_TX_NOLOD);
D_8038607C = (s32) D_8038607C >> 3; D_8038607C = (s32) D_8038607C >> 3;
} }
if( D_8038607C != 0
if ((D_8038607C != 0) && (D_80386098 != 0) && (D_80386094 < (D_80386078 + D_8038607C))) { && D_80386098 != 0
&& (D_80386094 < (D_80386078 + D_8038607C))
) {
D_80386074 = NULL; D_80386074 = NULL;
D_80386098 = 0; D_80386098 = 0;
} }
} }
#endif
void func_80349AD0(void){ void func_80349AD0(void){
D_80386074 = D_80386070 = 0; D_80386074 = D_80386070 = 0;
D_80386098 = D_8038607C = 0; D_80386098 = D_8038607C = 0;
D_80386094 = D_80386078 = -1; D_80386094 = D_80386078 = -1;
D_803860B0 = 0; spriteRenderHasPalette = FALSE;
} }
void func_80349B1C(Gfx **gfx) { void func_80349B1C(Gfx **gfx) {
@@ -298,10 +296,10 @@ void func_80349B1C(Gfx **gfx) {
void *temp_v1_2; void *temp_v1_2;
void *temp_v1_3; void *temp_v1_3;
if (D_803860B0) { if (spriteRenderHasPalette) {
gDPPipeSync((*gfx)++); gDPPipeSync((*gfx)++);
gDPSetTextureLUT((*gfx)++, G_TT_NONE); gDPSetTextureLUT((*gfx)++, G_TT_NONE);
D_803860B0 = FALSE; spriteRenderHasPalette = FALSE;
if (D_803860B4) { if (D_803860B4) {
gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE); gDPPipelineMode((*gfx)++, G_PM_NPRIMITIVE);
D_803860B4 = FALSE; D_803860B4 = FALSE;