diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-11-14 17:44:04 -0600 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2020-11-14 17:44:04 -0600 |
commit | 3b75b10bbbc99fbbba573142a3f027c3c0492593 (patch) | |
tree | a1fef25e1f8be1e59d07a3fcd9d490175384497e /src/code_800D090.c | |
parent | 9237db777e49204e8f09ec6607caefedb469da05 (diff) |
more decomping and some data dumping
Diffstat (limited to 'src/code_800D090.c')
-rw-r--r-- | src/code_800D090.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/code_800D090.c b/src/code_800D090.c new file mode 100644 index 0000000..1031a2d --- /dev/null +++ b/src/code_800D090.c @@ -0,0 +1,65 @@ +#include "global.h" + +extern void SoundBiasReset(void); +extern void SoundBiasSet(void); + +void Hang(void) +{ + while(1) + { + asm("swi 0x2"); + } +} + + +// Unused +void sub_800D098(void) +{ + u32 dispcnt_save; + u32 ie_store; + + while(REG_VCOUNT <= 159) + ; + + // Save DISPCNT and set to 0 + dispcnt_save = REG_DISPCNT; + REG_DISPCNT = 0; + + *(u16 *)BG_PLTT = 0xefff; + + while(REG_KEYINPUT != 0x3ff) // 0011 1111 1111 (all buttons) + ; + + + REG_IME = 0; + + // Save IE Register + ie_store = REG_IE; + REG_IE = INTR_FLAG_KEYPAD | INTR_FLAG_GAMEPAK; + + REG_KEYCNT = 0xC304; // TODO 1100 0011 0000 0100 + // Select: + // * Select button + // * L/R Button + // Enable IRQ + // Logical AND + // So do something when all buttons above are pressed + + REG_IME = 1; + + SoundBiasReset(); + asm("swi 0x3"); + SoundBiasSet(); + + REG_IME = 0; + + REG_IE = ie_store; // restore IE + REG_KEYCNT = 0; // reset KEYCNT + + REG_IME = 1; + + // Good after here + while(REG_VCOUNT <= 159){} + REG_DISPCNT = dispcnt_save; // restore DISPCNT + while(REG_KEYINPUT != 0x3ff){} // All buttons +} |