diff options
-rw-r--r-- | engine/overworld.asm | 56 | ||||
-rw-r--r-- | hram.asm | 6 | ||||
-rw-r--r-- | shim.sym | 3 | ||||
-rw-r--r-- | wram.asm | 3 |
4 files changed, 66 insertions, 2 deletions
diff --git a/engine/overworld.asm b/engine/overworld.asm new file mode 100644 index 0000000..3f52f6e --- /dev/null +++ b/engine/overworld.asm @@ -0,0 +1,56 @@ +INCLUDE "constants.asm" + +SECTION "Startmenu and Select Button Check", ROM0[$2C05] + +OverworldStartButtonCheck:: ; 2c05 (0:2c05) + ldh a, [hJoyState] + bit START_F, a + ret z + and (START | B_BUTTON) + cp (START | B_BUTTON) + jr nz, .regularMenu + ld a, [wce63] + bit 1, a + ret z ; debug disabled + ld a, BANK(InGameDebugMenu) + ld hl, InGameDebugMenu + call FarCall_hl + jr CheckStartmenuSelectHook +.regularMenu + ld a, BANK(DisplayStartMenu) + ld hl, DisplayStartMenu + call FarCall_hl + jr CheckStartmenuSelectHook +SelectButtonFunction:: ; 2c2a (0:2c2a) + ld hl, CheckRegisteredItem + ld a, BANK(CheckRegisteredItem) + call FarCall_hl +CheckStartmenuSelectHook: + ldh a, [hStartmenuCloseAndSelectHookEnable] + and a + ret z ; hook is disabled + ld hl, StartmenuCloseAndSelectHookPtr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [StartmenuCloseAndSelectHookBank] + call FarCall_hl + ld hl, hStartmenuCloseAndSelectHookEnable + xor a + ld [hli], a ; clear hook enable and ??? + ld [hl], a + dec a + ret + +SECTION "Install StartMenu Hook Function", ROM0[$35EC] + +InstallStartmenuCloseAndSelectHook:: +; Install a function that is called as soon as +; the start menu is closed or directly after +; the select button function ran + ld [StartmenuCloseAndSelectHookBank], a + ld a, l + ld [StartmenuCloseAndSelectHookPtr], a + ld a, h + ld [StartmenuCloseAndSelectHookPtr + 1], a + ret @@ -19,7 +19,11 @@ hROMBank:: ; ff98 hVBlank:: ; ff99 db - ds 3 ; TODO + db ; TODO + +hStartmenuCloseAndSelectHookEnable:: db ; ff9b + +hStartmenuCloseAndSelectHookTemp:: db ; ff9c hJoypadUp:: db ; ff9d ; Raw Joypad Up Event @@ -30,6 +30,7 @@ 00:3655 SetHPPal.done 00:36C8 NamesPointers 00:36E0 GetName +00:38E3 CheckRandomEncounter 00:39BA PlayCry 00:3D86 WaitSFX 00:3D87 WaitSFX.wait @@ -65,6 +66,8 @@ 03:4AA1 AddItemToInventory_ 04:5677 DoPlayerMovement +04:5dbe DisplayStartMenu +04:6c58 CheckRegisteredItem 0e:4b78 LoadTrainerClassName 0e:4ba0 LoadTrainerClassName.got_name @@ -205,7 +205,8 @@ wMenuScrollPosition:: db ; cd49 wTextDest:: ds 2; cd4a - ds 3 ; TODO +StartmenuCloseAndSelectHookBank:: db ; cd4c +StartmenuCloseAndSelectHookPtr:: dw ; cd4d wPredefID:: ; cd4f db |