summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/mevent_8145654.s218
-rw-r--r--include/link_rfu.h1
-rw-r--r--src/mevent_8145654.c64
3 files changed, 65 insertions, 218 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s
index 31a8de0c3..b5e5dc019 100644
--- a/asm/mevent_8145654.s
+++ b/asm/mevent_8145654.s
@@ -5,224 +5,6 @@
.text
- thumb_func_start sub_8146604
-sub_8146604: @ 8146604
- push {r4,r5,lr}
- sub sp, 0x8
- adds r2, r0, 0
- ldr r5, =gUnknown_203F3CC
- ldr r0, [r5]
- cmp r0, 0
- bne _0814661C
- movs r0, 0x1
- negs r0, r0
- b _081467E0
- .pool
-_0814661C:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r4
- ldrb r0, [r0]
- lsrs r0, 1
- cmp r0, 0x6
- bls _0814662C
- b _081467AA
-_0814662C:
- lsls r0, 2
- ldr r1, =_0814663C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0814663C:
- .4byte _08146658
- .4byte _0814666A
- .4byte _081466AC
- .4byte _0814670C
- .4byte _0814673C
- .4byte _08146778
- .4byte _08146788
-_08146658:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _081467C4
-_0814666A:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- beq _08146676
- b _081467DE
-_08146676:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- b _081467C4
-_081466AC:
- movs r4, 0x1E
- str r4, [sp]
- movs r5, 0x14
- str r5, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- movs r5, 0x18
- str r5, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _081467C4
-_0814670C:
- movs r0, 0x1
- bl HideBg
- movs r0, 0x2
- bl HideBg
- ldr r4, =gUnknown_203F3CC
- ldr r0, [r4]
- movs r1, 0xE5
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- bl RemoveWindow
- ldr r0, [r4]
- movs r2, 0xE4
- lsls r2, 1
- adds r0, r2
- ldrb r0, [r0]
- bl RemoveWindow
- b _081467C4
- .pool
-_0814673C:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r4, =gUnknown_203F3CC
- ldr r0, [r4]
- ldr r2, =0x000001c1
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081467C4
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r2, =0x000001c1
- adds r1, r0, r2
- movs r0, 0xFF
- strb r0, [r1]
- b _081467C4
- .pool
-_08146778:
- ldr r0, =gUnknown_203F3B8
- ldrb r0, [r0]
- adds r1, r2, 0
- bl sub_8142344
- b _081467C4
- .pool
-_08146788:
- bl sub_8142420
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081467C4
-_081467AA:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _081467DE
- ldr r0, [r5]
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1
- b _081467E0
-_081467C4:
- ldr r0, =gUnknown_203F3CC
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r2, r0
- ldrb r3, [r2]
- lsrs r1, r3, 1
- adds r1, 0x1
- lsls r1, 1
- movs r0, 0x1
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081467DE:
- movs r0, 0
-_081467E0:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8146604
-
thumb_func_start sub_81467EC
sub_81467EC: @ 81467EC
push {r4,r5,lr}
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 065d23f9f..6e54fcc6c 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -4,5 +4,6 @@
void sub_8142504(const u8 *str);
bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src);
void sub_80FA190(void);
+void sub_8142420(void);
#endif //GUARD_LINK_RFU_H
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 3d7f6d3ca..5161d5380 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -10,6 +10,7 @@
#include "mystery_gift_menu.h"
#include "menu_indicators.h"
#include "string_util.h"
+#include "link_rfu.h"
#include "mevent.h"
struct UnkStruct_8467FB8
@@ -574,3 +575,66 @@ s32 sub_8146318(void)
++gUnknown_203F3CC->unk_01C0_1;
return 0;
}
+
+s32 sub_8146604(bool32 flag)
+{
+ if (gUnknown_203F3CC == NULL)
+ return -1;
+ switch (gUnknown_203F3CC->unk_01C0_1)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ break;
+ case 1:
+ if (UpdatePaletteFade())
+ return 0;
+ ChangeBgY(2, 0, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ break;
+ case 2:
+ FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20);
+ FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
+ FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 24);
+ FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24);
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ CopyBgTilemapBufferToVram(3);
+ break;
+ case 3:
+ HideBg(1);
+ HideBg(2);
+ RemoveWindow(gUnknown_203F3CC->unk_01C8[1]);
+ RemoveWindow(gUnknown_203F3CC->unk_01C8[0]);
+ break;
+ case 4:
+ ChangeBgY(2, 0, 0);
+ ChangeBgY(3, 0, 0);
+ if (gUnknown_203F3CC->unk_01C1 != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(gUnknown_203F3CC->unk_01C1);
+ gUnknown_203F3CC->unk_01C1 = 0xFF;
+ }
+ break;
+ case 5:
+ sub_8142344(gUnknown_203F3B8, flag);
+ break;
+ case 6:
+ sub_8142420();
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(3);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ break;
+ default:
+ if (UpdatePaletteFade())
+ return 0;
+ gUnknown_203F3CC->unk_01C0_1 = 0;
+ return 1;
+ }
+ ++gUnknown_203F3CC->unk_01C0_1;
+ return 0;
+}