From b0a23372c95bfd606f0a219dc36b0253e9103091 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Fri, 3 Jul 2020 16:47:23 -0500 Subject: [PATCH 1/2] Named rng functions --- asm/non_matchings/unknown_070110/func_8006F940.s | 2 +- asm/non_matchings/unknown_0B8920/func_800B82B4.s | 6 +++--- src/mips2/unknown_070110.c | 13 +++++++------ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/asm/non_matchings/unknown_070110/func_8006F940.s b/asm/non_matchings/unknown_070110/func_8006F940.s index fab3121a..e43111ce 100644 --- a/asm/non_matchings/unknown_070110/func_8006F940.s +++ b/asm/non_matchings/unknown_070110/func_8006F940.s @@ -1,4 +1,4 @@ -glabel func_8006F940 +glabel get_rng_seed /* 070540 8006F940 3C02800E */ lui $v0, 0x800e /* 070544 8006F944 03E00008 */ jr $ra /* 070548 8006F948 8C42D434 */ lw $v0, -0x2bcc($v0) diff --git a/asm/non_matchings/unknown_0B8920/func_800B82B4.s b/asm/non_matchings/unknown_0B8920/func_800B82B4.s index 1594e3e3..fa0f7406 100644 --- a/asm/non_matchings/unknown_0B8920/func_800B82B4.s +++ b/asm/non_matchings/unknown_0B8920/func_800B82B4.s @@ -229,10 +229,10 @@ glabel func_800B82B4 /* 0B9210 800B8610 03CEF021 */ addu $fp, $fp, $t6 /* 0B9214 800B8614 0000B825 */ move $s7, $zero .L800B8618: -/* 0B9218 800B8618 0C01BE46 */ jal func_8006F918 +/* 0B9218 800B8618 0C01BE46 */ jal save_rng_seed /* 0B921C 800B861C 00000000 */ nop /* 0B9220 800B8620 3C045741 */ lui $a0, %hi(D_57410001) # $a0, 0x5741 -/* 0B9224 800B8624 0C01BE43 */ jal func_8006F90C +/* 0B9224 800B8624 0C01BE43 */ jal set_rng_seed /* 0B9228 800B8628 34845646 */ ori $a0, (0x57415646 & 0xFFFF) # ori $a0, $a0, 0x5646 /* 0B922C 800B862C 8E830004 */ lw $v1, 4($s4) /* 0B9230 800B8630 0000A825 */ move $s5, $zero @@ -273,7 +273,7 @@ glabel func_800B82B4 /* 0B92B0 800B86B0 0000B825 */ move $s7, $zero /* 0B92B4 800B86B4 0000A825 */ move $s5, $zero .L800B86B8: -/* 0B92B8 800B86B8 0C01BE4B */ jal func_8006F92C +/* 0B92B8 800B86B8 0C01BE4B */ jal load_rng_seed /* 0B92BC 800B86BC 00000000 */ nop /* 0B92C0 800B86C0 24010002 */ li $at, 2 /* 0B92C4 800B86C4 12610003 */ beq $s3, $at, .L800B86D4 diff --git a/src/mips2/unknown_070110.c b/src/mips2/unknown_070110.c index 94b0380a..6fd1c852 100644 --- a/src/mips2/unknown_070110.c +++ b/src/mips2/unknown_070110.c @@ -16,27 +16,28 @@ GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F6EC.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F768.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F870.s") -void func_8006F90C(s32 arg0) { +void set_rng_seed(s32 arg0) { D_800DD434 = arg0; } -void func_8006F918(s32 arg0) { +void save_rng_seed(s32 arg0) { arg0 = D_800DD434; D_800DD438 = arg0; } -void func_8006F92C(s32 arg0) { +void load_rng_seed(s32 arg0) { arg0 = D_800DD438; D_800DD434 = arg0; } -//GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F940.s") - -s32 func_8006F940(void) { +s32 get_rng_seed(void) { return D_800DD434; } GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F94C.s") + + + GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F9B8.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006FB60.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006FC30.s") From 820d38e548e6dd3db7d54b7618f74075db34ab98 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Fri, 3 Jul 2020 18:35:00 -0500 Subject: [PATCH 2/2] Named some rng functions, also fixed s64/u64 types. --- include/types.h | 20 ++++++++++---------- src/mips2/unknown_070110.c | 9 +++++++-- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/include/types.h b/include/types.h index 9cec5770..f3fbbfa0 100644 --- a/include/types.h +++ b/include/types.h @@ -1,16 +1,16 @@ #ifndef _TYPES_H_ #define _TYPES_H_ -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned int u32; -typedef unsigned long u64; -typedef signed char s8; -typedef signed short s16; -typedef signed int s32; -typedef signed long s64; -typedef float f32; -typedef double f64; +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned int u32; +typedef unsigned long long u64; +typedef signed char s8; +typedef signed short s16; +typedef signed int s32; +typedef signed long long s64; +typedef float f32; +typedef double f64; #ifndef NULL #define NULL 0 diff --git a/src/mips2/unknown_070110.c b/src/mips2/unknown_070110.c index 6fd1c852..148fd9b8 100644 --- a/src/mips2/unknown_070110.c +++ b/src/mips2/unknown_070110.c @@ -34,10 +34,15 @@ s32 get_rng_seed(void) { return D_800DD434; } +/* + * func_8006F94C(start, end) = Gets a random number within a range. + * Start is inclusive, end is exclusive; also changes the RNG seed. + * + * func_8006F94C(0, 5) will return a number from 0 to 4. + * func_8006F94C(20, 30) will return a number from 20 to 29. +*/ GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F94C.s") - - GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006F9B8.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006FB60.s") GLOBAL_ASM("asm/non_matchings/unknown_070110/func_8006FC30.s")