Progress update (98.8633%)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# banjo (98.6934%)
|
# banjo (98.8633%)
|
||||||
|
|
||||||
<img src="./progress/progress_total.svg">
|
<img src="./progress/progress_total.svg">
|
||||||
|
|
||||||
|
@@ -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="#07e000" d="M44 0h67v20H44z"/>
|
<path fill="#04e000" 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">core1</text>
|
<text x="22.0" y="14">core1</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">98.4321%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">99.1399%</text>
|
||||||
<text x="77.5" y="14">98.4321%</text>
|
<text x="77.5" y="14">99.1399%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -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">98.1193%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">98.2363%</text>
|
||||||
<text x="77.5" y="14">98.1193%</text>
|
<text x="77.5" y="14">98.2363%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -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="#06e000" d="M150 0h67v20H150z"/>
|
<path fill="#05e000" 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">98.6934%</text>
|
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">98.8633%</text>
|
||||||
<text x="183.5" y="14">98.6934%</text>
|
<text x="183.5" y="14">98.8633%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -129,18 +129,12 @@ void func_8023DCF4(void){
|
|||||||
D_80275618--;
|
D_80275618--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef NOMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_0/mainLoop.s")
|
|
||||||
#else
|
|
||||||
void mainLoop(void){
|
void mainLoop(void){
|
||||||
s32 x;
|
s32 x, y;
|
||||||
s32 y;
|
s32 r, g, b, a;
|
||||||
s32 r;
|
u16 tmp;
|
||||||
s32 g;
|
|
||||||
s32 b;
|
|
||||||
u16 rgba;
|
u16 rgba;
|
||||||
|
s32 offset;
|
||||||
|
|
||||||
if((func_8023DB5C() & 0x7f) == 0x11)
|
if((func_8023DB5C() & 0x7f) == 0x11)
|
||||||
sns_write_payload_over_heap();
|
sns_write_payload_over_heap();
|
||||||
@@ -182,23 +176,24 @@ void mainLoop(void){
|
|||||||
){
|
){
|
||||||
s32 offset;
|
s32 offset;
|
||||||
//render weird CRC failure image
|
//render weird CRC failure image
|
||||||
for(x= 0x1e; x< framebuffer_height - 0x1e; x++){//L8023DEB4
|
for(y= 0x1e; y < framebuffer_height - 0x1e; y++){//L8023DEB4
|
||||||
g = x >> 3;
|
for(x = 0x14; x < 0xeb; x++){
|
||||||
for(y = 0x14; y < 0xeb; y++){
|
tmp = ((8 * func_8023DB5C()) + ((x*x) + (y*y)));
|
||||||
b = ((func_8023DB5C() << 3) + y*y + x*x) >> 3;
|
|
||||||
r = y >> 3;
|
r = _SHIFTL(x>>3, 11, 5);
|
||||||
rgba = _SHIFTL(b, 1, 5);
|
g = _SHIFTL(y>>3, 6, 5);
|
||||||
rgba |= _SHIFTL(r, 11, 5 );
|
b = _SHIFTL(tmp>>3, 1, 5);
|
||||||
rgba |= _SHIFTL(g, 6, 5);
|
a = 1;
|
||||||
rgba |= _SHIFTL(1, 0, 1 );
|
|
||||||
offset = ((framebuffer_width - 0xff)/2 + y + x*framebuffer_width);
|
rgba = b | r | g | a;
|
||||||
D_803A5D00[0][offset] = rgba;
|
|
||||||
D_803A5D00[1][offset] = rgba;
|
offset = ((framebuffer_width - 0xFF) / 2) + x + (y*framebuffer_width);
|
||||||
|
D_803A5D00[0][offset] = (s32) rgba;
|
||||||
|
D_803A5D00[1][offset] = (s32) rgba;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//L8023DF70
|
}//L8023DF70
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void __mainMethod(void *arg0){
|
void __mainMethod(void *arg0){
|
||||||
core1_init();
|
core1_init();
|
||||||
|
@@ -42,32 +42,27 @@ void mlMtxApply(Mtx *mPtr){
|
|||||||
func_80245A7C(D_80282FD0, mPtr);
|
func_80245A7C(D_80282FD0, mPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NONMATCHING
|
void func_802514BC(Mtx* arg0) {
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802514BC.s")
|
s32 row;
|
||||||
#else
|
s32 col;
|
||||||
void func_802514BC(Mtx *arg0) {
|
s32 i;
|
||||||
s32 i, j, k;
|
f32 sum;
|
||||||
f32 tmp;
|
f32 prod[4][4];
|
||||||
f32 sp38[4][4];
|
|
||||||
f32 (*sp34)[4];
|
|
||||||
f32 (*var_s0)[4];
|
|
||||||
|
|
||||||
|
for(row = 0; row < 4; row++, arg0 = &arg0->m[1][0])
|
||||||
sp34 = reinterpret_cast(f32 *, *D_80282FD0);
|
{
|
||||||
var_s0 = reinterpret_cast(f32 *, arg0);
|
for(col = 0; col < 4; col++)
|
||||||
|
{
|
||||||
for(i = 0; i < 4; i++){
|
sum = 0.0;
|
||||||
for(j = 0; j < 4; j++){
|
for(i = 0; i < 4; i++)
|
||||||
tmp = 0.0f;
|
{
|
||||||
for(k = 0; k < 4; k++){
|
sum += reinterpret_cast(f32, arg0->m[0][i]) * reinterpret_cast(f32, D_80282FD0->m[i][col]);
|
||||||
tmp += var_s0[i][k] * sp34[k][j];
|
|
||||||
}
|
}
|
||||||
sp38[i][j] = tmp;
|
prod[row][col] = sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func_80253010(sp34, &sp38, sizeof(Mtx));
|
func_80253010(D_80282FD0, prod, sizeof(Mtx));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void func_802515D4(f32 arg0[3][3]) {
|
void func_802515D4(f32 arg0[3][3]) {
|
||||||
f32 var_f0;
|
f32 var_f0;
|
||||||
@@ -163,7 +158,26 @@ void func_80251878(f32* arg0) {
|
|||||||
D_80282FD0 = var_a2;
|
D_80282FD0 = var_a2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_13990/func_802519C8.s")
|
void func_802519C8(Mtx * arg0, Mtx * arg1) {
|
||||||
|
s32 row;
|
||||||
|
s32 col;
|
||||||
|
Mtx * dst = (D_80282FD0 + 1);
|
||||||
|
|
||||||
|
for (row = 0; row < 4; row++, arg1 = &arg1->m[1][0])
|
||||||
|
{
|
||||||
|
for (col = 0; col < 4; col++)
|
||||||
|
{
|
||||||
|
reinterpret_cast(f32, dst->m[row][col]) =
|
||||||
|
(
|
||||||
|
reinterpret_cast(f32, arg1->m[0][0]) * reinterpret_cast(f32, arg0->m[0][col]) +
|
||||||
|
reinterpret_cast(f32, arg1->m[0][1]) * reinterpret_cast(f32, arg0->m[1][col]) +
|
||||||
|
reinterpret_cast(f32, arg1->m[0][2]) * reinterpret_cast(f32, arg0->m[2][col]) +
|
||||||
|
reinterpret_cast(f32, arg1->m[0][3]) * reinterpret_cast(f32, arg0->m[3][col])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
D_80282FD0 = (dst + 0);
|
||||||
|
}
|
||||||
|
|
||||||
//mlMtx
|
//mlMtx
|
||||||
void mlMtxIdent(void){
|
void mlMtxIdent(void){
|
||||||
|
@@ -8,32 +8,28 @@ OSMesgQueue D_8027E0AC;
|
|||||||
OSMesg D_8027E0C8[16]; //g_PimgrMesgBuffer
|
OSMesg D_8027E0C8[16]; //g_PimgrMesgBuffer
|
||||||
OSMesgQueue D_8027E108; //g_PimgrMesgQueue
|
OSMesgQueue D_8027E108; //g_PimgrMesgQueue
|
||||||
|
|
||||||
|
void func_802405F0(u32 * arg0, s32 arg1, s32 size){
|
||||||
#ifndef NONMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_2BD0/func_802405F0.s")
|
|
||||||
#else
|
|
||||||
void func_802405F0(u32 arg0, u32 arg1, s32 size){
|
|
||||||
int i;
|
|
||||||
s32 block_cnt;
|
s32 block_cnt;
|
||||||
s32 block_remainder;
|
s32 block_remainder;
|
||||||
s32 block_size = 0x20000;
|
s32 block_size = 0x20000;
|
||||||
|
int i;
|
||||||
|
|
||||||
osWritebackDCache(arg0, size);
|
osWritebackDCache(arg0, size);
|
||||||
block_cnt = size/block_size;
|
block_cnt = size / block_size;
|
||||||
|
block_remainder = size % block_size;
|
||||||
|
|
||||||
for(i = 0; i < block_cnt; i++){
|
for(i = 0; i < block_cnt; i++){
|
||||||
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, block_size, &D_8027E0AC);
|
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, 0x20000, &D_8027E0AC);
|
||||||
osRecvMesg(&D_8027E0AC, NULL, 1);
|
osRecvMesg(&D_8027E0AC, NULL, 1);
|
||||||
arg0 += 0x20000;
|
|
||||||
arg1 += 0x20000;
|
arg1 += 0x20000;
|
||||||
|
arg0 += 0x8000;
|
||||||
}
|
}
|
||||||
|
|
||||||
block_remainder = size%0x20000;
|
|
||||||
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, block_remainder, &D_8027E0AC);
|
osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, block_remainder, &D_8027E0AC);
|
||||||
osRecvMesg(&D_8027E0AC, NULL, 1);
|
osRecvMesg(&D_8027E0AC, NULL, 1);
|
||||||
osInvalDCache(arg0, size);
|
osInvalDCache(arg0, size);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void piMgr_create(void){
|
void piMgr_create(void){
|
||||||
osCreateMesgQueue(&D_8027E0AC, &D_8027E0A8, 1);
|
osCreateMesgQueue(&D_8027E0AC, &D_8027E0A8, 1);
|
||||||
|
@@ -47,9 +47,7 @@ s32 item_getCount(enum item_e item){
|
|||||||
return D_80385F30[item];
|
return D_80385F30[item];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){
|
||||||
#ifdef NONMATCHING
|
|
||||||
s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|
||||||
s32 oldVal;
|
s32 oldVal;
|
||||||
s32 sp40;
|
s32 sp40;
|
||||||
s32 sp3C;
|
s32 sp3C;
|
||||||
@@ -58,10 +56,7 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
s32 sp30;
|
s32 sp30;
|
||||||
s32 sp2C;
|
s32 sp2C;
|
||||||
s32 sp28;
|
s32 sp28;
|
||||||
s32 sp24; //without this var newVal is too high, but sp1C is correct
|
|
||||||
s32 newVal;
|
|
||||||
|
|
||||||
|
|
||||||
oldVal = D_80385F30[item];
|
oldVal = D_80385F30[item];
|
||||||
|
|
||||||
if(func_80255D04())
|
if(func_80255D04())
|
||||||
@@ -77,8 +72,9 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
diff = 0;
|
diff = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newVal = MAX(0, D_80385F30[item] + diff);
|
|
||||||
D_80385F30[item] = newVal;
|
sp28 = D_80385F30[item] = MAX(0, D_80385F30[item] + diff);
|
||||||
|
// sp20;
|
||||||
|
|
||||||
sp34 = ((fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH))? 2 : 1);
|
sp34 = ((fileProgressFlag_get(FILEPROG_B9_DOUBLE_HEALTH))? 2 : 1);
|
||||||
D_80385F30[ITEM_15_HEALTH_TOTAL] = MIN(sp34*8, D_80385F30[ITEM_15_HEALTH_TOTAL]);
|
D_80385F30[ITEM_15_HEALTH_TOTAL] = MIN(sp34*8, D_80385F30[ITEM_15_HEALTH_TOTAL]);
|
||||||
@@ -104,7 +100,7 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
sp38 = 0;
|
sp38 = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(sp38 != 0){
|
if(sp38){
|
||||||
D_80385F30[item] = MIN(sp38, D_80385F30[item]);
|
D_80385F30[item] = MIN(sp38, D_80385F30[item]);
|
||||||
}
|
}
|
||||||
if(!arg2){
|
if(!arg2){
|
||||||
@@ -114,8 +110,8 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
}
|
}
|
||||||
|
|
||||||
sp3C = item_empty(item);
|
sp3C = item_empty(item);
|
||||||
if(item < ITEM_6_HOURGLASS && sp3C)
|
if(item < 6 && sp3C)
|
||||||
D_80385F30[item + ITEM_6_HOURGLASS] = FALSE;
|
D_80385F30[item + ITEM_6_HOURGLASS] = 0;
|
||||||
|
|
||||||
switch(item){
|
switch(item){
|
||||||
case ITEM_14_HEALTH:
|
case ITEM_14_HEALTH:
|
||||||
@@ -124,17 +120,17 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
break;
|
break;
|
||||||
case ITEM_17_AIR:
|
case ITEM_17_AIR:
|
||||||
sp30 = func_80301D24(oldVal);
|
sp30 = func_80301D24(oldVal);
|
||||||
sp2C = func_80301D24(newVal);
|
sp2C = func_80301D24(sp28);
|
||||||
if(sp3C){
|
if(sp3C){
|
||||||
bs_checkInterrupt(BS_INTR_11_DROWN);
|
bs_checkInterrupt(0x11);
|
||||||
D_80385FE4 = 1;
|
D_80385FE4 = 1;
|
||||||
}
|
}
|
||||||
if(sp2C != 0 && sp30 != sp2C ){
|
if(sp2C && sp30 != sp2C ){
|
||||||
if(sp2C < sp30){
|
if(sp2C < sp30){
|
||||||
func_8025A6EC(SFX_AIR_METER_DROPPING, 28000);
|
func_8025A6EC(SFX_AIR_METER_DROPPING, 28000);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
func_8030E760(SFX_3E9_UNKNOWN, 1.2f, 28000);
|
func_8030E760(0x3e9, 1.2f, 28000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -152,9 +148,6 @@ s32 func_80345FB4(enum item_e item, s32 diff, s32 arg2){\
|
|||||||
}
|
}
|
||||||
return D_80385F30[item];
|
return D_80385F30[item];
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BEF20/func_80345FB4.s")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s32 func_803463D4(enum item_e item, s32 diff){
|
s32 func_803463D4(enum item_e item, s32 diff){
|
||||||
func_80345FB4(item, diff, 0);
|
func_80345FB4(item, diff, 0);
|
||||||
|
Reference in New Issue
Block a user