ref: 5708d855e583b8c7a3b4b033759062c98a82ade1
parent: 1b7e44c7291b9529e5d2f7d54fc5564f62879a93
author: yenatch <[email protected]>
date: Thu Dec 12 20:07:16 EST 2013
pokeball wobbling
--- a/main.asm
+++ b/main.asm
@@ -14283,56 +14283,95 @@
; no known jump sources
-Functionf971: ; f971 (3:7971)
+GetPokeBallWobble: ; f971 (3:7971)
+; Returns whether a Poke Ball will wobble in the catch animation.
+; Whether a Pokemon is caught is determined beforehand.
+
push de
- ld a, [rSVBK] ; $ff00+$70
+
+ ld a, [rSVBK]
ld d, a
push de
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+
+ ld a, 1 ; BANK(Buffer2)
+ ld [rSVBK], a
+
+ ld a, [Buffer2]
inc a
- ld [Buffer2], a ; $d1eb (aliases: MovementType)
- cp $4
- jr z, .asm_f9a8
+ ld [Buffer2], a
+
+; Wobble up to 3 times.
+ cp 3 + 1
+ jr z, .finished
+
ld a, [$c64e]
and a
- ld c, $0
- jr nz, .asm_f9b2
- ld hl, $79ba
- ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength)
+ ld c, 0 ; next
+ jr nz, .done
+
+ ld hl, WobbleChances
+ ld a, [Buffer1]
ld b, a
-.asm_f994
+.loop
ld a, [hli]
cp b
- jr nc, .asm_f99b
+ jr nc, .checkwobble
inc hl
- jr .asm_f994
-.asm_f99b
+ jr .loop
+
+.checkwobble
ld b, [hl]
call Random
cp b
- ld c, $0
- jr c, .asm_f9b2
- ld c, $2
- jr .asm_f9b2
-.asm_f9a8
+ ld c, 0 ; next
+ jr c, .done
+ ld c, 2 ; escaped
+ jr .done
+
+.finished
ld a, [$c64e]
and a
- ld c, $1
- jr nz, .asm_f9b2
- ld c, $2
-.asm_f9b2
+ ld c, 1 ; caught
+ jr nz, .done
+ ld c, 2 ; escaped
+
+.done
pop de
ld e, a
ld a, d
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, e
pop de
ret
; f9ba (3:79ba)
-INCBIN "baserom.gbc",$f9ba,$f9ea - $f9ba
+WobbleChances: ; f9ba
+; catch rate, chance of wobbling / 255
+ db 1, 63
+ db 2, 75
+ db 3, 84
+ db 4, 90
+ db 5, 95
+ db 7, 103
+ db 10, 113
+ db 15, 126
+ db 20, 134
+ db 30, 149
+ db 40, 160
+ db 50, 169
+ db 60, 177
+ db 80, 191
+ db 100, 201
+ db 120, 211
+ db 140, 220
+ db 160, 227
+ db 180, 234
+ db 200, 240
+ db 220, 246
+ db 240, 251
+ db 254, 253
+ db 255, 255
+; f9ea
Functionf9ea: ; f9ea
@@ -14351,13 +14390,17 @@
ret
.asm_f9fe
- ld hl, $7a06
+ ld hl, UnknownText_0xfa06
call PrintText
scf
ret
; fa06
-INCBIN "baserom.gbc",$fa06,$fa0b - $fa06
+UnknownText_0xfa06: ; 0xfa06
+ ; knows @ .
+ text_jump UnknownText_0x1c5ea8
+ db "@"
+; 0xfa0b
SECTION "bank4", ROMX, BANK[$4]
@@ -87809,7 +87852,7 @@
; no known jump sources
BattleAnimCmd_DB: ; cc5d0 (33:45d0)
- callab Functionf971
+ callab GetPokeBallWobble
ld a, c
ld [$d416], a
ret