From 7040e8e9568a21ef8417c7de6e47fd636dcd7865 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 12:10:33 -0400 Subject: [PATCH 1/6] sub_8146C30 --- asm/menews_jisan.s | 47 ----------------------------- include/global.h | 21 ++++++++++++- include/mevent.h | 6 ++++ ld_script.txt | 1 + src/menews_jisan.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 101 insertions(+), 48 deletions(-) create mode 100644 include/mevent.h create mode 100644 src/menews_jisan.c diff --git a/asm/menews_jisan.s b/asm/menews_jisan.s index abd5e44f4..160d0e4c8 100644 --- a/asm/menews_jisan.s +++ b/asm/menews_jisan.s @@ -5,53 +5,6 @@ .text - thumb_func_start sub_8146C30 -sub_8146C30: @ 8146C30 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8143D94 - adds r5, r0, 0 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r5] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - cmp r4, 0x2 - bhi _08146C56 - cmp r4, 0x1 - bcs _08146C5C - b _08146C80 -_08146C56: - cmp r4, 0x3 - beq _08146C6E - b _08146C80 -_08146C5C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - bl __umodsi3 - adds r0, 0x10 - b _08146C7E -_08146C6E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - bl __umodsi3 - adds r0, 0x1 -_08146C7E: - strb r0, [r5, 0x1] -_08146C80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8146C30 - thumb_func_start sub_8146C88 sub_8146C88: @ 8146C88 push {lr} diff --git a/include/global.h b/include/global.h index 75911b9f2..2b35e303d 100644 --- a/include/global.h +++ b/include/global.h @@ -466,6 +466,14 @@ struct RecordMixingDayCareMail bool16 holdsItem[DAYCARE_MON_COUNT]; }; +struct MysteryEventStruct +{ + u8 unk_0_0:2; + u8 unk_0_2:6; + u8 unk_1; + u8 filler_2[0x1ba]; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 300 @@ -476,7 +484,18 @@ struct SaveBlock1 { /*0x0000*/ u8 filler[0x4]; /*0x0004*/ struct WarpData location; - /*0x000C*/ u8 fillerC[0x3610]; + /*0x0C*/ struct WarpData warp1; + /*0x14*/ struct WarpData warp2; + /*0x1C*/ struct WarpData lastHealLocation; + /*0x24*/ struct WarpData warp4; + /*0x002C*/ u8 filler2C[0x60C]; + /*0x638*/ u8 trainerRematchStepCounter; + u8 filler_639; + /*0x63a*/ u8 trainerRematches[100]; + /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; + /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; + /*0x0EE0*/ u8 fillerEE0[0x2580]; + /*0x3460*/ struct MysteryEventStruct unk_3460; /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[0x44]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; diff --git a/include/mevent.h b/include/mevent.h new file mode 100644 index 000000000..b196d655b --- /dev/null +++ b/include/mevent.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MEVENT_H +#define GUARD_MEVENT_H + +struct MysteryEventStruct * sub_8143D94(void); + +#endif //GUARD_MEVENT_H diff --git a/ld_script.txt b/ld_script.txt index bc27ac048..777735b7c 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -249,6 +249,7 @@ SECTIONS { asm/mevent.o(.text); asm/mevent_server.o(.text); asm/mevent_8145654.o(.text); + src/menews_jisan.o(.text); asm/menews_jisan.o(.text); asm/seagallop.o(.text); asm/unk_8147500.o(.text); diff --git a/src/menews_jisan.c b/src/menews_jisan.c new file mode 100644 index 000000000..afaef7cf9 --- /dev/null +++ b/src/menews_jisan.c @@ -0,0 +1,74 @@ +#include "global.h" +#include "mevent.h" +#include "random.h" + +#ifdef NONMATCHING +void sub_8146C30(u32 a0) +{ + struct MysteryEventStruct *r5 = sub_8143D94(); + + r5->unk_0_0 = a0; + asm_comment("The switch logic does not match. Specifically, the \"bhi\" is replaced with a \"bls\" and the comparisons with 1 and 3 are swapped chronologically."); + switch (a0) + { + case 0: + r5->unk_1 = (Random() % 15) + 16; + break; + case 1: + break; + case 2: + break; + case 3: + r5->unk_1 = (Random() % 15) + 1; + break; + } +} +#else +NAKED +void sub_8146C30(u32 a0) +{ + asm_unified("\tpush {r4,r5,lr}\n" + "\tadds r4, r0, 0\n" + "\tbl sub_8143D94\n" + "\tadds r5, r0, 0\n" + "\tmovs r0, 0x3\n" + "\tadds r1, r4, 0\n" + "\tands r1, r0\n" + "\tldrb r2, [r5]\n" + "\tmovs r0, 0x4\n" + "\tnegs r0, r0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5]\n" + "\tcmp r4, 0x2\n" + "\tbhi _08146C56\n" + "\tcmp r4, 0x1\n" + "\tbcs _08146C5C\n" + "\tb _08146C80\n" + "_08146C56:\n" + "\tcmp r4, 0x3\n" + "\tbeq _08146C6E\n" + "\tb _08146C80\n" + "_08146C5C:\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmovs r1, 0xF\n" + "\tbl __umodsi3\n" + "\tadds r0, 0x10\n" + "\tb _08146C7E\n" + "_08146C6E:\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmovs r1, 0xF\n" + "\tbl __umodsi3\n" + "\tadds r0, 0x1\n" + "_08146C7E:\n" + "\tstrb r0, [r5, 0x1]\n" + "_08146C80:\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif From 4dd5029fdc505636d8ac00add5425bb22fd082ba Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 14:24:44 -0400 Subject: [PATCH 2/6] sub_8146CA4 --- asm/menews_jisan.s | 50 -------------------------------------------- include/event_data.h | 1 + include/global.h | 10 +++++---- src/menews_jisan.c | 25 ++++++++++++++++++++++ 4 files changed, 32 insertions(+), 54 deletions(-) diff --git a/asm/menews_jisan.s b/asm/menews_jisan.s index 160d0e4c8..4661c1a50 100644 --- a/asm/menews_jisan.s +++ b/asm/menews_jisan.s @@ -5,56 +5,6 @@ .text - thumb_func_start sub_8146C88 -sub_8146C88: @ 8146C88 - push {lr} - bl sub_8143D94 - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - ldr r0, _08146CA0 @ =0x00004028 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08146CA0: .4byte 0x00004028 - thumb_func_end sub_8146C88 - - thumb_func_start sub_8146CA4 -sub_8146CA4: @ 8146CA4 - push {r4,lr} - ldr r0, _08146CE0 @ =0x00004028 - bl sub_806E454 - adds r4, r0, 0 - bl sub_8143D94 - adds r2, r0, 0 - ldr r0, [r2] - lsls r0, 24 - lsrs r0, 29 - cmp r0, 0x4 - bls _08146CD8 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - ldr r1, _08146CE4 @ =0x01f30000 - cmp r0, r1 - bls _08146CD8 - ldrb r0, [r2] - movs r1, 0x1F - ands r1, r0 - strb r1, [r2] - movs r0, 0 - strh r0, [r4] -_08146CD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146CE0: .4byte 0x00004028 -_08146CE4: .4byte 0x01f30000 - thumb_func_end sub_8146CA4 - thumb_func_start sub_8146CE8 sub_8146CE8: @ 8146CE8 push {r4-r6,lr} diff --git a/include/event_data.h b/include/event_data.h index f829d3b87..a5c9efe0d 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -29,6 +29,7 @@ u8 *GetFlagPointer(u16 id); u8 FlagSet(u16 id); u8 FlagClear(u16 id); bool8 FlagGet(u16 id); +u16 * sub_806E454(u16 id); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; diff --git a/include/global.h b/include/global.h index 2b35e303d..5a7cc134d 100644 --- a/include/global.h +++ b/include/global.h @@ -468,10 +468,11 @@ struct RecordMixingDayCareMail struct MysteryEventStruct { - u8 unk_0_0:2; - u8 unk_0_2:6; - u8 unk_1; - u8 filler_2[0x1ba]; + u32 unk_0_0:2; + u32 unk_0_2:3; + u32 unk_0_5:3; + u32 unk_1:8; + u32 unk_2:16; }; #define MAP_OBJECTS_COUNT 16 @@ -496,6 +497,7 @@ struct SaveBlock1 /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; /*0x0EE0*/ u8 fillerEE0[0x2580]; /*0x3460*/ struct MysteryEventStruct unk_3460; + /*0x3464*/ u8 filler_3464[0x1b8]; /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[0x44]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; diff --git a/src/menews_jisan.c b/src/menews_jisan.c index afaef7cf9..6e9be8318 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -1,6 +1,7 @@ #include "global.h" #include "mevent.h" #include "random.h" +#include "event_data.h" #ifdef NONMATCHING void sub_8146C30(u32 a0) @@ -72,3 +73,27 @@ void sub_8146C30(u32 a0) "\tbx r0"); } #endif + +void sub_8146C88(void) +{ + struct MysteryEventStruct *r5 = sub_8143D94(); + + r5->unk_0_0 = 0; + r5->unk_0_2 = 0; + r5->unk_0_5 = 0; + r5->unk_1 = 0; + VarSet(0x4028, 0); +} + +void sub_8146CA4(void) +{ + u16 *r4 = sub_806E454(0x4028); + struct MysteryEventStruct *r5 = sub_8143D94(); + struct MysteryEventStruct r0 = *r5; + + if ((u8)r0.unk_0_5 > 4 && ++(*r4) > 0x1f3) + { + r5->unk_0_5 = 0; + *r4 = 0; + } +} From 6b27e999f242f51a81bef70c40a378d5adbaf9e2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 14:40:46 -0400 Subject: [PATCH 3/6] through sub_8146D94 --- asm/menews_jisan.s | 95 -------------------------------------------- include/event_data.h | 1 + include/mevent.h | 1 + src/menews_jisan.c | 68 +++++++++++++++++++++++++++++-- 4 files changed, 67 insertions(+), 98 deletions(-) diff --git a/asm/menews_jisan.s b/asm/menews_jisan.s index 4661c1a50..155ea3f28 100644 --- a/asm/menews_jisan.s +++ b/asm/menews_jisan.s @@ -5,101 +5,6 @@ .text - thumb_func_start sub_8146CE8 -sub_8146CE8: @ 8146CE8 - push {r4-r6,lr} - ldr r6, _08146D08 @ =gUnknown_20370D0 - bl sub_8143D94 - adds r4, r0, 0 - bl sub_806E2BC - cmp r0, 0 - beq _08146D02 - bl sub_8143E1C - cmp r0, 0 - bne _08146D0C -_08146D02: - movs r0, 0 - b _08146D6E - .align 2, 0 -_08146D08: .4byte gUnknown_20370D0 -_08146D0C: - adds r0, r4, 0 - bl sub_8146E0C - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bhi _08146D6C - lsls r0, r5, 2 - ldr r1, _08146D24 @ =_08146D28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146D24: .4byte _08146D28 - .align 2, 0 -_08146D28: - .4byte _08146D6C - .4byte _08146D44 - .4byte _08146D44 - .4byte _08146D6C - .4byte _08146D4E - .4byte _08146D5E - .4byte _08146D6C -_08146D44: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - b _08146D6C -_08146D4E: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - adds r0, r4, 0 - bl sub_8146DA0 - b _08146D6C -_08146D5E: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - adds r0, r4, 0 - bl sub_8146D94 -_08146D6C: - adds r0, r5, 0 -_08146D6E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8146CE8 - - thumb_func_start sub_8146D74 -sub_8146D74: @ 8146D74 - push {r4,lr} - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r4, [r0, 0x1] - adds r4, 0x84 - movs r1, 0 - strb r1, [r0, 0x1] - bl sub_8146DD8 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8146D74 - - thumb_func_start sub_8146D94 -sub_8146D94: @ 8146D94 - ldrb r2, [r0] - movs r1, 0x1D - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8146D94 - thumb_func_start sub_8146DA0 sub_8146DA0: @ 8146DA0 push {r4,lr} diff --git a/include/event_data.h b/include/event_data.h index a5c9efe0d..914217588 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -30,6 +30,7 @@ u8 FlagSet(u16 id); u8 FlagClear(u16 id); bool8 FlagGet(u16 id); u16 * sub_806E454(u16 id); +bool32 sub_806E2BC(void); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; diff --git a/include/mevent.h b/include/mevent.h index b196d655b..a611a98a8 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -2,5 +2,6 @@ #define GUARD_MEVENT_H struct MysteryEventStruct * sub_8143D94(void); +bool32 sub_8143E1C(void); #endif //GUARD_MEVENT_H diff --git a/src/menews_jisan.c b/src/menews_jisan.c index 6e9be8318..93f98ab7a 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -3,6 +3,14 @@ #include "random.h" #include "event_data.h" +extern EWRAM_DATA u16 gUnknown_20370D0; + +u32 sub_8146D74(struct MysteryEventStruct *); +void sub_8146DD8(struct MysteryEventStruct *); +u16 sub_8146E0C(struct MysteryEventStruct *); +void sub_8146DA0(struct MysteryEventStruct *); +void sub_8146D94(struct MysteryEventStruct *); + #ifdef NONMATCHING void sub_8146C30(u32 a0) { @@ -88,12 +96,66 @@ void sub_8146C88(void) void sub_8146CA4(void) { u16 *r4 = sub_806E454(0x4028); - struct MysteryEventStruct *r5 = sub_8143D94(); - struct MysteryEventStruct r0 = *r5; + struct MysteryEventStruct *r2 = sub_8143D94(); + struct MysteryEventStruct r0 = *r2; if ((u8)r0.unk_0_5 > 4 && ++(*r4) > 0x1f3) { - r5->unk_0_5 = 0; + r2->unk_0_5 = 0; *r4 = 0; } } + +u16 sub_8146CE8(void) +{ + u16 *r6 = &gUnknown_20370D0; + struct MysteryEventStruct *r4 = sub_8143D94(); + u16 r5; + + if (!sub_806E2BC() || !sub_8143E1C()) + return 0; + + r5 = sub_8146E0C(r4); + + switch (r5) + { + case 0: + break; + case 1: + *r6 = sub_8146D74(r4); + break; + case 2: + *r6 = sub_8146D74(r4); + break; + case 3: + break; + case 4: + *r6 = sub_8146D74(r4); + sub_8146DA0(r4); + break; + case 5: + *r6 = sub_8146D74(r4); + sub_8146D94(r4); + break; + case 6: + break; + } + + return r5; +} + +u32 sub_8146D74(struct MysteryEventStruct *a0) +{ + u32 r4; + + a0->unk_0_0 = 0; + r4 = a0->unk_1 + 0x84; + a0->unk_1 = 0; + sub_8146DD8(a0); + return r4; +} + +void sub_8146D94(struct MysteryEventStruct *a0) +{ + a0->unk_0_2 = 0; +} From d348c44eb66a30d50a742d900760826a863c5759 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 14:58:51 -0400 Subject: [PATCH 4/6] Finish decompile of menews_jisan.s --- asm/menews_jisan.s | 134 -------------------------------------------- data/data_84827AC.s | 8 +-- include/global.h | 9 ++- ld_script.txt | 3 +- src/menews_jisan.c | 41 +++++++++++++- 5 files changed, 47 insertions(+), 148 deletions(-) delete mode 100644 asm/menews_jisan.s diff --git a/asm/menews_jisan.s b/asm/menews_jisan.s deleted file mode 100644 index 155ea3f28..000000000 --- a/asm/menews_jisan.s +++ /dev/null @@ -1,134 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146DA0 -sub_8146DA0: @ 8146DA0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 29 - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r3] - movs r4, 0x1D - negs r4, r4 - adds r2, r4, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 29 - cmp r0, 0x4 - bls _08146DD2 - ands r2, r4 - movs r0, 0x10 - orrs r2, r0 - strb r2, [r3] -_08146DD2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8146DA0 - - thumb_func_start sub_8146DD8 -sub_8146DD8: @ 8146DD8 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3] - lsls r0, 24 - lsrs r0, 29 - adds r0, 0x1 - lsls r0, 5 - ldrb r1, [r3] - movs r4, 0x1F - adds r2, r4, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, 24 - lsrs r0, 29 - cmp r0, 0x5 - bls _08146E04 - ands r2, r4 - movs r0, 0xA0 - orrs r2, r0 - strb r2, [r3] -_08146E04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8146DD8 - - thumb_func_start sub_8146E0C -sub_8146E0C: @ 8146E0C - push {lr} - adds r2, r0, 0 - ldrb r1, [r2] - movs r0, 0xE0 - ands r0, r1 - cmp r0, 0xA0 - bne _08146E1E - movs r0, 0x6 - b _08146E66 -_08146E1E: - ldr r1, [r2] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x1 - beq _08146E40 - cmp r0, 0x1 - bgt _08146E32 - cmp r0, 0 - beq _08146E3C - b _08146E58 -_08146E32: - cmp r0, 0x2 - beq _08146E44 - cmp r0, 0x3 - beq _08146E48 - b _08146E58 -_08146E3C: - movs r0, 0x3 - b _08146E66 -_08146E40: - movs r0, 0x1 - b _08146E66 -_08146E44: - movs r0, 0x2 - b _08146E66 -_08146E48: - lsls r0, r1, 27 - lsrs r0, 29 - cmp r0, 0x2 - bhi _08146E54 - movs r0, 0x4 - b _08146E66 -_08146E54: - movs r0, 0x5 - b _08146E66 -_08146E58: - ldr r0, _08146E6C @ =gUnknown_8468C5C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c" - ldr r1, _08146E70 @ =0x0000017f - ldr r2, _08146E74 @ =gUnknown_8468C94 "0" - movs r3, 0x1 - bl AGBAssert - movs r0, 0 -_08146E66: - pop {r1} - bx r1 - .align 2, 0 -_08146E6C: .4byte gUnknown_8468C5C -_08146E70: .4byte 0x0000017f -_08146E74: .4byte gUnknown_8468C94 - thumb_func_end sub_8146E0C - - .align 2, 0 @ Don't pad with nop. diff --git a/data/data_84827AC.s b/data/data_84827AC.s index 2c69a76d7..565a6adf2 100644 --- a/data/data_84827AC.s +++ b/data/data_84827AC.s @@ -5014,13 +5014,7 @@ gUnknown_8468B6C:: @ 8468B6C gUnknown_8468BCC:: @ 8468BCC .incbin "baserom.gba", 0x468BCC, 0x90 - .align 2 -gUnknown_8468C5C:: @ 8468C5C - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c" - - .align 2 -gUnknown_8468C94:: @ 8468C94 - .asciz "0" + .section .rodata.8468C98 .align 2 gUnknown_8468C98:: @ 8468C98 diff --git a/include/global.h b/include/global.h index 5a7cc134d..11a79ebe8 100644 --- a/include/global.h +++ b/include/global.h @@ -468,11 +468,10 @@ struct RecordMixingDayCareMail struct MysteryEventStruct { - u32 unk_0_0:2; - u32 unk_0_2:3; - u32 unk_0_5:3; - u32 unk_1:8; - u32 unk_2:16; + u8 unk_0_0:2; + u8 unk_0_2:3; + u8 unk_0_5:3; + u8 unk_1; }; #define MAP_OBJECTS_COUNT 16 diff --git a/ld_script.txt b/ld_script.txt index 777735b7c..70084ef0e 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -250,7 +250,6 @@ SECTIONS { asm/mevent_server.o(.text); asm/mevent_8145654.o(.text); src/menews_jisan.o(.text); - asm/menews_jisan.o(.text); asm/seagallop.o(.text); asm/unk_8147500.o(.text); asm/unk_8147AA8.o(.text); @@ -370,6 +369,8 @@ SECTIONS { data/data.o(.rodata); src/battle_ai_script_commands.o(.rodata); data/data_84827AC.o(.rodata); + src/menews_jisan.o(.rodata); + data/data_84827AC.o(.rodata.8468C98); src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); } =0 diff --git a/src/menews_jisan.c b/src/menews_jisan.c index 93f98ab7a..6c3f669eb 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -7,7 +7,7 @@ extern EWRAM_DATA u16 gUnknown_20370D0; u32 sub_8146D74(struct MysteryEventStruct *); void sub_8146DD8(struct MysteryEventStruct *); -u16 sub_8146E0C(struct MysteryEventStruct *); +u32 sub_8146E0C(struct MysteryEventStruct *); void sub_8146DA0(struct MysteryEventStruct *); void sub_8146D94(struct MysteryEventStruct *); @@ -159,3 +159,42 @@ void sub_8146D94(struct MysteryEventStruct *a0) { a0->unk_0_2 = 0; } + +void sub_8146DA0(struct MysteryEventStruct *a0) +{ + a0->unk_0_2++; + if ((u8)a0->unk_0_2 > 4) + a0->unk_0_2 = 4; +} + +void sub_8146DD8(struct MysteryEventStruct *a0) +{ + a0->unk_0_5++; + if ((u8)a0->unk_0_5 > 5) + a0->unk_0_5 = 5; +} + +u32 sub_8146E0C(struct MysteryEventStruct *a0) +{ + struct MysteryEventStruct r0; + if ((u8)a0->unk_0_5 == 5) + return 6; + + r0 = *a0; + switch (r0.unk_0_0) + { + case 0: + return 3; + case 1: + return 1; + case 2: + return 2; + case 3: + if ((u8)r0.unk_0_2 < 3) + return 4; + return 5; + default: + AGBAssert("C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383, "0", 1); + return 0; + } +} From eda4a9f9406aa2ef3fe91006e134f44b07035081 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 14:59:48 -0400 Subject: [PATCH 5/6] Use the macro ya dummy --- src/menews_jisan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/menews_jisan.c b/src/menews_jisan.c index 6c3f669eb..dd1376c26 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -194,7 +194,7 @@ u32 sub_8146E0C(struct MysteryEventStruct *a0) return 4; return 5; default: - AGBAssert("C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383, "0", 1); + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383); return 0; } } From 1d50bcb0b95e52fb43c22a3348ac033b3534f860 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 8 Oct 2018 16:02:11 -0400 Subject: [PATCH 6/6] Cleanup and create menews_jisan header --- include/event_data.h | 2 ++ include/gba/defines.h | 1 + include/menews_jisan.h | 8 ++++++++ src/menews_jisan.c | 23 +++++++++++------------ 4 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 include/menews_jisan.h diff --git a/include/event_data.h b/include/event_data.h index 914217588..f28ed4f75 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -51,4 +51,6 @@ extern u16 gSpecialVar_MonBoxId; extern u16 gSpecialVar_MonBoxPos; extern u16 gSpecialVar_0x8014; +extern u16 gUnknown_20370D0; + #endif // GUARD_EVENT_DATA_H diff --git a/include/gba/defines.h b/include/gba/defines.h index fe81770e3..a0ef506dd 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -69,5 +69,6 @@ #define WIN_RANGE(a, b) (((a) << 8) | (b)) #define NAKED __attribute__((naked)) +#define UNUSED __attribute__((unused)) #endif // GUARD_GBA_DEFINES diff --git a/include/menews_jisan.h b/include/menews_jisan.h new file mode 100644 index 000000000..8dc1d0a99 --- /dev/null +++ b/include/menews_jisan.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MENEWS_JISAN_H +#define GUARD_MENEWS_JISAN_H + +void sub_8146C30(u32 a0); +void sub_8146C88(void); +void sub_8146CA4(void); + +#endif //GUARD_MENEWS_JISAN_H diff --git a/src/menews_jisan.c b/src/menews_jisan.c index dd1376c26..7dfcee939 100644 --- a/src/menews_jisan.c +++ b/src/menews_jisan.c @@ -2,14 +2,13 @@ #include "mevent.h" #include "random.h" #include "event_data.h" +#include "menews_jisan.h" -extern EWRAM_DATA u16 gUnknown_20370D0; - -u32 sub_8146D74(struct MysteryEventStruct *); -void sub_8146DD8(struct MysteryEventStruct *); -u32 sub_8146E0C(struct MysteryEventStruct *); -void sub_8146DA0(struct MysteryEventStruct *); -void sub_8146D94(struct MysteryEventStruct *); +static u32 sub_8146D74(struct MysteryEventStruct *); +static void sub_8146DD8(struct MysteryEventStruct *); +static u32 sub_8146E0C(struct MysteryEventStruct *); +static void sub_8146DA0(struct MysteryEventStruct *); +static void sub_8146D94(struct MysteryEventStruct *); #ifdef NONMATCHING void sub_8146C30(u32 a0) @@ -144,7 +143,7 @@ u16 sub_8146CE8(void) return r5; } -u32 sub_8146D74(struct MysteryEventStruct *a0) +static u32 sub_8146D74(struct MysteryEventStruct *a0) { u32 r4; @@ -155,26 +154,26 @@ u32 sub_8146D74(struct MysteryEventStruct *a0) return r4; } -void sub_8146D94(struct MysteryEventStruct *a0) +static void sub_8146D94(struct MysteryEventStruct *a0) { a0->unk_0_2 = 0; } -void sub_8146DA0(struct MysteryEventStruct *a0) +static void sub_8146DA0(struct MysteryEventStruct *a0) { a0->unk_0_2++; if ((u8)a0->unk_0_2 > 4) a0->unk_0_2 = 4; } -void sub_8146DD8(struct MysteryEventStruct *a0) +static void sub_8146DD8(struct MysteryEventStruct *a0) { a0->unk_0_5++; if ((u8)a0->unk_0_5 > 5) a0->unk_0_5 = 5; } -u32 sub_8146E0C(struct MysteryEventStruct *a0) +static u32 sub_8146E0C(struct MysteryEventStruct *a0) { struct MysteryEventStruct r0; if ((u8)a0->unk_0_5 == 5)