diff options
author | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-10-06 16:45:53 -0400 |
---|---|---|
committer | ProjectRevoTPP <projectrevotpp@hotmail.com> | 2018-10-06 16:45:53 -0400 |
commit | eb03b1ab0f00d97126caaade3c7988a973c3a2bb (patch) | |
tree | a8f40974818dadf9ce70a5914d818f54fde27100 | |
parent | 9236084ad807cc1d2062d87217beb82a874119ec (diff) | |
parent | 281507d72ea0bc03189469d7d97d4f28979b1cf9 (diff) |
Merge branch 'master' of https://github.com/pret/pokefirered into text
-rw-r--r-- | asm/random.s | 36 | ||||
-rw-r--r-- | common_syms/random.txt | 1 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/random.c | 18 | ||||
-rw-r--r-- | sym_common.txt | 6 |
5 files changed, 23 insertions, 40 deletions
diff --git a/asm/random.s b/asm/random.s deleted file mode 100644 index dcf706524..000000000 --- a/asm/random.s +++ /dev/null @@ -1,36 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Random -Random: @ 8044EC8 - ldr r2, _08044EDC @ =gUnknown_3005000 - ldr r1, [r2] - ldr r0, _08044EE0 @ =0x41c64e6d - muls r0, r1 - ldr r1, _08044EE4 @ =0x00006073 - adds r0, r1 - str r0, [r2] - lsrs r0, 16 - bx lr - .align 2, 0 -_08044EDC: .4byte gUnknown_3005000 -_08044EE0: .4byte 0x41c64e6d -_08044EE4: .4byte 0x00006073 - thumb_func_end Random - - thumb_func_start SeedRng -SeedRng: @ 8044EE8 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08044EF4 @ =gUnknown_3005000 - str r0, [r1] - bx lr - .align 2, 0 -_08044EF4: .4byte gUnknown_3005000 - thumb_func_end SeedRng - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/random.txt b/common_syms/random.txt new file mode 100644 index 000000000..794439ea5 --- /dev/null +++ b/common_syms/random.txt @@ -0,0 +1 @@ +gRngValue diff --git a/ld_script.txt b/ld_script.txt index cc38e017f..cbe8f3193 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -81,7 +81,7 @@ SECTIONS { asm/pokemon_item_effect.o(.text); asm/pokemon_3.o(.text); asm/trig.o(.text); - asm/random.o(.text); + src/random.o(.text); asm/util.o(.text); asm/blend_palette.o(.text); asm/daycare.o(.text); diff --git a/src/random.c b/src/random.c new file mode 100644 index 000000000..54dae0824 --- /dev/null +++ b/src/random.c @@ -0,0 +1,18 @@ +#include "global.h" +#include "random.h" + +// The number 1103515245 comes from the example implementation +// of rand and srand in the ISO C standard. + +u32 gRngValue; + +u16 Random(void) +{ + gRngValue = 1103515245 * gRngValue + 24691; + return gRngValue >> 16; +} + +void SeedRng(u16 seed) +{ + gRngValue = seed; +} diff --git a/sym_common.txt b/sym_common.txt index db9a63d4f..4049c48f5 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -132,9 +132,9 @@ gUnknown_3004FF8: @ 3004FF8 gUnknown_3004FFC: @ 3004FFC .space 0x4 -gUnknown_3005000: @ 3005000 - .space 0x4 - + .include "random.o" + + .align 2 gUnknown_3005004: @ 3005004 .space 0x4 |