Decompile pakHasBitflag

This commit is contained in:
Ryan Dwyer
2021-03-26 22:10:02 +10:00
parent 4484fe60a4
commit f4c6599a89
4 changed files with 300 additions and 313 deletions
+286 -286
View File
File diff suppressed because it is too large Load Diff
+10 -21
View File
@@ -16812,7 +16812,7 @@ s32 pakWriteEeprom(u8 address, u8 *buffer, u32 len)
}
GLOBAL_ASM(
glabel bitSetByIndex
glabel pakSetBitflag
/* f11e530: 10c0000a */ beqz $a2,.L0f11e55c
/* f11e534: 000458c2 */ srl $t3,$a0,0x3
/* f11e538: 000470c2 */ srl $t6,$a0,0x3
@@ -16837,31 +16837,20 @@ glabel bitSetByIndex
/* f11e580: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel bitGetByIndex
/* f11e584: 000470c2 */ srl $t6,$a0,0x3
/* f11e588: 00ae7821 */ addu $t7,$a1,$t6
/* f11e58c: 91f80000 */ lbu $t8,0x0($t7)
/* f11e590: 30990007 */ andi $t9,$a0,0x7
/* f11e594: 24080001 */ addiu $t0,$zero,0x1
/* f11e598: 03284804 */ sllv $t1,$t0,$t9
/* f11e59c: 312a00ff */ andi $t2,$t1,0xff
/* f11e5a0: 030a5824 */ and $t3,$t8,$t2
/* f11e5a4: 11600003 */ beqz $t3,.L0f11e5b4
/* f11e5a8: 00001825 */ or $v1,$zero,$zero
/* f11e5ac: 03e00008 */ jr $ra
/* f11e5b0: 24020001 */ addiu $v0,$zero,0x1
.L0f11e5b4:
/* f11e5b4: 03e00008 */ jr $ra
/* f11e5b8: 00601025 */ or $v0,$v1,$zero
);
bool pakHasBitflag(u32 flagnum, u8 *bitstream)
{
u32 byteindex = flagnum / 8;
u8 mask = 1 << (flagnum % 8);
void savefileClearAllFlags(u32 *flags)
return bitstream[byteindex] & mask ? 1 : 0;
}
void pakClearAllBitflags(u8 *flags)
{
s32 i;
for (i = 0; i <= SAVEFILEFLAG_4E; i++) {
bitSetByIndex(i, flags, false);
pakSetBitflag(i, flags, false);
}
}
+3 -3
View File
@@ -132,9 +132,9 @@ void func0f11e3bc(s8 device);
void pakProbeEeprom(void);
s32 pakReadEeprom(u8 address, u8 *buffer, u32 len);
s32 pakWriteEeprom(u8 address, u8 *buffer, u32 len);
void bitSetByIndex(u32 value, u32 *flags, bool set);
u32 bitGetByIndex(u32 value, u32 *flags);
void savefileClearAllFlags(u32 *flags);
void pakSetBitflag(u32 flagnum, u8 *bitstream, bool set);
bool pakHasBitflag(u32 flagnum, u8 *stream);
void pakClearAllBitflags(u8 *flags);
void func0f11e618(char *src, char *dst, u32 len);
s8 pakSearch(s32 arg0);
s32 func0f11e750(s8 arg0);
+1 -3
View File
@@ -4569,9 +4569,7 @@ struct savefile_solo {
/*0x0b*/ u8 autodifficulty : 3;
/*0x0c*/ u8 autostageindex;
/*0x10*/ u32 totaltime;
/*0x14*/ u32 flags;
/*0x18*/ u32 unk18;
/*0x1c*/ u16 unk1c;
/*0x14*/ u8 flags[10];
/*0x1e*/ u16 unk1e;
/*0x20*/ u16 besttimes[NUM_SOLOSTAGES][3];
/*0xa0*/ s32 coopcompletions[3]; // indexed by difficulty