diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-28 22:15:11 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-28 22:15:11 -0500 |
commit | 21a301b77d01851a9d019b594ff11c547cc6514f (patch) | |
tree | 76a752076e0330309e9c9d7f5346ddd19dafc377 /src | |
parent | 18303c4596f96eaa68bbf8ccbc4ba19f9a8fed88 (diff) |
through sub_81436EC
Diffstat (limited to 'src')
-rw-r--r-- | src/mevent.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/mevent.c b/src/mevent.c new file mode 100644 index 000000000..8b710e3f3 --- /dev/null +++ b/src/mevent.c @@ -0,0 +1,75 @@ +#include "global.h" +#include "main.h" +#include "decompress.h" +#include "link.h" +#include "unk_815c27c.h" + +struct MEvent_Str_1 +{ + u16 unk_000; + u32 unk_004; + u32 unk_008; +}; + +void sub_81435DC(struct MEvent_Str_1 *a0, u32 a1, u32 a2) +{ + vu16 imeBak = REG_IME; + REG_IME = 0; + gIntrTable[1] = sub_815C6D4; + gIntrTable[2] = sub_815C6C4; + sub_815C8C8(); + sub_815C960(); + REG_IE |= INTR_FLAG_VCOUNT; + REG_IME = imeBak; + a0->unk_000 = 0; + a0->unk_004 = a1; + a0->unk_008 = a2; +} + +void sub_8143644(void) +{ + vu16 imeBak = REG_IME; + REG_IME = 0; + sub_815C960(); + sub_815C91C(); + RestoreSerialTimer3IntrHandlers(); + REG_IME = imeBak; +} + +u8 sub_8143674(struct MEvent_Str_1 *a0) +{ + u8 resp = 0; + a0->unk_000 = sub_815C498(1, a0->unk_004, a0->unk_008, 0); + if ((a0->unk_000 & 0x13) == 0x10) + resp = 1; + if (a0->unk_000 & 8) + resp = 2; + if (a0->unk_000 & 4) + resp = 3; + gUnknown_3003F84 = 0; + return resp; +} + +void sub_81436BC(void) +{ + memset(gDecompressionBuffer, 0, 0x2000); + gUnknown_202271A = 0x5502; + sub_8009804(); + SetSuppressLinkErrorMessage(TRUE); +} + +bool8 sub_81436EC(void) +{ + vu16 imeBak = REG_IME; + u16 data[4]; + REG_IME = 0; + *(u64 *)data = gUnknown_3003FB4; + REG_IME = imeBak; + if ( data[0] == 0xB9A0 + && data[1] == 0xCCD0 + && data[2] == 0xFFFF + && data[3] == 0xFFFF + ) + return TRUE; + return FALSE; +} |