diff options
Diffstat (limited to 'misc/mobile_22_2.asm')
-rw-r--r-- | misc/mobile_22_2.asm | 105 |
1 files changed, 60 insertions, 45 deletions
diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 616c16ae0..7085f8899 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -54,16 +54,18 @@ Function8b363: ; 8b363 ; 8b36c Function8b36c: ; 8b36c (22:736c) + ; [bc + (0:4)] = -1 push bc ld h, b ld l, c - ld bc, $4 + ld bc, 4 ld a, -1 call ByteFill pop bc ret Function8b379: ; 8b379 (22:7379) + ; d = [bc + e] push bc ld a, c add e @@ -77,6 +79,7 @@ Function8b379: ; 8b379 (22:7379) ret Function8b385: ; 8b385 (22:7385) + ; [bc + e] = d push bc ld a, c add e @@ -90,36 +93,39 @@ Function8b385: ; 8b385 (22:7385) ret Function8b391: ; 8b391 (22:7391) + ; find first e in range(4) such that [bc + e] == -1 + ; if none exist, return carry push bc - ld e, $0 - ld d, $4 -.asm_8b396 + ld e, 0 + ld d, 4 +.loop ld a, [bc] inc bc - cp $ff - jr z, .asm_8b3a2 + cp -1 + jr z, .done inc e dec d - jr nz, .asm_8b396 + jr nz, .loop dec e scf -.asm_8b3a2 +.done pop bc ret Function8b3a4: ; 8b3a4 (22:73a4) + ; strcmp(hl, bc, 4) push de push bc ld d, b ld e, c - ld c, $4 + ld c, 4 call Function89185 pop bc pop de ret Function8b3b0: ; 8b3b0 (22:73b0) - ld bc, $a037 + ld bc, $a037 ; 4:a037 ld a, [$a60b] and a jr z, .asm_8b3c2 @@ -153,82 +159,88 @@ Function8b3cd: ; 8b3cd (22:73cd) Function8b3dd: ; 8b3dd (22:73dd) push de push bc - call Function354b + call JoyTextDelay_ForcehJoyDown ; joypad ld a, c pop bc pop de - bit 0, a - jr nz, .asm_8b3f7 - bit 1, a - jr nz, .asm_8b40e - bit 6, a - jr nz, .asm_8b429 - bit 7, a - jr nz, .asm_8b443 + bit A_BUTTON_F, a + jr nz, .a_button + bit B_BUTTON_F, a + jr nz, .b_button + bit D_UP_F, a + jr nz, .d_up + bit D_DOWN_F, a + jr nz, .d_down and a ret -.asm_8b3f7 + +.a_button ld a, e cp $3 - jr z, .asm_8b407 + jr z, .e_is_zero inc e - ld d, $0 + ld d, 0 call Function8b385 xor a ld [wd010], a ret -.asm_8b407 + +.e_is_zero call PlayClickSFX ld d, $0 scf ret -.asm_8b40e + +.b_button ld a, e and a - jr nz, .asm_8b41e + jr nz, .e_is_not_zero call PlayClickSFX - ld d, $ff + ld d, -1 call Function8b385 - ld d, $1 + ld d, 1 scf ret -.asm_8b41e - ld d, $ff + +.e_is_not_zero + ld d, -1 call Function8b385 dec e xor a ld [wd010], a ret -.asm_8b429 + +.d_up call Function8b379 ld a, d cp $a - jr c, .asm_8b433 + jr c, .less_than_10_up_1 ld d, $9 -.asm_8b433 +.less_than_10_up_1 inc d ld a, d cp $a - jr c, .asm_8b43b + jr c, .less_than_10_up_2 ld d, $0 -.asm_8b43b +.less_than_10_up_2 call Function8b385 xor a ld [wd010], a ret -.asm_8b443 + +.d_down call Function8b379 ld a, d cp $a - jr c, .asm_8b44d + jr c, .less_than_10_down ld d, $0 -.asm_8b44d +.less_than_10_down ld a, d dec d and a - jr nz, .asm_8b454 + jr nz, .nonzero_down ld d, $9 -.asm_8b454 +.nonzero_down call Function8b385 xor a ld [wd010], a @@ -403,6 +415,7 @@ Function8b539: ; 8b539 (22:7539) ret Function8b555: ; 8b555 (22:7555) +.loop ld hl, UnknownText_0x8b5ce call PrintText ld bc, wd017 @@ -416,27 +429,29 @@ Function8b555: ; 8b555 (22:7555) jr nz, .asm_8b57c ld hl, UnknownText_0x8b5e2 call PrintText - jr Function8b555 + jr .loop + .asm_8b57c ld hl, UnknownText_0x8b5d3 call PrintText ld bc, wd013 call Function8b45c - jr c, Function8b555 + jr c, .loop ld bc, wd017 ld hl, wd013 call Function8b3a4 - jr z, .asm_8b5a6 + jr z, .strings_equal call Function89448 ld bc, wd013 call Function8b493 ld hl, UnknownText_0x8b5d8 call PrintText jr .asm_8b57c -.asm_8b5a6 + +.strings_equal call OpenSRAMBank4 ld hl, wd013 - ld de, $a037 + ld de, $a037 ; 4:a037 ld bc, $4 call CopyBytes call CloseSRAM @@ -504,7 +519,7 @@ Function8b5e7: ; 8b5e7 (22:75e7) ld bc, wd013 call Function8b493 call OpenSRAMBank4 - ld hl, $a037 + ld hl, $a037 ; 4:a037 call Function8b3a4 call CloseSRAM jr z, .asm_8b635 |