summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/fame_checker.s57
-rw-r--r--ld_script.txt1
-rw-r--r--src/fame_checker.c51
3 files changed, 52 insertions, 57 deletions
diff --git a/asm/fame_checker.s b/asm/fame_checker.s
index 9e352e8ae..d0236d696 100644
--- a/asm/fame_checker.s
+++ b/asm/fame_checker.s
@@ -5,63 +5,6 @@
.text
- thumb_func_start sub_812C380
-sub_812C380: @ 812C380
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_812C380
-
- thumb_func_start sub_812C394
-sub_812C394: @ 812C394
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_812C394
-
- thumb_func_start sub_812C3AC
-sub_812C3AC: @ 812C3AC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0812C3F0 @ =gUnknown_203B0FC
- movs r0, 0x24
- bl AllocZeroed
- str r0, [r4]
- str r5, [r0]
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [r4]
- strb r1, [r0, 0xA]
- ldr r0, [r4]
- strb r1, [r0, 0xB]
- ldr r1, [r4]
- adds r1, 0x23
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0xC7
- bl PlaySE
- ldr r0, _0812C3F4 @ =sub_812C3F8
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C3F0: .4byte gUnknown_203B0FC
-_0812C3F4: .4byte sub_812C3F8
- thumb_func_end sub_812C3AC
-
thumb_func_start sub_812C3F8
sub_812C3F8: @ 812C3F8
push {r4-r6,lr}
diff --git a/ld_script.txt b/ld_script.txt
index 67f21c48f..e821a34ca 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -226,6 +226,7 @@ SECTIONS {
asm/union_room_chat.o(.text);
asm/help_system_812B1E0.o(.text);
src/quest_log_battle.o(.text);
+ src/fame_checker.o(.text);
asm/fame_checker.o(.text);
asm/menu2.o(.text);
asm/oak_speech.o(.text);
diff --git a/src/fame_checker.c b/src/fame_checker.c
new file mode 100644
index 000000000..889b96214
--- /dev/null
+++ b/src/fame_checker.c
@@ -0,0 +1,51 @@
+#include "global.h"
+#include "constants/songs.h"
+#include "palette.h"
+#include "task.h"
+#include "malloc.h"
+#include "main.h"
+#include "sound.h"
+
+struct FameCheckerData
+{
+ u32 unk_00;
+ u8 filler_04[5];
+ u8 unk_09;
+ u8 unk_0A;
+ u8 unk_0B;
+ u8 filler_0C[23];
+ u8 unk_23_0:1;
+ u8 unk_23_1:7;
+};
+
+EWRAM_DATA struct FameCheckerData * gUnknown_203B0FC = NULL;
+
+void sub_812C3F8(void);
+
+void sub_812C380(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_812C394(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_812C3AC(u32 a0)
+{
+ SetVBlankCallback(NULL);
+ gUnknown_203B0FC = AllocZeroed(sizeof(struct FameCheckerData));
+ gUnknown_203B0FC->unk_00 = a0;
+ gUnknown_203B0FC->unk_09 = 0;
+ gUnknown_203B0FC->unk_0A = 0;
+ gUnknown_203B0FC->unk_0B = 0;
+ gUnknown_203B0FC->unk_23_0 = FALSE;
+ PlaySE(SE_W202);
+ SetMainCallback2(sub_812C3F8);
+}