Attempt to decompile getEffectiveSlowMotion and decompile debugGetSlowMotion

This commit is contained in:
Ryan Dwyer 2020-02-29 10:47:09 +10:00
parent 34878f8416
commit da8b0fc013
9 changed files with 76 additions and 17 deletions

View File

@ -9,6 +9,9 @@ SECTIONS
_gamedataSegmentRomStart = 0x39850;
_inflateSegmentRomStart = 0x4e850;
_ziplistSegmentRomStart = 0x4fc40;
_rspMicrocodeStart = 0x80059fe0;
_rspMicrocodeStartPlusOne = 0x80059fe1;
_rspMicrocodeEnd = 0x8005afe0;
_antipiracyUncloakWriteAddress = 0x7002a324;

View File

@ -6435,7 +6435,7 @@ glabel func0f023098
.L0f024034:
/* f024034: afa30124 */ sw $v1,0x124($sp)
/* f024038: afa60110 */ sw $a2,0x110($sp)
/* f02403c: 0fc47b9c */ jal func0f11ee70
/* f02403c: 0fc47b9c */ jal debugGetSlowMotion
/* f024040: e7b00114 */ swc1 $f16,0x114($sp)
/* f024044: 8fa30124 */ lw $v1,0x124($sp)
/* f024048: 8fa60110 */ lw $a2,0x110($sp)

View File

@ -22646,7 +22646,7 @@ glabel func0f0abad0
/* f0abafc: 8c680464 */ lw $t0,0x464($v1)
/* f0abb00: 5500001b */ bnezl $t0,.L0f0abb70
/* f0abb04: 8fbf0024 */ lw $ra,0x24($sp)
/* f0abb08: 0fc5ae15 */ jal func0f16b854
/* f0abb08: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f0abb0c: 00000000 */ sll $zero,$zero,0x0
/* f0abb10: 10400003 */ beqz $v0,.L0f0abb20
/* f0abb14: 3c048009 */ lui $a0,0x8009
@ -22700,7 +22700,7 @@ GLOBAL_ASM(
glabel func0f0abba8
/* f0abba8: 27bdffe8 */ addiu $sp,$sp,-24
/* f0abbac: afbf0014 */ sw $ra,0x14($sp)
/* f0abbb0: 0fc5ae15 */ jal func0f16b854
/* f0abbb0: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f0abbb4: 00000000 */ sll $zero,$zero,0x0
/* f0abbb8: 10400005 */ beqz $v0,.L0f0abbd0
/* f0abbbc: 00000000 */ sll $zero,$zero,0x0
@ -22722,7 +22722,7 @@ GLOBAL_ASM(
glabel func0f0abbe8
/* f0abbe8: 27bdffe8 */ addiu $sp,$sp,-24
/* f0abbec: afbf0014 */ sw $ra,0x14($sp)
/* f0abbf0: 0fc5ae15 */ jal func0f16b854
/* f0abbf0: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f0abbf4: 00000000 */ sll $zero,$zero,0x0
/* f0abbf8: 10400005 */ beqz $v0,.L0f0abc10
/* f0abbfc: 00000000 */ sll $zero,$zero,0x0

View File

@ -313,10 +313,13 @@ glabel func0f11ee40
/* f11ee6c: 00001025 */ or $v0,$zero,$zero
);
u32 debugGetSlowMotion(void)
{
return SLOWMOTION_OFF;
}
GLOBAL_ASM(
glabel func0f11ee70
/* f11ee70: 03e00008 */ jr $ra
/* f11ee74: 00001025 */ or $v0,$zero,$zero
glabel func0f11ee78
/* f11ee78: 03e00008 */ jr $ra
/* f11ee7c: 00001025 */ or $v0,$zero,$zero
/* f11ee80: 03e00008 */ jr $ra

View File

@ -261,7 +261,7 @@ glabel func0f167c88
/* f167cd4: 0005782b */ sltu $t7,$zero,$a1
/* f167cd8: 11e0000a */ beqz $t7,.L0f167d04
/* f167cdc: 01e02825 */ or $a1,$t7,$zero
/* f167ce0: 0fc5ae15 */ jal func0f16b854
/* f167ce0: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f167ce4: 00000000 */ sll $zero,$zero,0x0
/* f167ce8: 2c450001 */ sltiu $a1,$v0,0x1
/* f167cec: 10a00005 */ beqz $a1,.L0f167d04
@ -3308,7 +3308,7 @@ glabel func0f169374
/* f16a900: 8e790464 */ lw $t9,0x464($s3)
/* f16a904: 57200015 */ bnezl $t9,.L0f16a95c
/* f16a908: 2861000f */ slti $at,$v1,0xf
/* f16a90c: 0fc5ae15 */ jal func0f16b854
/* f16a90c: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f16a910: 00000000 */ sll $zero,$zero,0x0
/* f16a914: 10400003 */ beqz $v0,.L0f16a924
/* f16a918: 3c048009 */ lui $a0,0x8009
@ -4361,7 +4361,7 @@ glabel func0f16b810
);
GLOBAL_ASM(
glabel func0f16b854
glabel getEffectiveSlowMotion
/* f16b854: 27bdffd0 */ addiu $sp,$sp,-48
/* f16b858: afbf0014 */ sw $ra,0x14($sp)
/* f16b85c: 3c04b000 */ lui $a0,0xb000
@ -4418,7 +4418,7 @@ glabel func0f16b854
/* f16b918: 10000010 */ beqz $zero,.L0f16b95c
/* f16b91c: 24020001 */ addiu $v0,$zero,0x1
.L0f16b920:
/* f16b920: 0fc47b9c */ jal func0f11ee70
/* f16b920: 0fc47b9c */ jal debugGetSlowMotion
/* f16b924: 00000000 */ sll $zero,$zero,0x0
/* f16b928: 24010001 */ addiu $at,$zero,0x1
/* f16b92c: 14410003 */ bne $v0,$at,.L0f16b93c
@ -4426,7 +4426,7 @@ glabel func0f16b854
/* f16b934: 10000009 */ beqz $zero,.L0f16b95c
/* f16b938: 24020001 */ addiu $v0,$zero,0x1
.L0f16b93c:
/* f16b93c: 0fc47b9c */ jal func0f11ee70
/* f16b93c: 0fc47b9c */ jal debugGetSlowMotion
/* f16b940: 00000000 */ sll $zero,$zero,0x0
/* f16b944: 24010002 */ addiu $at,$zero,0x2
/* f16b948: 54410004 */ bnel $v0,$at,.L0f16b95c
@ -4441,6 +4441,52 @@ glabel func0f16b854
/* f16b968: 00000000 */ sll $zero,$zero,0x0
);
// Can't match the antipiracy part
//u32 getEffectiveSlowMotion(void)
//{
//#if PIRACYCHECKS
// u32 salt = func0f16b800(0xb000de8d);
// u32 actual;
// u32 expected = func0f16b800(0x1741d42a);
// func0004e650(salt, &actual);
//
// if (actual != expected) {
// extern u32 _rspMicrocodeStart;
// extern u32 _rspMicrocodeStartPlusOne;
// u32 *ptr = &_rspMicrocodeStart;
// u32 *end = &ptr[1024];
//
// if (!(end < &_rspMicrocodeStartPlusOne)) {
// do {
// *ptr += 8;
// ptr++;
// } while (ptr < end);
// }
// }
//#endif
//
// if (g_Vars.normmplayerisrunning) {
// if (g_MpSetup.options & MPOPTION_SLOWMOTION_ON) {
// return SLOWMOTION_ON;
// }
// if (g_MpSetup.options & MPOPTION_SLOWMOTION_SMART) {
// return SLOWMOTION_SMART;
// }
// } else {
// if (cheatIsActive(CHEAT_SLOMO)) {
// return SLOWMOTION_ON;
// }
// if (debugGetSlowMotion() == SLOWMOTION_ON) {
// return SLOWMOTION_ON;
// }
// if (debugGetSlowMotion() == SLOWMOTION_SMART) {
// return SLOWMOTION_SMART;
// }
// }
//
// return SLOWMOTION_OFF;
//}
GLOBAL_ASM(
glabel func0f16b96c
/* f16b96c: 27bdfd70 */ addiu $sp,$sp,-656
@ -4664,7 +4710,7 @@ glabel func0f16b96c
/* f16bc68: 100000d4 */ beqz $zero,.L0f16bfbc
/* f16bc6c: 8e830034 */ lw $v1,0x34($s4)
.L0f16bc70:
/* f16bc70: 0fc5ae15 */ jal func0f16b854
/* f16bc70: 0fc5ae15 */ jal getEffectiveSlowMotion
/* f16bc74: 00000000 */ sll $zero,$zero,0x0
/* f16bc78: 8e8f0040 */ lw $t7,0x40($s4)
/* f16bc7c: 24010002 */ addiu $at,$zero,0x2

View File

@ -1139,6 +1139,9 @@
#define MPOPTION_NOAUTOAIM 0x00000008
#define MPOPTION_NOPLAYERHIGHLIGHT 0x00000010
#define MPOPTION_NOPICKUPHIGHLIGHT 0x00000020
#define MPOPTION_SLOWMOTION_ON 0x00000040
#define MPOPTION_SLOWMOTION_SMART 0x00000080
#define MPOPTION_NOPICKUPHIGHLIGHT 0x00000020
#define MPOPTION_FASTMOVEMENT 0x00000100
#define MPOPTION_KILLSSCORE 0x00000400
#define MPOPTION_HIGHLIGHTBRIEFCASE 0x00000800
@ -1656,6 +1659,10 @@
#define SKJUMPSTATE_TAKEOFF 0
#define SKJUMPSTATE_AIRBORNE 1
#define SLOWMOTION_OFF 0
#define SLOWMOTION_ON 1
#define SLOWMOTION_SMART 2
#define SMOKETYPE_0 0
#define SMOKETYPE_1 1
#define SMOKETYPE_2 2

View File

@ -15,7 +15,7 @@ u32 func0f11ee08(void);
bool func0f11ee20(void);
u32 func0f11ee28(void);
u32 func0f11ee40(void);
u32 func0f11ee70(void);
u32 debugGetSlowMotion(void);
bool func0f11ee88(void);
u32 func0f11ee90(void);
bool func0f11eea8(void);

View File

@ -18,9 +18,9 @@ u32 func0f168f24(void);
u32 func0f1691c0(void);
u32 func0f169374(void);
u32 func0f16b0c8(void);
u32 func0f16b800(void);
u32 func0f16b800(u32 arg0);
u32 func0f16b810(void);
u32 func0f16b854(void);
u32 getEffectiveSlowMotion(void);
u32 func0f16b96c(void);
u32 func0f16cb04(void);
void func0f16cce4(void);

View File

@ -5,6 +5,6 @@
u32 func0004e530(void);
u32 func0004e640(void);
u32 func0004e650(void);
void func0004e650(u32 salt, u32 *actual);
#endif