summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm30163
1 files changed, 2079 insertions, 28084 deletions
diff --git a/main.asm b/main.asm
index 00454ee49..6ae6582b4 100644
--- a/main.asm
+++ b/main.asm
@@ -1,3885 +1,7 @@
INCLUDE "includes.asm"
-SECTION "bank0",ROM0
-
-INCLUDE "rst.asm"
-
-INCLUDE "interrupts.asm"
-
-
-SECTION "header",ROM0[$100]
-
-Start:
- nop
- jp _Start
-
-
-SECTION "start",ROM0[$150]
-
-INCLUDE "home/init.asm"
-INCLUDE "home/vblank.asm"
-INCLUDE "home/delay.asm"
-INCLUDE "home/rtc.asm"
-INCLUDE "home/fade.asm"
-INCLUDE "home/lcd.asm"
-INCLUDE "home/time.asm"
-INCLUDE "home/serial.asm"
-INCLUDE "home/joypad.asm"
-INCLUDE "home/decompress.asm"
-INCLUDE "home/palettes.asm"
-INCLUDE "home/copy.asm"
-INCLUDE "home/text.asm"
-INCLUDE "home/video.asm"
-INCLUDE "home/map_objects.asm"
-INCLUDE "home/sine.asm"
-
-Function1b1e: ; 1b1e
- ld [$d003], a
- xor a
- ld [DefaultFlypoint], a
- ld a, $0
- ld [$d004], a
- ld a, $7
- ld [StartFlypoint], a
- ld a, $d0
- ld [EndFlypoint], a
- ret
-; 1b35
-
-Function1b35: ; 1b35
- ld a, [DefaultFlypoint]
- and a
- ret z
- dec a
- ld [DefaultFlypoint], a
- ret
-; 1b3f
-
-Function1b3f: ; 1b3f
- push hl
- push de
- ld hl, DefaultFlypoint
- ld e, [hl]
- inc [hl]
- ld d, 0
- ld hl, MovementBuffer
- add hl, de
- ld [hl], a
- pop de
- pop hl
- ret
-; 1b50
-
-Function1b50: ; 1b50
- push af
- ld a, c
- and a
- jr nz, .asm_1b57
- pop af
- ret
-
-.asm_1b57
- pop af
-.asm_1b58
- call Function1b3f
- dec c
- jr nz, .asm_1b58
- ret
-; 1b5f
-
-Function1b5f: ; 1b5f
- push af
- ld a, b
- sub d
- ld h, $2
- jr nc, .asm_1b6a
- dec a
- cpl
- ld h, $3
-
-.asm_1b6a
- ld d, a
- ld a, c
- sub e
- ld l, $1
- jr nc, .asm_1b75
- dec a
- cpl
- ld l, $0
-
-.asm_1b75
- ld e, a
- cp d
- jr nc, .asm_1b7f
- ld a, h
- ld h, l
- ld l, a
- ld a, d
- ld d, e
- ld e, a
-
-.asm_1b7f
- pop af
- ld b, a
- ld a, h
- call Function1b92
- ld c, d
- call Function1b50
- ld a, l
- call Function1b92
- ld c, e
- call Function1b50
- ret
-; 1b92
-
-Function1b92: ; 1b92
- push de
- push hl
- ld l, b
- ld h, 0
- add hl, hl
- add hl, hl
- ld e, a
- ld d, 0
- add hl, de
- ld de, .data_1ba5
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- ret
-; 1ba5
-
-.data_1ba5
- db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
-; 1bb1
-
-Function1bb1: ; 1bb1
- push hl
- push bc
- ld hl, $cfa1
- ld b, $8
-.asm_1bb8
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_1bb8
- ld a, $1
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- pop bc
- pop hl
- ret
-; 1bc9
-
-Function1bc9: ; 1bc9
- callab Function241a8
- call Function1bdd
- ret
-; 1bd3
-
-Function1bd3: ; 1bd3
- callab Function241ab
- call Function1bdd
- ret
-; 1bdd
-
-Function1bdd: ; 1bdd
- push bc
- push af
- ld a, [$ffa9]
- and $f0
- ld b, a
- ld a, [hJoyPressed]
- and $f
- or b
- ld b, a
- pop af
- ld a, b
- pop bc
- ret
-; 1bee
-
-Function1bee: ; 1bee
- ld hl, $cfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld [hl], $ec
- ret
-; 1bf7
-
-Function1bf7: ; 1bf7
- ld hl, $cfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld [hl], $7f
- ret
-; 1c00
-
-Function1c00: ; 1c00
- callab Function24374
- ret
-; 1c07
-
-Function1c07: ; 0x1c07
- push af
- callab Function243e8
- pop af
- ret
-
-Function1c10: ; 0x1c10
- callab Function2446d
- ret
-
-Function1c17: ; 0x1c17
- push af
- call Function1c07
- call Function321c
- call Function1ad2
- pop af
- ret
-
-Function1c23: ; 0x1c23
- call Function1cfd
- call Function1c30
- call Function1d19
- call Function1c30
- ret
-
-Function1c30: ; 0x1c30
- call Function1c53
- inc b
- inc c
-.asm_1c35
- push bc
- push hl
-.asm_1c37
- ld a, [de]
- ld [hli], a
- dec de
- dec c
- jr nz, .asm_1c37 ; 0x1c3b $fa
- pop hl
- ld bc, $0014
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_1c35 ; 0x1c44 $ef
- ret
-
-Function1c47: ; 0x1c47
- ld b, $10
- ld de, $cf81
-.asm_1c4c
- ld a, [hld]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_1c4c ; 0x1c50 $fa
- ret
-
-Function1c53: ; 0x1c53
- ld a, [$cf82]
- ld b, a
- ld a, [$cf84]
- sub b
- ld b, a
- ld a, [$cf83]
- ld c, a
- ld a, [$cf85]
- sub c
- ld c, a
- ret
-; 0x1c66
-
-Function1c66: ; 1c66
- push hl
- push de
- push bc
- push af
- ld hl, $cf86
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $cf91
- ld bc, $0010
- call CopyBytes
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 1c7e
-
-Function1c7e: ; 1c7e
- ld hl, $cf71
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 1c89
-
-Function1c89: ; 1c89
- call Function1c66
- ld hl, $cf86
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function1cc6
- call GetTileCoord
- inc de
- ld a, [de]
- inc de
- ld b, a
-.asm_1c9c
- push bc
- call PlaceString
- inc de
- ld bc, $0028
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_1c9c
- ld a, [$cf91]
- bit 4, a
- ret z
- call Function1cfd
- ld a, [de]
- ld c, a
- inc de
- ld b, $0
- add hl, bc
- jp PlaceString
-; 1cbb
-
-Function1cbb: ; 1cbb
- call Function1cfd
- call Function1c53
- dec b
- dec c
- jp TextBox
-; 1cc6
-
-Function1cc6: ; 1cc6
- ld a, [$cf82]
- ld b, a
- inc b
- ld a, [$cf83]
- ld c, a
- inc c
- ld a, [$cf91]
- bit 6, a
- jr nz, .asm_1cd8
- inc b
-
-.asm_1cd8
- ld a, [$cf91]
- bit 7, a
- jr z, .asm_1ce0
- inc c
-
-.asm_1ce0
- ret
-; 1ce1
-
-Function1ce1: ; 1ce1
- call Function1cfd
- ld bc, $0015
- add hl, bc
- call Function1c53
- dec b
- dec c
- call ClearBox
- ret
-; 1cf1
-
-Function1cf1: ; 1cf1
- call Function1cfd
- call Function1c53
- inc c
- inc b
- call ClearBox
- ret
-; 1cfd
-
-
-Function1cfd: ; 1cfd
- ld a, [$cf83]
- ld c, a
- ld a, [$cf82]
- ld b, a
-; 1d05
-
-
-GetTileCoord: ; 1d05
-; Return the address of TileMap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld bc, TileMap
- add hl, bc
- ret
-; 1d19
-
-Function1d19: ; 1d19
- ld a, [$cf83]
- ld c, a
- ld a, [$cf82]
- ld b, a
-
-GetAttrCoord: ; 1d21
-; Return the address of AttrMap(c, b) in hl.
- xor a
- ld h, a
- ld l, b
- ld a, c
- ld b, h
- ld c, l
- add hl, hl
- add hl, hl
- add hl, bc
- add hl, hl
- add hl, hl
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld bc, AttrMap
- add hl, bc
- ret
-; 1d35
-
-
-INCLUDE "home/menu.asm"
-INCLUDE "home/handshake.asm"
-INCLUDE "home/game_time.asm"
-INCLUDE "home/map.asm"
-
-
-Function2d43: ; 2d43
-; Inexplicably empty.
-; Seen in PredefPointers.
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- ret
-; 2d54
-
-
-INCLUDE "home/farcall.asm"
-INCLUDE "home/predef.asm"
-INCLUDE "home/window.asm"
-
-
-Function2e4e: ; 2e4e
- scf
- ret
-; 2e50
-
-
-INCLUDE "home/flag.asm"
-
-
-Function2ebb: ; 2ebb
- ld a, [$c2cc]
- bit 1, a
- ret z
- ld a, [hJoyDown]
- bit A_BUTTON, a
- ret
-; 2ec6
-
-
-Function2ec6: ; 2ec6
- xor a
- ret
-; 2ec8
-
-Function2ec8: ; 2ec8
- xor a
- dec a
- ret
-; 2ecb
-
-Function2ecb: ; 2ecb
- push hl
- ld hl, $c2cc
- bit 1, [hl]
- pop hl
- ret
-; 2ed3
-
-
-Function2ed3: ; 0x2ed3
-; disables overworld sprite updating?
- xor a
- ld [$ffde], a
- ld a, [VramState]
- res 0, a
- ld [VramState], a
- ld a, $0
- ld [$c2ce], a
- ret
-; 0x2ee4
-
-Function2ee4: ; 2ee4
- ld a, $1
- ld [$c2ce], a
- ld a, [VramState]
- set 0, a
- ld [VramState], a
- ld a, $1
- ld [$ffde], a
- ret
-; 2ef6
-
-
-INCLUDE "home/string.asm"
-
-
-IsInJohto: ; 2f17
-; Return 0 if the player is in Johto, and 1 in Kanto.
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
- cp $5f ; SS Aqua
- jr z, .Johto
-
- cp $0 ; Poke Center 2F
- jr nz, .CheckRegion
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.CheckRegion
- cp $2f ; Pallet Town
- jr nc, .Kanto
-
-.Johto
- xor a
- ret
-
-.Kanto
- ld a, 1
- ret
-; 2f3e
-
-
-Function2f3e: ; 2f3e
- ret
-; 2f3f
-
-
-INCLUDE "home/item.asm"
-INCLUDE "home/random.asm"
-INCLUDE "home/sram.asm"
-
-
-; Register aliases
-
-_hl_: ; 2fec
- jp [hl]
-; 2fed
-
-_de_: ; 2fed
- push de
- ret
-; 2fef
-
-
-INCLUDE "home/double_speed.asm"
-
-
-ClearSprites: ; 300b
- ld hl, Sprites
- ld b, TileMap - Sprites
- xor a
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-; 3016
-
-HideSprites: ; 3016
-; Set all OBJ y-positions to 160 to hide them offscreen
- ld hl, Sprites
- ld de, $0004 ; length of an OBJ struct
- ld b, $28 ; number of OBJ structs
- ld a, 160 ; y-position
-.loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 3026
-
-
-INCLUDE "home/copy2.asm"
-
-
-Function309d: ; 309d
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld hl, TileMap
- ld de, $d000
- ld bc, $0168
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 30b4
-
-Function30b4: ; 30b4
- xor a
- ld [hBGMapMode], a
- call Function30bf
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 30bf
-
-Function30bf: ; 30bf
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld hl, $d000
- ld de, TileMap
- ld bc, $0168
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 30d6
-
-
-CopyName1: ; 30d6
- ld hl, StringBuffer2
-; 30d9
-CopyName2: ; 30d9
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- cp "@"
- jr nz, .loop
- ret
-; 30e1
-
-IsInArray: ; 30e1
-; Find value a for every de bytes in array hl.
-; Return index in b and carry if found.
-
- ld b, 0
- ld c, a
-.loop
- ld a, [hl]
- cp $ff
- jr z, .NotInArray
- cp c
- jr z, .InArray
- inc b
- add hl, de
- jr .loop
-
-.NotInArray
- and a
- ret
-
-.InArray
- scf
- ret
-; 30f4
-
-SkipNames: ; 0x30f4
-; skips n names where n = a
- ld bc, $000b ; name length
- and a
- ret z
-.loop
- add hl, bc
- dec a
- jr nz, .loop
- ret
-; 0x30fe
-
-AddNTimes: ; 0x30fe
-; adds bc n times where n = a
- and a
- ret z
-.loop
- add hl, bc
- dec a
- jr nz, .loop
- ret
-; 0x3105
-
-
-INCLUDE "home/math.asm"
-
-
-PrintLetterDelay: ; 313d
-; wait some frames before printing the next letter
-; the text speed setting in Options is actually a frame count
-; fast: 1 frame
-; mid: 3 frames
-; slow: 5 frames
-; $cfcf[!0] and A or B override text speed with a one-frame delay
-; Options[4] and $cfcf[!1] disable the delay
-
-; delay off?
- ld a, [Options]
- bit 4, a ; delay off
- ret nz
-
-; non-scrolling text?
- ld a, [$cfcf]
- bit 1, a
- ret z
-
- push hl
- push de
- push bc
-
-; save oam update status
- ld hl, hOAMUpdate
- ld a, [hl]
- push af
-; orginally turned oam update off, commented out
-; ld a, 1
- ld [hl], a
-
-; force fast scroll?
- ld a, [$cfcf]
- bit 0, a
- jr z, .fast
-
-; text speed
- ld a, [Options]
- and a, %111 ; # frames to delay
- jr .updatedelay
-
-.fast
- ld a, 1
-.updatedelay
- ld [TextDelayFrames], a
-
-.checkjoypad
- call GetJoypadPublic
-
-; input override
- ld a, [$c2d7]
- and a
- jr nz, .wait
-
-; wait one frame if holding a
- ld a, [hJoyDown] ; joypad
- bit 0, a ; A
- jr z, .checkb
- jr .delay
-
-.checkb
-; wait one frame if holding b
- bit 1, a ; B
- jr z, .wait
-
-.delay
- call DelayFrame
- jr .end
-
-.wait
-; wait until frame counter hits 0 or the loop is broken
-; this is a bad way to do this
- ld a, [TextDelayFrames]
- and a
- jr nz, .checkjoypad
-
-.end
-; restore oam update flag (not touched in this fn anymore)
- pop af
- ld [hOAMUpdate], a
- pop bc
- pop de
- pop hl
- ret
-; 318c
-
-
-CopyDataUntil: ; 318c
-; Copies [hl, bc) to [de, bc - hl).
-; In other words, the source data is from hl up to but not including bc,
-; and the destination is de.
- ld a, [hli]
- ld [de], a
- inc de
- ld a, h
- cp b
- jr nz, CopyDataUntil
- ld a, l
- cp c
- jr nz, CopyDataUntil
- ret
-; 0x3198
-
-
-PrintNum: ; 3198
- ld a, [hROMBank]
- push af
- ld a, BANK(_PrintNum)
- rst Bankswitch
-
- call _PrintNum
-
- pop af
- rst Bankswitch
- ret
-; 31a4
-
-
-Function31a4: ; 31a4
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1061ef)
- rst Bankswitch
-
- call Function1061ef
-
- pop af
- rst Bankswitch
- ret
-; 31b0
-
-
-FarPrintText: ; 31b0
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
-
- call PrintText
-
- pop af
- rst Bankswitch
- ret
-; 31be
-
-
-CallPointerAt: ; 31be
- ld a, [hROMBank]
- push af
- ld a, [hli]
- rst Bankswitch
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- call _hl_
-
- pop hl
- ld a, h
- rst Bankswitch
- ret
-; 31cd
-
-
-Function31cd: ; 31cd
-; Push pointer hl in the current bank to $d0e8.
- ld a, [hROMBank]
-
-Function31cf: ; 31cf
-; Push pointer a:hl to $d0e8.
- ld [$d0e8], a
- ld a, l
- ld [$d0e9], a
- ld a, h
- ld [$d0ea], a
- ret
-; 31db
-
-
-StringCmp: ; 31db
-; Compare strings, c bytes in length, at de and hl.
-; Often used to compare big endian numbers in battle calculations.
- ld a, [de]
- cp [hl]
- ret nz
- inc de
- inc hl
- dec c
- jr nz, StringCmp
- ret
-; 0x31e4
-
-
-CompareLong: ; 31e4
-; Compare bc bytes at de and hl. Return carry if they all match.
-
- ld a, [de]
- cp [hl]
- jr nz, .Diff
-
- inc de
- inc hl
- dec bc
-
- ld a, b
- or c
- jr nz, CompareLong
-
- scf
- ret
-
-.Diff
- and a
- ret
-; 31f3
-
-
-WhiteBGMap: ; 31f3
- call ClearPalettes
-WaitBGMap: ; 31f6
-; Tell VBlank to update BG Map
- ld a, 1 ; BG Map 0 tiles
- ld [hBGMapMode], a
-; Wait for it to do its magic
- ld c, 4
- call DelayFrames
- ret
-; 3200
-
-Function3200: ; 0x3200
- ld a, [hCGB]
- and a
- jr z, .asm_320e
- ld a, 2
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
-
-.asm_320e
- ld a, 1
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
- ret
-; 0x3218
-
-
-Function3218: ; 3218
- ld a, [hCGB]
- and a
- ret
-; 321c
-
-
-Function321c: ; 321c
- ld a, [hCGB]
- and a
- jr z, .asm_322e
-
- ld a, [$c2ce]
- cp 0
- jr z, .asm_322e
-
- ld a, 1
- ld [hBGMapMode], a
- jr Function323d
-
-.asm_322e
- ld a, 1
- ld [hBGMapMode], a
- ld c, 4
- call DelayFrames
- ret
-; 3238
-
-Function3238: ; 3238
- ld a, [hCGB]
- and a
- jr z, WaitBGMap
-
-Function323d: ; 323d
- jr Function3246
-; 323f
-
-Function323f: ; 323f
- callba Function104000
- ret
-; 3246
-
-Function3246: ; 3246
- ld a, [hBGMapMode]
- push af
- xor a
- ld [hBGMapMode], a
- ld a, [$ffde]
- push af
- xor a
- ld [$ffde], a
-.asm_3252
- ld a, [rLY]
- cp $7f
- jr c, .asm_3252 ; 3256 $fa
- di
- ld a, $1
- ld [rVBK], a
- ld hl, AttrMap
- call Function327b
- ld a, $0
- ld [rVBK], a
- ld hl, TileMap
- call Function327b
-.asm_326d
- ld a, [rLY]
- cp $7f
- jr c, .asm_326d ; 3271 $fa
- ei
- pop af
- ld [$ffde], a
- pop af
- ld [hBGMapMode], a
- ret
-; 327b
-
-Function327b: ; 327b
- ld [hSPBuffer], sp
- ld sp, hl
- ld a, [$ffd7]
- ld h, a
- ld l, $0
- ld a, $12
- ld [$ffd3], a
- ld b, $2
- ld c, $41
-.asm_328c
- pop de
-
-rept 9
-.loop\@
- ld a, [$ff00+c]
- and b
- jr nz, .loop\@
- ld [hl], e
- inc l
- ld [hl], d
- inc l
- pop de
-endr
-
-.asm_32de
- ld a, [$ff00+c]
- and b
- jr nz, .asm_32de
- ld [hl], e
- inc l
- ld [hl], d
- inc l
-
- ld de, $000c
- add hl, de
- ld a, [$ffd3]
- dec a
- ld [$ffd3], a
- jr nz, .asm_328c
- ld a, [hSPBuffer]
- ld l, a
- ld a, [$ffda]
- ld h, a
- ld sp, hl
- ret
-; 32f9
-
-
-
-Function32f9: ; 32f9
- ld a, [hCGB]
- and a
- jr nz, .asm_3309
- ld a, $e4
- ld [rBGP], a
- ld a, $d0
- ld [rOBP0], a
- ld [rOBP1], a
- ret
-
-.asm_3309
- push de
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- pop de
- ret
-; 3317
-
-
-ClearPalettes: ; 3317
-; Make all palettes white
-
-; For CGB we make all the palette colors white
- ld a, [hCGB]
- and a
- jr nz, .cgb
-
-; In DMG mode, we can just change palettes to 0 (white)
- xor a
- ld [rBGP], a
- ld [rOBP0], a
- ld [rOBP1], a
- ret
-
-.cgb
- ld a, [rSVBK]
- push af
-
- ld a, 5
- ld [rSVBK], a
-
-; Fill BGPals and OBPals with $ffff (white)
- ld hl, BGPals
- ld bc, $80
- ld a, $ff
- call ByteFill
-
- pop af
- ld [rSVBK], a
-
-; Request palette update
- ld a, 1
- ld [hCGBPalUpdate], a
- ret
-; 333e
-
-
-ClearSGB: ; 333e
- ld b, $ff
-GetSGBLayout: ; 3340
-; load sgb packets unless dmg
-
-; check cgb
- ld a, [hCGB]
- and a
- jr nz, .dosgb
-
-; check sgb
- ld a, [hSGB]
- and a
- ret z
-
-.dosgb
- ld a, $31 ; LoadSGBLayout
- jp Predef
-; 334e
-
-
-SetHPPal: ; 334e
-; Set palette for hp bar pixel length e at hl.
- call GetHPPal
- ld [hl], d
- ret
-; 3353
-
-
-GetHPPal: ; 3353
-; Get palette for hp bar pixel length e in d.
-
- ld d, 0 ; green
- ld a, e
- cp 24
- ret nc
- inc d ; yellow
- cp 10
- ret nc
- inc d ; red
- ret
-; 335f
-
-
-CountSetBits: ; 0x335f
-; function to count how many bits are set in a string of bytes
-; INPUT:
-; hl = address of string of bytes
-; b = length of string of bytes
-; OUTPUT:
-; [$d265] = number of set bits
- ld c, $0
-.loop
- ld a, [hli]
- ld e, a
- ld d, $8
-.innerLoop ; count how many bits are set in the current byte
- srl e
- ld a, $0
- adc c
- ld c, a
- dec d
- jr nz, .innerLoop
- dec b
- jr nz, .loop
- ld a, c
- ld [$d265], a
- ret
-; 0x3376
-
-
-GetWeekday: ; 3376
- ld a, [CurDay]
-.mod
- sub 7
- jr nc, .mod
- add 7
- ret
-; 3380
-
-
-INCLUDE "home/pokedex_flags.asm"
-
-
-NamesPointerTable: ; 33ab
- dbw BANK(PokemonNames), PokemonNames
- dbw BANK(MoveNames), MoveNames
- dbw $00, $0000
- dbw BANK(ItemNames), ItemNames
- dbw $00, PartyMonOT
- dbw $00, OTPartyMonOT
- dbw BANK(TrainerClassNames), TrainerClassNames
- dbw $04, $4b52
-; 33c3
-
-
-GetName: ; 33c3
-; Return name CurSpecies from name list $cf61 in StringBuffer1.
- ld a, [hROMBank]
- push af
- push hl
- push bc
- push de
- ld a, [$cf61]
- cp 1 ; Pokemon names
- jr nz, .NotPokeName
-
- ld a, [CurSpecies]
- ld [$d265], a
- call GetPokemonName
- ld hl, $000b
- add hl, de
- ld e, l
- ld d, h
- jr .done
-
-.NotPokeName
- ld a, [$cf61]
- dec a
- ld e, a
- ld d, 0
- ld hl, NamesPointerTable
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- rst Bankswitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [CurSpecies]
- dec a
- call GetNthString
-
- ld de, StringBuffer1
- ld bc, $000d
- call CopyBytes
-
-.done
- ld a, e
- ld [$d102], a
- ld a, d
- ld [$d103], a
- pop de
- pop bc
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3411
-
-
-GetNthString: ; 3411
-; Starting at hl, this function returns the start address of the ath string.
- and a
- ret z
- push bc
- ld b, a
- ld c, "@"
-.readChar
- ld a, [hli]
- cp c
- jr nz, .readChar
- dec b
- jr nz, .readChar
- pop bc
- ret
-; 3420
-
-
-GetBasePokemonName: ; 3420
-; Discards gender (Nidoran).
- push hl
- call GetPokemonName
-
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .quit
- cp "♂"
- jr z, .end
- cp "♀"
- jr z, .end
- inc hl
- jr .loop
-.end
- ld [hl], "@"
-.quit
- pop hl
- ret
-
-; 343b
-
-
-GetPokemonName: ; 343b
-; Get Pokemon name $d265.
-
- ld a, [hROMBank]
- push af
- push hl
- ld a, BANK(PokemonNames)
- rst Bankswitch
-
-; Each name is ten characters
- ld a, [$d265]
- dec a
- ld d, 0
- ld e, a
- ld h, 0
- ld l, a
- add hl, hl
- add hl, hl
- add hl, de
- add hl, hl
- ld de, PokemonNames
- add hl, de
-
-; Terminator
- ld de, StringBuffer1
- push de
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
- ld [hl], "@"
- pop de
-
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3468
-
-
-GetItemName: ; 3468
-; Get item name $d265.
-
- push hl
- push bc
- ld a, [$d265]
-
- cp TM_01
- jr nc, .TM
-
- ld [CurSpecies], a
- ld a, 4 ; Item names
- ld [$cf61], a
- call GetName
- jr .Copied
-.TM
- call GetTMHMName
-.Copied
- ld de, StringBuffer1
- pop bc
- pop hl
- ret
-; 3487
-
-
-GetTMHMName: ; 3487
-; Get TM/HM name by item id $d265.
-
- push hl
- push de
- push bc
- ld a, [$d265]
- push af
-
-; TM/HM prefix
- cp HM_01
- push af
- jr c, .TM
-
- ld hl, .HMText
- ld bc, .HMTextEnd - .HMText
- jr .asm_34a1
-
-.TM
- ld hl, .TMText
- ld bc, .TMTextEnd - .TMText
-
-.asm_34a1
- ld de, StringBuffer1
- call CopyBytes
-
-; TM/HM number
- push de
- ld a, [$d265]
- ld c, a
- callab GetTMHMNumber
- pop de
-
-; HM numbers start from 51, not 1
- pop af
- ld a, c
- jr c, .asm_34b9
- sub NUM_TMS
-
-; Divide and mod by 10 to get the top and bottom digits respectively
-.asm_34b9
- ld b, "0"
-.mod10
- sub 10
- jr c, .asm_34c2
- inc b
- jr .mod10
-.asm_34c2
- add 10
-
- push af
- ld a, b
- ld [de], a
- inc de
- pop af
-
- ld b, "0"
- add b
- ld [de], a
-
-; End the string
- inc de
- ld a, "@"
- ld [de], a
-
- pop af
- ld [$d265], a
- pop bc
- pop de
- pop hl
- ret
-
-.TMText
- db "TM"
-.TMTextEnd
- db "@"
-
-.HMText
- db "HM"
-.HMTextEnd
- db "@"
-; 34df
-
-
-IsHM: ; 34df
- cp HM_01
- jr c, .NotHM
- scf
- ret
-.NotHM
- and a
- ret
-; 34e7
-
-
-IsHMMove: ; 34e7
- ld hl, .HMMoves
- ld de, 1
- jp IsInArray
-
-.HMMoves
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WATERFALL
- db WHIRLPOOL
- db $ff
-; 34f8
-
-
-GetMoveName: ; 34f8
- push hl
-; move name
- ld a, $2 ; move names
- ld [$cf61], a
-; move id
- ld a, [$d265]
- ld [CurSpecies], a
-
- call GetName
- ld de, StringBuffer1
- pop hl
- ret
-; 350c
-
-
-Function350c: ; 350c
- call Function1c66
- ld a, [hROMBank]
- push af
- ld a, $9
- rst Bankswitch
-
- call Function245af
- call Function3524
- call Function245cb
- pop af
- rst Bankswitch
-
- ld a, [$cf73]
- ret
-; 3524
-
-Function3524: ; 3524
- ld hl, VramState
- bit 0, [hl]
- jp nz, UpdateTimePals
- jp Function32f9
-; 352f
-
-Function352f: ; 352f
- ld a, [$cf82]
- dec a
- ld b, a
- ld a, [$cf84]
- sub b
- ld d, a
- ld a, [$cf83]
- dec a
- ld c, a
- ld a, [$cf85]
- sub c
- ld e, a
- push de
- call GetTileCoord
- pop bc
- jp TextBox
-; 354b
-
-Function354b: ; 354b
- call DelayFrame
- ld a, [$ffaa]
- push af
- ld a, $1
- ld [$ffaa], a
- call Functiona57
- pop af
- ld [$ffaa], a
- ld a, [$ffa9]
- and $f0
- ld c, a
- ld a, [hJoyPressed]
- and $f
- or c
- ld c, a
- ret
-; 3567
-
-
-Function3567: ; 3567
- ld a, [hROMBank]
- push af
- call Function2c52
- call Function3574
- pop bc
- ld a, b
- rst Bankswitch
-
- ret
-; 3574
-
-Function3574: ; 3574
- ld hl, $0001
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .asm_3597
- ld l, a
- push hl
- call Function3599
- pop hl
- jr nc, .asm_3597
- ld d, a
- ld e, l
- call Function35de
- jr nc, .asm_3597
- call Function2631
- callba Function96c56
- scf
- ret
-
-.asm_3597
- and a
- ret
-; 3599
-
-Function3599: ; 3599
- push de
- ld hl, $0010
- add hl, de
- ld a, [hl]
- ld hl, $0011
- add hl, de
- ld e, [hl]
- sub $4
- ld d, a
- ld a, e
- sub $4
- ld e, a
- call Function35b0
- pop de
- ret
-; 35b0
-
-Function35b0: ; 35b0
- ld hl, $dbfc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dbfb]
- and a
- jr z, .asm_35d3
-.asm_35bc
- push af
- ld a, [hl]
- cp e
- jr nz, .asm_35c8
- inc hl
- ld a, [hld]
- cp d
- jr nz, .asm_35c8
- jr .asm_35d5
-
-.asm_35c8
- ld a, $5
- add l
- ld l, a
- jr nc, .asm_35cf
- inc h
-
-.asm_35cf
- pop af
- dec a
- jr nz, .asm_35bc
-
-.asm_35d3
- and a
- ret
-
-.asm_35d5
- pop af
- ld d, a
- ld a, [$dbfb]
- sub d
- inc a
- scf
- ret
-; 35de
-
-Function35de: ; 35de
- inc e
- ld hl, $0001
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_35e6
- ld a, [hli]
- cp $ff
- jr z, .asm_35fc
- cp d
- jr nz, .asm_35f7
- ld a, [hli]
- cp e
- jr nz, .asm_35f8
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jr .asm_35fe
-
-.asm_35f7
- inc hl
-
-.asm_35f8
- inc hl
- inc hl
- jr .asm_35e6
-
-.asm_35fc
- and a
- ret
-
-.asm_35fe
- scf
- ret
-; 3600
-
-
-CheckTrainerBattle2: ; 3600
-
- ld a, [hROMBank]
- push af
- call Function2c52
-
- call CheckTrainerBattle
-
- pop bc
- ld a, b
- rst Bankswitch
- ret
-; 360d
-
-
-CheckTrainerBattle: ; 360d
-; Check if any trainer on the map sees the player and wants to battle.
-
-; Skip the player object.
- ld a, 1
- ld de, MapObjects + OBJECT_LENGTH
-
-.loop
-
-; Start a battle if the object:
-
- push af
- push de
-
-; Has a sprite
- ld hl, $0001
- add hl, de
- ld a, [hl]
- and a
- jr z, .next
-
-; Is a trainer
- ld hl, $0008
- add hl, de
- ld a, [hl]
- and $f
- cp $2
- jr nz, .next
-
-; Is visible on the map
- ld hl, $0000
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .next
-
-; Is facing the player...
- call Function1ae5
- call FacingPlayerDistance_bc
- jr nc, .next
-
-; ...within their sight range
- ld hl, $0009
- add hl, de
- ld a, [hl]
- cp b
- jr c, .next
-
-; And hasn't already been beaten
- push bc
- push de
- ld hl, $000a
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- pop de
- pop bc
- and a
- jr z, .asm_3666
-
-.next
- pop de
- ld hl, OBJECT_LENGTH
- add hl, de
- ld d, h
- ld e, l
-
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- xor a
- ret
-
-.asm_3666
- pop de
- pop af
- ld [$ffe0], a
- ld a, b
- ld [$d03f], a
- ld a, c
- ld [MartPointer], a
- jr Function367e
-; 3674
-
-Function3674: ; 3674
- ld a, $1
- ld [$d03f], a
- ld a, $ff
- ld [MartPointer], a
-
-Function367e: ; 367e
- call GetMapScriptHeaderBank
- ld [EngineBuffer1], a
- ld a, [$ffe0]
- call GetMapObject
- ld hl, $000a
- add hl, bc
- ld a, [EngineBuffer1]
- call GetFarHalfword
- ld de, $d041
- ld bc, $000d
- ld a, [EngineBuffer1]
- call FarCopyBytes
- xor a
- ld [$d04d], a
- scf
- ret
-; 36a5
-
-
-FacingPlayerDistance_bc: ; 36a5
-
- push de
- call FacingPlayerDistance
- ld b, d
- ld c, e
- pop de
- ret
-; 36ad
-
-
-FacingPlayerDistance: ; 36ad
-; Return carry if the sprite at bc is facing the player,
-; and its distance in d.
-
- ld hl, $0010 ; x
- add hl, bc
- ld d, [hl]
-
- ld hl, $0011 ; y
- add hl, bc
- ld e, [hl]
-
- ld a, [MapX]
- cp d
- jr z, .CheckY
-
- ld a, [MapY]
- cp e
- jr z, .CheckX
-
- and a
- ret
-
-.CheckY
- ld a, [MapY]
- sub e
- jr z, .NotFacing
- jr nc, .Above
-
-; Below
- cpl
- inc a
- ld d, a
- ld e, UP << 2
- jr .CheckFacing
-
-.Above
- ld d, a
- ld e, DOWN << 2
- jr .CheckFacing
-
-.CheckX
- ld a, [MapX]
- sub d
- jr z, .NotFacing
- jr nc, .Left
-
-; Right
- cpl
- inc a
- ld d, a
- ld e, LEFT << 2
- jr .CheckFacing
-
-.Left
- ld d, a
- ld e, RIGHT << 2
-
-.CheckFacing
- call GetSpriteDirection
- cp e
- jr nz, .NotFacing
- scf
- ret
-
-.NotFacing
- and a
- ret
-; 36f5
-
-
-Function36f5: ; 36f5
- push bc
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- call GetMapObject
- ld hl, $000a
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call GetFarHalfword
- ld d, h
- ld e, l
- push de
- ld b, $2
- call EventFlagAction
- pop de
- ld a, c
- and a
- pop bc
- ret
-; 3718
-
-
-Function3718: ; 3718
- ld a, [BattleType]
- cp $1
- jr .asm_3724
-
- ld hl, WalkingTile
- jr .asm_3731
-
-.asm_3724
- ld a, [$d0ee]
- ld hl, WalkingTile
- and $f
- jr z, .asm_3731
- ld hl, $d049
-
-.asm_3731
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call FarPrintText
- call WaitBGMap
- call Functiona80
- ret
-; 3741
-
-
-
-IsAPokemon: ; 3741
-; Return carry if species a is not a Pokemon.
- and a
- jr z, .NotAPokemon
- cp EGG
- jr z, .Pokemon
- cp NUM_POKEMON + 1
- jr c, .Pokemon
-
-.NotAPokemon
- scf
- ret
-
-.Pokemon
- and a
- ret
-; 3750
-
-
-DrawHPBar: ; 3750
-; Draw an HP bar d tiles long at hl
-; Fill it up to e pixels
-
- push hl
- push de
- push bc
-
-; Place 'HP:'
- ld a, $60
- ld [hli], a
- ld a, $61
- ld [hli], a
-
-; Draw a template
- push hl
- ld a, $62 ; empty bar
-.template
- ld [hli], a
- dec d
- jr nz, .template
- ld a, $6b ; bar end
- add b
- ld [hl], a
- pop hl
-
-; Safety check # pixels
- ld a, e
- and a
- jr nz, .fill
- ld a, c
- and a
- jr z, .done
- ld e, 1
-
-.fill
-; Keep drawing tiles until pixel length is reached
- ld a, e
- sub TILE_WIDTH
- jr c, .lastbar
-
- ld e, a
- ld a, $6a ; full bar
- ld [hli], a
- ld a, e
- and a
- jr z, .done
- jr .fill
-
-.lastbar
- ld a, $62 ; empty bar
- add e ; + e
- ld [hl], a
-
-.done
- pop bc
- pop de
- pop hl
- ret
-; 3786
-
-
-Function3786: ; 3786
- ld a, $1
- ld [$c2c6], a
-
-Function378b: ; 378b
- ld a, [CurPartySpecies]
- call IsAPokemon
- jr c, .asm_37ad
- push hl
- ld de, VTiles2
- ld a, $3c
- call Predef
- pop hl
- xor a
- ld [$ffad], a
- ld bc, $0707
- ld a, $13
- call Predef
- xor a
- ld [$c2c6], a
- ret
-
-.asm_37ad
- xor a
- ld [$c2c6], a
- inc a
- ld [CurPartySpecies], a
- ret
-; 37b6
-
-Function37b6: ; 37b6
- push af
- ld a, $1
- ld [$c2bc], a
- pop af
- call Function37e2
- call WaitSFX
- ret
-; 37c4
-
-Function37c4: ; 37c4
- push af
- ld a, $1
- ld [$c2bc], a
- pop af
- jp Function37e2
-; 37ce
-
-Function37ce: ; 37ce
- call Function37d5
- call WaitSFX
- ret
-; 37d5
-
-Function37d5: ; 37d5
- push af
- xor a
- ld [$c2bc], a
- ld [CryTracks], a
- pop af
- call Function37e2
- ret
-; 37e2
-
-Function37e2: ; 37e2
- push hl
- push de
- push bc
- call Function381e
- jr c, .asm_37ef
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.asm_37ef
- pop bc
- pop de
- pop hl
- ret
-; 37f3
-
-Function37f3: ; 37f3
- call Function381e
- ret c
- ld a, [hROMBank]
- push af
- ld a, $3c
- rst Bankswitch
-
- ld hl, $6787
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- ld [CryPitch], a
- ld a, [hli]
- ld [CryEcho], a
- ld a, [hli]
- ld [CryLength], a
- ld a, [hl]
- ld [$c2b3], a
- pop af
- rst Bankswitch
-
- and a
- ret
-; 381e
-
-Function381e: ; 381e
- and a
- jr z, .asm_382b
- cp $fc
- jr nc, .asm_382b
- dec a
- ld c, a
- ld b, $0
- and a
- ret
-
-.asm_382b
- scf
- ret
-; 382d
-
-
-PrintLevel: ; 382d
-; Print TempMonLevel at hl
-
- ld a, [TempMonLevel]
- ld [hl], $6e ; ":L"
- inc hl
-
-; How many digits?
- ld c, 2
- cp 100
- jr c, Function3842
-
-; 3-digit numbers overwrite the :L.
- dec hl
- inc c
- jr Function3842
-; 383d
-
-Function383d: ; 383d
-; Print :L and all 3 digits
- ld [hl], $6e
- inc hl
- ld c, 3
-; 3842
-
-Function3842: ; 3842
- ld [$d265], a
- ld de, $d265
- ld b, %01000001 ; flags
- jp PrintNum
-; 384d
-
-
-Function384d: ; 384d
- ld hl, $d25e
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 3856
-
-
-GetBaseData: ; 3856
- push bc
- push de
- push hl
- ld a, [hROMBank]
- push af
- ld a, BANK(BaseData)
- rst Bankswitch
-
-; Egg doesn't have BaseData
- ld a, [CurSpecies]
- cp EGG
- jr z, .egg
-
-; Get BaseData
- dec a
- ld bc, BaseData1 - BaseData0
- ld hl, BaseData
- call AddNTimes
- ld de, CurBaseData
- ld bc, BaseData1 - BaseData0
- call CopyBytes
- jr .end
-
-.egg
-; ????
- ld de, $7d9c
-
-; Sprite dimensions
- ld b, $55 ; 5x5
- ld hl, BasePicSize
- ld [hl], b
-
-; ????
- ld hl, BasePadding
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld [hl], e
- inc hl
- ld [hl], d
- jr .end
-
-.end
-; Replace Pokedex # with species
- ld a, [CurSpecies]
- ld [BaseDexNo], a
-
- pop af
- rst Bankswitch
- pop hl
- pop de
- pop bc
- ret
-; 389c
-
-
-GetCurNick: ; 389c
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
-
-GetNick: ; 38a2
-; Get nickname a from list hl.
-
- push hl
- push bc
-
- call SkipNames
- ld de, StringBuffer1
-
- push de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop de
-
- callab CheckNickErrors
-
- pop bc
- pop hl
- ret
-; 38bb
-
-
-PrintBCDNumber: ; 38bb
-; function to print a BCD (Binary-coded decimal) number
-; de = address of BCD number
-; hl = destination address
-; c = flags and length
-; bit 7: if set, do not print leading zeroes
-; if unset, print leading zeroes
-; bit 6: if set, left-align the string (do not pad empty digits with spaces)
-; if unset, right-align the string
-; bit 5: if set, print currency symbol at the beginning of the string
-; if unset, do not print the currency symbol
-; bits 0-4: length of BCD number in bytes
-; Note that bits 5 and 7 are modified during execution. The above reflects
-; their meaning at the beginning of the functions's execution.
- ld b, c ; save flags in b
- res 7, c
- res 6, c
- res 5, c ; c now holds the length
- bit 5, b
- jr z, .loop
- bit 7, b
- jr nz, .loop
- ld [hl], "¥"
- inc hl
-.loop
- ld a, [de]
- swap a
- call PrintBCDDigit ; print upper digit
- ld a, [de]
- call PrintBCDDigit ; print lower digit
- inc de
- dec c
- jr nz, .loop
- bit 7, b ; were any non-zero digits printed?
- jr z, .done ; if so, we are done
-.numberEqualsZero ; if every digit of the BCD number is zero
- bit 6, b ; left or right alignment?
- jr nz, .skipRightAlignmentAdjustment
- dec hl ; if the string is right-aligned, it needs to be moved back one space
-.skipRightAlignmentAdjustment
- bit 5, b
- jr z, .skipCurrencySymbol
- ld [hl], "¥" ; currency symbol
- inc hl
-.skipCurrencySymbol
- ld [hl], "0"
- call PrintLetterDelay
- inc hl
-.done
- ret
-; 0x38f2
-
-PrintBCDDigit: ; 38f2
- and a, %00001111
- and a
- jr z, .zeroDigit
-.nonzeroDigit
- bit 7, b ; have any non-space characters been printed?
- jr z, .outputDigit
-; if bit 7 is set, then no numbers have been printed yet
- bit 5, b ; print the currency symbol?
- jr z, .skipCurrencySymbol
- ld [hl], "¥"
- inc hl
- res 5, b
-.skipCurrencySymbol
- res 7, b ; unset 7 to indicate that a nonzero digit has been reached
-.outputDigit
- add a, "0"
- ld [hli], a
- jp PrintLetterDelay
-.zeroDigit
- bit 7, b ; either printing leading zeroes or already reached a nonzero digit?
- jr z, .outputDigit ; if so, print a zero digit
- bit 6, b ; left or right alignment?
- ret nz
- ld a, " "
- ld [hli], a ; if right-aligned, "print" a space by advancing the pointer
- ret
-; 0x3917
-
-GetPartyParamLocation: ; 3917
-; Get the location of parameter a from CurPartyMon in hl
- push bc
- ld hl, PartyMons
- ld c, a
- ld b, $00
- add hl, bc
- ld a, [CurPartyMon]
- call GetPartyLocation
- pop bc
- ret
-; 3927
-
-GetPartyLocation: ; 3927
-; Add the length of a PartyMon struct to hl a times.
- ld bc, PartyMon2 - PartyMon1
- jp AddNTimes
-; 392d
-
-
-Function392d: ; 392d
- push hl
- ld a, b
- dec a
- ld b, $0
- add hl, bc
- ld hl, $5424
- ld bc, $0020
- call AddNTimes
- ld a, $14
- call GetFarHalfword
- ld b, l
- ld c, h
- pop hl
- ret
-; 3945
-
-
-UserPartyAttr: ; 3945
- push af
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_394e
- pop af
- jr BattlePartyAttr
-.asm_394e
- pop af
- jr OTPartyAttr
-; 3951
-
-
-OpponentPartyAttr: ; 3951
- push af
- ld a, [hBattleTurn]
- and a
- jr z, .asm_395a
- pop af
- jr BattlePartyAttr
-.asm_395a
- pop af
- jr OTPartyAttr
-; 395d
-
-
-BattlePartyAttr: ; 395d
-; Get attribute a from the active BattleMon's party struct.
- push bc
- ld c, a
- ld b, 0
- ld hl, PartyMons
- add hl, bc
- ld a, [CurBattleMon]
- call GetPartyLocation
- pop bc
- ret
-; 396d
-
-
-OTPartyAttr: ; 396d
-; Get attribute a from the active EnemyMon's party struct.
- push bc
- ld c, a
- ld b, 0
- ld hl, OTPartyMon1Species
- add hl, bc
- ld a, [CurOTMon]
- call GetPartyLocation
- pop bc
- ret
-; 397d
-
-
-ResetDamage: ; 397d
- xor a
- ld [CurDamage], a
- ld [CurDamage + 1], a
- ret
-; 3985
-
-SetPlayerTurn: ; 3985
- xor a
- ld [hBattleTurn], a
- ret
-; 3989
-
-SetEnemyTurn: ; 3989
- ld a, 1
- ld [hBattleTurn], a
- ret
-; 398e
-
-
-UpdateOpponentInParty: ; 398e
- ld a, [hBattleTurn]
- and a
- jr z, UpdateEnemyMonInParty
- jr UpdateBattleMonInParty
-; 3995
-
-UpdateUserInParty: ; 3995
- ld a, [hBattleTurn]
- and a
- jr z, UpdateBattleMonInParty
- jr UpdateEnemyMonInParty
-; 399c
-
-UpdateBattleMonInParty: ; 399c
-; Update level, status, current HP
-
- ld a, [CurBattleMon]
-
-Function399f: ; 399f
- ld hl, PartyMon1Level
- call GetPartyLocation
-
- ld d, h
- ld e, l
- ld hl, BattleMonLevel
- ld bc, BattleMonMaxHP - BattleMonLevel
- jp CopyBytes
-; 39b0
-
-UpdateEnemyMonInParty: ; 39b0
-; Update level, status, current HP
-
-; No wildmons.
- ld a, [IsInBattle]
- dec a
- ret z
-
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Level
- call GetPartyLocation
-
- ld d, h
- ld e, l
- ld hl, EnemyMonLevel
- ld bc, EnemyMonMaxHP - EnemyMonLevel
- jp CopyBytes
-; 39c9
-
-
-RefreshBattleHuds: ; 39c9
- call UpdateBattleHuds
- ld c, 3
- call DelayFrames
- jp WaitBGMap
-; 39d4
-
-UpdateBattleHuds: ; 39d4
- callba Function3df48
- callba Function3e036
- ret
-; 39e1
-
-
-GetBattleVar: ; 39e1
-; Preserves hl.
- push hl
- call _GetBattleVar
- pop hl
- ret
-; 39e7
-
-_GetBattleVar: ; 39e7
-; Get variable from pair a, depending on whose turn it is.
-; There are 21 variable pairs.
-
- push bc
-
-; get var pair
- ld hl, .battlevarpairs
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
-; Enemy turn uses the second byte instead.
-; This lets battle variable calls be side-neutral.
- ld a, [hBattleTurn]
- and a
- jr z, .getvar
- inc hl
-
-.getvar
-; get var id
- ld a, [hl]
- ld c, a
- ld b, 0
-
-; seek
- ld hl, .vars
- add hl, bc
- add hl, bc
-
-; get var address
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [hl]
-
- pop bc
- ret
-
-
-.battlevarpairs
- dw .substatus1 ; 0
- dw .substatus2 ; 1
- dw .substatus3 ; 2
- dw .substatus4 ; 3
- dw .substatus5 ; 4
- dw .substatus1opp ; 5
- dw .substatus2opp ; 6
- dw .substatus3opp ; 7
- dw .substatus4opp ; 8
- dw .substatus5opp ; 9
- dw .status ; a
- dw .statusopp ; b
- dw .animation ; c
- dw .effect ; d
- dw .power ; e
- dw .type ; f
- dw .curmove ; 10
- dw .lastcountermove ; 11
- dw .lastcountermoveopp ; 12
- dw .lastmove ; 13
- dw .lastmoveopp ; 14
-
- ; player enemy
-.substatus1
- db $00, $01 ; PLAYER_SUBSTATUS1, ENEMY_SUBSTATUS1
-.substatus1opp
- db $01, $00 ; ENEMY_SUBSTATUS1, PLAYER_SUBSTATUS1
-.substatus2
- db $02, $03 ; PLAYER_SUBSTATUS2, ENEMY_SUBSTATUS2
-.substatus2opp
- db $03, $02 ; ENEMY_SUBSTATUS2, PLAYER_SUBSTATUS2
-.substatus3
- db $04, $05 ; PLAYER_SUBSTATUS3, ENEMY_SUBSTATUS3
-.substatus3opp
- db $05, $04 ; ENEMY_SUBSTATUS3, PLAYER_SUBSTATUS3
-.substatus4
- db $06, $07 ; PLAYER_SUBSTATUS4, ENEMY_SUBSTATUS4
-.substatus4opp
- db $07, $06 ; ENEMY_SUBSTATUS4, PLAYER_SUBSTATUS4
-.substatus5
- db $08, $09 ; PLAYER_SUBSTATUS5, ENEMY_SUBSTATUS5
-.substatus5opp
- db $09, $08 ; ENEMY_SUBSTATUS5, PLAYER_SUBSTATUS5
-.status
- db $0a, $0b ; PLAYER_STATUS, ENEMY_STATUS
-.statusopp
- db $0b, $0a ; ENEMY_STATUS, PLAYER_STATUS
-.animation
- db $0c, $0d ; PLAYER_MOVE_ANIMATION, ENEMY_MOVE_ANIMATION
-.effect
- db $0e, $0f ; PLAYER_MOVE_EFFECT, ENEMY_MOVE_EFFECT
-.power
- db $10, $11 ; PLAYER_MOVE_POWER, ENEMY_MOVE_POWER
-.type
- db $12, $13 ; PLAYER_MOVE_TYPE, ENEMY_MOVE_TYPE
-.curmove
- db $14, $15 ; PLAYER_CUR_MOVE, ENEMY_CUR_MOVE
-.lastcountermove
- db $16, $17 ; ENEMY_LAST_COUNTER_MOVE, PLAYER_LAST_COUNTER_MOVE
-.lastcountermoveopp
- db $17, $16 ; PLAYER_LAST_COUNTER_MOVE, ENEMY_LAST_COUNTER_MOVE
-.lastmove
- db $18, $19 ; PLAYER_LAST_MOVE, ENEMY_LAST_MOVE
-.lastmoveopp
- db $19, $18 ; ENEMY_LAST_MOVE, PLAYER_LAST_MOVE
-
-.vars
- dw PlayerSubStatus1
- dw EnemySubStatus1
-
- dw PlayerSubStatus2
- dw EnemySubStatus2
-
- dw PlayerSubStatus3
- dw EnemySubStatus3
-
- dw PlayerSubStatus4
- dw EnemySubStatus4
-
- dw PlayerSubStatus5
- dw EnemySubStatus5
-
- dw BattleMonStatus
- dw EnemyMonStatus
-
- dw PlayerMoveAnimation
- dw EnemyMoveAnimation
-
- dw PlayerMoveEffect
- dw EnemyMoveEffect
-
- dw PlayerMovePower
- dw EnemyMovePower
-
- dw PlayerMoveType
- dw EnemyMoveType
-
- dw CurPlayerMove
- dw CurEnemyMove
-
- dw LastEnemyCounterMove
- dw LastPlayerCounterMove
-
- dw LastPlayerMove
- dw LastEnemyMove
-; 3a90
-
-
-Function3a90: ; 3a90
- inc hl
- ld a, [hROMBank]
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ld a, e
- ld l, a
- ld a, d
- ld h, a
- ld de, $d00c
- ld bc, $0028
- call CopyBytes
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ret
-; 3ab2
-
-
-MobileTextBorder: ; 3ab2
-; For mobile link battles only.
- ld a, [InLinkBattle]
- cp 4
- ret c
-; Draw a cell phone icon at the top right corner of the border.
- ld hl, $c5a3 ; TileMap(19,12)
- ld [hl], $5e ; cell phone top
- ld hl, $c5b7 ; TileMap(19,13)
- ld [hl], $5f ; cell phone bottom
- ret
-; 3ac3
-
-
-BattleTextBox: ; 3ac3
-; Open a textbox and print text at hl.
- push hl
- call SpeechTextBox
- call MobileTextBorder
- call Function1ad2
- call Function321c
- pop hl
- call PrintTextBoxText
- ret
-; 3ad5
-
-
-StdBattleTextBox: ; 3ad5
-; Open a textbox and print battle text at 20:hl.
-
- ld a, [hROMBank]
- push af
-
- ld a, BANK(BattleText)
- rst Bankswitch
-
- call BattleTextBox
-
- pop af
- rst Bankswitch
- ret
-; 3ae1
-
-
-Function3ae1: ; 3ae1
- ld a, $32
- rst Bankswitch
-
- ld a, [hli]
- ld [$d410], a
- ld a, [hl]
- ld [$d411], a
- ld a, $33
- rst Bankswitch
-
- ret
-; 3af0
-
-Function3af0: ; 3af0
- push hl
- push de
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, $32
- rst Bankswitch
-
- ld a, [de]
- ld [$d417], a
- inc de
- ld a, $33
- rst Bankswitch
-
- ld [hl], d
- dec hl
- ld [hl], e
- pop de
- pop hl
- ld a, [$d417]
- ret
-; 3b0c
-
-Function3b0c: ; 3b0c
- ld a, [hLCDStatCustom]
- and a
- ret z
-
- ld a, $00
- ld [Requested2bppSource], a
- ld a, $d2
- ld [Requested2bppSource + 1], a
-
- ld a, $00
- ld [Requested2bppDest], a
- ld a, $d1
- ld [Requested2bppDest + 1], a
-
- ld a, $9
- ld [Requested2bpp], a
- ret
-; 3b2a
-
-
-
-Function3b2a: ; 3b2a
- ld [$c3b8], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function8cfd6)
- rst Bankswitch
-
- ld a, [$c3b8]
- call Function8cfd6
- pop af
- rst Bankswitch
-
- ret
-; 3b3c
-
-
-Function3b3c: ; 3b3c
- ld [$c3b8], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function8d120)
- rst Bankswitch
-
- ld a, [$c3b8]
- call Function8d120
- pop af
- rst Bankswitch
-
- ret
-; 3b4e
-
-
-SoundRestart: ; 3b4e
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_SoundRestart)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call _SoundRestart
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3b6a
-
-
-UpdateSound: ; 3b6a
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_UpdateSound)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call _UpdateSound
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3b86
-
-
-_LoadMusicByte: ; 3b86
-; CurMusicByte = [a:de]
-
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- ld a, [de]
- ld [CurMusicByte], a
- ld a, BANK(LoadMusicByte)
-
- ld [hROMBank], a
- ld [MBC3RomBank], a
- ret
-; 3b97
-
-
-PlayMusic: ; 3b97
-; Play music de.
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- ld a, e
- and a
- jr z, .nomusic
-
- call _PlayMusic
- jr .end
-
-.nomusic
- call _SoundRestart
-
-.end
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3bbc
-
-
-PlayMusic2: ; 3bbc
-; Stop playing music, then play music de.
-
- push hl
- push de
- push bc
- push af
-
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlayMusic)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- push de
- ld de, MUSIC_NONE
- call _PlayMusic
- call DelayFrame
- pop de
- call _PlayMusic
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-
-; 3be3
-
-
-PlayCryHeader: ; 3be3
-; Play a cry given parameters in header de
-
- push hl
- push de
- push bc
- push af
-
-; Save current bank
- ld a, [hROMBank]
- push af
-
-; Cry headers are stuck in one bank.
- ld a, BANK(CryHeaders)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
-; Each header is 6 bytes long:
- ld hl, CryHeaders
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
-
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
-
- ld a, [hli]
- ld [CryPitch], a
- ld a, [hli]
- ld [CryEcho], a
- ld a, [hli]
- ld [CryLength], a
- ld a, [hl]
- ld [CryLength+1], a
-
- ld a, BANK(PlayCry)
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- call PlayCry
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a
-
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3c23
-
-
-PlaySFX: ; 3c23
-; Play sound effect de.
-; Sound effects are ordered by priority (lowest to highest)
-
- push hl
- push de
- push bc
- push af
-
-; Is something already playing?
- call CheckSFX
- jr nc, .play
-; Does it have priority?
- ld a, [CurSFX]
- cp e
- jr c, .quit
-
-.play
- ld a, [hROMBank]
- push af
- ld a, BANK(_PlaySFX)
- ld [hROMBank], a
- ld [MBC3RomBank], a ; bankswitch
-
- ld a, e
- ld [CurSFX], a
- call _PlaySFX
-
- pop af
- ld [hROMBank], a
- ld [MBC3RomBank], a ; bankswitch
-.quit
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3c4e
-
-
-WaitPlaySFX: ; 3c4e
- call WaitSFX
- call PlaySFX
- ret
-; 3c55
-
-
-WaitSFX: ; 3c55
-; infinite loop until sfx is done playing
-
- push hl
-
-.loop
- ; ch5 on?
- ld hl, Channel5 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch6 on?
- ld hl, Channel6 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch7 on?
- ld hl, Channel7 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
- ; ch8 on?
- ld hl, Channel8 + Channel1Flags - Channel1
- bit 0, [hl]
- jr nz, .loop
-
- pop hl
- ret
-; 3c74
-
-Function3c74: ; 3c74
- push hl
- ld hl, $c1cc
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c1fe
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c230
- bit 0, [hl]
- jr nz, .asm_3c94
- ld hl, $c262
- bit 0, [hl]
- jr nz, .asm_3c94
- pop hl
- scf
- ret
-
-.asm_3c94
- pop hl
- and a
- ret
-; 3c97
-
-MaxVolume: ; 3c97
- ld a, $77 ; max
- ld [Volume], a
- ret
-; 3c9d
-
-LowVolume: ; 3c9d
- ld a, $33 ; 40%
- ld [Volume], a
- ret
-; 3ca3
-
-VolumeOff: ; 3ca3
- xor a
- ld [Volume], a
- ret
-; 3ca8
-
-Function3ca8: ; 3ca8
- ld a, $4
- ld [MusicFade], a
- ret
-; 3cae
-
-Function3cae: ; 3cae
- ld a, $84
- ld [MusicFade], a
- ret
-; 3cb4
-
-Function3cb4: ; 3cb4
-.asm_3cb4
- and a
- ret z
- dec a
- call UpdateSound
- jr .asm_3cb4
-; 3cbc
-
-Function3cbc: ; 3cbc
- push hl
- push de
- push bc
- push af
- call Function3d97
- ld a, [CurMusic]
- cp e
- jr z, .asm_3cda
- ld a, $8
- ld [MusicFade], a
- ld a, e
- ld [MusicFadeIDLo], a
- ld a, d
- ld [MusicFadeIDHi], a
- ld a, e
- ld [CurMusic], a
-
-.asm_3cda
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3cdf
-
-Function3cdf: ; 3cdf
- push hl
- push de
- push bc
- push af
- call Function3d97
- ld a, [CurMusic]
- cp e
- jr z, .asm_3cfe
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- ld a, e
- ld [CurMusic], a
- call PlayMusic
-
-.asm_3cfe
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d03
-
-Function3d03: ; 3d03
- push hl
- push de
- push bc
- push af
- xor a
- ld [$c2c1], a
- ld de, MUSIC_BICYCLE
- ld a, [PlayerState]
- cp $1
- jr z, .asm_3d18
- call Function3d97
-.asm_3d18
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- ld a, e
- ld [CurMusic], a
- call PlayMusic
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d2f
-
-Function3d2f: ; 3d2f
- ld a, [$c2c1]
- and a
- jr z, Function3d47
- xor a
- ld [CurMusic], a
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- xor a
- ld [$c2c1], a
- ret
-; 3d47
-
-Function3d47: ; 3d47
- push hl
- push de
- push bc
- push af
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld a, [CurMusic]
- ld e, a
- ld d, 0
- call PlayMusic
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 3d62
-
-Function3d62: ; 3d62
- ld a, [PlayerState]
- cp $4
- jr z, .asm_3d7b
- cp $8
- jr z, .asm_3d7b
- ld a, [StatusFlags2]
- bit 2, a
- jr nz, .asm_3d80
-.asm_3d74
- and a
- ret
-
- ld de, $0013
- scf
- ret
-
-.asm_3d7b
- ld de, $0021
- scf
- ret
-
-.asm_3d80
- ld a, [MapGroup]
- cp $a
- jr nz, .asm_3d74
- ld a, [MapNumber]
- cp $f
- jr z, .asm_3d92
- cp $11
- jr nz, .asm_3d74
-
-.asm_3d92
- ld de, $0058
- scf
- ret
-; 3d97
-
-Function3d97: ; 3d97
- call Function3d62
- ret c
- call Function2cbd
- ret
-; 3d9f
-
-Function3d9f: ; 3d9f
- ld a, $20
- ld [$c498], a
- ld [$c49c], a
- ld a, $50
- ld [$c499], a
- ld a, $58
- ld [$c49d], a
- xor a
- ld [$c49b], a
- ld [$c49f], a
- ld a, [$c296]
- cp $64
- jr nc, .asm_3dd5
- add $1
- daa
- ld b, a
- swap a
- and $f
- add $f6
- ld [$c49a], a
- ld a, b
- and $f
- add $f6
- ld [$c49e], a
- ret
-
-.asm_3dd5
- ld a, $ff
- ld [$c49a], a
- ld [$c49e], a
- ret
-; 3dde
-
-CheckSFX: ; 3dde
-; returns carry if sfx channels are active
- ld a, [$c1cc] ; 1
- bit 0, a
- jr nz, .quit
- ld a, [$c1fe] ; 2
- bit 0, a
- jr nz, .quit
- ld a, [$c230] ; 3
- bit 0, a
- jr nz, .quit
- ld a, [$c262] ; 4
- bit 0, a
- jr nz, .quit
- and a
- ret
-.quit
- scf
- ret
-; 3dfe
-
-Function3dfe: ; 3dfe
- xor a
- ld [$c1cc], a
- ld [SoundInput], a
- ld [rNR10], a
- ld [rNR11], a
- ld [rNR12], a
- ld [rNR13], a
- ld [rNR14], a
- ret
-; 3e10
-
-
-ChannelsOff: ; 3e10
-; Quickly turn off music channels
- xor a
- ld [Channel1Flags], a
- ld [$c136], a
- ld [$c168], a
- ld [$c19a], a
- ld [SoundInput], a
- ret
-; 3e21
-
-SFXChannelsOff: ; 3e21
-; Quickly turn off sound effect channels
- xor a
- ld [$c1cc], a
- ld [$c1fe], a
- ld [$c230], a
- ld [$c262], a
- ld [SoundInput], a
- ret
-; 3e32
-
-Function3e32: ; 3e32
- cp $2
- ld [$c988], a
- ld a, l
- ld [$c986], a
- ld a, h
- ld [$c987], a
- jr nz, .asm_3e4f
- ld [$c982], a
- ld a, l
- ld [$c981], a
- ld hl, $c983
- ld a, c
- ld [hli], a
- ld a, b
- ld [hl], a
-
-.asm_3e4f
- ld hl, $c822
- set 6, [hl]
- ld a, [hROMBank]
- push af
- ld a, BANK(Function110030)
- ld [$c981], a
- rst Bankswitch
-
- jp Function110030
-; 3e60
-
-
-Function3e60: ; 3e60
- ld [$c986], a
- ld a, l
- ld [$c987], a
- ld a, h
- ld [$c988], a
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
- ld hl, $c822
- res 6, [hl]
- ld hl, $c987
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$c986]
- ret
-; 3e80
-
-
-Function3e80: ; 3e80
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1116c5)
- ld [$c981], a
- rst Bankswitch
-
- call Function1116c5
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
- ret
-; 3e93
-
-
-Timer: ; 3e93
- push af
- push bc
- push de
- push hl
-
- ld a, [$ffe9]
- and a
- jr z, .asm_3ed2
-
- xor a
- ld [rTAC], a
-
-; Turn off timer interrupt
- ld a, [rIF]
- and 1 << VBLANK | 1 << LCD_STAT | 1 << SERIAL | 1 << JOYPAD
- ld [rIF], a
-
- ld a, [$c86a]
- or a
- jr z, .asm_3ed2
-
- ld a, [$c822]
- bit 1, a
- jr nz, .asm_3eca
-
- ld a, [rSC]
- and 1 << rSC_ON
- jr nz, .asm_3eca
-
- ld a, [hROMBank]
- push af
- ld a, BANK(Function1118de)
- ld [$c981], a
- rst Bankswitch
-
- call Function1118de
-
- pop bc
- ld a, b
- ld [$c981], a
- rst Bankswitch
-
-.asm_3eca
- ld a, [rTMA]
- ld [rTIMA], a
-
- ld a, 1 << rTAC_ON | rTAC_65536_HZ
- ld [rTAC], a
-
-.asm_3ed2
- pop hl
- pop de
- pop bc
- pop af
- reti
-; 3ed7
-
-Function3ed7: ; 3ed7
- ld [$dc02], a
- ld a, [hROMBank]
- push af
- ld a, BANK(Function114243)
- rst Bankswitch
-
- call Function114243
- pop bc
- ld a, b
- rst Bankswitch
-
- ld a, [$dc02]
- ret
-; 3eea
-
-Function3eea: ; 3eea
- push hl
- push bc
- ld de, $0939
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call Function3f47
- ret
-; 3efd
-
-Function3efd: ; 3efd
- push hl
- ld hl, $c590
- ld b, $4
- ld c, $12
- call Function3f0d
- pop hl
- call PrintTextBoxText
- ret
-; 3f0d
-
-Function3f0d: ; 3f0d
- push hl
- push bc
- ld de, $0939
- add hl, de
- inc b
- inc b
- inc c
- inc c
- call Function3f35
- pop bc
- pop hl
- call TextBoxBorder
- ret
-; 3f20
-
-Function3f20: ; 3f20
- ld hl, AttrMap
- ld b, $6
- ld c, $14
- call Function3f35
- ld hl, TileMap
- ld b, $4
- ld c, $12
- call Function3f47
- ret
-; 3f35
-
-Function3f35: ; 3f35
- ld a, $6
- ld de, $0014
-.asm_3f3a
- push bc
- push hl
-.asm_3f3c
- ld [hli], a
- dec c
- jr nz, .asm_3f3c
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_3f3a
- ret
-; 3f47
-
-Function3f47: ; 3f47
- push bc
- call Function3f58
- pop bc
-.asm_3f4c
- push bc
- call Function3f68
- pop bc
- dec b
- jr nz, .asm_3f4c
- call Function3f60
- ret
-; 3f58
-
-Function3f58: ; 3f58
- ld a, $63
- ld d, $62
- ld e, $64
- jr Function3f6e
-
-Function3f60: ; 3f60
- ld a, $68
- ld d, $67
- ld e, $69
- jr Function3f6e
-
-Function3f68: ; 3f68
- ld a, $7f
- ld d, $65
- ld e, $66
-
-Function3f6e: ; 3f6e
- push hl
- ld [hl], d
- inc hl
-.asm_3f71
- ld [hli], a
- dec c
- jr nz, .asm_3f71
- ld [hl], e
- pop hl
- ld de, $0014
- add hl, de
- ret
-; 3f7c
-
-Function3f7c: ; 3f7c
- call Function1cfd
- call Function1c53
- dec b
- dec c
- call Function3eea
- ret
-; 3f88
-
-Function3f88: ; 3f88
- ld hl, $d000
- ld b, $0
-.asm_3f8d
- push bc
- ld c, $8
-.asm_3f90
- ld a, [de]
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3f90
- pop bc
- dec c
- jr nz, .asm_3f8d
- ret
-; 3f9f
-
-Function3f9f: ; 3f9f
- ld hl, $d000
-.asm_3fa2
- push bc
- ld c, $8
-.asm_3fa5
- ld a, [de]
- inc de
- inc de
- cpl
- ld [hl], $0
- inc hl
- ld [hli], a
- dec c
- jr nz, .asm_3fa5
- pop bc
- dec c
- jr nz, .asm_3fa2
- ret
-; 3fb5
-
-
-SECTION "bank1",ROMX,BANK[$1]
+SECTION "bank1", ROMX, BANK[$1]
Function4000: ; 4000
@@ -3935,253 +57,7 @@ PushOAMEnd
; 4049
-DataPointers4049: ; 4049
- dw Data408b
- dw Data409c
- dw Data408b
- dw Data40ad
- dw Data40be
- dw Data40cf
- dw Data40be
- dw Data40e0
- dw Data40f1
- dw Data4113
- dw Data40f1
- dw Data4113
- dw Data4102
- dw Data4124
- dw Data4102
- dw Data4124
- dw Data4135
- dw Data414a
- dw Data415f
- dw Data4174
- dw Data4189
- dw Data419a
- dw Data4206
- dw Data41a3
- dw Data408b
- dw Data41e4
- dw Data408b
- dw Data41f5
- dw Data423f
- dw Data4250
- dw Data4261
- dw Data426a
- dw $0000
-; 408b
-
-Data408b: ; 408b
- db 4 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $02, $02
- db $08, $08, $02, $03
-; 409c
-
-Data409c: ; 409c
- db 4 ; #
- db $00, $00, $00, $80
- db $00, $08, $00, $81
- db $08, $00, $02, $82
- db $08, $08, $02, $83
-; 40ad
-
-Data40ad: ; 40ad
- db 4 ; #
- db $00, $08, $20, $80
- db $00, $00, $20, $81
- db $08, $08, $22, $82
- db $08, $00, $22, $83
-; 40be
-
-Data40be: ; 40be
- db 4 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $02, $06
- db $08, $08, $02, $07
-; 40cf
-
-Data40cf: ; 40cf
- db 4 ; #
- db $00, $00, $00, $84
- db $00, $08, $00, $85
- db $08, $00, $02, $86
- db $08, $08, $02, $87
-; 40e0
-
-Data40e0: ; 40e0
- db 4 ; #
- db $00, $08, $20, $84
- db $00, $00, $20, $85
- db $08, $08, $22, $86
- db $08, $00, $22, $87
-; 40f1
-
-Data40f1: ; 40f1
- db 4 ; #
- db $00, $00, $00, $08
- db $00, $08, $00, $09
- db $08, $00, $02, $0a
- db $08, $08, $02, $0b
-; 4102
-
-Data4102: ; 4102
- db 4 ; #
- db $00, $08, $20, $08
- db $00, $00, $20, $09
- db $08, $08, $22, $0a
- db $08, $00, $22, $0b
-; 4113
-
-Data4113: ; 4113
- db 4 ; #
- db $00, $00, $00, $88
- db $00, $08, $00, $89
- db $08, $00, $02, $8a
- db $08, $08, $02, $8b
-; 4124
-
-Data4124: ; 4124
- db 4 ; #
- db $00, $08, $20, $88
- db $00, $00, $20, $89
- db $08, $08, $22, $8a
- db $08, $00, $22, $8b
-; 4135
-
-Data4135: ; 4135
- db 5 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $02, $02
- db $08, $08, $02, $03
- db $10, $00, $04, $fc
-; 414a
-
-Data414a: ; 414a
- db 5 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $02, $06
- db $08, $08, $02, $07
- db $f8, $00, $04, $fc
-; 415f
-
-Data415f: ; 415f
- db 5 ; #
- db $00, $00, $00, $08
- db $00, $08, $00, $09
- db $08, $00, $02, $0a
- db $08, $08, $02, $0b
- db $05, $f8, $24, $fd
-; 4174
-
-Data4174: ; 4174
- db 5 ; #
- db $00, $08, $20, $08
- db $00, $00, $20, $09
- db $08, $08, $22, $0a
- db $08, $00, $22, $0b
- db $05, $10, $04, $fd
-; 4189
-
-Data4189: ; 4189
- db 4 ; #
- db $00, $00, $04, $f8
- db $00, $08, $04, $f9
- db $08, $00, $04, $fa
- db $08, $08, $04, $fb
-; 419a
-
-Data419a: ; 419a
- db 2 ; #
- db $00, $00, $04, $fc
- db $00, $08, $24, $fc
-; 41a3
-
-Data41a3: ; 41a3
- db 16 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $00, $02
- db $08, $08, $00, $03
- db $10, $00, $00, $04
- db $10, $08, $00, $05
- db $18, $00, $00, $06
- db $18, $08, $00, $07
- db $00, $18, $20, $00
- db $00, $10, $20, $01
- db $08, $18, $20, $02
- db $08, $10, $20, $03
- db $10, $18, $20, $04
- db $10, $10, $20, $05
- db $18, $18, $20, $06
- db $18, $10, $20, $07
-; 41e4
-
-Data41e4: ; 41e4
- db 4 ; #
- db $00, $00, $00, $04
- db $00, $08, $00, $05
- db $08, $00, $00, $06
- db $08, $08, $00, $07
-; 41f5
-
-Data41f5: ; 41f5
- db 4 ; #
- db $00, $08, $20, $04
- db $00, $00, $20, $05
- db $08, $08, $20, $06
- db $08, $00, $20, $07
-; 4206
-
-Data4206: ; 4206
- db 14 ; #
- db $00, $00, $00, $00
- db $00, $08, $00, $01
- db $08, $00, $00, $04
- db $08, $08, $00, $05
- db $10, $08, $00, $07
- db $18, $08, $00, $0a
- db $00, $18, $00, $03
- db $00, $10, $00, $02
- db $08, $18, $20, $02
- db $08, $10, $00, $06
- db $10, $18, $00, $09
- db $10, $10, $00, $08
- db $18, $18, $20, $04
- db $18, $10, $00, $0b
-; 423f
-
-Data423f: ; 423f
- db 4 ; #
- db $00, $00, $04, $fe
- db $00, $08, $04, $fe
- db $08, $00, $04, $fe
- db $08, $08, $04, $fe
-; 4250
-
-Data4250: ; 4250
- db 4 ; #
- db $00, $00, $04, $ff
- db $00, $08, $04, $ff
- db $08, $00, $04, $ff
- db $08, $08, $04, $ff
-; 4261
-
-Data4261: ; 4261
- db 2 ; #
- db $08, $00, $04, $fe
- db $08, $08, $24, $fe
-; 426a
-
-Data426a: ; 426a
- db 2 ; #
- db $09, $ff, $04, $fe
- db $09, $09, $24, $fe
-; 4273
+INCLUDE "engine/facings.asm"
Data4273: ; 4273
@@ -4420,7 +296,7 @@ Pointers445f: ; 445f
; 44a3
Function44a3: ; 44a3
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $ff
ret
@@ -4429,14 +305,14 @@ Function44a3: ; 44a3
Function44aa: ; 44aa
call GetSpriteDirection
or $0
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 44b5
Function44b5: ; 44b5
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
and $1
@@ -4462,7 +338,7 @@ Function44c1: ; 44c1
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4486,7 +362,7 @@ Function44e4: ; 44e4
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4509,7 +385,7 @@ Function4508: ; 4508
call GetSpriteDirection
or $0
or d
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4521,7 +397,7 @@ Function4529: ; 4529
add hl, bc
ld a, [hl]
or $0
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
@@ -4574,28 +450,28 @@ Function456e: ; 456e
rrca
rrca
add $10
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 457b
Function457b: ; 457b
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $15
ret
; 4582
Function4582: ; 4582
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $14
ret
; 4589
Function4589: ; 4589
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $17
ret
@@ -4610,14 +486,14 @@ Function4590: ; 4590
ld [hl], a
and $8
jr z, Function45a4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $4
ret
; 45a4
Function45a4: ; 45a4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $0
ret
@@ -4633,14 +509,14 @@ Function45ab: ; 45ab
rrca
rrca
add $18
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
ret
; 45be
Function45be: ; 45be
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $16
ret
@@ -4656,7 +532,7 @@ Function45c5: ; 45c5
ld d, $16
.asm_45d4
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], d
ret
@@ -4667,13 +543,13 @@ Function45da: ; 45da
add hl, bc
inc [hl]
ld a, [hl]
- ld hl, $000d
+
+ ld hl, OBJECT_FACING
add hl, bc
- and $2
+ and 2
ld a, $1c
jr z, .asm_45eb
inc a
-
.asm_45eb
ld [hl], a
ret
@@ -4684,9 +560,9 @@ Function45ed: ; 45ed
add hl, bc
inc [hl]
ld a, [hl]
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
- and $4
+ and 4
ld a, $1e
jr z, .asm_45fe
inc a
@@ -4697,50 +573,58 @@ Function45ed: ; 45ed
; 4600
Function4600: ; 4600
- ld hl, $0010
+
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, $0012
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
- ld hl, $0011
+
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, $0013
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
- ld hl, $000e
+
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
- ld hl, $000f
+ ld hl, OBJECT_NEXT_TILE
add hl, bc
ld [hl], a
+
call Function4661
- ld hl, $000e
+ ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
+
call Function4679
ret
; 462a
Function462a: ; 462a
- ld hl, $0012
+
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, $0010
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
- ld hl, $0013
+
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, $0011
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
+
ret
; 463f
Function463f: ; 463f
- ld hl, $0005
+ ld hl, OBJECT_FLAGS
add hl, bc
bit 3, [hl]
jr z, .asm_464f
@@ -4824,53 +708,65 @@ Function4690: ; 4690
; 46a6
Function46a6: ; 46a6
- call Function46e9
- ld hl, $000a
+
+ call GetStepVector
+
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
+
ld a, d
call Function4730
- ld hl, $0012
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
add [hl]
- ld hl, $0010
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
ld d, a
+
ld a, e
call Function4730
- ld hl, $0013
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
add [hl]
- ld hl, $0011
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
ld e, a
+
push bc
call Function2a3c
pop bc
+
ld hl, $000e
add hl, bc
ld [hl], a
+
ret
; 46d7
Function46d7: ; 46d7
- call Function46e9
- ld hl, $0017
+
+ call GetStepVector
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
add d
ld [hl], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
add e
ld [hl], a
+
ret
; 46e9
-Function46e9: ; 46e9
+GetStepVector: ; 46e9
+; Return (x, y, duration, speed) in (d, e, a, h).
ld hl, $0007
add hl, bc
ld a, [hl]
@@ -4879,7 +775,7 @@ Function46e9: ; 46e9
add a
ld l, a
ld h, 0
- ld de, .Steps
+ ld de, StepVectors
add hl, de
ld d, [hl]
inc hl
@@ -4890,23 +786,23 @@ Function46e9: ; 46e9
ret
; 4700
-.Steps ; 4700
- ; x, y, duration, speed
+StepVectors: ; 4700
+; x, y, duration, speed
; slow
- db 0, 1, $10, $01
- db 0, -1, $10, $01
- db -1, 0, $10, $01
- db 1, 0, $10, $01
+ db 0, 1, 16, 1
+ db 0, -1, 16, 1
+ db -1, 0, 16, 1
+ db 1, 0, 16, 1
; normal
- db 0, 2, $08, $02
- db 0, -2, $08, $02
- db -2, 0, $08, $02
- db 2, 0, $08, $02
+ db 0, 2, 8, 2
+ db 0, -2, 8, 2
+ db -2, 0, 8, 2
+ db 2, 0, 8, 2
; fast
- db 0, 4, $04, $04
- db 0, -4, $04, $04
- db -4, 0, $04, $04
- db 4, 0, $04, $04
+ db 0, 4, 4, 4
+ db 0, -4, 4, 4
+ db -4, 0, 4, 4
+ db 4, 0, 4, 4
; 4730
Function4730: ; 4730
@@ -5384,7 +1280,7 @@ Function499c: ; 499c
add hl, bc
ld a, [hl]
ld a, $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0009
@@ -5437,13 +1333,13 @@ Function49e5: ; 49e5
ld hl, $000b
add hl, bc
ld [hl], $7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
inc a
add a
add $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5458,10 +1354,10 @@ Function49e5: ; 49e5
ld d, $c
.asm_4a0f
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], d
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5476,13 +1372,13 @@ Function4a21: ; 4a21
ld hl, $000b
add hl, bc
ld [hl], $8
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $f0
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5497,12 +1393,12 @@ Function4a46: ; 4a46
ld hl, $000b
add hl, bc
ld [hl], $e
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
inc a
add a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5517,10 +1413,10 @@ Function4a46: ; 4a46
ld d, [hl]
inc hl
ld e, [hl]
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld [hl], d
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], e
ld hl, $0009
@@ -5543,11 +1439,11 @@ Function4a89: ; 4a89
ld hl, $000b
add hl, bc
ld [hl], $f
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, de
ld a, [hl]
add $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0009
@@ -5582,7 +1478,7 @@ Function4abc: ; 4abc
add hl, bc
ld a, [hl]
call Function4ade
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], e
ld hl, $001e
@@ -5656,7 +1552,7 @@ Function4b26: ; 4b26
; 4b2d
Function4b2d: ; 4b2d
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, $0007
@@ -5701,7 +1597,7 @@ Pointers4b45: ; 4b45
; 4b79
Function4b79: ; 4b79
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5720,7 +1616,7 @@ Function4b86: ; 4b86
Function4b8d: ; 4b8d
call Function46d7
call UpdateJumpPosition
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5736,7 +1632,7 @@ Function4b8d: ; 4b8d
Function4ba9: ; 4ba9
call Function46d7
call UpdateJumpPosition
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5765,7 +1661,7 @@ Function4bca: ; 4bca
Function4bd2: ; 4bd2
call UpdateJumpPosition
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5791,7 +1687,7 @@ Function4bf2: ; 4bf2
Function4bfd: ; 4bfd
call UpdateJumpPosition
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5816,7 +1712,7 @@ Function4c23: ; 4c23
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5827,7 +1723,7 @@ Function4c32: ; 4c32
ld hl, $000b
add hl, bc
ld [hl], $4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5842,7 +1738,7 @@ Function4c42: ; 4c42
ld hl, $001f
add hl, bc
ld [hl], $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
ld hl, $0005
@@ -5864,10 +1760,10 @@ Function4c5d: ; 4c5d
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5895,7 +1791,7 @@ Function4c9a: ; 4c9a
ld hl, $000b
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5903,7 +1799,7 @@ Function4c9a: ; 4c9a
; 4caa
Function4caa: ; 4caa
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5918,7 +1814,7 @@ Function4cb3: ; 4cb3
ld hl, $001f
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5937,10 +1833,10 @@ Function4cc9: ; 4cc9
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5949,7 +1845,7 @@ Function4cc9: ; 4cc9
; 4ceb
Function4ceb: ; 4ceb
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5960,7 +1856,7 @@ Function4cf5: ; 4cf5
ld hl, $000b
add hl, bc
ld [hl], $4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -5970,7 +1866,7 @@ Function4d01: ; 4d01
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -5991,7 +1887,7 @@ Function4d1f: ; 4d1f
ld hl, $000b
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -5999,7 +1895,7 @@ Function4d1f: ; 4d1f
; 4d2e
Function4d2e: ; 4d2e
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6012,7 +1908,7 @@ Function4d2e: ; 4d2e
ld hl, $001f
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
@@ -6028,10 +1924,10 @@ Function4d4f: ; 4d4f
call Sine
ld a, h
sub $60
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6043,7 +1939,7 @@ Function4d6b: ; 4d6b
ld hl, $000c
add hl, bc
ld [hl], $0
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -6059,10 +1955,10 @@ Function4d7e: ; 4d7e
; 4d85
Function4d85: ; 4d85
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $8
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
call Function47a2
@@ -6070,16 +1966,16 @@ Function4d85: ; 4d85
; 4d94
Function4d94: ; 4d94
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld a, [hl]
xor 1
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $0
ld hl, $0009
@@ -6094,7 +1990,7 @@ Function4daf: ; 4daf
; 4db5
Function4db5: ; 4db5
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and $1
@@ -6110,7 +2006,7 @@ Function4db5: ; 4db5
; 4dc8
Function4dc8: ; 4dc8
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and $1
@@ -6129,7 +2025,7 @@ Function4ddd: ; 4ddd
ld hl, $0007
add hl, bc
ld [hl], $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6143,7 +2039,7 @@ Function4df0: ; 4df0
ld hl, $0007
add hl, bc
ld [hl], $ff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6151,7 +2047,7 @@ Function4df0: ; 4df0
; 4dff
Function4dff: ; 4dff
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6188,7 +2084,7 @@ Function4e21: ; 4e21
Function4e2b: ; 4e2b
call Function4fb2
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6204,7 +2100,7 @@ Function4e2b: ; 4e2b
Function4e47: ; 4e47
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6228,7 +2124,7 @@ Function4e5d: ; 4e5d
Function4e65: ; 4e65
call Function4738
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6260,7 +2156,7 @@ Function4e8e: ; 4e8e
add hl, bc
ld a, [hl]
ld [hl], $2
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $2
call Function47a2
@@ -6268,7 +2164,7 @@ Function4e8e: ; 4e8e
; 4ea4
Function4ea4: ; 4ea4
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6283,7 +2179,7 @@ Function4ead: ; 4ead
ld hl, $0008
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $2
call Function47a2
@@ -6291,7 +2187,7 @@ Function4ead: ; 4ead
; 4ec0
Function4ec0: ; 4ec0
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6303,7 +2199,7 @@ Function4ec0: ; 4ec0
Function4ecd: ; 4ecd
call Function46d7
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
@@ -6344,19 +2240,19 @@ Function4f04: ; 4f04
ld a, [hl]
and a
jr z, .asm_4f30
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, de
ld a, [hl]
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld [hl], a
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, de
ld a, [hl]
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld a, [hl]
and a
@@ -6390,7 +2286,7 @@ Function4f43: ; 4f43
ld a, [$d14f]
sub d
ld [$d14f], a
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
jr z, .asm_4f68
@@ -6442,18 +2338,18 @@ Function4f8a: ; 4f8a
ld hl, $000b
add hl, bc
ld [hl], $10
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
call Function47a2
; 4f99
Function4f99: ; 4f99
- ld hl, $000a
+ ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], $60
ld hl, $000c
@@ -6482,7 +2378,7 @@ Function4fb3: ; 4fb3
ld de, .y
add hl, de
ld a, [hl]
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
ret
@@ -6493,7 +2389,7 @@ Function4fb3: ; 4fb3
; 4fd5
UpdateJumpPosition: ; 4fd5
- call Function46e9
+ call GetStepVector
ld a, h
ld hl, $001f
add hl, bc
@@ -6506,7 +2402,7 @@ UpdateJumpPosition: ; 4fd5
ld hl, .y
add hl, de
ld a, [hl]
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], a
ret
@@ -6958,7 +2854,7 @@ Function5673: ; 5673
; 5680
Function5680: ; 5680
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld [hl], $ff
scf
@@ -7020,10 +2916,10 @@ Function56a3: ; 56a3
Function56cd: ; 56cd
ld a, [$d14c]
ld d, a
- ld hl, $0019
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
ld a, [hl]
- ld hl, $0017
+ ld hl, OBJECT_SPRITE_X
add hl, bc
add [hl]
add d
@@ -7052,10 +2948,10 @@ Function56cd: ; 56cd
ld [$ffbd], a
ld a, [$d14d]
ld e, a
- ld hl, $001a
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld a, [hl]
- ld hl, $0018
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
add [hl]
add e
@@ -7499,16 +3395,19 @@ Function5958: ; 5958
ld e, a
ld bc, $d4d6
ld a, $d
+
.asm_5968
push af
call Function1af1
jr z, .asm_597c
- ld hl, $0017
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
add d
ld [hl], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
add e
@@ -7522,6 +3421,7 @@ Function5958: ; 5958
pop af
dec a
jr nz, .asm_5968
+
xor a
ld [$d14c], a
ld [$d14d], a
@@ -7545,41 +3445,45 @@ Function5991: ; 5991
Function59a4: ; 59a4
xor a
ld hl, $c2eb
- ld bc, $000d
+ ld bc, 13
call ByteFill
+
ld d, 0
- ld bc, $d4d6
+ ld bc, ObjectStructs
ld hl, $c2eb
-.asm_59b6
+.loop
push hl
call Function1af1
- jr z, .asm_59d9
- ld hl, $000d
+ jr z, .skip
+
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
- cp $ff
- jr z, .asm_59d9
+ cp -1
+ jr z, .skip
+
+; Define the sprite priority.
ld e, $10
- ld hl, $0005
+ ld hl, OBJECT_FLAGS
add hl, bc
bit 0, [hl]
- jr nz, .asm_59e2
+ jr nz, .add
ld e, $20
bit 1, [hl]
- jr z, .asm_59e2
+ jr z, .add
ld e, $30
- jr .asm_59e2
+ jr .add
-.asm_59d9
- ld hl, $0028
+.skip
+ ld hl, ObjectStruct2 - ObjectStruct1
add hl, bc
ld b, h
ld c, l
pop hl
- jr .asm_59ec
+ jr .next
-.asm_59e2
- ld hl, $0028
+.add
+ ld hl, ObjectStruct2 - ObjectStruct1
add hl, bc
ld b, h
ld c, l
@@ -7588,23 +3492,24 @@ Function59a4: ; 59a4
or e
ld [hli], a
-.asm_59ec
+.next
inc d
ld a, d
cp $d
- jr nz, .asm_59b6
+ jr nz, .loop
ret
; 59f3
Function59f3: ; 59f3
ld hl, $c2eb
-.asm_59f6
+.next
ld a, [hli]
ld d, a
and $f0
ret z
cp c
- jr nz, .asm_59f6
+ jr nz, .next
+
push bc
push hl
ld a, d
@@ -7613,83 +3518,92 @@ Function59f3: ; 59f3
call Function5a0d
pop hl
pop bc
- jr .asm_59f6
+ jr .next
; 5a0d
Function5a0d: ; 5a0d
- ld hl, $0002
+ ld hl, OBJECT_SPRITE
add hl, bc
ld a, [hl]
and $7f
ld [$ffc1], a
+
xor a
bit 7, [hl]
jr nz, .asm_5a1d
- or $8
-
+ or 8
.asm_5a1d
- ld hl, $0005
+
+ ld hl, OBJECT_FLAGS
add hl, bc
ld e, [hl]
bit 7, e
jr z, .asm_5a28
or $80
-
.asm_5a28
+
bit 4, e
jr z, .asm_5a2e
or $10
-
.asm_5a2e
- ld hl, $0006
+
+ ld hl, OBJECT_PALETTE
add hl, bc
ld d, a
ld a, [hl]
- and $7
+ and 7
or d
ld d, a
+
xor a
bit 3, e
jr z, .asm_5a3f
or $80
-
.asm_5a3f
ld [$ffc2], a
- ld hl, $0017
+
+ ld hl, OBJECT_SPRITE_X
add hl, bc
ld a, [hl]
- ld hl, $0019
+
+ ld hl, OBJECT_SPRITE_X_OFFSET
add hl, bc
add [hl]
- add $8
+
+ add 8
+
ld e, a
ld a, [$d14c]
add e
ld [$ffbf], a
- ld hl, $0018
+
+ ld hl, OBJECT_SPRITE_Y
add hl, bc
ld a, [hl]
- ld hl, $001a
+
+ ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
add [hl]
- add $c
+
+ add 12
+
ld e, a
ld a, [$d14d]
add e
ld [$ffc0], a
- ld hl, $000d
+ ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
- cp $ff
- jp z, .asm_5abe
- cp $20
- jp nc, .asm_5abe
+ cp -1
+ jp z, .done
+ cp NUM_FACINGS
+ jp nc, .done
ld l, a
ld h, 0
add hl, hl
- ld bc, DataPointers4049
+ ld bc, Facings
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -7704,19 +3618,24 @@ Function5a0d: ; 5a0d
cp SpritesEnd % $100
jr nc, .full
-.loop
+.addsprite
ld a, [$ffc0]
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld a, [$ffbf]
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld e, [hl]
inc hl
+
ld a, [$ffc1]
bit 2, e
jr z, .asm_5aa3
@@ -7724,8 +3643,10 @@ Function5a0d: ; 5a0d
.asm_5aa3
add [hl]
inc hl
+
ld [bc], a
inc c
+
ld a, e
bit 1, a
jr z, .asm_5aaf
@@ -7736,15 +3657,16 @@ Function5a0d: ; 5a0d
or d
ld [bc], a
inc c
+
ld a, [$ffbe]
dec a
ld [$ffbe], a
- jr nz, .loop
+ jr nz, .addsprite
ld a, c
ld [$ffbd], a
-.asm_5abe
+.done
xor a
ret
@@ -7766,21 +3688,22 @@ Function5ac2: ; 5ac2
; 5ace
.Addresses ; 5ace
- dw $d4d6
- dw $d4fe
- dw $d526
- dw $d54e
- dw $d576
- dw $d59e
- dw $d5c6
- dw $d5ee
- dw $d616
- dw $d63e
- dw $d666
- dw $d68e
- dw $d6b6
+ dw PlayerStruct
+ dw ObjectStruct1
+ dw ObjectStruct2
+ dw ObjectStruct3
+ dw ObjectStruct4
+ dw ObjectStruct5
+ dw ObjectStruct6
+ dw ObjectStruct7
+ dw ObjectStruct8
+ dw ObjectStruct9
+ dw ObjectStruct10
+ dw ObjectStruct11
+ dw ObjectStruct12
; 5ae8
+
Function5ae8: ; 5ae8
ld de, MUSIC_NONE
call PlayMusic
@@ -8227,7 +4150,7 @@ Function5df0: ; 5df0
Function5e34: ; 5e34
.asm_5e34
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
ld hl, hJoyPressed
bit 0, [hl]
jr nz, .asm_5e47
@@ -8856,7 +4779,7 @@ Function627b: ; 627b
ld a, [$cf63]
bit 7, a
jr nz, .asm_6290
- call Function62a3
+ call TitleScreenScene
callba Function10eea7
call DelayFrame
and a
@@ -8879,10 +4802,10 @@ Function6292: ; 6292
ret
; 62a3
-Function62a3: ; 62a3
+TitleScreenScene: ; 62a3
ld e, a
ld d, 0
- ld hl, .data_62af
+ ld hl, .scenes
add hl, de
add hl, de
ld a, [hli]
@@ -8891,11 +4814,11 @@ Function62a3: ; 62a3
jp [hl]
; 62af
-.data_62af
+.scenes
dw TitleScreenEntrance
- dw Function62f6
- dw Function6304
- dw Function6375
+ dw TitleScreenTimer
+ dw TitleScreenMain
+ dw TitleScreenEnd
; 62b7
Function62b7: ; 62b7
@@ -8921,14 +4844,14 @@ TitleScreenEntrance: ; 62bc
ld bc, 8 * 10 ; logo height
call ByteFill
-; Alternate signage for each line's position vector.
+; Reversed signage for every other line's position.
; This is responsible for the interlaced effect.
ld a, e
xor $ff
inc a
ld b, 8 * 10 / 2 ; logo height / 2
- ld hl, $d101
+ ld hl, LYOverrides + 1
.loop
ld [hli], a
inc hl
@@ -8955,103 +4878,138 @@ TitleScreenEntrance: ; 62bc
; 62f6
-Function62f6: ; 62f6
+TitleScreenTimer: ; 62f6
+
+; Next scene
ld hl, $cf63
inc [hl]
+
+; Start a timer
ld hl, $cf65
- ld de, $1140
+ ld de, $1140 ; 73.6 seconds
ld [hl], e
inc hl
ld [hl], d
ret
; 6304
-Function6304: ; 6304
+TitleScreenMain: ; 6304
+
+; Run the timer down.
ld hl, $cf65
ld e, [hl]
inc hl
ld d, [hl]
ld a, e
or d
- jr z, .asm_6355
+ jr z, .end
+
dec de
ld [hl], d
dec hl
ld [hl], e
- call GetJoypadPublic
+
+; Save data can be deleted by pressing Up + B + Select.
+ call GetJoypad
ld hl, hJoyDown
ld a, [hl]
- and $46
- cp $46
- jr z, .asm_634a
+ and D_UP + B_BUTTON + SELECT
+ cp D_UP + B_BUTTON + SELECT
+ jr z, .delete_save_data
+
+; To bring up the clock reset dialog:
+
+; Hold Down + B + Select to initiate the sequence.
ld a, [$ffeb]
cp $34
- jr z, .asm_6332
+ jr z, .check_clock_reset
+
ld a, [hl]
- and $86
- cp $86
- jr nz, .asm_6340
+ and D_DOWN + B_BUTTON + SELECT
+ cp D_DOWN + B_BUTTON + SELECT
+ jr nz, .check_start
+
ld a, $34
ld [$ffeb], a
- jr .asm_6340
+ jr .check_start
+
+; Keep Select pressed, and hold Left + Up.
+; Then let go of Select.
+.check_clock_reset
+ bit 2, [hl] ; SELECT
+ jr nz, .check_start
-.asm_6332
- bit 2, [hl]
- jr nz, .asm_6340
xor a
ld [$ffeb], a
+
ld a, [hl]
- and $60
- cp $60
- jr z, .asm_636a
+ and D_LEFT + D_UP
+ cp D_LEFT + D_UP
+ jr z, .clock_reset
-.asm_6340
+; Press Start or A to start the game.
+.check_start
ld a, [hl]
- and $9
- jr nz, .asm_6346
+ and START | A_BUTTON
+ jr nz, .continue
ret
-.asm_6346
- ld a, $0
- jr .asm_634c
+.continue
+ ld a, 0
+ jr .done
-.asm_634a
- ld a, $1
+.delete_save_data
+ ld a, 1
-.asm_634c
+.done
ld [$cf64], a
+
+; Return to the intro sequence.
ld hl, $cf63
set 7, [hl]
ret
-.asm_6355
+.end
+; Next scene
ld hl, $cf63
inc [hl]
+
+; Fade out the title screen music
xor a
ld [MusicFadeIDLo], a
ld [MusicFadeIDHi], a
ld hl, MusicFade
- ld [hl], $8
+ ld [hl], 8 ; 1 second
+
ld hl, $cf65
inc [hl]
ret
-.asm_636a
- ld a, $4
+.clock_reset
+ ld a, 4
ld [$cf64], a
+
+; Return to the intro sequence.
ld hl, $cf63
set 7, [hl]
ret
; 6375
-Function6375: ; 6375
+TitleScreenEnd: ; 6375
+
+; Wait until the music is done fading.
+
ld hl, $cf65
inc [hl]
+
ld a, [MusicFade]
and a
ret nz
- ld a, $2
+
+ ld a, 2
ld [$cf64], a
+
+; Back to the intro.
ld hl, $cf63
set 7, [hl]
ret
@@ -9348,7 +5306,7 @@ Function6520: ; 6520
Function65b5: ; 65b5
ld hl, UnknownText_0x6675
call PrintText
- call Function1dcf
+ call YesNoBox
jp c, Function6520
ld hl, UnknownText_0x667a
call PrintText
@@ -9367,7 +5325,7 @@ Function65d3: ; 65d3
push hl
ld hl, UnknownText_0x667f
call PrintText
- call Function1dcf
+ call YesNoBox
pop hl
ret c
ld bc, $fffc
@@ -9447,32 +5405,32 @@ Function65d3: ; 65d3
; 666b
UnknownText_0x666b: ; 666b
- text_jump UnknownText_0x1c5660, BANK(UnknownText_0x1c5660)
+ text_jump UnknownText_0x1c5660
db "@"
; 6670
UnknownText_0x6670: ; 6670
- text_jump UnknownText_0x1c5678, BANK(UnknownText_0x1c5678)
+ text_jump UnknownText_0x1c5678
db "@"
; 6675
UnknownText_0x6675: ; 6675
- text_jump UnknownText_0x1c5699, BANK(UnknownText_0x1c5699)
+ text_jump UnknownText_0x1c5699
db "@"
; 667a
UnknownText_0x667a: ; 667a
- text_jump UnknownText_0x1c56af, BANK(UnknownText_0x1c56af)
+ text_jump UnknownText_0x1c56af
db "@"
; 667f
UnknownText_0x667f: ; 667f
- text_jump UnknownText_0x1c56c9, BANK(UnknownText_0x1c56c9)
+ text_jump UnknownText_0x1c56c9
db "@"
; 6684
UnknownText_0x6684: ; 6684
- text_jump UnknownText_0x1c5740, BANK(UnknownText_0x1c5740)
+ text_jump UnknownText_0x1c5740
start_asm
; 6689
@@ -9486,12 +5444,12 @@ UnknownText_0x6684: ; 6684
; 6695
UnknownText_0x6695: ; 6695
- text_jump UnknownText_0x1c574e, BANK(UnknownText_0x1c574e)
+ text_jump UnknownText_0x1c574e
db "@"
; 669a
UnknownText_0x669a: ; 669a
- text_jump UnknownText_0x1c5772, BANK(UnknownText_0x1c5772)
+ text_jump UnknownText_0x1c5772
db "@"
; 669f
@@ -10844,7 +6802,7 @@ Function747a: ; 747a
; 747b
-SECTION "bank2",ROMX,BANK[$2]
+SECTION "bank2", ROMX, BANK[$2]
Function8000: ; 8000
call Function2ed3
@@ -11817,7 +7775,7 @@ PredefPointers: ; 856b
dwb PrintMonTypes, BANK(PrintMonTypes)
dwb GetUnownLetter, BANK(GetUnownLetter)
dwb Functioncbcdd, BANK(Functioncbcdd)
- dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb Predef2F, BANK(Predef2F)
dwb Function9853, BANK(Function9853) ; $30
dwb Function864c, BANK(Function864c)
dwb Function91d11, BANK(Function91d11)
@@ -11825,9 +7783,9 @@ PredefPointers: ; 856b
dwb Function8c20f, BANK(Function8c20f)
dwb Function8c000, BANK(Function8c000)
dwb Function8c000, BANK(Function8c000)
- dwb Functioncc0d6, BANK(Functioncc0d6)
- dwb Functioncc0d5, BANK(Functioncc0d5) ; $38
- dwb Functioncc0d5, BANK(Functioncc0d5)
+ dwb PlayBattleAnim, BANK(PlayBattleAnim)
+ dwb Predef38, BANK(Predef38) ; $38
+ dwb Predef39, BANK(Predef39)
dwb Functionfd1d0, BANK(Functionfd1d0)
dwb PartyMonItemName, BANK(PartyMonItemName)
dwb Function51077, BANK(Function51077)
@@ -11851,7 +7809,7 @@ PredefPointers: ; 856b
INCLUDE "engine/color.asm"
-SECTION "bank3",ROMX,BANK[$3]
+SECTION "bank3", ROMX, BANK[$3]
Functionc000: ; c000
ld a, [TimeOfDay]
@@ -12037,7 +7995,7 @@ SpecialsPointers: ; c029
dbw BANK(Function102142), Function102142
dbw BANK(Function4989a), Function4989a
dbw BANK(Function49bf9), Function49bf9
- dbw BANK(Function4f0bc), Function4f0bc
+ dbw BANK(SpecialPokeSeer), SpecialPokeSeer
dbw BANK(Function8af6b), Function8af6b
dbw BANK(Function8afd4), Function8afd4
dbw BANK(SpecialDratini),SpecialDratini
@@ -12230,7 +8188,7 @@ Functionc309: ; c309
UnknownText_0xc345: ; 0xc345
; received item
- text_jump UnknownText_0x1bd3be, BANK(UnknownText_0x1bd3be)
+ text_jump UnknownText_0x1bd3be
db "@"
; 0xc34a
@@ -12327,13 +8285,13 @@ Functionc3ae: ; c3ae
UnknownText_0xc3d1: ; 0xc3d1
; You have no coins.
- text_jump UnknownText_0x1bd3d7, BANK(UnknownText_0x1bd3d7)
+ text_jump UnknownText_0x1bd3d7
db "@"
; 0xc3d6
UnknownText_0xc3d6: ; 0xc3d6
; You don't have a COIN CASE.
- text_jump UnknownText_0x1bd3eb, BANK(UnknownText_0x1bd3eb)
+ text_jump UnknownText_0x1bd3eb
db "@"
; 0xc3db
@@ -13040,7 +8998,7 @@ Functionc779: ; c779
; c780
UnknownText_0xc780: ; 0xc780
- text_jump UnknownText_0x1c05c8, BANK(UnknownText_0x1c05c8)
+ text_jump UnknownText_0x1c05c8
db "@"
; 0xc785
@@ -13094,7 +9052,7 @@ Functionc7bb: ; c7bb (3:47bb)
ret
UnknownText_0xc7c4: ; 0xc7c4
- text_jump UnknownText_0x1c05dd, BANK(UnknownText_0x1c05dd)
+ text_jump UnknownText_0x1c05dd
db $50
; 0xc7c9
@@ -13135,10 +9093,10 @@ Unknown_c7fe: ; c7fe
INCBIN "baserom.gbc",$c7fe,$c802 - $c7fe
UnknownScript_0xc802: ; 0xc802
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xc7c4
reloadmappart
- 3callasm BANK(Functionc810), Functionc810
+ 3callasm Functionc810
loadmovesprites
end
; 0xc810
@@ -13239,13 +9197,13 @@ UnknownScript_0xc8e6: ; 0xc8e6
reloadmappart
special $0035
2writetext UnknownText_0xc8f3
- 3callasm $23, $47e1
+ 3callasm Function8c7e1
loadmovesprites
end
; 0xc8f3
UnknownText_0xc8f3: ; 0xc8f3
- text_jump UnknownText_0x1c0609, BANK(UnknownText_0x1c0609)
+ text_jump UnknownText_0x1c0609
start_asm
; 0xc8f8
@@ -13348,7 +9306,7 @@ UsedSurfScript: ; c986
closetext
loadmovesprites
- 3callasm BANK(Functionc9a2), Functionc9a2 ; empty function
+ 3callasm Functionc9a2 ; empty function
copybytetovar Buffer2
writevarcode VAR_MOVEMENT
@@ -13573,17 +9531,17 @@ Functionca9d: ; ca9d
UnknownScript_0xcaa3: ; 0xcaa3
reloadmappart
- 3callasm BANK(HideSprites), HideSprites
+ 3callasm HideSprites
special $0035
- 3callasm $23, $4aed
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3callasm Function8caed
+ 3call UnknownScript_0x122c1
special $0000
- 3callasm $05, $54f1
+ 3callasm Function154f1
writecode $8, $0
newloadmap $fc
- 3callasm $23, $4b33
+ 3callasm Function8cb33
special $003b
- 3callasm BANK(Functioncacb), Functioncacb
+ 3callasm Functioncacb
end
; 0xcacb
@@ -13642,14 +9600,14 @@ UnknownScript_0xcb1c: ; 0xcb1c
special $0035
UnknownScript_0xcb20: ; 0xcb20
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcb51
closetext
loadmovesprites
playsound SFX_BUBBLEBEAM
.loop
applymovement $0, WaterfallStep
- 3callasm BANK(Functioncb38), Functioncb38
+ 3callasm Functioncb38
iffalse .loop
end
; 0xcb38
@@ -13672,7 +9630,7 @@ WaterfallStep: ; cb4f
; cb51
UnknownText_0xcb51: ; 0xcb51
- text_jump UnknownText_0x1c068e, BANK(UnknownText_0x1c068e)
+ text_jump UnknownText_0x1c068e
db "@"
; 0xcb56
@@ -13704,7 +9662,7 @@ UnknownScript_0xcb7e: ; 0xcb7e
; 0xcb81
UnknownText_0xcb81: ; 0xcb81
- text_jump UnknownText_0x1c06a3, BANK(UnknownText_0x1c06a3)
+ text_jump UnknownText_0x1c06a3
db "@"
; 0xcb86
@@ -13718,7 +9676,7 @@ UnknownScript_0xcb86: ; 0xcb86
; 0xcb90
UnknownText_0xcb90: ; 0xcb90
- text_jump UnknownText_0x1c06bf, BANK(UnknownText_0x1c06bf)
+ text_jump UnknownText_0x1c06bf
db "@"
; 0xcb95
@@ -13812,19 +9770,19 @@ Functioncc06: ; cc06
UnknownText_0xcc1c: ; 0xcc1c
; used DIG!
- text_jump UnknownText_0x1c06de, BANK(UnknownText_0x1c06de)
+ text_jump UnknownText_0x1c06de
db "@"
; 0xcc21
UnknownText_0xcc21: ; 0xcc21
; used an ESCAPE ROPE.
- text_jump UnknownText_0x1c06ed, BANK(UnknownText_0x1c06ed)
+ text_jump UnknownText_0x1c06ed
db "@"
; 0xcc26
UnknownText_0xcc26: ; 0xcc26
; Can't use that here.
- text_jump UnknownText_0x1c0705, BANK(UnknownText_0x1c0705)
+ text_jump UnknownText_0x1c0705
db "@"
; 0xcc2b
@@ -13845,7 +9803,7 @@ UnknownScript_0xcc3c: ; 0xcc3c
loadmovesprites
playsound SFX_WARP_TO
applymovement $0, MovementData_0xcc59
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3call UnknownScript_0x122c1
special $0000
writecode $8, $0
newloadmap $f5
@@ -13947,7 +9905,7 @@ Functionccf8: ; ccf8
; cd01
UnknownText_0xcd01: ; 0xcd01
- text_jump UnknownText_0x1c0751, BANK(UnknownText_0x1c0751)
+ text_jump UnknownText_0x1c0751
db "@"
; 0xcd06
@@ -13986,7 +9944,7 @@ UnknownScript_0xcd29: ; 0xcd29
special $0035
UnknownScript_0xcd2d: ; 0xcd2d
- 3callasm BANK(Functioncd12), Functioncd12
+ 3callasm Functioncd12
2writetext UnknownText_0xcd41
copybytetovar $d1ef
cry $0000
@@ -13997,17 +9955,17 @@ UnknownScript_0xcd2d: ; 0xcd2d
; 0xcd41
UnknownText_0xcd41: ; 0xcd41
- text_jump UnknownText_0x1c0774, BANK(UnknownText_0x1c0774)
+ text_jump UnknownText_0x1c0774
db $50
; 0xcd46
UnknownText_0xcd46: ; 0xcd46
- text_jump UnknownText_0x1c0788, BANK(UnknownText_0x1c0788)
+ text_jump UnknownText_0x1c0788
db $50
; 0xcd4b
UnknownScript_0xcd4b: ; 0xcd4b
- 3callasm $03, $4d78
+ 3callasm Functioncd78
iffalse UnknownScript_0xcd5f
if_equal $1, UnknownScript_0xcd59
2jump UnknownScript_0xcd5c
@@ -14032,22 +9990,23 @@ UnknownScript_0xcd5f: ; 0xcd5f
UnknownText_0xcd69: ; 0xcd69
; A #MON may be able to move this. Want to use STRENGTH?
- text_jump UnknownText_0x1c07a0, BANK(UnknownText_0x1c07a0)
+ text_jump UnknownText_0x1c07a0
db "@"
; 0xcd6e
UnknownText_0xcd6e: ; 0xcd6e
; Boulders may now be moved!
- text_jump UnknownText_0x1c07d8, BANK(UnknownText_0x1c07d8)
+ text_jump UnknownText_0x1c07d8
db "@"
; 0xcd73
UnknownText_0xcd73: ; 0xcd73
; A #MON may be able to move this.
- text_jump UnknownText_0x1c07f4, BANK(UnknownText_0x1c07f4)
+ text_jump UnknownText_0x1c07f4
db "@"
; 0xcd78
+Functioncd78: ; cd78
ld d, $46
call CheckPartyMove
jr c, .asm_cd92
@@ -14083,7 +10042,7 @@ Functioncd9d: ; cd9d
INCBIN "baserom.gbc",$cdae,$cdd9 - $cdae
UnknownText_0xcdd9: ; 0xcdd9
- text_jump UnknownText_0x1c0816, BANK(UnknownText_0x1c0816)
+ text_jump UnknownText_0x1c0816
db "@"
; 0xcdde
@@ -14120,10 +10079,10 @@ Functioncdde: ; cdde
INCBIN "baserom.gbc",$ce0b,$ce0f - $ce0b
UnknownScript_0xce0f: ; 0xce0f
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcdd9
reloadmappart
- 3callasm BANK(Functionce1d), Functionce1d
+ 3callasm Functionce1d
loadmovesprites
end
; 0xce1d
@@ -14174,7 +10133,7 @@ UnknownScript_0xce66: ; 0xce66
; 0xce69
UnknownText_0xce69: ; 0xce69
- text_jump UnknownText_0x1c082b, BANK(UnknownText_0x1c082b)
+ text_jump UnknownText_0x1c082b
db "@"
; 0xce6e
@@ -14188,7 +10147,7 @@ UnknownScript_0xce6e: ; 0xce6e
; 0xce78
UnknownText_0xce78: ; 0xce78
- text_jump UnknownText_0x1c0864, BANK(UnknownText_0x1c0864)
+ text_jump UnknownText_0x1c0864
db "@"
; 0xce7d
@@ -14215,23 +10174,23 @@ Functionce86: ; ce86
; ce9d
UnknownText_0xce9d: ; 0xce9d
- text_jump UnknownText_0x1c0897, BANK(UnknownText_0x1c0897)
+ text_jump UnknownText_0x1c0897
db $50
; 0xcea2
UnknownText_0xcea2: ; 0xcea2
- text_jump UnknownText_0x1c08ac, BANK(UnknownText_0x1c08ac)
+ text_jump UnknownText_0x1c08ac
db $50
; 0xcea7
UnknownScript_0xcea7: ; 0xcea7
reloadmappart
special $0035
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xce9d
reloadmappart
- 3callasm $23, $480a
- 3callasm $2e, $41ea
+ 3callasm Function8c80a
+ 3callasm Functionb81ea
iffalse UnknownScript_0xcec3
loadmovesprites
battlecheck
@@ -14315,7 +10274,7 @@ UnknownScript_0xcf2e: ; 0xcf2e
special $0035
UnknownScript_0xcf32: ; cf32
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0xcf58
loadmovesprites
special $003b
@@ -14323,7 +10282,7 @@ UnknownScript_0xcf32: ; cf32
earthquake 84
applymovement2 MovementData_0xcf55
disappear $fe
- 3callasm $2e, $4219
+ 3callasm Functionb8219
copybytetovar $d22e
iffalse .done
battlecheck
@@ -14338,12 +10297,12 @@ MovementData_0xcf55: ; 0xcf55
step_end
UnknownText_0xcf58: ; 0xcf58
- text_jump UnknownText_0x1c08f0, BANK(UnknownText_0x1c08f0)
+ text_jump UnknownText_0x1c08f0
db $50
; 0xcf5d
UnknownScript_0xcf5d: ; 0xcf5d
- 3callasm $03, $4f7c
+ 3callasm Functioncf7c
if_equal $1, UnknownScript_0xcf6f
loadfont
2writetext UnknownText_0xcf77
@@ -14359,16 +10318,17 @@ UnknownScript_0xcf6f: ; 0xcf6f
UnknownText_0xcf72: ; 0xcf72
; Maybe a #MON can break this.
- text_jump UnknownText_0x1c0906, BANK(UnknownText_0x1c0906)
+ text_jump UnknownText_0x1c0906
db "@"
; 0xcf77
UnknownText_0xcf77: ; 0xcf77
; This rock looks breakable. Want to use ROCK SMASH?
- text_jump UnknownText_0x1c0924, BANK(UnknownText_0x1c0924)
+ text_jump UnknownText_0x1c0924
db "@"
; 0xcf7c
+Functioncf7c: ; cf7c
ld d, $f9
call CheckPartyMove
jr nc, .asm_cf87
@@ -14519,7 +10479,7 @@ UnknownScript_0xd1a9: ; 0xd1a9
2writetext UnknownText_0xd1c8
yesorno
iffalse .script_d1b8
- 3callasm BANK(Functiond1ba), Functiond1ba
+ 3callasm Functiond1ba
iftrue UnknownScript_0xc802
.script_d1b8
loadmovesprites
@@ -14537,7 +10497,7 @@ Functiond1ba: ; d1ba
; d1c8
UnknownText_0xd1c8: ; 0xd1c8
- text_jump UnknownText_0x1c09dd, BANK(UnknownText_0x1c09dd)
+ text_jump UnknownText_0x1c09dd
db "@"
; 0xd1cd
@@ -14546,7 +10506,7 @@ UnknownScript_0xd1cd: ; 0xd1cd
; 0xd1d0
UnknownText_0xd1d0: ; 0xd1d0
- text_jump UnknownText_0x1c0a05, BANK(UnknownText_0x1c0a05)
+ text_jump UnknownText_0x1c0a05
db "@"
; 0xd1d5
@@ -17860,8 +13820,8 @@ Functione6ce: ; e6ce
ld [$d265], a
callba Functioncc0c7
callba Functioncc000
- ld bc, $0e07
- call Function1dd2
+ lb bc, 14, 7
+ call PlaceYesNoBox
ret c
.asm_e6ea
@@ -17869,7 +13829,7 @@ Functione6ce: ; e6ce
ld a, [TempEnemyMonSpecies]
ld [$d265], a
call GetPokemonName
- ld hl, $671d
+ ld hl, UnknownText_0xe71d
call PrintText
ret
; e6fd
@@ -17889,7 +13849,11 @@ Functione6fd: ; e6fd
jp Functiond906
; e71d
-INCBIN "baserom.gbc",$e71d,$e722 - $e71d
+UnknownText_0xe71d: ; 0xe71d
+ ; Caught @ !
+ text_jump UnknownText_0x1c10c0
+ db "@"
+; 0xe722
_DoItemEffect: ; e722
@@ -18386,56 +14350,95 @@ Function7969: ; 7969
; 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
@@ -18454,16 +14457,20 @@ Functionf9ea: ; f9ea
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]
+SECTION "bank4", ROMX, BANK[$4]
Function10000: ; 10000
ld hl, Options
@@ -20262,7 +16269,7 @@ Function116c1: ; 116c1
ld [$ffde], a
pop af
ld [Options], a
- call ClearJoypadPublic
+ call ClearJoypad
ret
; 116f8
@@ -21570,7 +17577,7 @@ UnknownScript_0x122c1: ; 0x122c1
; 0x122ce
UnknownScript_0x122ce: ; 0x122ce
- 3callasm BANK(Function122f8), Function122f8
+ 3callasm Function122f8
iffalse UnknownScript_0x122e3
disappear $fe
loadfont
@@ -21594,13 +17601,13 @@ UnknownScript_0x122e3: ; 0x122e3
UnknownText_0x122ee: ; 0x122ee
; found @ !
- text_jump UnknownText_0x1c0a1c, BANK(UnknownText_0x1c0a1c)
+ text_jump UnknownText_0x1c0a1c
db "@"
; 0x122f3
UnknownText_0x122f3: ; 0x122f3
; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c, BANK(UnknownText_0x1c0a2c)
+ text_jump UnknownText_0x1c0a2c
db "@"
; 0x122f8
@@ -21848,7 +17855,7 @@ INCBIN "baserom.gbc",$124c1,$124c8 - $124c1
UnknownScript_0x124c8: ; 0x124c8
refreshscreen $0
- 3callasm BANK(Function124fa), Function124fa
+ 3callasm Function124fa
2writetext UnknownText_0x124f5
closetext
special $002e
@@ -21856,9 +17863,9 @@ UnknownScript_0x124c8: ; 0x124c8
special $001b
checkflag $0011
iftrue .script_64f2
- 3callasm BANK(HalveMoney), HalveMoney
- 3callasm BANK(Function12527), Function12527
- 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1
+ 3callasm HalveMoney
+ 3callasm Function12527
+ 3call UnknownScript_0x122c1
special $0000
newloadmap $f1
resetfuncs
@@ -21868,7 +17875,7 @@ UnknownScript_0x124c8: ; 0x124c8
; 0x124f5
UnknownText_0x124f5: ; 0x124f5
- text_jump UnknownText_0x1c0a4e, BANK(UnknownText_0x1c0a4e)
+ text_jump UnknownText_0x1c0a4e
db $50
; 0x124fa
@@ -22365,7 +18372,7 @@ StartMenu_Quit: ; 128f0
ret
.EndTheContestText
- text_jump UnknownText_0x1c1a6c, BANK(UnknownText_0x1c1a6c)
+ text_jump UnknownText_0x1c1a6c
db "@"
; 1290b
@@ -22412,7 +18419,7 @@ StartMenu_Pokedex: ; 12937
jr z, .asm_12949
call FadeToMenu
- callba Function40000
+ callba Pokedex
call Function2b3c
.asm_12949
@@ -22539,7 +18546,7 @@ Function129f4: ; 129f4
jr c, .asm_12a42
ld hl, $6a4a
call Function1d4f
- call Function1dcf
+ call YesNoBox
push af
call Function1c07
pop af
@@ -22579,7 +18586,7 @@ CantUseItem: ; 12a60
; 12a67
CantUseItemText: ; 12a67
- text_jump UnknownText_0x1c1b03, BANK(UnknownText_0x1c1b03)
+ text_jump UnknownText_0x1c1b03
db "@"
; 12a6c
@@ -22907,42 +18914,42 @@ GiveTakeItemMenuData: ; 12c9b
TookAndMadeHoldText: ; 12caf
- text_jump UnknownText_0x1c1b2c, BANK(UnknownText_0x1c1b2c)
+ text_jump UnknownText_0x1c1b2c
db "@"
; 12cb4
MadeHoldText: ; 12cb4
- text_jump UnknownText_0x1c1b57, BANK(UnknownText_0x1c1b57)
+ text_jump UnknownText_0x1c1b57
db "@"
; 12cb9
PleaseRemoveMailText: ; 12cb9
- text_jump UnknownText_0x1c1b6f, BANK(UnknownText_0x1c1b6f)
+ text_jump UnknownText_0x1c1b6f
db "@"
; 12cbe
IsntHoldingAnythingText: ; 12cbe
- text_jump UnknownText_0x1c1b8e, BANK(UnknownText_0x1c1b8e)
+ text_jump UnknownText_0x1c1b8e
db "@"
; 12cc3
ItemStorageIsFullText: ; 12cc3
- text_jump UnknownText_0x1c1baa, BANK(UnknownText_0x1c1baa)
+ text_jump UnknownText_0x1c1baa
db "@"
; 12cc8
TookFromText: ; 12cc8
- text_jump UnknownText_0x1c1bc4, BANK(UnknownText_0x1c1bc4)
+ text_jump UnknownText_0x1c1bc4
db "@"
; 12ccd
SwitchAlreadyHoldingText: ; 12ccd
- text_jump UnknownText_0x1c1bdc, BANK(UnknownText_0x1c1bdc)
+ text_jump UnknownText_0x1c1bdc
db "@"
; 12cd2
CantBeHeldText: ; 12cd2
- text_jump UnknownText_0x1c1c09, BANK(UnknownText_0x1c1c09)
+ text_jump UnknownText_0x1c1c09
db "@"
; 12cd7
@@ -22973,7 +18980,7 @@ Function12cea: ; 12cea (4:6cea)
Function12cf5: ; 12cf5
call Function1d4f
- call Function1dcf
+ call YesNoBox
jp Function1c07
; 12cfe
@@ -23079,32 +19086,32 @@ INCBIN "baserom.gbc",$12dc9,$12de2 - $12dc9
UnknownText_0x12de2: ; 0x12de2
- text_jump UnknownText_0x1c1c22, BANK(UnknownText_0x1c1c22)
+ text_jump UnknownText_0x1c1c22
db "@"
; 0x12de7
UnknownText_0x12de7: ; 0x12de7
- text_jump UnknownText_0x1c1c47, BANK(UnknownText_0x1c1c47)
+ text_jump UnknownText_0x1c1c47
db "@"
; 0x12dec
UnknownText_0x12dec: ; 0x12dec
- text_jump UnknownText_0x1c1c62, BANK(UnknownText_0x1c1c62)
+ text_jump UnknownText_0x1c1c62
db "@"
; 0x12df1
UnknownText_0x12df1: ; 0x12df1
- text_jump UnknownText_0x1c1c86, BANK(UnknownText_0x1c1c86)
+ text_jump UnknownText_0x1c1c86
db "@"
; 0x12df6
UnknownText_0x12df6: ; 0x12df6
- text_jump UnknownText_0x1c1ca9, BANK(UnknownText_0x1c1ca9)
+ text_jump UnknownText_0x1c1ca9
db "@"
; 0x12dfb
UnknownText_0x12dfb: ; 0x12dfb
- text_jump UnknownText_0x1c1cc4, BANK(UnknownText_0x1c1cc4)
+ text_jump UnknownText_0x1c1cc4
db "@"
; 0x12e00
@@ -23852,7 +19859,7 @@ SelectMenu: ; 13327
ItemMayBeRegisteredText: ; 13340
- text_jump UnknownText_0x1c1cf3, BANK(UnknownText_0x1c1cf3)
+ text_jump UnknownText_0x1c1cf3
db "@"
; 13345
@@ -24323,7 +20330,7 @@ UnknownScript_0x13603: ; 0x13603
INCBIN "baserom.gbc",$1360f,$13614 - $1360f
UnknownText_0x13614: ; 0x13614
- text_jump UnknownText_0x1bd2e7, BANK(UnknownText_0x1bd2e7)
+ text_jump UnknownText_0x1bd2e7
db $50
; 0x13619
@@ -24869,7 +20876,7 @@ root set root+1
; 13d96
-SECTION "bank5",ROMX,BANK[$5]
+SECTION "bank5", ROMX, BANK[$5]
Function14000: ; 14000
@@ -26623,7 +22630,7 @@ Function14a83: ; 14a83 (5:4a83)
push de
ld hl, $52a1
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
jr c, .asm_14ab0
call Function14b89
@@ -26730,8 +22737,8 @@ Function14baf: ; 14baf
ld b, $5
call Function269a
call Function1d58
- ld bc, $0007
- call Function1dd2
+ lb bc, 0, 7
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c17
@@ -26976,7 +22983,7 @@ Function14dd7: ; 14dd7
ld de, $a009
ld bc, $082a
call CopyBytes
- ld hl, FlypointPerms
+ ld hl, VisitedSpawns
ld de, $a833
ld bc, $0032
call CopyBytes
@@ -27043,7 +23050,7 @@ Function14e55: ; 14e55
ld de, $b209
ld bc, $082a
call CopyBytes
- ld hl, FlypointPerms
+ ld hl, VisitedSpawns
ld de, $ba33
ld bc, $0032
call CopyBytes
@@ -27226,7 +23233,7 @@ Function14fd7: ; 14fd7 (5:4fd7)
ld bc, $82a
call CopyBytes
ld hl, $a833
- ld de, FlypointPerms ; $dca5
+ ld de, VisitedSpawns ; $dca5
ld bc, $32
call CopyBytes
call CloseSRAM
@@ -27286,7 +23293,7 @@ Function15046: ; 15046 (5:5046)
ld bc, $82a
call CopyBytes
ld hl, $ba33
- ld de, FlypointPerms ; $dca5
+ ld de, VisitedSpawns ; $dca5
ld bc, $32
call CopyBytes
call CloseSRAM
@@ -27567,7 +23574,38 @@ Function15273: ; 15273
INCBIN "baserom.gbc",$15283,$152ab - $15283
-BlackoutPoints: ; 0x152ab
+SpawnPoints: ; 0x152ab
+
+ const_def
+ const SPAWN_HOME
+ const SPAWN_VIRIDIAN_POKECENTER
+ const SPAWN_PALLET
+ const SPAWN_VIRIDIAN
+ const SPAWN_PEWTER
+ const SPAWN_CERULEAN
+ const SPAWN_ROCK_TUNNEL
+ const SPAWN_VERMILION
+ const SPAWN_LAVENDER
+ const SPAWN_SAFFRON
+ const SPAWN_CELADON
+ const SPAWN_FUCHSIA
+ const SPAWN_CINNABAR
+ const SPAWN_INDIGO_PLATEAU
+ const SPAWN_NEW_BARK
+ const SPAWN_CHERRYGROVE
+ const SPAWN_VIOLET
+ const SPAWN_UNION_CAVE
+ const SPAWN_AZALEA
+ const SPAWN_CIANWOOD
+ const SPAWN_GOLDENROD
+ const SPAWN_OLIVINE
+ const SPAWN_ECRUTEAK
+ const SPAWN_MAHOGANY
+ const SPAWN_LAKE
+ const SPAWN_BLACKTHORN
+ const SPAWN_MT_SILVER
+ const SPAWN_FAST_SHIP
+
db GROUP_KRISS_HOUSE_2F, MAP_KRISS_HOUSE_2F, 3, 3
db GROUP_VIRIDIAN_POKECENTER_1F, MAP_VIRIDIAN_POKECENTER_1F, 5, 3 ; unused
db GROUP_PALLET_TOWN, MAP_PALLET_TOWN, 5, 6
@@ -27596,38 +23634,42 @@ BlackoutPoints: ; 0x152ab
db GROUP_BLACKTHORN_CITY, MAP_BLACKTHORN_CITY, 21, 30
db GROUP_SILVER_CAVE_OUTSIDE, MAP_SILVER_CAVE_OUTSIDE, 23, 20
db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2
- db $ff, $ff, $ff, $ff
+ db -1, -1, -1, -1
+
+Function1531f: ; 1531f
push hl
push de
ld a, [$d001]
- cp $ff
+ cp -1
jr z, .asm_15341
ld l, a
- ld h, $0
+ ld h, 0
add hl, hl
add hl, hl
- ld de, $52ab
+ ld de, SpawnPoints
add hl, de
ld a, [hli]
- ld [MapGroup], a ; $dcb5
+ ld [MapGroup], a
ld a, [hli]
- ld [MapNumber], a ; $dcb6
+ ld [MapNumber], a
ld a, [hli]
- ld [XCoord], a ; $dcb8
+ ld [XCoord], a
ld a, [hli]
- ld [YCoord], a ; $dcb7
+ ld [YCoord], a
.asm_15341
pop de
pop hl
ret
+; 15344
+
Function15344: ; 15344
- ld hl, BlackoutPoints
- ld c, $0
+ ld hl, SpawnPoints
+ ld c, 0
.asm_15349
ld a, [hl]
- cp $ff
+ cp -1
jr z, .asm_1535f
cp d
jr nz, .asm_15356
@@ -27638,7 +23680,7 @@ Function15344: ; 15344
.asm_15356
push bc
- ld bc, $0004
+ ld bc, 4
add hl, bc
pop bc
inc c
@@ -27707,12 +23749,20 @@ Function1541d: ; 1541d
; 15440
INCBIN "baserom.gbc",$15440,$154cf - $15440
+
+Function154cf: ; 154cf
ld a, $1
ld [$FF00+$de], a
ret
+; 154d3
+
+Function154d3: ; 154d3
xor a
ld [$FF00+$de], a
ret
+; 154d7
+
+Function154d7: ; 154d7
ld a, $2
call Function263b
callba Function2454f
@@ -27720,10 +23770,17 @@ INCBIN "baserom.gbc",$15440,$154cf - $15440
ret
; 154ea (5:54ea)
-INCBIN "baserom.gbc",$154ea,$154eb - $154ea
+Function154ea: ; 154ea
+ ret
+; 154eb
+
+Function154eb: ; 154eb
ld hl, $d45b
set 7, [hl]
ret
+; 154f1
+
+Function154f1: ; 154f1
ld hl, $d45b
set 6, [hl]
ret
@@ -28886,7 +24943,7 @@ Function15d97: ; 15d97
call Predef
ld a, $1
call Function15c7d
- call Function1dcf
+ call YesNoBox
ret
; 15da5
@@ -29049,7 +25106,7 @@ Function15efd: ; 15efd
call ClearBox
ld hl, UnknownText_0x15f78
call PrintTextBoxText
- call Function1dcf
+ call YesNoBox
jr c, .asm_15f6e
ld de, Money
ld bc, $ffc3
@@ -29075,31 +25132,31 @@ Function15efd: ; 15efd
; 15f73
UnknownText_0x15f73: ; 0x15f73
- text_jump UnknownText_0x1c4f33, BANK(UnknownText_0x1c4f33)
+ text_jump UnknownText_0x1c4f33
db "@"
; 0x15f78
UnknownText_0x15f78: ; 0x15f78
- text_jump UnknownText_0x1c4f3e, BANK(UnknownText_0x1c4f3e)
+ text_jump UnknownText_0x1c4f3e
db "@"
; 0x15f7d
INCBIN "baserom.gbc",$15f7d,$15f83 - $15f7d
UnknownText_0x15f83: ; 0x15f83
- text_jump UnknownText_0x1c4f62, BANK(UnknownText_0x1c4f62)
+ text_jump UnknownText_0x1c4f62
db "@"
; 0x15f88
INCBIN "baserom.gbc",$15f88,$15fb9 - $15f88
UnknownText_0x15fb9: ; 0x15fb9
- text_jump UnknownText_0x1c500d, BANK(UnknownText_0x1c500d)
+ text_jump UnknownText_0x1c500d
db "@"
; 0x15fbe
UnknownText_0x15fbe: ; 0x15fbe
- text_jump UnknownText_0x1c502e, BANK(UnknownText_0x1c502e)
+ text_jump UnknownText_0x1c502e
db "@"
; 0x15fc3
@@ -29449,14 +25506,14 @@ Function16781: ; 16781
.asm_16788
call Function1689b
- call Function1dcf
+ call YesNoBox
ret
; 1678f
Function1678f: ; 1678f
set 7, [hl]
call Function1689b
- call Function1dcf
+ call YesNoBox
ret
; 16798
@@ -29531,18 +25588,18 @@ Function16807: ; 16807
jr nz, .asm_16819
ld a, $f
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
jr .asm_1682d
.asm_16819
ld a, $b
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
ld a, $c
call Function1689b
- call Function1dcf
+ call YesNoBox
jr c, .asm_16844
.asm_1682d
@@ -29641,7 +25698,7 @@ Function16936: ; 16936
.asm_16949
ld hl, $6993
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1697c
ld a, [PartyCount]
cp $6
@@ -30423,12 +26480,14 @@ Function16f3e: ; 16f3e
jr .loop
; 16f5e
+Function16f5e: ; 16f5e
call ResetWindow
call Function1d6e
call Function16f70
call Function2b4d
call Function3d47
jp Function2dcf
+; 16f70
; known jump sources: 16f64 (5:6f64)
Function16f70: ; 16f70 (5:6f70)
@@ -30545,7 +26604,7 @@ Function16f7a: ; 16f7a (5:6f7a)
push de
ld hl, $70ba
call PrintText
- call Function1dcf
+ call YesNoBox
pop de
jr c, .asm_17074
ld a, $1
@@ -31138,79 +27197,23 @@ Function1746c: ; 1746c
INCBIN "baserom.gbc",$1749c,$174ba - $1749c
-SECTION "bank6",ROMX,BANK[$6]
+SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
INCLUDE "tilesets/data_1.asm"
-SECTION "bank7",ROMX,BANK[$7]
+SECTION "Roofs", ROMX, BANK[ROOFS]
-LoadMapGroupRoof: ; 1c000
- ld a, [MapGroup]
- ld e, a
- ld d, 0
- ld hl, MapGroupRoofs
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld hl, Roofs
- ld bc, $90
- call AddNTimes
- ld de, $90a0
- ld bc, $90
- call CopyBytes
- ret
-; 1c021
-
-MapGroupRoofs: ; 1c021i
- db -1 ; group 1
- db 3 ; group 2
- db 2 ; group 3
- db -1 ; group 4
- db 1 ; group 5
- db 2 ; group 6
- db -1 ; group 7
- db -1 ; group 8
- db 2 ; group 9
- db 2 ; group 10
- db 1 ; group 11
- db 4 ; group 12
- db -1 ; group 13
- db -1 ; group 14
- db -1 ; group 15
- db -1 ; group 16
- db -1 ; group 17
- db -1 ; group 18
- db -1 ; group 19
- db 0 ; group 20
- db -1 ; group 21
- db -1 ; group 22
- db 3 ; group 23
- db -1 ; group 24
- db 0 ; group 25
- db -1 ; group 26
- db 0 ; group 27
-; 1c03c
-
-Roofs: ; 1c03c
-INCBIN "gfx/tilesets/roofs/0.2bpp"
-INCBIN "gfx/tilesets/roofs/1.2bpp"
-INCBIN "gfx/tilesets/roofs/2.2bpp"
-INCBIN "gfx/tilesets/roofs/3.2bpp"
-INCBIN "gfx/tilesets/roofs/4.2bpp"
-; 1c30c
+INCLUDE "tilesets/roofs.asm"
-INCLUDE "tilesets/data_2.asm"
-; Songs i
+SECTION "Tileset Data 2", ROMX, BANK[TILESETS_2]
+
+INCLUDE "tilesets/data_2.asm"
-INCLUDE "audio/music/credits.asm"
-INCLUDE "audio/music/clair.asm"
-INCLUDE "audio/music/mobileadapter.asm"
-SECTION "bank8",ROMX,BANK[$8]
+SECTION "bank8", ROMX, BANK[$8]
; known jump sources: 200e8 (8:40e8), 200f9 (8:40f9), 20169 (8:4169)
@@ -31282,7 +27285,7 @@ Function20051: ; 20051 (8:4051)
call Function2011f
ld hl, $40b0
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_200ad
ld a, [$d1ed]
ld [StringBuffer2], a ; $d086
@@ -31421,12 +27424,13 @@ Function20168: ; 20168 (8:4168)
INCBIN "baserom.gbc",$2017c,$20181 - $2017c
-INCLUDE "tilesets/data_3.asm"
+SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3]
+INCLUDE "tilesets/data_3.asm"
-SECTION "bank9",ROMX,BANK[$9]
+SECTION "bank9", ROMX, BANK[$9]
INCBIN "baserom.gbc",$24000,$2400e - $24000
@@ -32154,7 +28158,7 @@ Function2445d: ; 2445d
; 24468
UnknownText_0x24468: ; 24468
- text_jump UnknownText_0x1c46b7, BANK(UnknownText_0x1c46b7)
+ text_jump UnknownText_0x1c46b7
db "@"
; 2446d
@@ -33795,34 +29799,29 @@ MenuData2_0x24edc: ; 24edc
; 24ef2
-LoadBattleMenuDataHeader: ; 4ef2
+LoadBattleMenuDataHeader: ; 24ef2
ld hl, BattleMenuDataHeader
call LoadMenuDataHeader
-
- ; store a
ld a, [$d0d2]
ld [$cf88], a
-
call Function2039
-
- ; restore a
ld a, [$cf88]
ld [$d0d2], a
-
call Function1c07
ret
; 24f0b
-LoadSafariBattleMenuDataHeader: ; 24f0b
+Function24f0b: ; 24f0b
; Safari battle menu (untranslated).
- ld hl, SafariBattleMenuDataHeader
+ ld hl, MenuDataHeader_0x24f4e
call LoadMenuDataHeader
jr Function24f19
; 24f13
-LoadParkBattleMenuDataHeader: ; 24f13
- ld hl, ParkBattleMenuDataHeader
+Function24f13: ; 24f13
+; Park battle menu.
+ ld hl, MenuDataHeader_0x24f89
call LoadMenuDataHeader
; 24f19
@@ -33841,19 +29840,19 @@ BattleMenuDataHeader: ; 24f2c
db $40 ; flags
db 12, 08 ; start coords
db 17, 19 ; end coords
- dw BattleMenuData
+ dw MenuData_0x24f34
db 1 ; default option
; 24f34
-BattleMenuData: ; 0x24f34
+MenuData_0x24f34: ; 0x24f34
db $81 ; flags
dn 2, 2 ; rows, columns
db 6 ; spacing
- dbw BANK(BattleMenuStrings), BattleMenuStrings
+ dbw BANK(Strings24f3d), Strings24f3d
dbw $09, $0000
; 0x24f3d
-BattleMenuStrings: ; 0x24f3d
+Strings24f3d: ; 0x24f3d
db "FIGHT@"
db $4a, "@"
db "PACK@"
@@ -33861,23 +29860,23 @@ BattleMenuStrings: ; 0x24f3d
; 24f4e
-SafariBattleMenuDataHeader: ; 24f4e
+MenuDataHeader_0x24f4e: ; 24f4e
db $40 ; flags
db 12, 00 ; start coords
db 17, 19 ; end coords
- dw SafariBattleMenuData
+ dw MenuData_0x24f56
db 1 ; default option
; 24f56
-SafariBattleMenuData: ; 24f56
+MenuData_0x24f56: ; 24f56
db $81 ; flags
dn 2, 2 ; rows, columns
db 11 ; spacing
- dbw BANK(SafariBattleMenuStrings), SafariBattleMenuStrings
+ dbw BANK(Strings24f5f), Strings24f5f
dbw BANK(Function24f7c), Function24f7c
; 24f5f
-SafariBattleMenuStrings: ; 24f5f
+Strings24f5f: ; 24f5f
db "サファりボール× @" ; "SAFARI BALL× @"
db "エサをなげる@" ; "THROW BAIT"
db "いしをなげる@" ; "THROW ROCK"
@@ -33893,23 +29892,23 @@ Function24f7c: ; 24f7c
; 24f89
-ParkBattleMenuDataHeader: ; 24f89
+MenuDataHeader_0x24f89: ; 24f89
db $40 ; flags
db 12, 02 ; start coords
db 17, 19 ; end coords
- dw ParkBattleMenuData
+ dw MenuData_0x24f91
db 1 ; default option
; 24f91
-ParkBattleMenuData: ; 24f91
+MenuData_0x24f91: ; 24f91
db $81 ; flags
dn 2, 2 ; rows, columns
db 12 ; spacing
- dbw BANK(ParkBattleMenuStrings), ParkBattleMenuStrings
+ dbw BANK(Strings24f9a), Strings24f9a
dbw BANK(Function24fb2), Function24fb2
; 24f9a
-ParkBattleMenuStrings: ; 24f9a
+Strings24f9a: ; 24f9a
db "FIGHT@"
db $4a, "@"
db "PARKBALL× @"
@@ -34664,7 +30663,7 @@ INCBIN "baserom.gbc",$254a7,$265d3 - $254a7
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call Function1d4f
- call Function1dcf
+ call YesNoBox
jr c, .shutdown
call ProfOaksPCBoot ; player chose "yes"?
.shutdown
@@ -35571,7 +31570,7 @@ Function27a28: ; 27a28
; 27a2d
-SECTION "bankA",ROMX,BANK[$A]
+SECTION "bankA", ROMX, BANK[$A]
Function28000: ; 28000
call WhiteBGMap
@@ -36022,7 +32021,7 @@ Function28177: ; 28177
ld [rIE], a
pop af
ld [rIF], a
- ld a, PREDEF_START_BATTLE
+ ld a, $16
call Predef
ld a, [rIF]
ld h, a
@@ -36318,7 +32317,7 @@ Function284f6: ; 284f6
push bc
ld hl, $0001
add hl, bc
- ld bc, $001a
+ ld bc, OBJECT_SPRITE_Y_OFFSET
call CopyBytes
pop bc
ld hl, $001f
@@ -37336,7 +33335,7 @@ Function28b87: ; 28b87
call GetPartyLocation
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c701], a
ld hl, $d26b
@@ -37375,7 +33374,7 @@ Function28b87: ; 28b87
call GetPartyLocation
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c733], a
ld a, [DefaultFlypoint]
@@ -39668,7 +35667,7 @@ INCBIN "gfx/misc/dude.lz"
; 2bce1
-SECTION "bankB",ROMX,BANK[$B]
+SECTION "bankB", ROMX, BANK[$B]
Function2c000: ; 2c000
ld a, $e4
@@ -40123,7 +36122,7 @@ Function2c545: ; 2c545 (b:4545)
Function2c547: ; 2c547
ld hl, $45ef
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_2c5c3
ld hl, $45f4
call PrintText
@@ -40154,7 +36153,7 @@ Function2c547: ; 2c547
call GetMoveName
ld hl, $45d6
call PrintText
- call Function1dcf
+ call YesNoBox
pop bc
jr c, .asm_2c5c3
call Function2c5f9
@@ -40464,7 +36463,7 @@ Function2c7bf: ; 2c7bf (b:47bf)
call PrintText
ld hl, $48c9
call PrintText
- call Function1dcf
+ call YesNoBox
.asm_2c7f5
pop bc
ld a, b
@@ -41351,20 +37350,17 @@ FillBox: ; 2ef6e
; 2ef9f
-
-SECTION "bankC",ROMX,BANK[$C]
+SECTION "Tileset Data 4", ROMX, BANK[TILESETS_4]
INCLUDE "tilesets/data_4.asm"
-INCBIN "baserom.gbc",$329f0,$333f0 - $329f0
-
-SECTION "bankD",ROMX,BANK[$D]
+SECTION "bankD", ROMX, BANK[$D]
INCLUDE "battle/effect_commands.asm"
-SECTION "bankE",ROMX,BANK[$E]
+SECTION "bankE", ROMX, BANK[$E]
Function38000: ; 38000
and a
@@ -41948,7 +37944,7 @@ Function3846c: ; 3846c
; 384d0
UnknownText_0x384d0: ; 384d0
- text_jump UnknownText_0x1bcf9c, BANK(UnknownText_0x1bcf9c)
+ text_jump UnknownText_0x1bcf9c
db "@"
; 384d5
@@ -42073,7 +38069,7 @@ Function38571: ; 38571
; 3858c
UnknownText_0x3858c: ; 3858c
- text_jump UnknownText_0x1bcfaf, BANK(UnknownText_0x1bcfaf)
+ text_jump UnknownText_0x1bcfaf
db "@"
; 38591
@@ -42434,9503 +38430,22 @@ Function39990: ; 39990
ret
; 39999
-TrainerGroups: ; 0x39999
INCLUDE "trainers/trainer_pointers.asm"
INCLUDE "trainers/trainers.asm"
-SECTION "bankF",ROMX,BANK[$F]
-
-Function3c000: ; 3c000
- xor a
- ld [$c664], a
- ld [$c6fc], a
- ld [$d0ec], a
- ld [BattleEnded], a
- inc a
- ld [$d264], a
- ld hl, OTPartyMon1CurHP
- ld bc, $002f
- ld d, $3
-.asm_3c019
- inc d
- ld a, [hli]
- or [hl]
- jr nz, .asm_3c021
- add hl, bc
- jr .asm_3c019
-
-.asm_3c021
- ld a, d
- ld [$d430], a
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c031
- ld a, [$ffcb]
- cp $2
-.data_3c02f
- db $28
- db $1b
-
-.asm_3c031
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3c047
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- call Function3d4e1
-
-.asm_3c047
- ld c, $28
- call DelayFrames
- call Function309d
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- call Function30b4
- ld a, [BattleType]
- cp $2
- jp z, Function3c0e2
- cp $3
- jp z, Function3c0e2
- xor a
- ld [CurPartyMon], a
-.asm_3c06b
- call Function3d887
- jr nz, .asm_3c076
- ld hl, CurPartyMon
- inc [hl]
- jr .asm_3c06b
-
-.asm_3c076
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- inc a
- ld hl, PartyCount
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ld [TempBattleMonSpecies], a
- ld hl, $c505
- ld a, $9
- call Function3d490
- call Function309d
- call Function3d57a
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c0df
- ld a, [$ffcb]
- cp $2
- jr nz, .asm_3c0df
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- call Function3d4e1
- call SetEnemyTurn
- call Function3dc23
-
-.asm_3c0df
- jp Function3c12f
-; 3c0e2
-
-Function3c0e2: ; 3c0e2
- jp Function3e139
-; 3c0e5
-
-
-
-Function3c0e5: ; 3c0e5
- call Function30b4
- ld a, [$d0ee]
- and $c0
- add $2
- ld [$d0ee], a
- ld a, [InLinkBattle]
- and a
- ld hl, $47bd
- jr z, .asm_3c115
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- ld hl, $47cf
- call Function3d2e0
- jr nc, .asm_3c115
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3c118
- ld hl, $5863
-
-.asm_3c115
- call StdBattleTextBox
-
-.asm_3c118
- call Function3ceec
- call Function3d2e0
- jr c, .asm_3c126
-
- ld de, SFX_RUN
- call PlaySFX
-
-.asm_3c126
- call SetPlayerTurn
- ld a, 1
- ld [BattleEnded], a
- ret
-; 3c12f
-
-Function3c12f: ; 3c12f
- call Function3c1bf
- call Function3c3f5
- jp c, .asm_3c1be
- xor a
- ld [$c710], a
- ld [$c711], a
- ld [$d264], a
- ld [$c73f], a
- ld [$c740], a
- ld [CurDamage], a
- ld [$d257], a
- call Function3c27c
- call UpdateBattleMonInParty
- callba AIChooseMove
- call CheckInMobileLinkBattle
- jr nz, .notmobilelinkbattle
- callba Function100da5
- callba Function100641
- callba Function100dd8
- jp c, .asm_3c1be
-
-.notmobilelinkbattle
- call Function3c410
- jr c, .asm_3c18a
-.asm_3c179
- call Function3e139
- jr c, .asm_3c1be
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- ld a, [$d232]
- and a
- jr nz, .asm_3c1be
-
-.asm_3c18a
- call Function3c434
- jr nz, .asm_3c179
- call Function3c300
- jr c, .asm_3c1be
- call Function3c314
- jr c, .asm_3c19e
- call Function3c5fe
- jr .asm_3c1a1
-
-.asm_3c19e
- call Function3c664
-
-.asm_3c1a1
- call Function3d2e0
- jr c, .asm_3c1be
- ld a, [$d232]
- and a
- jr nz, .asm_3c1be
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- call Function3c1d6
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c1be
- jp Function3c12f
-
-.asm_3c1be
- ret
-; 3c1bf
-
-Function3c1bf: ; 3c1bf
- ret
-; 3c1c0
-
-
-Function3c1c0: ; 3c1c0
- ld a, $5
- call GetSRAMBank
- ld hl, $a89b
- inc [hl]
- jr nz, .asm_3c1d2
- dec hl
- inc [hl]
- jr nz, .asm_3c1d2
- dec [hl]
- inc hl
- dec [hl]
-
-.asm_3c1d2
- call CloseSRAM
- ret
-; 3c1d6
-
-
-Function3c1d6: ; 3c1d6
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c1fe
- call Function3c23c
- ret c
- call Function3ca26
- call Function3c23c
- ret c
- call HandleWeather
- call Function3c23c
- ret c
- call Function3c874
- call Function3c23c
- ret c
- call Function3c801
- call Function3c23c
- ret c
- jr .asm_3c21e
-
-.asm_3c1fe
- call Function3c25c
- ret c
- call Function3ca26
- call Function3c25c
- ret c
- call HandleWeather
- call Function3c25c
- ret c
- call Function3c874
- call Function3c25c
- ret c
- call Function3c801
- call Function3c25c
- ret c
-
-.asm_3c21e
- call Function3c8eb
- call Function3c93c
- call Function3ca8f
- call Function3cafb
- call Function3cb36
- call Function3de97
- call Function3dcf9
- call UpdateBattleMonInParty
- call Function309d
- jp Function3c4df
-; 3c23c
-
-Function3c23c: ; 3c23c
- call Function3c710
- jr nz, .asm_3c24a
- call Function3d14e
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c25a
-
-.asm_3c24a
- call Function3c70b
- jr nz, .asm_3c258
- call Function3cd55
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c25a
-
-.asm_3c258
- and a
- ret
-
-.asm_3c25a
- scf
- ret
-; 3c25c
-
-Function3c25c: ; 3c25c
- call Function3c70b
- jr nz, .asm_3c26a
- call Function3cd55
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c27a
-
-.asm_3c26a
- call Function3c710
- jr nz, .asm_3c278
- call Function3d14e
- ld a, [BattleEnded]
- and a
- jr nz, .asm_3c27a
-
-.asm_3c278
- and a
- ret
-
-.asm_3c27a
- scf
- ret
-; 3c27c
-
-Function3c27c: ; 3c27c
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c287
- call .asm_3c28a
- jr .asm_3c296
-
-.asm_3c287
- call .asm_3c296
-.asm_3c28a
- call SetPlayerTurn
- ld de, PartyMon1Item
- ld a, [CurBattleMon]
- ld b, a
- jr .asm_3c2a0
-
-.asm_3c296
- call SetEnemyTurn
- ld de, OTPartyMon1Item
- ld a, [CurOTMon]
- ld b, a
-
-.asm_3c2a0
- push de
- push bc
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- sub $98
- pop bc
- pop de
- ret nz
- ld [hl], a
- ld h, d
- ld l, e
- ld a, b
- call GetPartyLocation
- xor a
- ld [hl], a
- ld a, $2
- call _GetBattleVar
- push af
- set 7, [hl]
- ld a, $c
- call _GetBattleVar
- push hl
- push af
- xor a
- ld [hl], a
- ld [AttackMissed], a
- ld [EffectFailed], a
- callba BattleCommand77
- pop af
- pop hl
- ld [hl], a
- call GetItemName
- ld hl, $4bde
- call StdBattleTextBox
- callab BattleCommand8c
- pop af
- bit 7, a
- ret nz
- xor a
- ld [$cfca], a
- ld de, $0103
- call Function3ee0f
- call Function3c8e4
- ld hl, $4d97
- jp StdBattleTextBox
-; 3c300
-
-Function3c300: ; 3c300
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c30d
- ld a, [$d430]
- cp $f
- jr z, .asm_3c30f
-
-.asm_3c30d
- and a
- ret
-
-.asm_3c30f
- call Function3c0e5
- scf
- ret
-; 3c314
-
-Function3c314: ; 3c314
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3c35b
- ld a, [$d430]
- cp $e
- jr z, .asm_3c35b
- cp $d
- jr z, .asm_3c35b
- sub $4
- jr c, .asm_3c35b
- ld a, [$d0ec]
- cp $2
- jr nz, .asm_3c34c
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c341
- call BattleRandom
- cp $80
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c341
- call BattleRandom
- cp $80
- jp c, Function3c3f3
- jp .asm_3c3f1
-
-.asm_3c34c
- callab Function3846c
- call SetEnemyTurn
- call Function3dc23
- jp Function3c3f3
-
-.asm_3c35b
- ld a, [$d0ec]
- and a
- jp nz, .asm_3c3f1
- call Function3c5b4
- jr z, .asm_3c36d
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c36d
- call SetPlayerTurn
- callab GetUserItem
- push bc
- callab GetOpponentItem
- pop de
- ld a, d
- cp $4a
- jr nz, .asm_3c391
- ld a, b
- cp $4a
- jr z, .asm_3c39f
- call BattleRandom
- cp e
- jr nc, .asm_3c3c5
- jp .asm_3c3f1
-
-.asm_3c391
- ld a, b
- cp $4a
- jr nz, .asm_3c3c5
- call BattleRandom
- cp c
- jr nc, .asm_3c3c5
- jp Function3c3f3
-
-.asm_3c39f
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c3b5
- call BattleRandom
- cp c
- jp c, Function3c3f3
- call BattleRandom
- cp e
- jp c, .asm_3c3f1
- jr .asm_3c3c5
-
-.asm_3c3b5
- call BattleRandom
- cp e
- jp c, .asm_3c3f1
- call BattleRandom
- cp c
- jp c, Function3c3f3
- jr .asm_3c3c5
-
-.asm_3c3c5
- ld de, BattleMonSpd
- ld hl, EnemyMonSpd
- ld c, $2
- call StringCmp
- jr z, .asm_3c3d8
- jp nc, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c3d8
- ld a, [$ffcb]
- cp $2
- jr z, .asm_3c3e9
- call BattleRandom
- cp $80
- jp c, .asm_3c3f1
- jp Function3c3f3
-
-.asm_3c3e9
- call BattleRandom
- cp $80
- jp c, Function3c3f3
-.asm_3c3f1
- scf
- ret
-; 3c3f3
-
-Function3c3f3: ; 3c3f3
- and a
- ret
-; 3c3f5
-
-Function3c3f5: ; 3c3f5
- ld a, [BattleType]
- cp $6
- jr nz, .asm_3c40e
- ld a, [$dc79]
- and a
- jr nz, .asm_3c40e
- ld a, [$d0ee]
- and $c0
- add $2
- ld [$d0ee], a
- scf
- ret
-
-.asm_3c40e
- and a
- ret
-; 3c410
-
-Function3c410: ; 3c410
- ld a, [PlayerSubStatus4]
- and $20
- jp nz, Function3c432
- ld hl, EnemySubStatus3
- res 3, [hl]
- ld hl, PlayerSubStatus3
- res 3, [hl]
- ld a, [hl]
- and $12
- jp nz, Function3c432
- ld hl, PlayerSubStatus1
- bit 6, [hl]
- jp nz, Function3c432
- and a
- ret
-; 3c432
-
-Function3c432: ; 3c432
- scf
- ret
-; 3c434
-
-Function3c434: ; 3c434
- call Function3c410
- jp c, .asm_3c4ba
- ld hl, PlayerSubStatus5
- bit 4, [hl]
- jr z, .asm_3c449
- ld a, [LastPlayerMove]
- ld [CurPlayerMove], a
- jr .asm_3c47c
-
-.asm_3c449
- ld a, [$d0ec]
- cp $2
- jr z, .asm_3c4ce
- and a
- jr nz, .asm_3c4b5
- ld a, [PlayerSubStatus3]
- and $1
- jr nz, .asm_3c4ba
- xor a
- ld [$d235], a
- inc a
- ld [FXAnimIDLo], a
- call Function3e4bc
- push af
- call Function30b4
- call UpdateBattleHuds
- ld a, [CurPlayerMove]
- cp $a5
- jr z, .asm_3c476
- call PlayClickSFX
-
-.asm_3c476
- ld a, $1
- ld [hBGMapMode], a
- pop af
- ret nz
-
-.asm_3c47c
- call SetPlayerTurn
- callab UpdateMoveData
- xor a
- ld [$c732], a
- ld a, [PlayerMoveEffect]
- cp $77
- jr z, .asm_3c494
- xor a
- ld [PlayerFuryCutterCount], a
-
-.asm_3c494
- ld a, [PlayerMoveEffect]
- cp $51
- jr z, .asm_3c4a4
- ld hl, PlayerSubStatus4
- res 6, [hl]
- xor a
- ld [$c72b], a
-
-.asm_3c4a4
- ld a, [PlayerMoveEffect]
- cp $6f
- jr z, .asm_3c4c9
- cp $74
- jr z, .asm_3c4c9
- xor a
- ld [$c679], a
- jr .asm_3c4c9
-
-.asm_3c4b5
- ld hl, PlayerSubStatus3
- res 0, [hl]
-
-.asm_3c4ba
- xor a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld hl, PlayerSubStatus4
- res 6, [hl]
-
-.asm_3c4c9
- call Function3e7c1
- xor a
- ret
-
-.asm_3c4ce
- xor a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld hl, PlayerSubStatus4
- res 6, [hl]
- xor a
- ret
-; 3c4df
-
-Function3c4df: ; 3c4df
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c4ea
- call .asm_3c4ed
- jr .asm_3c518
-
-.asm_3c4ea
- call .asm_3c518
-.asm_3c4ed
- ld hl, PlayerSubStatus5
- bit 4, [hl]
- ret z
- ld a, [PlayerEncoreCount]
- dec a
- ld [PlayerEncoreCount], a
- jr z, .asm_3c50a
- ld hl, BattleMonPPMove1
- ld a, [CurMoveNum]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- ret nz
-
-.asm_3c50a
- ld hl, PlayerSubStatus5
- res 4, [hl]
- call SetEnemyTurn
- ld hl, $4c8a
- jp StdBattleTextBox
-
-.asm_3c518
- ld hl, EnemySubStatus5
- bit 4, [hl]
- ret z
- ld a, [EnemyEncoreCount]
- dec a
- ld [EnemyEncoreCount], a
- jr z, .asm_3c535
- ld hl, EnemyMonPPMove1
- ld a, [CurEnemyMoveNum]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- ret nz
-
-.asm_3c535
- ld hl, EnemySubStatus5
- res 4, [hl]
- call SetPlayerTurn
- ld hl, $4c8a
- jp StdBattleTextBox
-; 3c543
-
-
-Function3c543: ; 3c543
- ld a, [IsInBattle]
- dec a
- jr nz, .Stay
-
- ld a, [PlayerSubStatus5]
- bit 7, a
- jr nz, .Stay
-
- ld a, [$c731]
- and a
- jr nz, .Stay
-
- ld a, [EnemyMonStatus]
- and 1 << FRZ | SLP
- jr nz, .Stay
-
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Always
- call IsInArray
- jr c, .Flee
-
- call BattleRandom
- ld b, a
- cp $80
- jr nc, .Stay
-
- push bc
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Often
- call IsInArray
- pop bc
- jr c, .Flee
-
- ld a, b
- cp $1a
- jr nc, .Stay
-
- ld a, [TempEnemyMonSpecies]
- ld de, 1
- ld hl, .Sometimes
- call IsInArray
- jr c, .Flee
-
-.Stay
- and a
- ret
-
-.Flee
- scf
- ret
-; 3c59a
-
-.Sometimes
- db MAGNEMITE
- db GRIMER
- db TANGELA
- db MR__MIME
- db EEVEE
- db PORYGON
- db DRATINI
- db DRAGONAIR
- db TOGETIC
- db UMBREON
- db UNOWN
- db SNUBBULL
- db HERACROSS
- db $ff
-
-.Often
- db CUBONE
- db ARTICUNO
- db ZAPDOS
- db MOLTRES
- db QUAGSIRE
- db DELIBIRD
- db PHANPY
- db TEDDIURSA
- db $ff
-
-.Always
- db RAIKOU
- db ENTEI
-; db SUICUNE
- db $ff
-; 3c5b4
-
-
-Function3c5b4: ; 3c5b4
- ld a, [CurPlayerMove]
- call GetMovePriority
- ld b, a
- push bc
- ld a, [CurEnemyMove]
- call GetMovePriority
- pop bc
- cp b
- ret
-; 3c5c5
-
-GetMovePriority: ; 3c5c5
- ld b, a
- cp VITAL_THROW
- ld a, 0
- ret z
- call Function3c5ec
- ld hl, .data_3c5df
-.loop
- ld a, [hli]
- cp b
- jr z, .asm_3c5dd
- inc hl
- cp $ff
- jr nz, .loop
- ld a, 1
- ret
-
-.asm_3c5dd
- ld a, [hl]
- ret
-; 3c5df
-
-.data_3c5df
- db EFFECT_PROTECT, 3
- db EFFECT_ENDURE, 3
- db EFFECT_PRIORITY_HIT, 2
- db EFFECT_WHIRLWIND, 0
- db EFFECT_COUNTER, 0
- db EFFECT_MIRROR_COAT, 0
- db $ff
-; 3c5ec
-
-
-Function3c5ec: ; 3c5ec
- ld a, b
- dec a
- ld hl, $5afc
- ld bc, $0007
- call AddNTimes
- ld a, $10
- call GetFarByte
- ld b, a
- ret
-; 3c5fe
-
-Function3c5fe: ; 3c5fe
- call Function309d
- call Function3c543
- jp c, Function3c0e5
- call SetEnemyTurn
- ld a, $1
- ld [$c70f], a
- callab Function38000
- jr c, .asm_3c62f
- call Function3c6de
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c710
- jp z, Function3d14e
- call Function3c70b
- jp z, Function3cd55
-
-.asm_3c62f
- call SetEnemyTurn
- call Function3c716
- jp z, Function3cd55
- call RefreshBattleHuds
- call Function3c6cf
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c70b
- jp z, Function3cd55
- call Function3c710
- jp z, Function3d14e
- call SetPlayerTurn
- call Function3c716
- jp z, Function3d14e
- call RefreshBattleHuds
- xor a
- ld [$d0ec], a
- ret
-; 3c664
-
-Function3c664: ; 3c664
- xor a
- ld [$c70f], a
- call SetEnemyTurn
- callab Function38000
- push af
- call Function3c6cf
- pop bc
- ld a, [$d232]
- and a
- ret nz
- call Function3d2e0
- ret c
- call Function3c70b
- jp z, Function3cd55
- call Function3c710
- jp z, Function3d14e
- push bc
- call SetPlayerTurn
- call Function3c716
- pop bc
- jp z, Function3d14e
- push bc
- call RefreshBattleHuds
- pop af
- jr c, .asm_3c6be
- call Function309d
- call Function3c543
- jp c, Function3c0e5
- call Function3c6de
- call Function3d2e0
- ret c
- ld a, [$d232]
- and a
- ret nz
- call Function3c710
- jp z, Function3d14e
- call Function3c70b
- jp z, Function3cd55
-
-.asm_3c6be
- call SetEnemyTurn
- call Function3c716
- jp z, Function3cd55
- call RefreshBattleHuds
- xor a
- ld [$d0ec], a
- ret
-; 3c6cf
-
-Function3c6cf: ; 3c6cf
- call SetPlayerTurn
- call Function3c6fe
- callab DoPlayerTurn
- jp Function3c6ed
-; 3c6de
-
-Function3c6de: ; 3c6de
- call SetEnemyTurn
- call Function3c6fe
- callab DoEnemyTurn
- jp Function3c6ed
-; 3c6ed
-
-Function3c6ed: ; 3c6ed
- ld a, $5
- call _GetBattleVar
- res 2, [hl]
- res 5, [hl]
- ld a, $9
- call _GetBattleVar
- res 6, [hl]
- ret
-; 3c6fe
-
-Function3c6fe: ; 3c6fe
- ld a, $4
- call _GetBattleVar
- res 6, [hl]
- ret
-; 3c706
-
-Function3c706: ; 3c706
- ld a, [hBattleTurn]
- and a
- jr z, Function3c710
-Function3c70b: ; 3c70b
- ld hl, EnemyMonHPHi
- jr asm_3c713
-
-Function3c710: ; 3c710
- ld hl, BattleMonHP
-
-asm_3c713
- ld a, [hli]
- or [hl]
- ret
-; 3c716
-
-Function3c716: ; 3c716
- call Function3c706
- ret z
- ld a, $a
- call GetBattleVar
- and $18
- jr z, .asm_3c768
- ld hl, $47e2
- ld de, $0106
- and $10
- jr z, .asm_3c733
- ld hl, $47f8
- ld de, $0105
-
-.asm_3c733
- push de
- call StdBattleTextBox
- pop de
- xor a
- ld [$cfca], a
- call Function3ee0f
- call GetEighthMaxHP
- ld de, $c674
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c74d
- ld de, $c67c
-
-.asm_3c74d
- ld a, $4
- call GetBattleVar
- bit 0, a
- jr z, .asm_3c765
- call Function3cc76
- ld a, [de]
- inc a
- ld [de], a
- ld hl, $0000
-.asm_3c75f
- add hl, bc
- dec a
- jr nz, .asm_3c75f
- ld b, h
- ld c, l
-
-.asm_3c765
- call Function3cc3f
-
-.asm_3c768
- call Function3c706
- jp z, .asm_3c7f7
- ld a, $3
- call _GetBattleVar
- bit 7, [hl]
- jr z, .asm_3c7a1
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld de, $0107
- ld a, $7
- call GetBattleVar
- and $60
- call z, Function3ee0f
- call Function3c8e4
- call GetEighthMaxHP
- call Function3cc3f
- ld a, $1
- ld [hBGMapMode], a
- call Function3ccef
- ld hl, $480e
- call StdBattleTextBox
-
-.asm_3c7a1
- call Function3c706
- jr z, .asm_3c7f7
- ld a, $0
- call _GetBattleVar
- bit 0, [hl]
- jr z, .asm_3c7c5
- xor a
- ld [$cfca], a
- ld de, $010c
- call Function3ee0f
- call GetQuarterMaxHP
- call Function3cc3f
- ld hl, $4822
- call StdBattleTextBox
-
-.asm_3c7c5
- call Function3c706
- jr z, .asm_3c7f7
- ld a, $0
- call _GetBattleVar
- bit 1, [hl]
- jr z, .asm_3c7e9
- xor a
- ld [$cfca], a
- ld de, $010c
- call Function3ee0f
- call GetQuarterMaxHP
- call Function3cc3f
- ld hl, $4836
- call StdBattleTextBox
-
-.asm_3c7e9
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c7f4
- ld hl, EnemyMonHPHi
-
-.asm_3c7f4
- ld a, [hli]
- or [hl]
- ret nz
-
-.asm_3c7f7
- call RefreshBattleHuds
- ld c, $14
- call DelayFrames
- xor a
- ret
-; 3c801
-
-Function3c801: ; 3c801
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c813
- call SetPlayerTurn
- call .asm_3c81c
- call SetEnemyTurn
- jp .asm_3c81c
-
-.asm_3c813
- call SetEnemyTurn
- call .asm_3c81c
- call SetPlayerTurn
-.asm_3c81c
- ld hl, PlayerPerishCount
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c827
- ld hl, EnemyPerishCount
-
-.asm_3c827
- ld a, $0
- call GetBattleVar
- bit 4, a
- ret z
- dec [hl]
- ld a, [hl]
- ld [$d265], a
- push af
- ld hl, $4864
- call StdBattleTextBox
- pop af
- ret nz
- ld a, $0
- call _GetBattleVar
- res 4, [hl]
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_3c85c
- ld hl, BattleMonHP
- xor a
- ld [hli], a
- ld [hl], a
- ld hl, PartyMon1CurHP
- ld a, [CurBattleMon]
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-.asm_3c85c
- ld hl, EnemyMonHPHi
- xor a
- ld [hli], a
- ld [hl], a
- ld a, [IsInBattle]
- dec a
- ret z
- ld hl, OTPartyMon1CurHP
- ld a, [CurOTMon]
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
- ret
-; 3c874
-
-Function3c874: ; 3c874
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c886
- call SetPlayerTurn
- call .asm_3c88f
- call SetEnemyTurn
- jp .asm_3c88f
-
-.asm_3c886
- call SetEnemyTurn
- call .asm_3c88f
- call SetPlayerTurn
-.asm_3c88f
- ld hl, $c730
- ld de, $c72e
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c8a0
- ld hl, $c731
- ld de, $c72f
-
-.asm_3c8a0
- ld a, [hl]
- and a
- ret z
- ld a, $3
- call GetBattleVar
- bit 4, a
- ret nz
- ld a, [de]
- ld [$d265], a
- ld [FXAnimIDLo], a
- call GetMoveName
- dec [hl]
- jr z, .asm_3c8de
- ld a, $2
- call GetBattleVar
- and $60
- jr nz, .asm_3c8d3
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld [FXAnimIDHi], a
- ld a, $37
- call Predef
- call Function3c8e4
-
-.asm_3c8d3
- call Function3cc76
- call Function3cc3f
- ld hl, $4de2
- jr .asm_3c8e1
-
-.asm_3c8de
- ld hl, $4df5
-
-.asm_3c8e1
- jp StdBattleTextBox
-; 3c8e4
-
-Function3c8e4: ; 3c8e4
- ld a, [hBattleTurn]
- xor $1
- ld [hBattleTurn], a
- ret
-; 3c8eb
-
-Function3c8eb: ; 3c8eb
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c8fd
- call SetPlayerTurn
- call .asm_3c906
- call SetEnemyTurn
- jp .asm_3c906
-
-.asm_3c8fd
- call SetEnemyTurn
- call .asm_3c906
- call SetPlayerTurn
-.asm_3c906
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- call GetItemName
- ld a, b
- cp $3
- ret nz
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c922
- ld hl, EnemyMonHPHi
-
-.asm_3c922
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- cp b
- jr nz, .asm_3c92d
- ld a, [hl]
- cp c
- ret z
-
-.asm_3c92d
- call Function3cc76
- call Function3c8e4
- call Function3ccef
- ld hl, $4880
- jp StdBattleTextBox
-; 3c93c
-
-Function3c93c: ; 3c93c
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3c94e
- call SetPlayerTurn
- call .asm_3c957
- call SetEnemyTurn
- jp .asm_3c957
-
-.asm_3c94e
- call SetEnemyTurn
- call .asm_3c957
- call SetPlayerTurn
-.asm_3c957
- callab GetUserItem
- ld a, b
- cp $6
- jr nz, .asm_3c9ae
- ld hl, PartyMon1PP
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld d, h
- ld e, l
- ld hl, PartyMon1Move1
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c99b
- ld de, $c739
- ld hl, $c735
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3c99b
- ld hl, OTPartyMon1PPMove1
- ld a, [CurOTMon]
- call GetPartyLocation
- ld d, h
- ld e, l
- ld hl, OTPartyMon1Move1
- ld a, [CurOTMon]
- call GetPartyLocation
-
-.asm_3c99b
- ld c, $0
-.asm_3c99d
- ld a, [hl]
- and a
- jr z, .asm_3c9ae
- ld a, [de]
- and $3f
- jr z, .asm_3c9af
- inc hl
- inc de
- inc c
- ld a, c
- cp $4
- jr nz, .asm_3c99d
-
-.asm_3c9ae
- ret
-
-.asm_3c9af
- ld a, [hl]
- cp $a6
- ld b, $1
- jr z, .asm_3c9b8
- ld b, $5
-
-.asm_3c9b8
- ld a, [de]
- add b
- ld [de], a
- push bc
- push bc
- ld a, [hl]
- ld [$d265], a
- ld de, BattleMonItem
- ld hl, BattleMonPPMove1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3c9d2
- ld de, EnemyMonItem
- ld hl, EnemyMonPPMove1
-
-.asm_3c9d2
- inc de
- pop bc
- ld b, $0
- add hl, bc
- push hl
- ld h, d
- ld l, e
- add hl, bc
- pop de
- pop bc
- ld a, [$d265]
- cp [hl]
- jr nz, .asm_3c9f5
- ld a, [hBattleTurn]
- and a
- ld a, [PlayerSubStatus5]
- jr z, .asm_3c9ee
- ld a, [EnemySubStatus5]
-
-.asm_3c9ee
- bit 3, a
- jr nz, .asm_3c9f5
- ld a, [de]
- add b
- ld [de], a
-
-.asm_3c9f5
- callab GetUserItem
- ld a, [hl]
- ld [$d265], a
- xor a
- ld [hl], a
- call Function3df12
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ca12
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ca14
- call Function3df1f
-
-.asm_3ca12
- xor a
- ld [hl], a
-
-.asm_3ca14
- call GetItemName
- call Function3c8e4
- call Function3ddc8
- call Function3c8e4
- ld hl, $4899
- jp StdBattleTextBox
-; 3ca26
-
-Function3ca26: ; 3ca26
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3ca38
- call SetPlayerTurn
- call .asm_3ca41
- call SetEnemyTurn
- jp .asm_3ca41
-
-.asm_3ca38
- call SetEnemyTurn
- call .asm_3ca41
- call SetPlayerTurn
-.asm_3ca41
- ld hl, $c71d
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ca4c
- ld hl, $c71e
-
-.asm_3ca4c
- ld a, [hl]
- and a
- ret z
- dec a
- ld [hl], a
- cp $1
- ret nz
- ld hl, $48b6
- call StdBattleTextBox
- ld a, $10
- call _GetBattleVar
- push af
- ld a, $f8
- ld [hl], a
- callab UpdateMoveData
- xor a
- ld [AttackMissed], a
- ld [AlreadyDisobeyed], a
- ld a, $a
- ld [TypeModifier], a
- callab DoMove
- xor a
- ld [CurDamage], a
- ld [$d257], a
- ld a, $10
- call _GetBattleVar
- pop af
- ld [hl], a
- call UpdateBattleMonInParty
- jp UpdateEnemyMonInParty
-; 3ca8f
-
-Function3ca8f: ; 3ca8f
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3ca9a
- call .asm_3ca9d
- jr .asm_3cac9
-
-.asm_3ca9a
- call .asm_3cac9
-.asm_3ca9d
- ld a, [BattleMonStatus]
- bit 5, a
- ret z
- ld a, [$c73f]
- and a
- ret nz
- call BattleRandom
- cp $19
- ret nc
- xor a
- ld [BattleMonStatus], a
- ld a, [CurBattleMon]
- ld hl, PartyMon1Status
- call GetPartyLocation
- ld [hl], $0
- call UpdateBattleHuds
- call SetEnemyTurn
- ld hl, $524b
- jp StdBattleTextBox
-
-.asm_3cac9
- ld a, [EnemyMonStatus]
- bit 5, a
- ret z
- ld a, [$c740]
- and a
- ret nz
- call BattleRandom
- cp $19
- ret nc
- xor a
- ld [EnemyMonStatus], a
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3caef
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- call GetPartyLocation
- ld [hl], $0
-
-.asm_3caef
- call UpdateBattleHuds
- call SetPlayerTurn
- ld hl, $524b
- jp StdBattleTextBox
-; 3cafb
-
-Function3cafb: ; 3cafb
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3cb06
- call .asm_3cb09
- jr .asm_3cb1c
-
-.asm_3cb06
- call .asm_3cb1c
-.asm_3cb09
- ld a, [PlayerScreens]
- bit 2, a
- ret z
- ld hl, $c701
- dec [hl]
- ret nz
- res 2, a
- ld [PlayerScreens], a
- xor a
- jr .asm_3cb2e
-
-.asm_3cb1c
- ld a, [EnemyScreens]
- bit 2, a
- ret z
- ld hl, $c705
- dec [hl]
- ret nz
- res 2, a
- ld [EnemyScreens], a
- ld a, $1
-
-.asm_3cb2e
- ld [hBattleTurn], a
- ld hl, $48d2
- jp StdBattleTextBox
-; 3cb36
-
-
-Function3cb36: ; 3cb36
- ld a, [$ffcb]
- cp 1
- jr z, .Both
- call .CheckPlayer
- jr .CheckEnemy
-
-.Both
- call .CheckEnemy
-
-.CheckPlayer
- call SetPlayerTurn
- ld de, .Your
- call .asm_3cb6f
- ld hl, PlayerScreens
- ld de, PlayerLightScreenCount
- jr .FadeScreens
-
-.CheckEnemy
- call SetEnemyTurn
- ld de, .Enemy
- call .asm_3cb6f
- ld hl, EnemyScreens
- ld de, EnemyLightScreenCount
-
-.FadeScreens
- bit SCREENS_LIGHT_SCREEN, [hl]
- call nz, FadeLightScreen
- bit SCREENS_REFLECT, [hl]
- call nz, FadeReflect
- ret
-
-.asm_3cb6f
- ld hl, StringBuffer1
- jp CopyName2
-; 3cb75
-
-.Your
- db "Your@"
-.Enemy
- db "Enemy@"
-; 3cb80
-
-
-FadeLightScreen: ; 3cb80
- ld a, [de]
- dec a
- ld [de], a
- ret nz
- res SCREENS_LIGHT_SCREEN, [hl]
- push hl
- push de
- ld hl, BattleText_0x808e7
- call StdBattleTextBox
- pop de
- pop hl
- ret
-; 3cb91
-
-FadeReflect: ; 3cb91
- inc de
- ld a, [de]
- dec a
- ld [de], a
- ret nz
- res SCREENS_REFLECT, [hl]
- ld hl, BattleText_0x80905
- jp StdBattleTextBox
-; 3cb9e
-
-HandleWeather: ; 3cb9e
-
- ld a, [Weather]
- cp 0
- ret z
-
- ld hl, WeatherCount
- dec [hl]
- jr z, .asm_3cc13
-
- ld hl, .WeatherMessages
- call .asm_3cc1e
- ld a, [Weather]
- cp WEATHER_SANDSTORM
- ret nz
- ld a, [$ffcb]
- cp 1
- jr z, .asm_3cbc7
-
-; Player first
- call SetPlayerTurn
- call .asm_3cbd0
- call SetEnemyTurn
- jr .asm_3cbd0
-
-.asm_3cbc7
-; Enemy first
- call SetEnemyTurn
- call .asm_3cbd0
- call SetPlayerTurn
-
-.asm_3cbd0
- ld a, BATTLE_VARS_SUBSTATUS3
- call GetBattleVar
- bit SUBSTATUS_UNDERGROUND, a
- ret nz
-
- ld hl, BattleMonType1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cbe3
- ld hl, EnemyMonType1
-
-.asm_3cbe3
- ld a, [hli]
- cp ROCK
- ret z
- cp GROUND
- ret z
- cp STEEL
- ret z
-
- ld a, [hl]
- cp ROCK
- ret z
- cp GROUND
- ret z
- cp STEEL
- ret z
-
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld de, $010b
- call Function3ee17
- call Function3c8e4
- call GetEighthMaxHP
- call Function3cc3f
-
- ld hl, BattleText_0x8084d
- jp StdBattleTextBox
-
-.asm_3cc13
- ld hl, .WeatherEndedMessages
- call .asm_3cc1e
- xor a
- ld [Weather], a
- ret
-
-.asm_3cc1e
- ld a, [Weather]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp StdBattleTextBox
-; 3cc2d
-
-.WeatherMessages
- dw BattleText_0x8091f
- dw BattleText_0x80938
- dw BattleText_0x80951
-.WeatherEndedMessages
- dw BattleText_0x80967
- dw BattleText_0x8097a
- dw BattleText_0x8098f
-; 3cc39
-
-Function3cc39: ; 3cc39
- call Function3cc45
- jp Function3cd3c
-; 3cc3f
-
-Function3cc3f: ; 3cc3f
- call Function3cc45
- jp Function3cd36
-; 3cc45
-
-
-
-Function3cc45: ; 3cc45
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cc50
- ld hl, EnemyMonHPHi
-
-.asm_3cc50
- inc hl
- ld a, [hl]
- ld [$d1ec], a
- sub c
- ld [hld], a
- ld [$d1ee], a
- ld a, [hl]
- ld [$d1ed], a
- sbc b
- ld [hl], a
- ld [$d1ef], a
- ret nc
- ld a, [$d1ec]
- ld c, a
- ld a, [$d1ed]
- ld b, a
- xor a
- ld [hli], a
- ld [hl], a
- ld [$d1ee], a
- ld [$d1ef], a
- ret
-; 3cc76
-
-Function3cc76: ; 3cc76
- call GetQuarterMaxHP
- srl c
- srl c
- ld a, c
- and a
- jr nz, .asm_3cc82
- inc c
-
-.asm_3cc82
- ret
-; 3cc83
-
-
-GetEighthMaxHP: ; 3cc83
-; output: bc
- call GetQuarterMaxHP
-; assumes nothing can have 1024 or more hp
-; halve result
- srl c
-; round up
- ld a, c
- and a
- jr nz, .end
- inc c
-.end
- ret
-; 3cc8e
-
-
-GetQuarterMaxHP: ; 3cc8e
-; output: bc
- call GetMaxHP
-
-; quarter result
- srl b
- rr c
- srl b
- rr c
-
-; assumes nothing can have 1024 or more hp
-; round up
- ld a, c
- and a
- jr nz, .end
- inc c
-.end
- ret
-; 3cc9f
-
-
-GetHalfMaxHP: ; 3cc9f
-; output: bc
- call GetMaxHP
-
-; halve reslut
- srl b
- rr c
-
-; floor = 1
- ld a, c
- or b
- jr nz, .end
- inc c
-.end
- ret
-; 3ccac
-
-
-GetMaxHP: ; 3ccac
-; output: bc, Buffer1-2
-
-; player
- ld hl, BattleMonMaxHP
-
-; whose turn?
- ld a, [hBattleTurn]
- and a
- jr z, .gethp
-
-; enemy
- ld hl, EnemyMonMaxHP
-
-.gethp
- ld a, [hli]
- ld [Buffer2], a
- ld b, a
-
- ld a, [hl]
- ld [Buffer1], a
- ld c, a
- ret
-; 3ccc2
-
-Function3ccc2: ; 3ccc2
- ld hl, BattleMonHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cccd
- ld hl, EnemyMonHP
-
-.asm_3cccd
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- srl b
- rr c
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- ret
-; 3ccde
-
-Function3ccde: ; 3ccde
- ld hl, BattleMonHP + 1
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3cce9
- ld hl, EnemyMonHP + 1
-
-.asm_3cce9
- ld a, c
- sub [hl]
- dec hl
- ld a, b
- sbc [hl]
- ret
-; 3ccef
-
-
-Function3ccef: ; 3ccef
- ld hl, EnemyMonMaxHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ccfa
- ld hl, BattleMonMaxHP
-
-.asm_3ccfa
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hld]
- ld [Buffer1], a
- dec hl
- ld a, [hl]
- ld [$d1ec], a
- add c
- ld [hld], a
- ld [$d1ee], a
- ld a, [hl]
- ld [$d1ed], a
- adc b
- ld [hli], a
- ld [$d1ef], a
- ld a, [Buffer1]
- ld c, a
- ld a, [hld]
- sub c
- ld a, [Buffer2]
- ld b, a
- ld a, [hl]
- sbc b
- jr c, .asm_3cd2d
- ld a, b
- ld [hli], a
- ld [$d1ef], a
- ld a, c
- ld [hl], a
- ld [$d1ee], a
-
-.asm_3cd2d
- call Function3c8e4
- call Function3cd36
- jp Function3c8e4
-; 3cd36
-
-Function3cd36: ; 3cd36
- call Function3cd3c
- jp UpdateBattleHuds
-; 3cd3c
-
-
-Function3cd3c: ; 3cd3c
- ld hl, $c55e
- ld a, [hBattleTurn]
- and a
- ld a, $1
- jr z, .asm_3cd4a
- ld hl, $c4ca
- xor a
-
-.asm_3cd4a
- push bc
- ld [$d10a], a
- ld a, $b
- call Predef
- pop bc
- ret
-; 3cd55
-
-Function3cd55: ; 3cd55
- call Function3cf14
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- call z, Function3cef1
- xor a
- ld [$c6f7], a
- call Function3ce01
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- call nz, Function3df48
- ld a, $1
- ld [hBGMapMode], a
- ld c, $3c
- call DelayFrames
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3cd8c
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3cd8c
- call Function3cf35
- jp z, Function3cfa4
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3cdba
- call Function3d1f8
- jr nc, .asm_3cda4
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3cda4
- call Function3d227
- call Function3d2e0
- jp c, Function3c0e5
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- jr asm_3cdca
-
-.asm_3cdba
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- xor a
- ld [$d0ec], a
- ret
-
-asm_3cdca
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3cde6
- call ClearSprites
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- call Function3d2b3
- ld a, $1
- call asm_3cf78
- jr .asm_3cdfc
-
-.asm_3cde6
- ld a, [CurPartyMon]
- push af
- ld a, $1
- call asm_3cf78
- call ClearSprites
- call Function309d
- pop af
- ld [CurPartyMon], a
- call Function3d2b3
-
-.asm_3cdfc
- xor a
- ld [$d0ec], a
- ret
-; 3ce01
-
-Function3ce01: ; 3ce01
- call UpdateBattleMonInParty
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ce16
- ld a, [CurOTMon]
- ld hl, OTPartyMon1CurHP
- call GetPartyLocation
- xor a
- ld [hli], a
- ld [hl], a
-
-.asm_3ce16
- ld hl, PlayerSubStatus3
- res 2, [hl]
- xor a
- ld hl, EnemyDamageTaken
- ld [hli], a
- ld [hl], a
- call Function3d834
- call Function3dc18
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3ce2f
- jr .asm_3ce37
-
-.asm_3ce2f
- call Function3ceec
- ld a, $1
- ld [$c6fd], a
-
-.asm_3ce37
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3ce47
- ld a, [$c6f7]
- and a
- jr nz, .asm_3ce47
- call Function3d1aa
-
-.asm_3ce47
- call Function3d873
- ld a, d
- and a
- ret z
- ld a, [IsInBattle]
- dec a
- call z, Function3d0ea
- call EmptyBattleTextBox
- call Function309d
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- call Function3ceaa
- jr z, .asm_3ce72
- ld hl, EnemyMonBaseStats
- ld b, $7
-.asm_3ce6c
- srl [hl]
- inc hl
- dec b
- jr nz, .asm_3ce6c
-
-.asm_3ce72
- ld hl, EnemyMonBaseStats
- ld de, $c720
- ld bc, $0007
- call CopyBytes
- xor a
- ld [$c71f], a
- call Function3ee3b
- call Function3ceaa
- ret z
- ld a, [$c664]
- push af
- ld a, d
- ld [$c664], a
- ld hl, $c720
- ld de, EnemyMonBaseStats
- ld bc, $0007
- call CopyBytes
- ld a, $1
- ld [$c71f], a
- call Function3ee3b
- pop af
- ld [$c664], a
- ret
-; 3ceaa
-
-Function3ceaa: ; 3ceaa
- ld a, [PartyCount]
- ld b, a
- ld hl, PartyMon1Species
- ld c, $1
- ld d, $0
-.asm_3ceb5
- push hl
- push bc
- ld bc, $0022
- add hl, bc
- ld a, [hli]
- or [hl]
- pop bc
- pop hl
- jr z, .asm_3ced1
- push hl
- push bc
- ld bc, $0001
- add hl, bc
- pop bc
- ld a, [hl]
- pop hl
- cp $39
- jr nz, .asm_3ced1
- ld a, d
- or c
- ld d, a
-
-.asm_3ced1
- sla c
- push de
- ld de, $0030
- add hl, de
- pop de
- dec b
- jr nz, .asm_3ceb5
- ld a, d
- ld e, $0
- ld b, $6
-.asm_3cee1
- srl a
- jr nc, .asm_3cee6
- inc e
-
-.asm_3cee6
- dec b
- jr nz, .asm_3cee1
- ld a, e
- and a
- ret
-; 3ceec
-
-
-
-Function3ceec: ; 3ceec
- xor a
- ld [Danger], a
- ret
-; 3cef1
-
-Function3cef1: ; 3cef1
- call Function3ceec
- call WaitSFX
- ld a, $f0
- ld [CryTracks], a
- ld a, [BattleMonSpecies]
- call Function37b6
- call Function3d43b
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld hl, BattleText_0x80a75
- jp StdBattleTextBox
-; 3cf14
-
-Function3cf14: ; 3cf14
- call WaitSFX
- ld de, SFX_KINESIS
- call PlaySFX
- call Function3d432
- ld de, SFX_UNKNOWN_2A
- call PlaySFX
- hlcoord 1, 0
- ld bc, $040a
- call ClearBox
- ld hl, BattleText_0x809a8
- jp StdBattleTextBox
-; 3cf35
-
-Function3cf35: ; 3cf35
- ld a, [OTPartyCount]
- ld b, a
- xor a
- ld hl, OTPartyMon1CurHP
- ld de, $0030
-.asm_3cf40
- or [hl]
- inc hl
- or [hl]
- dec hl
- add hl, de
- dec b
- jr nz, .asm_3cf40
- and a
- ret
-; 3cf4a
-
-Function3cf4a: ; 3cf4a
- ld hl, EnemyHPPal
- ld e, $30
- call Function3e12e
- call WaitBGMap
- callba Function2c012
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3cf6d
- call Function3e8e4
- ld a, [$d430]
- cp $f
- ret z
- call Function30b4
-
-.asm_3cf6d
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- ld a, $0
- jr nz, asm_3cf78
- inc a
- ret
-
-asm_3cf78
- push af
- xor a
- ld [$c718], a
- call Function3d834
- call Function3d867
- call Function3dc18
- pop af
- and a
- jr nz, .asm_3cf8f
- call Function3d4e1
- jr .asm_3cf92
-
-.asm_3cf8f
- call asm_3d517
-
-.asm_3cf92
- call Function3d57a
- call SetEnemyTurn
- call Function3dc23
- xor a
- ld [EnemyMoveAnimation], a
- ld [$d0ec], a
- inc a
- ret
-; 3cfa4
-
-Function3cfa4: ; 3cfa4
- call Function3ceec
- ld a, $1
- ld [$c6fd], a
- ld [BattleEnded], a
- ld a, [InLinkBattle]
- and a
- ld a, b
- call z, Function3d0ea
- callab Function39939
- ld hl, BattleText_0x809da
- call StdBattleTextBox
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- ld a, [InLinkBattle]
- and a
- ret nz
- ld a, [$cfc0]
- bit 0, a
- jr nz, .asm_3d006
- call Function3ebd8
- ld c, $28
- call DelayFrames
- ld a, [BattleType]
- cp $1
- jr nz, .asm_3cfe8
- ld a, $2
- call Predef
-
-.asm_3cfe8
- ld a, [$c2cc]
- bit 0, a
- jr nz, .asm_3cff2
- call Function3718
-
-.asm_3cff2
- jp Function3d02b
-
-.ismobilelinkbattle
- call Function3ebd8
- ld c, $28
- call DelayFrames
- ld c, $4
- callba Function4ea0a
- ret
-
-.asm_3d006
- call Function3ebd8
- ld c, $28
- call DelayFrames
- call EmptyBattleTextBox
- ld c, $3
- callba Function11c000
- call Functiona80
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- ret nz
- call ClearTileMap
- call WhiteBGMap
- ret
-; 3d02b
-
-Function3d02b: ; 3d02b
- ld a, [$c73d]
- and a
- call nz, Function3d099
- call Function3d0b1
- push af
- ld a, $0
- jr nc, .asm_3d044
- ld a, [$d854]
- and $7
- cp $3
- jr nz, .asm_3d044
- inc a
-
-.asm_3d044
- ld b, a
- ld c, $4
-.asm_3d047
- ld a, b
- and a
- jr z, .asm_3d052
- call Function3d081
- dec c
- dec b
- jr .asm_3d047
-
-.asm_3d052
- ld a, c
- and a
- jr z, .asm_3d05c
- call Function3d08d
- dec c
- jr .asm_3d052
-
-.asm_3d05c
- call Function3d099
- call Function3d099
- pop af
- jr nc, .asm_3d07b
- ld a, [$d854]
- and $7
- jr z, .asm_3d07b
- ld hl, SentToMomTexts
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp StdBattleTextBox
-
-.asm_3d07b
- ld hl, BattleText_0x809be
- jp StdBattleTextBox
-; 3d081
-
-Function3d081: ; 3d081
- push bc
- ld hl, $c688
- ld de, $d853
- call Function3d0be
- pop bc
- ret
-; 3d08d
-
-Function3d08d: ; 3d08d
- push bc
- ld hl, $c688
- ld de, $d850
- call Function3d0be
- pop bc
- ret
-; 3d099
-
-Function3d099: ; 3d099
- ld hl, $c688
- sla [hl]
- dec hl
- rl [hl]
- dec hl
- rl [hl]
- ret nc
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ret
-; 3d0ab
-
-SentToMomTexts: ; 3d0ab
- dw BattleText_0x809fc
- dw BattleText_0x80a2a
- dw BattleText_0x80a3d
-; 3d0b1
-
-
-Function3d0b1: ; 3d0b1
- ld hl, $d853
- ld a, [hld]
- cp $3f
- ld a, [hld]
- sbc $42
- ld a, [hl]
- sbc $f
- ret
-; 3d0be
-
-Function3d0be: ; 3d0be
- ld c, $3
- and a
- push de
- push hl
- push bc
- ld b, h
- ld c, l
- callba Function106008
- pop bc
- pop hl
-.asm_3d0ce
- ld a, [de]
- adc [hl]
- ld [de], a
- dec de
- dec hl
- dec c
- jr nz, .asm_3d0ce
- pop hl
- ld a, [hld]
- cp $3f
- ld a, [hld]
- sbc $42
- ld a, [hl]
- sbc $f
- ret c
- ld [hl], $f
- inc hl
- ld [hl], $42
- inc hl
- ld [hl], $3f
- ret
-; 3d0ea
-
-Function3d0ea: ; 3d0ea
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_WILD_VICTORY
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3d113
- push de
- call Function3ceaa
- pop de
- jr nz, .asm_3d11e
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d11e
- ld a, [$c664]
- and a
- jr z, .asm_3d121
- jr .asm_3d11e
-
-.asm_3d113
- ld de, MUSIC_GYM_VICTORY
- call IsJohtoGymLeader
- jr c, .asm_3d11e
- ld de, MUSIC_TRAINER_VICTORY
-
-.asm_3d11e
- call PlayMusic
-
-.asm_3d121
- pop de
- ret
-; 3d123
-
-
-
-; These functions check if the current opponent is a gym leader or one of a
-; few other special trainers.
-
-; Note: KantoGymLeaders is a subset of JohtoGymLeaders. If you wish to
-; differentiate between the two, call IsKantoGymLeader first.
-
-; The Lance and Red entries are unused for music checks; those trainers are
-; accounted for elsewhere.
-
-IsKantoGymLeader: ; 0x3d123
- ld hl, KantoGymLeaders
- jr IsGymLeaderCommon
-
-IsJohtoGymLeader: ; 0x3d128
- ld hl, JohtoGymLeaders
-IsGymLeaderCommon:
- push de
- ld a, [OtherTrainerClass]
- ld de, $0001
- call IsInArray
- pop de
- ret
-; 0x3d137
-
-JohtoGymLeaders:
- db FALKNER
- db WHITNEY
- db BUGSY
- db MORTY
- db PRYCE
- db JASMINE
- db CHUCK
- db CLAIR
- db WILL
- db BRUNO
- db KAREN
- db KOGA
-; fallthrough
-; these two entries are unused
- db CHAMPION
- db RED
-; fallthrough
-KantoGymLeaders:
- db BROCK
- db MISTY
- db LT_SURGE
- db ERIKA
- db JANINE
- db SABRINA
- db BLAINE
- db BLUE
- db $ff
-
-
-Function3d14e: ; 3d14e
- call Function3cef1
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- call z, Function3cf14
- ld a, $1
- ld [$c6f7], a
- call Function3d1aa
- call Function3d873
- ld a, d
- and a
- jp z, LostBattle
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d185
- call Function3ce01
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3d17f
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3d17f
- call Function3cf35
- jp z, Function3cfa4
-
-.asm_3d185
- call Function3d1f8
- jr nc, .asm_3d190
- ld a, $1
- ld [BattleEnded], a
- ret
-
-.asm_3d190
- call Function3d227
- call Function3d2e0
- jp c, Function3c0e5
- ld a, c
- and a
- ret nz
- ld a, $1
- ld [$d0ec], a
- call Function3cf4a
- jp z, Function3c0e5
- jp asm_3cdca
-; 3d1aa
-
-Function3d1aa: ; 3d1aa
- ld a, [CurBattleMon]
- ld c, a
- ld hl, $c664
- ld b, $0
- ld a, $3
- call Predef
- ld hl, EnemySubStatus3
- res 2, [hl]
- xor a
- ld [Danger], a
- ld hl, PlayerDamageTaken
- ld [hli], a
- ld [hl], a
- ld [BattleMonStatus], a
- call UpdateBattleMonInParty
- ld c, $6
- ld a, [BattleMonLevel]
- add $1e
- ld b, a
- ld a, [EnemyMonLevel]
- cp b
- jr c, .asm_3d1dc
- ld c, $8
-
-.asm_3d1dc
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callab ChangeHappiness
- ld a, [$d0ee]
- and $c0
- add $1
- ld [$d0ee], a
- ld a, [$c6f7]
- and a
- ret z
- ret
-; 3d1f8
-
-Function3d1f8: ; 3d1f8
- call EmptyBattleTextBox
- call Function309d
- ld a, [IsInBattle]
- and a
- dec a
- ret nz
- ld hl, BattleText_0x80a83
- call StdBattleTextBox
-.asm_3d20a
- ld bc, $0107
- call Function1dd2
- ld a, [$cfa9]
- jr c, .asm_3d217
- and a
- ret
-
-.asm_3d217
- ld a, [$cfa9]
- cp $1
- jr z, .asm_3d20a
- ld hl, PartyMon1Spd
- ld de, EnemyMonSpd
- jp Function3d8b3
-; 3d227
-
-Function3d227: ; 3d227
- call EmptyBattleTextBox
- call Function1d6e
- call Function3d2f7
- call Function3d362
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3d241
- ld a, $1
- ld [$d0ec], a
- call Function3e8e4
-
-.asm_3d241
- xor a
- ld [$d0ec], a
- call Function3d2e0
- jr c, .asm_3d251
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3d26c
-
-.asm_3d251
- call ClearSprites
- call WhiteBGMap
- call Function3eda6
- call Function1c07
- call Function309d
- call WaitBGMap
- call ClearSGB
- call Function32f9
- xor a
- ld c, a
- ret
-
-.asm_3d26c
- call ClearSprites
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- call Function1c17
- call ClearSGB
- call Function32f9
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, $1
- and a
- ld c, a
- ret
-; 3d2b3
-
-Function3d2b3: ; 3d2b3
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- jp Function3dc23
-; 3d2e0
-
-
-
-Function3d2e0: ; 3d2e0
- ld a, [InLinkBattle]
- cp $4
- jr nz, .asm_3d2ef
- ld a, [$cd2b]
- and a
- jr z, .asm_3d2ef
- scf
- ret
-
-.asm_3d2ef
- xor a
- ret
-; 3d2f1
-
-CheckInMobileLinkBattle: ; 3d2f1
- ld a, [InLinkBattle]
- cp $4
- ret
-; 3d2f7
-
-Function3d2f7: ; 3d2f7
- call WhiteBGMap
-Function3d2fa: ; 3d2fa
- callba Function5004f
- callba Function50405
- callba Function8e85
- callba Function503e0
- ret
-; 3d313
-
-Function3d313: ; 3d313
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call Function32f9
- call DelayFrame
- ret
-; 3d329
-
-Function3d329: ; 3d329
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba PartyMenuSelect
- ret
-
-.ismobilelinkbattle
- callba Function100cb5
- ret
-; 3d33c
-
-Function3d33c: ; 3d33c
-.asm_3d33c
- ld a, $2
- ld [PartyMenuActionText], a
- call Function3d313
- call Function3d329
- ret c
- call Function3d887
- jr z, .asm_3d33c
- xor a
- ret
-; 3d34f
-
-Function3d34f: ; 3d34f
- ld hl, CurBattleMon
- ld a, [CurPartyMon]
- cp [hl]
- jr nz, .asm_3d360
- ld hl, BattleText_0x80c0d
- call StdBattleTextBox
- scf
- ret
-
-.asm_3d360
- xor a
- ret
-; 3d362
-
-Function3d362: ; 3d362
-.asm_3d362
- call Function3d33c
- ret nc
- call Function3d2e0
- ret c
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- jr .asm_3d362
-; 3d375
-
-
-
-Function3d375: ; 3d375
-.asm_3d375
- call Function3d33c
- ret c
- call Function3d34f
- jr c, .asm_3d375
- xor a
- ret
-; 3d380
-
-Function3d380: ; 3d380
-.asm_3d380
- call Function3d362
- call Function3d2e0
- ret c
- call Function3d34f
- jr c, .asm_3d380
- xor a
- ret
-; 3d38e
-
-
-LostBattle: ; 3d38e
- ld a, 1
- ld [BattleEnded], a
-
- ld a, [$cfc0]
- bit 0, a
- jr nz, .asm_3d3bd
-
- ld a, [BattleType]
- cp BATTLETYPE_CANLOSE
- jr nz, .asm_3d3e3
-
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- ld a, [$c2cc]
- bit 0, a
- jr nz, .asm_3d3bc
- call Function3718
-.asm_3d3bc
- ret
-
-.asm_3d3bd
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- call EmptyBattleTextBox
- ld c, 2
- callba Function11c000
- call Functiona80
- call ClearTileMap
- call WhiteBGMap
- ret
-
-.asm_3d3e3
- ld a, [InLinkBattle]
- and a
- jr nz, .LostLinkBattle
-
-; Greyscale
- ld b, 0
- call GetSGBLayout
- call Function32f9
- jr .end
-
-.LostLinkBattle
- call UpdateEnemyMonInParty
- call Function3cf35
- jr nz, .asm_3d40a
- ld hl, TiedAgainstText
- ld a, [$d0ee]
- and $c0
- add 2
- ld [$d0ee], a
- jr .asm_3d412
-
-.asm_3d40a
- ld hl, LostAgainstText
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
-
-.asm_3d412
- call StdBattleTextBox
-
-.end
- scf
- ret
-
-.ismobilelinkbattle
-; Remove the enemy from the screen.
- hlcoord 0, 0
- ld bc, $0815
- call ClearBox
- call Function3ebd8
-
- ld c, 40
- call DelayFrames
-
- ld c, $3
- callba Function4ea0a
- scf
- ret
-; 3d432
-
-
-Function3d432: ; 3d432
- ld hl, $c510
- ld de, $c524
- jp Function3d444
-; 3d43b
-
-Function3d43b: ; 3d43b
- ld hl, $c569
- ld de, $c57d
- jp Function3d444
-; 3d444
-
-Function3d444: ; 3d444
- ld a, [$cfbe]
- push af
- set 6, a
- ld [$cfbe], a
- ld b, $7
-.asm_3d44f
- push bc
- push de
- push hl
- ld b, $6
-.asm_3d454
- push bc
- push hl
- push de
- ld bc, $0007
- call CopyBytes
- pop de
- pop hl
- ld bc, -20
- add hl, bc
- push hl
- ld h, d
- ld l, e
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- pop bc
- dec b
- jr nz, .asm_3d454
- ld bc, 20
- add hl, bc
- ld de, .Spaces
- call PlaceString
- ld c, 2
- call DelayFrames
- pop hl
- pop de
- pop bc
- dec b
- jr nz, .asm_3d44f
- pop af
- ld [$cfbe], a
- ret
-; 3d488
-
-.Spaces
- db " @"
-; 3d490
-
-
-Function3d490: ; 3d490
- ld [hConnectionStripLength], a
- ld c, a
-.asm_3d493
- push bc
- push hl
- ld b, $7
-.asm_3d497
- push hl
- call Function3d4ae
- pop hl
- ld de, 20
- add hl, de
- dec b
- jr nz, .asm_3d497
- ld c, 2
- call DelayFrames
- pop hl
- pop bc
- dec c
- jr nz, .asm_3d493
- ret
-; 3d4ae
-
-Function3d4ae: ; 3d4ae
- ld a, [hConnectionStripLength]
- ld c, a
- cp $8
- jr nz, .asm_3d4bc
-.asm_3d4b5
- ld a, [hli]
- ld [hld], a
- dec hl
- dec c
- jr nz, .asm_3d4b5
- ret
-
-.asm_3d4bc
- ld a, [hld]
- ld [hli], a
- inc hl
- dec c
- jr nz, .asm_3d4bc
- ret
-; 3d4c3
-
-
-Function3d4c3: ; 3d4c3
- call Function3d557
- ld a, [$c718]
- dec a
- ld b, a
- call Function3d6ca
- call Function3d7a0
- call Function3d834
- call Function3d867
- call Function3d7c7
- call Function3dc18
- call Function3d57a
- ret
-; 3d4e1
-
-
-Function3d4e1: ; 3d4e1
- call Function3d714
- jr nc, asm_3d517
- call Function3d557
- call Function3d533
- jr c, .asm_3d4f1
- call Function3d599
-
-.asm_3d4f1
- call Function3d6ca
- call Function3d74b
- push af
- call Function3d7a0
- call Function3d7b8
- call Function3d7c7
- pop af
- ret c
- xor a
- ld [$c664], a
- ld [$c6fc], a
- ld [$d0ec], a
- inc a
- ld [$c711], a
- call Function309d
- jp Function3e3ad
-
-asm_3d517
- call Function3d557
- call Function3d533
- jr c, .asm_3d522
- call Function3d599
-
-.asm_3d522
- call Function3d6ca
- ld a, $1
- ld [$c711], a
- call Function3d7a0
- call Function3d7b8
- jp Function3d7c7
-; 3d533
-
-Function3d533: ; 3d533
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3d541
- ld a, [$d430]
- sub $4
- ld b, a
- jr .asm_3d555
-
-.asm_3d541
- ld a, [$c718]
- and a
- jr z, .asm_3d54b
- dec a
- ld b, a
- jr .asm_3d555
-
-.asm_3d54b
- ld a, [$d264]
- and a
- ld b, $0
- jr nz, .asm_3d555
- and a
- ret
-
-.asm_3d555
- scf
- ret
-; 3d557
-
-Function3d557: ; 3d557
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastEnemyMove], a
- ld [CurEnemyMove], a
- dec a
- ld [$c6e6], a
- xor a
- ld [$c730], a
- ld hl, $c4b2
- ld a, $8
- call Function3d490
- call EmptyBattleTextBox
- jp Function1d6e
-; 3d57a
-
-Function3d57a: ; 3d57a
- xor a
- ld [$c664], a
- ld [$c6fc], a
-Function3d581: ; 3d581
- ld a, [CurBattleMon]
- ld c, a
- ld hl, $c664
- ld b, $1
- push bc
- ld a, $3
- call Predef
- pop bc
- ld hl, $c6fc
- ld a, $3
- jp Predef
-; 3d599
-
-Function3d599: ; 3d599
- ld b, $ff
- ld a, $1
- ld [Buffer1], a
- ld [Buffer2], a
-.asm_3d5a3
- ld hl, Buffer1
- sla [hl]
- inc hl
- sla [hl]
- inc b
- ld a, [OTPartyCount]
- cp b
- jp z, Function3d672
- ld a, [CurOTMon]
- cp b
- jr z, .asm_3d5d0
- ld hl, OTPartyMon1CurHP
- push bc
- ld a, b
- call GetPartyLocation
- ld a, [hli]
- ld c, a
- ld a, [hl]
- or c
- pop bc
- jr z, .asm_3d5d0
- call Function3d5d7
- call Function3d618
- jr .asm_3d5a3
-
-.asm_3d5d0
- ld hl, Buffer2
- set 0, [hl]
- jr .asm_3d5a3
-; 3d5d7
-
-Function3d5d7: ; 3d5d7
- push bc
- ld hl, OTPartyMon1Move1
- ld a, b
- call GetPartyLocation
- pop bc
- ld e, $5
-.asm_3d5e2
- dec e
- jr z, .asm_3d617
- ld a, [hli]
- and a
- jr z, .asm_3d617
- push hl
- push de
- push bc
- dec a
- ld hl, $5afb
- ld bc, $0007
- call AddNTimes
- ld de, EnemyMoveAnimation
- ld a, $10
- call FarCopyBytes
- call SetEnemyTurn
- callab Function0x347c8
- pop bc
- pop de
- pop hl
- ld a, [$d265]
- cp $b
- jr c, .asm_3d5e2
- ld hl, Buffer1
- set 0, [hl]
- ret
-
-.asm_3d617
- ret
-; 3d618
-
-Function3d618: ; 3d618
- push bc
- ld hl, OTPartyCount
- ld a, b
- inc a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- dec a
- ld hl, $542b
- ld bc, $0020
- call AddNTimes
- ld de, EnemyMonType1
- ld bc, $0002
- ld a, $14
- call FarCopyBytes
- ld a, [BattleMonType1]
- ld [PlayerMoveType], a
- call SetPlayerTurn
- callab Function0x347c8
- ld a, [$d265]
- cp $b
- jr nc, .asm_3d663
- ld a, [BattleMonType2]
- ld [PlayerMoveType], a
- callab Function0x347c8
- ld a, [$d265]
- cp $b
- jr nc, .asm_3d663
- pop bc
- ret
-
-.asm_3d663
- pop bc
- ld hl, Buffer1
- bit 0, [hl]
- jr nz, .asm_3d66f
- inc hl
- set 0, [hl]
- ret
-
-.asm_3d66f
- res 0, [hl]
- ret
-; 3d672
-
-Function3d672: ; 3d672
-.asm_3d672
- ld hl, Buffer1
- sla [hl]
- inc hl
- sla [hl]
- jr nc, .asm_3d672
- ld a, [OTPartyCount]
- ld b, a
- ld c, [hl]
-.asm_3d681
- sla c
- jr nc, .asm_3d68a
- dec b
- jr z, .asm_3d6a7
- jr .asm_3d681
-
-.asm_3d68a
- ld a, [Buffer1]
- and a
- jr z, .asm_3d69a
- ld b, $ff
- ld c, a
-.asm_3d693
- inc b
- sla c
- jr nc, .asm_3d693
- jr .asm_3d6c9
-
-.asm_3d69a
- ld b, $ff
- ld a, [Buffer2]
- ld c, a
-.asm_3d6a0
- inc b
- sla c
- jr c, .asm_3d6a0
- jr .asm_3d6c9
-
-.asm_3d6a7
- ld a, [OTPartyCount]
- ld b, a
- call BattleRandom
- and $7
- cp b
- jr nc, .asm_3d6a7
- ld b, a
- ld a, [CurOTMon]
- cp b
- jr z, .asm_3d6a7
- ld hl, OTPartyMon1CurHP
- push bc
- ld a, b
- call GetPartyLocation
- pop bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- or c
- jr z, .asm_3d6a7
-
-.asm_3d6c9
- ret
-; 3d6ca
-
-Function3d6ca: ; 3d6ca
- ld a, b
- ld [CurPartyMon], a
- ld hl, OTPartyMon1Level
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- ld a, [CurPartyMon]
- inc a
- ld hl, OTPartyCount
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [TempEnemyMonSpecies], a
- ld [CurPartySpecies], a
- call LoadEnemyMon
- ld a, [CurPartySpecies]
- cp $c9
- jr nz, .asm_3d708
- ld a, [$def4]
- and a
- jr nz, .asm_3d708
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld a, [UnownLetter]
- ld [$def4], a
-
-.asm_3d708
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$c6ea], a
- ld a, [hl]
- ld [$c6eb], a
- ret
-; 3d714
-
-Function3d714: ; 3d714
- ld a, [$d264]
- dec a
- jp z, .asm_3d749
- ld a, [PartyCount]
- dec a
- jp z, .asm_3d749
- ld a, [InLinkBattle]
- and a
- jp nz, .asm_3d749
- ld a, [Options]
- bit 6, a
- jr nz, .asm_3d749
- ld a, [CurPartyMon]
- push af
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callba Functione538
- pop bc
- ld a, b
- ld [CurPartyMon], a
- jr c, .asm_3d749
- scf
- ret
-
-.asm_3d749
- and a
- ret
-; 3d74b
-
-Function3d74b: ; 3d74b
- ld a, [CurPartyMon]
- push af
- callab Function39939
- ld hl, BattleText_0x80aca
- call StdBattleTextBox
- ld bc, $0107
- call Function1dd2
- ld a, [$cfa9]
- dec a
- jr nz, .asm_3d79a
- call Function3d2f7
- call Function3d375
- jr c, .asm_3d791
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- pop af
- ld [CurPartyMon], a
- xor a
- ld [CurEnemyMove], a
- ld [CurPlayerMove], a
- and a
- ret
-
-.asm_3d791
- call ClearPalettes
- call DelayFrame
- call Function3eda6
-
-.asm_3d79a
- pop af
- ld [CurPartyMon], a
- scf
- ret
-; 3d7a0
-
-Function3d7a0: ; 3d7a0
- xor a
- ld [hBGMapMode], a
- call Function1c07
- call ClearSprites
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- call WaitBGMap
- jp Function3ee27
-; 3d7b8
-
-Function3d7b8: ; 3d7b8
- callab Function39939
- ld hl, BattleText_0x80af8
- call StdBattleTextBox
- jp WaitBGMap
-; 3d7c7
-
-Function3d7c7: ; 3d7c7
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld a, $1
- ld [MonType], a
- ld a, $1f
- call Predef
- call Function3f47c
- xor a
- ld [$cfca], a
- ld [$c689], a
- call SetEnemyTurn
- ld de, $0101
- call Function3ee17
- call Function3da79
- jr nc, .asm_3d800
- ld a, $1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3d800
- ld bc, TempMonSpecies
- callba Function4e53f
- jr c, .asm_3d82c
- callba Function4ea44
- jr c, .asm_3d821
- ld hl, $c4ac
- ld d, $0
- ld e, $0
- ld a, $47
- call Predef
- jr .asm_3d82c
-
-.asm_3d821
- ld a, $f
- ld [CryTracks], a
- ld a, [TempEnemyMonSpecies]
- call Function37b6
-
-.asm_3d82c
- call Function3e036
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3d834
-
-Function3d834: ; 3d834
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastEnemyMove], a
- ld hl, EnemySubStatus1
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld [EnemyDisableCount], a
- ld [EnemyFuryCutterCount], a
- ld [$c681], a
- ld [$c72c], a
- ld [EnemyDisabledMove], a
- ld [$c6fa], a
- ld [$c730], a
- ld [$c731], a
- ld [EnemyTurnsTaken], a
- ld hl, PlayerSubStatus5
- res 7, [hl]
- ret
-; 3d867
-
-Function3d867: ; 3d867
- ld a, $7
- ld b, $8
- ld hl, EnemyAtkLevel
-.asm_3d86e
- ld [hli], a
- dec b
- jr nz, .asm_3d86e
- ret
-; 3d873
-
-Function3d873: ; 3d873
- ld a, [PartyCount]
- ld e, a
- xor a
- ld hl, PartyMon1CurHP
- ld bc, $002f
-.asm_3d87e
- or [hl]
- inc hl
- or [hl]
- add hl, bc
- dec e
- jr nz, .asm_3d87e
- ld d, a
- ret
-; 3d887
-
-
-Function3d887: ; 3d887
- ld a, [CurPartyMon]
- ld hl, PartyMon1CurHP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- ret nz
- ld a, [$d264]
- and a
- jr nz, .asm_3d8b1
- ld hl, PartySpecies
- ld a, [CurPartyMon]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
- cp EGG
- ld hl, BattleText_0x80b26
- jr z, .asm_3d8ae
- ld hl, BattleText_0x80b0b
-
-.asm_3d8ae
- call StdBattleTextBox
-
-.asm_3d8b1
- xor a
- ret
-; 3d8b3
-
-
-Function3d8b3: ; 3d8b3
- ld a, [BattleType]
- cp $2
- jp z, .asm_3d9a2
- cp $6
- jp z, .asm_3d9a2
- cp $9
- jp z, .asm_3d98d
- cp $b
- jp z, .asm_3d98d
- cp $7
- jp z, .asm_3d98d
- cp $c
- jp z, .asm_3d98d
-
- ld a, [InLinkBattle]
- and a
- jp nz, .asm_3d9a2
-
- ld a, [IsInBattle]
- dec a
- jp nz, .asm_3d992
-
- ld a, [EnemySubStatus5]
- bit 7, a
- jp nz, .asm_3d98d
-
- ld a, [$c730]
- and a
- jp nz, .asm_3d98d
-
- push hl
- push de
- ld a, [BattleMonItem]
- ld [$d265], a
- ld b, a
- callab GetItem
- ld a, b
- cp $48
- pop de
- pop hl
- jr nz, .asm_3d916
-
- call SetPlayerTurn
- call GetItemName
- ld hl, BattleText_0x80b89
- call StdBattleTextBox
- jp .asm_3d9a2
-
-.asm_3d916
- ld a, [$d267]
- inc a
- ld [$d267], a
- ld a, [hli]
- ld [$ffb5], a
- ld a, [hl]
- ld [$ffb6], a
- ld a, [de]
- inc de
- ld [$ffb1], a
- ld a, [de]
- ld [$ffb2], a
- call Function30b4
- ld de, $ffb5
- ld hl, $ffb1
- ld c, $2
- call StringCmp
- jr nc, .asm_3d9a2
- xor a
- ld [hMultiplicand], a
- ld a, $20
- ld [hMultiplier], a
- call Multiply
- ld a, [$ffb5]
- ld [hProduct], a
- ld a, [$ffb6]
- ld [hMultiplicand], a
- ld a, [$ffb1]
- ld b, a
- ld a, [$ffb2]
- srl b
- rr a
- srl b
- rr a
- and a
- jr z, .asm_3d9a2
- ld [hMultiplier], a
- ld b, $2
- call Divide
- ld a, [$ffb5]
- and a
- jr nz, .asm_3d9a2
- ld a, [$d267]
- ld c, a
-.asm_3d96c
- dec c
- jr z, .asm_3d97a
- ld b, $1e
- ld a, [$ffb6]
- add b
- ld [$ffb6], a
- jr c, .asm_3d9a2
- jr .asm_3d96c
-
-.asm_3d97a
- call BattleRandom
- ld b, a
- ld a, [$ffb6]
- cp b
- jr nc, .asm_3d9a2
- ld a, $1
- ld [$d0ec], a
- ld hl, BattleText_0x80b3b
- jr .asm_3d995
-
-.asm_3d98d
- ld hl, BattleText_0x80ba0
- jr .asm_3d995
-
-.asm_3d992
- ld hl, BattleText_0x80b49
-
-.asm_3d995
- call StdBattleTextBox
- ld a, $1
- ld [$d266], a
- call Function309d
- and a
- ret
-
-.asm_3d9a2
- ld a, [InLinkBattle]
- and a
- ld a, $2
- jr z, .asm_3d9cf
- call Function309d
- xor a
- ld [$d0ec], a
- ld a, $f
- ld [CurMoveNum], a
- xor a
- ld [CurPlayerMove], a
- call Function3e8e4
- call Function30b4
- call Function3d2e0
- jr c, .asm_3d9f5
-
-; Got away safely
- ld a, [$d430]
- cp $f
- ld a, $2
- jr z, .asm_3d9cf
- dec a
-.asm_3d9cf
- ld b, a
- ld a, [$d0ee]
- and $c0
- add b
- ld [$d0ee], a
- call Function3ceec
- push de
- ld de, SFX_RUN
- call WaitPlaySFX
- pop de
- call WaitSFX
- ld hl, BattleText_0x80b77
- call StdBattleTextBox
- call WaitSFX
- call Function309d
- scf
- ret
-
-.asm_3d9f5
- call Function3ceec
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3da05
- ld hl, BattleText_0x81863
- call StdBattleTextBox
-
-.asm_3da05
- call WaitSFX
- call Function309d
- scf
- ret
-; 3da0d
-
-
-Function3da0d: ; 3da0d
- ld a, $0
- call GetPartyParamLocation
- ld de, BattleMonSpecies
- ld bc, $0006
- call CopyBytes
- ld bc, $000f
- add hl, bc
- ld de, BattleMonAtkDefDV
- ld bc, $0007
- call CopyBytes
- inc hl
- inc hl
- inc hl
- ld de, BattleMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [BattleMonSpecies]
- ld [TempBattleMonSpecies], a
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseType1]
- ld [BattleMonType1], a
- ld a, [BaseType2]
- ld [BattleMonType2], a
- ld hl, PartyMon1Nickname
- ld a, [CurBattleMon]
- call SkipNames
- ld de, BattleMonNick
- ld bc, $000b
- call CopyBytes
- ld hl, BattleMonAtk
- ld de, PlayerStats
- ld bc, $000a
- call CopyBytes
- call Function3ec2c
- call BadgeStatBoosts
- ret
-; 3da74
-
-Function3da74: ; 3da74
- call Function3da85
- jr asm_3da7c
-
-Function3da79: ; 3da79
- call Function3da97
-
-asm_3da7c
- ld b, h
- ld c, l
- callab CheckShininess
- ret
-; 3da85
-
-Function3da85: ; 3da85
- ld hl, BattleMonAtkDefDV
- ld a, [PlayerSubStatus5]
- bit 3, a
- ret z
- ld hl, PartyMon1DVs
- ld a, [CurBattleMon]
- jp GetPartyLocation
-; 3da97
-
-Function3da97: ; 3da97
- ld hl, EnemyMonAtkDefDV
- ld a, [EnemySubStatus5]
- bit 3, a
- ret z
- ld hl, $c6f2
- ld a, [IsInBattle]
- dec a
- ret z
- ld hl, OTPartyMon1AtkDefDV
- ld a, [CurOTMon]
- jp GetPartyLocation
-; 3dab1
-
-Function3dab1: ; 3dab1
- ld a, $7
- ld b, $8
- ld hl, PlayerAtkLevel
-.asm_3dab8
- ld [hli], a
- dec b
- jr nz, .asm_3dab8
- ret
-; 3dabd
-
-
-Function3dabd: ; 3dabd
- ld a, [CurPartyMon]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- ld de, EnemyMonSpecies
- ld bc, $0006
- call CopyBytes
- ld bc, $000f
- add hl, bc
- ld de, EnemyMonAtkDefDV
- ld bc, $0007
- call CopyBytes
- inc hl
- inc hl
- inc hl
- ld de, EnemyMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, OTPartyMon1Nickname
- ld a, [CurPartyMon]
- call SkipNames
- ld de, EnemyMonNick
- ld bc, $000b
- call CopyBytes
- ld hl, EnemyMonAtk
- ld de, EnemyStats
- ld bc, $000a
- call CopyBytes
- call Function3ec30
- ld hl, BaseType1
- ld de, EnemyMonType1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld hl, BaseHP
- ld de, EnemyMonBaseStats
- ld b, $5
-.asm_3db25
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_3db25
- ld a, [CurPartyMon]
- ld [CurOTMon], a
- ret
-; 3db32
-
-
-Function3db32: ; 3db32
- call ClearSprites
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- ret
-; 3db5f
-
-
-Function3db5f: ; 3db5f
- ld hl, BattleMonAtkDefDV
- ld a, $2d
- call Predef
- ld hl, $c505
- ld b, $7
- ld c, $8
- call ClearBox
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- call Function3f43d
- xor a
- ld [$ffad], a
- ld [$d0d2], a
- ld [CurMoveNum], a
- ld [TypeModifier], a
- ld [PlayerMoveAnimation], a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastPlayerMove], a
- call Function3e4a8
- call Function3ee27
- xor a
- ld [$c731], a
- call SetPlayerTurn
- xor a
- ld [$cfca], a
- ld [$c689], a
- ld de, $0101
- call Function3ee17
- call Function3da74
- jr nc, .asm_3dbbc
- ld a, $1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3dbbc
- ld a, $0
- call GetPartyParamLocation
- ld b, h
- ld c, l
- callba Function4e53f
- jr c, .asm_3dbd6
- ld a, $f0
- ld [CryTracks], a
- ld a, [CurPartySpecies]
- call Function37b6
-
-.asm_3dbd6
- call Function3df48
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3dbde
-
-Function3dbde: ; 3dbde
- xor a
- ld [LastEnemyCounterMove], a
- ld [LastPlayerCounterMove], a
- ld [LastPlayerMove], a
- ld hl, PlayerSubStatus1
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, PlayerUsedMoves
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld [PlayerDisableCount], a
- ld [PlayerFuryCutterCount], a
- ld [$c679], a
- ld [$c72b], a
- ld [DisabledMove], a
- ld [$c6fe], a
- ld [$c731], a
- ld [$c730], a
- ld [PlayerTurnsTaken], a
- ld hl, EnemySubStatus5
- res 7, [hl]
- ret
-; 3dc18
-
-Function3dc18: ; 3dc18
- ld hl, PlayerSubStatus1
- res 7, [hl]
- ld hl, EnemySubStatus1
- res 7, [hl]
- ret
-; 3dc23
-
-Function3dc23: ; 3dc23
- ld hl, PlayerScreens
- ld de, BattleMonType1
- ld bc, Function3df48
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dc3a
- ld hl, EnemyScreens
- ld de, EnemyMonType1
- ld bc, Function3e036
-
-.asm_3dc3a
- bit 0, [hl]
- ret z
- ld a, [de]
- cp $2
- ret z
- inc de
- ld a, [de]
- cp $2
- ret z
- push bc
- ld hl, BattleText_0x80bae
- call StdBattleTextBox
- call GetEighthMaxHP
- call Function3cc39
- pop hl
- call Function3dc5a
- jp WaitBGMap
-; 3dc5a
-
-Function3dc5a: ; 3dc5a
- jp [hl]
-; 3dc5b
-
-Function3dc5b: ; 3dc5b
- ld a, $10
- call GetBattleVar
- ld b, a
- call Function3c5ec
- ld a, b
- cp $80
- jr nz, .asm_3dce4
- ld a, [CurBattleMon]
- push af
- ld hl, DoPlayerTurn
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dc7e
- ld hl, DoEnemyTurn
- ld a, [$c71a]
- ld [CurBattleMon], a
-
-.asm_3dc7e
- ld a, BANK(DoPlayerTurn)
- rst FarCall
- ld a, $10
- call _GetBattleVar
- ld a, $ff
- ld [hl], a
- pop af
- ld [CurBattleMon], a
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dcc0
- ld a, [$c71a]
- call Function399f
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr nz, .asm_3dce4
- ld a, $f0
- ld [CryTracks], a
- ld a, [BattleMonSpecies]
- call Function37b6
- ld a, [$c71a]
- ld c, a
- ld hl, $c664
- ld b, $0
- ld a, $3
- call Predef
- call Function3d43b
- ld hl, BattleText_0x80a75
- jr .asm_3dcdf
-
-.asm_3dcc0
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- jr nz, .asm_3dce4
- ld de, SFX_KINESIS
- call PlaySFX
- call WaitSFX
- ld de, SFX_UNKNOWN_2A
- call PlaySFX
- call WaitSFX
- call Function3d432
- ld hl, BattleText_0x809a8
-
-.asm_3dcdf
- call StdBattleTextBox
- scf
- ret
-
-.asm_3dce4
- and a
- ret
-; 3dce6
-
-Function3dce6: ; 3dce6
- ld a, [hBattleTurn]
- push af
- xor a
- ld [hBattleTurn], a
- ld [$cfca], a
- ld de, $0102
- call Function3ee17
- pop af
- ld [hBattleTurn], a
- ret
-; 3dcf9
-
-Function3dcf9: ; 3dcf9
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3dd17
- call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
- call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
-
-.asm_3dd17
- call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
- call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
-; 3dd2f
-
-Function3dd2f: ; 3dd2f
- callab GetOpponentItem
- ld a, b
- cp $1
- ret nz
- ld de, EnemyMonHPLo
- ld hl, EnemyMonMaxHPHi
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3dd4a
- ld de, $c63d
- ld hl, BattleMonMaxHP
-
-.asm_3dd4a
- push bc
- ld a, [de]
- ld [$d1ec], a
- add a
- ld c, a
- dec de
- ld a, [de]
- inc de
- ld [$d1ed], a
- adc a
- ld b, a
- ld a, b
- cp [hl]
- ld a, c
- pop bc
- jr z, .asm_3dd62
- jr c, .asm_3dd66
- ret
-
-.asm_3dd62
- inc hl
- cp [hl]
- dec hl
- ret nc
-
-.asm_3dd66
- call Function3ddc8
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- ld a, [de]
- add c
- ld [$d1ee], a
- ld c, a
- dec de
- ld a, [de]
- adc $0
- ld [$d1ef], a
- ld b, a
- ld a, [hld]
- cp c
- ld a, [hl]
- sbc b
- jr nc, .asm_3dd8d
- ld a, [hli]
- ld [$d1ef], a
- ld a, [hl]
- ld [$d1ee], a
-
-.asm_3dd8d
- ld a, [$d1ef]
- ld [de], a
- inc de
- ld a, [$d1ee]
- ld [de], a
- ld a, [hBattleTurn]
- ld [$d10a], a
- and a
- ld hl, $c4ca
- jr z, .asm_3dda4
- ld hl, $c55e
-
-.asm_3dda4
- ld [$d10a], a
- ld a, $b
- call Predef
-Function3ddac:
- call RefreshBattleHuds
- callab GetOpponentItem
- ld a, [hl]
- ld [$d265], a
- call GetItemName
- callab Function27192
- ld hl, RecoveredUsingText
- jp StdBattleTextBox
-; 3ddc8
-
-
-Function3ddc8: ; 3ddc8
- push hl
- push de
- push bc
- call EmptyBattleTextBox
- ld a, $69
- ld [FXAnimIDLo], a
- call Function3c8e4
- xor a
- ld [$cfca], a
- ld [FXAnimIDHi], a
- ld a, $37
- call Predef
- call Function3c8e4
- pop bc
- pop de
- pop hl
- ret
-; 3dde9
-
-Function3dde9: ; 3dde9
- callab GetOpponentItem
- ld hl, .Statuses
-.asm_3ddf2
- ld a, [hli]
- cp $ff
- ret z
- inc hl
- cp b
- jr nz, .asm_3ddf2
- dec hl
- ld b, [hl]
- ld a, $b
- call _GetBattleVar
- and b
- ret z
- xor a
- ld [hl], a
- push bc
- call UpdateOpponentInParty
- pop bc
- ld a, $9
- call _GetBattleVar
- and [hl]
- res 0, [hl]
- ld a, $5
- call _GetBattleVar
- and [hl]
- res 0, [hl]
- ld a, b
- cp $7f
- jr nz, .asm_3de26
- ld a, $7
- call _GetBattleVar
- res 7, [hl]
-
-.asm_3de26
- ld hl, Function0x365fd
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3de31
- ld hl, Function0x365d7
-
-.asm_3de31
- call Function3c8e4
- ld a, BANK(Function0x365fd)
- rst FarCall
- call Function3c8e4
- call Function3ddc8
- call Function3ddac
- ld a, $1
- and a
- ret
-; 3de44
-
-.Statuses ; 3de44
- db HELD_HEAL_POISON, 1 << PSN
- db HELD_HEAL_FREEZE, 1 << FRZ
- db HELD_HEAL_BURN, 1 << BRN
- db HELD_HEAL_SLEEP, SLP
- db HELD_HEAL_PARALYZE, 1 << PAR
- db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR
- db $ff
-; 3de51
-
-
-Function3de51: ; 3de51
- ld a, $7
- call GetBattleVar
- bit 7, a
- ret z
- callab GetOpponentItem
- ld a, b
- cp $10
- jr z, .asm_3de67
- cp $f
- ret nz
-
-.asm_3de67
- ld a, [hl]
- ld [$d265], a
- ld a, $7
- call _GetBattleVar
- res 7, [hl]
- call GetItemName
- call Function3ddc8
- ld hl, BattleText_0x80dab
- call StdBattleTextBox
- ld a, [hBattleTurn]
- and a
- jr nz, .asm_3de90
- call Function3df1f
- xor a
- ld [bc], a
- ld a, [IsInBattle]
- dec a
- ret z
- ld [hl], $0
- ret
-
-.asm_3de90
- call Function3df12
- xor a
- ld [bc], a
- ld [hl], a
- ret
-; 3de97
-
-Function3de97: ; 3de97
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3dea3
- call Function3dea9
- jp Function3deb1
-
-.asm_3dea3
- call Function3deb1
- jp Function3dea9
-; 3dea9
-
-Function3dea9: ; 3dea9
- call Function3df12
- ld a, $0
- jp Function3deb6
-; 3deb1
-
-Function3deb1: ; 3deb1
- call Function3df1f
- ld a, $1
-Function3deb6: ; 3deb6
- ld [hBattleTurn], a
- ld d, h
- ld e, l
- push de
- push bc
- ld a, [bc]
- ld b, a
- callab GetItem
- ld hl, .data_3defc
-.asm_3dec7
- ld a, [hli]
- cp $ff
- jr z, .asm_3def9
- inc hl
- inc hl
- cp b
- jr nz, .asm_3dec7
- pop bc
- ld a, [bc]
- ld [$d265], a
- push bc
- dec hl
- dec hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, BANK(BattleCommand70)
- rst FarCall
- pop bc
- pop de
- ld a, [FailedMessage]
- and a
- ret nz
- xor a
- ld [bc], a
- ld [de], a
- call GetItemName
- ld hl, BattleText_0x80bde
- call StdBattleTextBox
- callab BattleCommand8c
- ret
-
-.asm_3def9
- pop bc
- pop de
- ret
-; 3defc
-
-.data_3defc
- dbw $1f, BattleCommand70
- dbw $20, BattleCommand71
- dbw $21, BattleCommand72
- dbw $22, BattleCommand73
- dbw $23, BattleCommand74
- dbw $24, BattleCommand75
- dbw $25, BattleCommand76
- db $ff
-; 3df12
-
-
-Function3df12: ; 3df12
- ld hl, PartyMon1Item
- ld a, [CurBattleMon]
- call GetPartyLocation
- ld bc, BattleMonItem
- ret
-; 3df1f
-
-Function3df1f: ; 3df1f
- ld hl, OTPartyMon1Item
- ld a, [CurOTMon]
- call GetPartyLocation
- ld bc, EnemyMonItem
- ret
-; 3df2c
-
-Function3df2c: ; 3df2c
- push hl
- push de
- push bc
- call DrawPlayerHUD
- ld hl, PlayerHPPal
- call SetHPPal
- call CheckDanger
- call Function3e043
- ld hl, EnemyHPPal
- call SetHPPal
- pop bc
- pop de
- pop hl
- ret
-; 3df48
-
-
-
-Function3df48: ; 3df48
- push hl
- push de
- push bc
- call DrawPlayerHUD
- call UpdatePlayerHPPal
- call CheckDanger
- pop bc
- pop de
- pop hl
- ret
-; 3df58
-
-DrawPlayerHUD: ; 3df58
- xor a
- ld [hBGMapMode], a
-
-; Clear the area
- hlcoord 9, 7
- ld bc, $050b
- call ClearBox
-
- callba DrawPlayerExpBar
-
- hlcoord 18, 9
- ld [hl], $73 ; vertical bar
- call PrintPlayerHUD
-
-; HP bar
- hlcoord 10, 9
- ld b, OTPARTYMON
- xor a
- ld [MonType], a
- ld a, PREDEF_DRAW_PLAYER_HP
- call Predef
-
-; Exp bar
- push de
- ld a, [CurBattleMon]
- ld hl, PartyMon1Exp + 2
- call GetPartyLocation
- ld d, h
- ld e, l
-
- hlcoord 10, 11
- ld a, [TempMonLevel]
- ld b, a
- call FillInExpBar
- pop de
- ret
-; 3df98
-
-UpdatePlayerHPPal: ; 3df98
- ld hl, PlayerHPPal
- jp Function3e12e
-; 3df9e
-
-CheckDanger: ; 3df9e
- ld hl, BattleMonHP
- ld a, [hli]
- or [hl]
- jr z, .asm_3dfb2
- ld a, [$c6fd]
- and a
- jr nz, .asm_3dfbe
- ld a, [PlayerHPPal]
- cp $2
- jr z, .asm_3dfb9
-
-.asm_3dfb2
- ld hl, Danger
- res 7, [hl]
- jr .asm_3dfbe
-
-.asm_3dfb9
- ld hl, Danger
- set 7, [hl]
-
-.asm_3dfbe
- ret
-; 3dfbf
-
-PrintPlayerHUD: ; 3dfbf
- ld de, BattleMonNick
- hlcoord 10, 7
- call Function3e138
- call PlaceString
-
- push bc
-
- ld a, [CurBattleMon]
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld hl, BattleMonLevel
- ld de, TempMonLevel
- ld bc, $0011
- call CopyBytes
- ld a, [CurBattleMon]
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
-
- pop hl
- dec hl
-
- ld a, $3
- ld [MonType], a
- callab GetGender
- ld a, $7f
- jr c, .asm_3e013
- ld a, $ef
- jr nz, .asm_3e013
- ld a, $f5
-
-.asm_3e013
- ld hl, $c551
- ld [hl], a
- ld hl, $c54e
- push af
- push hl
- ld de, BattleMonStatus
- ld a, $21
- call Predef
- pop hl
- pop bc
- ret nz
- ld a, b
- cp $7f
- jr nz, .asm_3e02d
- dec hl
-
-.asm_3e02d
- ld a, [BattleMonLevel]
- ld [TempMonLevel], a
- jp PrintLevel
-; 3e036
-
-Function3e036: ; 3e036
- push hl
- push de
- push bc
- call Function3e043
- call Function3e127
- pop bc
- pop de
- pop hl
- ret
-; 3e043
-
-Function3e043: ; 3e043
- xor a
- ld [hBGMapMode], a
- ld hl, $c4a1
- ld bc, $040b
- call ClearBox
- callba Function2c0c5
- ld a, [TempEnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- ld de, EnemyMonNick
- ld hl, $c4a1
- call Function3e138
- call PlaceString
- ld h, b
- ld l, c
- dec hl
- ld hl, EnemyMonAtkDefDV
- ld de, TempMonDVs
- ld a, [EnemySubStatus5]
- bit 3, a
- jr z, .asm_3e080
- ld hl, $c6f2
-
-.asm_3e080
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ld a, $3
- ld [MonType], a
- callab GetGender
- ld a, $7f
- jr c, .asm_3e09a
- ld a, $ef
- jr nz, .asm_3e09a
- ld a, $f5
-
-.asm_3e09a
- ld hl, $c4bd
- ld [hl], a
- ld hl, $c4ba
- push af
- push hl
- ld de, EnemyMonStatus
- ld a, $21
- call Predef
- pop hl
- pop bc
- jr nz, .asm_3e0be
- ld a, b
- cp $7f
- jr nz, .asm_3e0b5
- dec hl
-
-.asm_3e0b5
- ld a, [EnemyMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
-.asm_3e0be
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$ffb5], a
- ld a, [hld]
- ld [$ffb6], a
- or [hl]
- jr nz, .asm_3e0d1
- ld c, a
- ld e, a
- ld d, $6
- jp .asm_3e11a
-
-.asm_3e0d1
- xor a
- ld [hMultiplicand], a
- ld a, $30
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld [hMultiplier], a
- ld a, b
- and a
- jr z, .asm_3e105
- ld a, [hMultiplier]
- srl b
- rr a
- srl b
- rr a
- ld [hMultiplier], a
- ld a, [$ffb5]
- ld b, a
- srl b
- ld a, [$ffb6]
- rr a
- srl b
- rr a
- ld [$ffb6], a
- ld a, b
- ld [$ffb5], a
-
-.asm_3e105
- ld a, [$ffb5]
- ld [hProduct], a
- ld a, [$ffb6]
- ld [hMultiplicand], a
- ld a, $2
- ld b, a
- call Divide
- ld a, [$ffb6]
- ld e, a
- ld a, $6
- ld d, a
- ld c, a
-.asm_3e11a
- xor a
- ld [$d10a], a
- ld hl, $c4ca
- ld b, $0
- call DrawHPBar
- ret
-; 3e127
-
-Function3e127: ; 3e127
- ld hl, EnemyHPPal
- call Function3e12e
- ret
-; 3e12e
-
-Function3e12e: ; 3e12e
- ld b, [hl]
- call SetHPPal
- ld a, [hl]
- cp b
- ret z
- jp Function3ee27
-; 3e138
-
-Function3e138: ; 3e138
- ret
-; 3e139
-
-Function3e139: ; 3e139
- xor a
- ld [hBGMapMode], a
- call Function30bf
- ld a, [BattleType]
- cp $2
- jr z, .asm_3e156
- cp $3
- jr z, .asm_3e156
- call EmptyBattleTextBox
- call UpdateBattleHuds
- call EmptyBattleTextBox
- call Function309d
-
-.asm_3e156
- ld a, [BattleType]
- cp $6
- jr nz, .asm_3e165
- callba LoadParkBattleMenuDataHeader
- jr .asm_3e175
-
-.asm_3e165
- ld a, [InputType]
- or a
- jr z, .asm_3e171
- callba Function1de294
-.asm_3e171
- call Function3e19b
- ret c
-
-.asm_3e175
- ld a, $1
- ld [hBGMapMode], a
- ld a, [$d0d2]
- cp $1
- jp z, Function3e192
- cp $3
- jp z, Function3e1c7
- cp $2
- jp z, Function3e28d
- cp $4
- jp z, Function3e489
- jr .asm_3e156
-; 3e192
-
-Function3e192: ; 3e192
- xor a
- ld [$d267], a
- call Function30b4
- and a
- ret
-; 3e19b
-
-Function3e19b: ; 3e19b
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba LoadBattleMenuDataHeader
- and a
- ret
-
-.ismobilelinkbattle
- callba Function100b12
- ld a, [$cd2b]
- and a
- ret z
- ld hl, $cd2a
- bit 4, [hl]
- jr nz, .asm_3e1c5
- ld hl, $5863
- call StdBattleTextBox
- ld c, $3c
- call DelayFrames
-
-.asm_3e1c5
- scf
- ret
-; 3e1c7
-
-Function3e1c7: ; 3e1c7
- ld a, [InLinkBattle]
- and a
- jp nz, Function3e22b
- ld a, [$cfc0]
- and a
- jp nz, Function3e22b
- call Function1d6e
- ld a, [BattleType]
- cp $3
- jr z, .asm_3e1f1
- cp $6
- jr z, .asm_3e201
- callba Function10493
- ld a, [$d0ec]
- and a
- jr z, .asm_3e20d
- jr .asm_3e209
-
-.asm_3e1f1
- callba Function107bb
- ld a, $5
- ld [CurItem], a
- call DoItemEffect
- jr .asm_3e209
-
-.asm_3e201
- ld a, $b1
- ld [CurItem], a
- call DoItemEffect
-
-.asm_3e209
- call Function3e234
- ret
-
-.asm_3e20d
- call ClearPalettes
- call DelayFrame
- call Function3ed9f
- call Function3f43d
- call Function3f47c
- call Function1c07
- call WaitBGMap
- call Function3ee27
- call Function309d
- jp Function3e139
-; 3e22b
-
-Function3e22b: ; 3e22b
- ld hl, BattleText_0x80bf3
- call StdBattleTextBox
- jp Function3e139
-; 3e234
-
-Function3e234: ; 3e234
- ld a, [$c64e]
- and a
- jr nz, .asm_3e279
- callab CheckItemPocket
- ld a, [$d142]
- cp $3
- jr z, .asm_3e24a
- call WhiteBGMap
-
-.asm_3e24a
- xor a
- ld [hBGMapMode], a
- call Function3ed9f
- call ClearSprites
- ld a, [BattleType]
- cp $3
- jr z, .asm_3e25d
- call Function3f43d
-
-.asm_3e25d
- call Function3f47c
- ld a, $1
- ld [$cfa9], a
- call Function1c07
- call Function3df2c
- call WaitBGMap
- call Function309d
- call Function1fbf
- call Function3ee27
- and a
- ret
-
-.asm_3e279
- xor a
- ld [$c64e], a
- ld a, [$d0ee]
- and $c0
- ld [$d0ee], a
- call Function1fbf
- call Function32f9
- scf
- ret
-; 3e28d
-
-Function3e28d: ; 3e28d
- call Function1d6e
-Function3e290:
- call Function1c07
- call Function1d6e
- call WhiteBGMap
-Function3e299:
- call Function3d2fa
- xor a
- ld [PartyMenuActionText], a
- call Function3d313
- call Function3d329
- jr c, .asm_3e2da
-.asm_3e2a8
- callba Function8ea4a
- call Function3e2f5
- jr c, .asm_3e2c8
- call Function1bee
- ld a, [$cfa9]
- cp $1
- jp z, Function3e358
- cp $2
- jr z, .asm_3e2cf
- cp $3
- jr z, .asm_3e2da
- jr .asm_3e2a8
-
-.asm_3e2c8
- call Function3d2e0
- jr c, .asm_3e2da
- jr Function3e299
-
-.asm_3e2cf
- call Function3e308
- call Function3d2e0
- jr c, .asm_3e2da
- jp Function3e290
-
-.asm_3e2da
- call ClearSprites
- call ClearPalettes
- call DelayFrame
- call Function3eda6
- call Function1c17
- call Function309d
- call ClearSGB
- call Function32f9
- jp Function3e139
-; 3e2f5
-
-Function3e2f5: ; 3e2f5
- call CheckInMobileLinkBattle
- jr z, .ismobilelinkbattle
- callba Function24e99
- ret
-
-.ismobilelinkbattle
- callba Function100d22
- ret
-; 3e308
-
-Function3e308: ; 3e308
- call DisableLCD
- ld hl, $9310
- ld de, VTiles0
- ld bc, $0110
- call CopyBytes
- ld hl, VTiles2
- ld de, $8110
- ld bc, $0310
- call CopyBytes
- call EnableLCD
- call ClearSprites
- call LowVolume
- xor a
- ld [MonType], a
- callba Function4dc7b
- call MaxVolume
- call DisableLCD
- ld hl, VTiles0
- ld de, $9310
- ld bc, $0110
- call CopyBytes
- ld hl, $8110
- ld de, VTiles2
- ld bc, $0310
- call CopyBytes
- call EnableLCD
- ret
-; 3e358
-
-
-Function3e358: ; 3e358
- ld a, [CurBattleMon]
- ld d, a
- ld a, [CurPartyMon]
- cp d
- jr nz, .asm_3e36b
- ld hl, BattleText_0x80c0d
- call StdBattleTextBox
- jp Function3e299
-
-.asm_3e36b
- ld a, [$c730]
- and a
- jr nz, .asm_3e378
- ld a, [EnemySubStatus5]
- bit 7, a
- jr z, .asm_3e381
-
-.asm_3e378
- ld hl, BattleText_0x80c22
- call StdBattleTextBox
- jp Function3e299
-
-.asm_3e381
- call Function3d887
- jp z, Function3e299
- ld a, [CurBattleMon]
- ld [$c71a], a
- ld a, $2
- ld [$d0ec], a
- call ClearPalettes
- call DelayFrame
- call ClearSprites
- call Function3eda6
- call Function1c17
- call ClearSGB
- call Function32f9
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- ; fallthrough
-; 3e3ad
-
-Function3e3ad: ; 3e3ad
- ld a, $1
- ld [$c710], a
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3e3c1
- call Function1d6e
- call Function3e8e4
- call Function1c17
-
-.asm_3e3c1
- call Function3e7c1
- ld a, [InLinkBattle]
- and a
- jr nz, .asm_3e3cf
-
-.asm_3e3ca
- call Function3e40b
- and a
- ret
-
-.asm_3e3cf
- ld a, [$d430]
- cp $e
- jp z, .asm_3e3ca
- cp $d
- jp z, .asm_3e3ca
- cp $4
- jp c, .asm_3e3ca
- cp $f
- jr nz, .asm_3e3e9
- call Function3c0e5
- ret
-
-.asm_3e3e9
- ld a, [$ffcb]
- cp $1
- jr z, .asm_3e3f7
- call Function3e40b
- call Function3e3ff
- and a
- ret
-
-.asm_3e3f7
- call Function3e3ff
- call Function3e40b
- and a
- ret
-; 3e3ff
-
-Function3e3ff: ; 3e3ff
- callab Function3846c
- call SetEnemyTurn
- jp Function3dc23
-; 3e40b
-
-Function3e40b: ; 3e40b
- call Function3f2f4
- ld c, $32
- call DelayFrames
- ld hl, PlayerSubStatus4
- res 6, [hl]
- call SetEnemyTurn
- call Function3dc5b
- jr c, .asm_3e423
- call Function3dce6
-
-.asm_3e423
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- call Function3d581
- call Function3da0d
- call Function3dab1
- call Function3f26d
- call Function3dbde
- call Function3dc18
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- call Function3dc23
- ld a, $2
- ld [$cfa9], a
- ret
-; 3e459
-
-Function3e459: ; 3e459
- ld c, $32
- call DelayFrames
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ld a, [CurPartyMon]
- ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
- xor a
- ld [$d265], a
- call Function3ecab
- call Function3db5f
- call EmptyBattleTextBox
- call Function309d
- call SetPlayerTurn
- jp Function3dc23
-; 3e489
-
-
-
-Function3e489: ; 3e489
- call Function30b4
- ld a, $3
- ld [$cfa9], a
- ld hl, BattleMonSpd
- ld de, EnemyMonSpd
- call Function3d8b3
- ld a, $0
- ld [$d266], a
- ret c
- ld a, [$d0ec]
- and a
- ret nz
- jp Function3e139
-; 3e4a8
-
-
-
-Function3e4a8: ; 3e4a8
- ld a, [BattleMonItem]
- ld b, a
- callab GetItem
- ld a, b
- cp $4c
- ret nz
- ld a, $1
- ld [$c73d], a
- ret
-; 3e4bc
-
-Function3e4bc: ; 3e4bc
- call CheckInMobileLinkBattle
- jr nz, .notmobilelinkbattle
- callba Function100b9f
- ret
-
-.notmobilelinkbattle
- ld hl, EnemyMonMove1
- ld a, [$d235]
- dec a
- jr z, .asm_3e4e2
- dec a
- jr z, .asm_3e4dd
- call Function3e786
- ret z
- ld hl, BattleMonMove1
- jr .asm_3e4e2
-
-.asm_3e4dd
- ld a, $2
- call GetPartyParamLocation
-
-.asm_3e4e2
- ld de, $d25e
- ld bc, $0004
- call CopyBytes
- xor a
- ld [hBGMapMode], a
- ld hl, $c594
- ld b, $4
- ld c, $e
- ld a, [$d235]
- cp $2
- jr nz, .asm_3e503
- ld hl, $c544
- ld b, $4
- ld c, $e
-
-.asm_3e503
- call TextBox
- ld hl, $c5aa
- ld a, [$d235]
- cp $2
- jr nz, .asm_3e513
- ld hl, $c55a
-
-.asm_3e513
- ld a, $14
- ld [Buffer1], a
- ld a, $20
- call Predef
- ld b, $5
- ld a, [$d235]
- cp $2
- ld a, $d
- jr nz, .asm_3e52c
- ld b, $5
- ld a, $9
-
-.asm_3e52c
- ld [$cfa1], a
- ld a, b
- ld [$cfa2], a
- ld a, [$d235]
- cp $1
- jr z, .asm_3e53e
- ld a, [CurMoveNum]
- inc a
-
-.asm_3e53e
- ld [$cfa9], a
- ld a, $1
- ld [$cfaa], a
- ld a, [$d0eb]
- inc a
- ld [$cfa3], a
- ld a, $1
- ld [$cfa4], a
- ld c, $2c
- ld a, [$d235]
- dec a
- ld b, $c1
- jr z, .asm_3e569
- dec a
- ld b, $c3
- jr z, .asm_3e569
- ld a, [InLinkBattle]
- and a
- jr nz, .asm_3e569
- ld b, $c7
-
-.asm_3e569
- ld a, b
- ld [$cfa8], a
- ld a, c
- ld [$cfa5], a
- xor a
- ld [$cfa6], a
- ld a, $10
- ld [$cfa7], a
-.asm_3e57a
- ld a, [$d235]
- and a
- jr z, .asm_3e58e
- dec a
- jr nz, .asm_3e5a3
- ld hl, $c5c3
- ld de, .string_3e61c
- call PlaceString
- jr .asm_3e5a3
-
-.asm_3e58e
- call MoveInfoBox
- ld a, [$d0e3]
- and a
- jr z, .asm_3e5a3
- ld hl, $c5a9
- ld bc, $0014
- dec a
- call AddNTimes
- ld [hl], $ec
-
-.asm_3e5a3
- ld a, $1
- ld [hBGMapMode], a
- call Function1bd3
- bit 6, a
- jp nz, .asm_3e61d
- bit 7, a
- jp nz, .asm_3e62e
- bit 2, a
- jp nz, Function3e643
- bit 1, a
- push af
- xor a
- ld [$d0e3], a
- ld a, [$cfa9]
- dec a
- ld [$cfa9], a
- ld b, a
- ld a, [$d235]
- dec a
- jr nz, .asm_3e5d0
- pop af
- ret
-
-.asm_3e5d0
- dec a
- ld a, b
- ld [CurMoveNum], a
- jr nz, .asm_3e5d9
- pop af
- ret
-
-.asm_3e5d9
- pop af
- ret nz
- ld hl, BattleMonPPMove1
- ld a, [$cfa9]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- and $3f
- jr z, .asm_3e610
- ld a, [PlayerDisableCount]
- swap a
- and $f
- dec a
- cp c
- jr z, .asm_3e60b
- ld a, [$c6e1]
- and a
- jr nz, .asm_3e606
- ld a, [$cfa9]
- ld hl, BattleMonMove1
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
-
-.asm_3e606
- ld [CurPlayerMove], a
- xor a
- ret
-
-.asm_3e60b
- ld hl, BattleText_0x80c5b
- jr .asm_3e613
-
-.asm_3e610
- ld hl, Function3cc39
-
-.asm_3e613
- call StdBattleTextBox
- call Function30b4
- jp Function3e4bc
-; 3e61c
-
-.string_3e61c ; 3e61c
- db "@"
-; 3e61d
-
-.asm_3e61d
- ld a, [$cfa9]
- and a
- jp nz, .asm_3e57a
- ld a, [$d0eb]
- inc a
- ld [$cfa9], a
- jp .asm_3e57a
-; 3e62e
-
-.asm_3e62e: ; 3e62e
- ld a, [$cfa9]
- ld b, a
- ld a, [$d0eb]
- inc a
- inc a
- cp b
- jp nz, .asm_3e57a
- ld a, $1
- ld [$cfa9], a
- jp .asm_3e57a
-; 3e643
-
-Function3e643: ; 3e643
- ld a, [$d0e3]
- and a
- jr z, .asm_3e6bf
- ld hl, BattleMonMoves
- call .asm_3e6a5
- ld hl, BattleMonPP
- call .asm_3e6a5
- ld hl, PlayerDisableCount
- ld a, [hl]
- swap a
- and $f
- ld b, a
- ld a, [$cfa9]
- cp b
- jr nz, .asm_3e671
- ld a, [hl]
- and $f
- ld b, a
- ld a, [$d0e3]
- swap a
- add b
- ld [hl], a
- jr .asm_3e682
-
-.asm_3e671
- ld a, [$d0e3]
- cp b
- jr nz, .asm_3e682
- ld a, [hl]
- and $f
- ld b, a
- ld a, [$cfa9]
- swap a
- add b
- ld [hl], a
-
-.asm_3e682
- ld a, [PlayerSubStatus5]
- bit 3, a
- jr nz, .asm_3e69e
- ld hl, PartyMon1Moves
- ld a, [CurBattleMon]
- call GetPartyLocation
- push hl
- call .asm_3e6a5
- pop hl
- ld bc, $0015
- add hl, bc
- call .asm_3e6a5
-
-.asm_3e69e
- xor a
- ld [$d0e3], a
- jp Function3e4bc
-
-.asm_3e6a5
- push hl
- ld a, [$d0e3]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld a, [$cfa9]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [de]
- ld b, [hl]
- ld [hl], a
- ld a, b
- ld [de], a
- ret
-
-.asm_3e6bf
- ld a, [$cfa9]
- ld [$d0e3], a
- jp Function3e4bc
-; 3e6c8
-
-MoveInfoBox: ; 3e6c8
- xor a
- ld [hBGMapMode], a
-
- hlcoord 0, 8
- ld b, 3
- ld c, 9
- call TextBox
- call MobileTextBorder
-
- ld a, [PlayerDisableCount]
- and a
- jr z, .asm_3e6f4
-
- swap a
- and $f
- ld b, a
- ld a, [$cfa9]
- cp b
- jr nz, .asm_3e6f4
-
- hlcoord 1, 10
- ld de, .Disabled
- call PlaceString
- jr .done
-
-.asm_3e6f4
- ld hl, $cfa9
- dec [hl]
- call SetPlayerTurn
- ld hl, BattleMonMoves
- ld a, [$cfa9]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
- ld [CurPlayerMove], a
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- ld a, WILDMON
- ld [MonType], a
- callab Functionf8ec
-
- ld hl, $cfa9
- ld c, [hl]
- inc [hl]
- ld b, 0
- ld hl, BattleMonPP
- add hl, bc
- ld a, [hl]
- and $3f
- ld [StringBuffer1], a
- call Function3e75f
-
- hlcoord 1, 9
- ld de, .Type
- call PlaceString
-
- hlcoord 7, 11
- ld [hl], "/"
-
- callab UpdateMoveData
- ld a, [PlayerMoveAnimation]
- ld b, a
- hlcoord 2, 10
- ld a, PREDEF_PRINT_MOVE_TYPE
- call Predef
-
-.done
- ret
-; 3e74f
-
-.Disabled
- db "Disabled!@"
-.Type
- db "TYPE/@"
-; 3e75f
-
-
-Function3e75f: ; 3e75f
- hlcoord 5, 11
- ld a, [InLinkBattle]
- cp $4
- jr c, .asm_3e76c
- hlcoord 5, 11
-
-.asm_3e76c
- push hl
- ld de, StringBuffer1
- ld bc, $0102
- call PrintNum
- pop hl
- inc hl
- inc hl
- ld [hl], "/"
- inc hl
- ld de, $d265
- ld bc, $0102
- call PrintNum
- ret
-; 3e786
-
-Function3e786: ; 3e786
- ld a, STRUGGLE
- ld [CurPlayerMove], a
- ld a, [PlayerDisableCount]
- and a
- ld hl, BattleMonPP
- jr nz, .asm_3e79f
-
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- inc hl
- or [hl]
- and $3f
- ret nz
- jr .asm_3e7b4
-
-.asm_3e79f
- swap a
- and $f
- ld b, a
- ld d, $5
- xor a
-.asm_3e7a7
- dec d
- jr z, .asm_3e7b2
- ld c, [hl]
- inc hl
- dec b
- jr z, .asm_3e7a7
- or c
- jr .asm_3e7a7
-
-.asm_3e7b2
- and a
- ret nz
-
-.asm_3e7b4
- ld hl, BattleText_0x80c72
- call StdBattleTextBox
- ld c, 60
- call DelayFrames
- xor a
- ret
-; 3e7c1
-
-
-
-Function3e7c1: ; 3e7c1
- ld a, [$c711]
- and a
- ret nz
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3e817
- call EmptyBattleTextBox
- call Function309d
- ld a, [$d0ec]
- and a
- call z, Function3e8e4
- call Function30b4
- ld a, [$d430]
- cp $e
- jp z, .asm_3e8bd
- cp $d
- jp z, .asm_3e82c
- cp $4
- jp nc, Function3e8c1
- ld [CurEnemyMoveNum], a
- ld c, a
- ld a, [EnemySubStatus1]
- bit 6, a
- jp nz, .asm_3e882
- ld a, [EnemySubStatus3]
- and $13
- jp nz, .asm_3e882
- ld hl, EnemySubStatus5
- bit 4, [hl]
- ld a, [LastEnemyMove]
- jp nz, .asm_3e87f
- ld hl, EnemyMonMove1
- ld b, $0
- add hl, bc
- ld a, [hl]
- jp .asm_3e87f
-
-.asm_3e817
- ld hl, EnemySubStatus5
- bit 4, [hl]
- jr z, .asm_3e824
- ld a, [LastEnemyMove]
- jp .asm_3e87f
-
-.asm_3e824
- call Function3e8d1
- jp nz, Function3e8c1
- jr .asm_3e830
-
-.asm_3e82c
- ld a, $ff
- jr .asm_3e87f
-
-.asm_3e830
- ld hl, EnemyMonMove1
- ld de, EnemyMonPPMove1
- ld b, $4
-.asm_3e838
- ld a, [hl]
- and a
- jp z, .asm_3e8bd
- ld a, [EnemyDisabledMove]
- cp [hl]
- jr z, .asm_3e848
- ld a, [de]
- and $3f
- jr nz, .asm_3e84f
-
-.asm_3e848
- inc hl
- inc de
- dec b
- jr nz, .asm_3e838
- jr .asm_3e8bd
-
-.asm_3e84f
- ld a, [IsInBattle]
- dec a
- jr nz, .asm_3e882
-.asm_3e855
- ld hl, EnemyMonMove1
- call BattleRandom
- and $3
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [EnemyDisableCount]
- swap a
- and $f
- dec a
- cp c
- jr z, .asm_3e855
- ld a, [hl]
- and a
- jr z, .asm_3e855
- ld hl, EnemyMonPPMove1
- add hl, bc
- ld b, a
- ld a, [hl]
- and $3f
- jr z, .asm_3e855
- ld a, c
- ld [CurEnemyMoveNum], a
- ld a, b
-
-.asm_3e87f
- ld [CurEnemyMove], a
-
-.asm_3e882
- call SetEnemyTurn
- callab UpdateMoveData
- call Function3e8d1
- jr nz, .asm_3e894
- xor a
- ld [$c733], a
-
-.asm_3e894
- ld a, [EnemyMoveEffect]
- cp $77
- jr z, .asm_3e89f
- xor a
- ld [EnemyFuryCutterCount], a
-
-.asm_3e89f
- ld a, [EnemyMoveEffect]
- cp $51
- jr z, .asm_3e8af
- ld hl, EnemySubStatus4
- res 6, [hl]
- xor a
- ld [$c72c], a
-
-.asm_3e8af
- ld a, [EnemyMoveEffect]
- cp $6f
- ret z
- cp $74
- ret z
- xor a
- ld [$c681], a
- ret
-
-.asm_3e8bd
- ld a, $a5
- jr .asm_3e87f
-; 3e8c1
-
-Function3e8c1: ; 3e8c1
- xor a
- ld [EnemyFuryCutterCount], a
- ld [$c681], a
- ld [$c72c], a
- ld hl, EnemySubStatus4
- res 6, [hl]
- ret
-; 3e8d1
-
-Function3e8d1: ; 3e8d1
- ld a, [EnemySubStatus4]
- and $20
- ret nz
- ld hl, EnemySubStatus3
- ld a, [hl]
- and $13
- ret nz
- ld hl, EnemySubStatus1
- bit 6, [hl]
- ret
-; 3e8e4
-
-Function3e8e4: ; 3e8e4
- callba Function100a09
- ret
-; 3e8eb
-
-
-LoadEnemyMon: ; 3e8eb
-; Initialize enemy monster parameters
-; To do this we pull the species from TempEnemyMonSpecies
-
-; Notes:
-; BattleRandom is used to ensure sync between Game Boys
-
-; Clear the whole EnemyMon struct
- xor a
- ld hl, EnemyMonSpecies
- ld bc, EnemyMonEnd - EnemyMon
- call ByteFill
-
-; We don't need to be here if we're in a link battle
- ld a, [InLinkBattle]
- and a
- jp nz, Function3dabd
-
- ld a, [$cfc0] ; ????
- bit 0, a
- jp nz, Function3dabd
-
-; Make sure everything knows what species we're working with
- ld a, [TempEnemyMonSpecies]
- ld [EnemyMonSpecies], a
- ld [CurSpecies], a
- ld [CurPartySpecies], a
-
-; Grab the BaseData for this species
- call GetBaseData
-
-
-; Let's get the item:
-
-; Is the item predetermined?
- ld a, [IsInBattle]
- dec a
- jr z, .WildItem
-
-; If we're in a trainer battle, the item is in the party struct
- ld a, [CurPartyMon]
- ld hl, OTPartyMon1Item
- call GetPartyLocation ; bc = PartyMon[CurPartyMon] - PartyMons
- ld a, [hl]
- jr .UpdateItem
-
-
-.WildItem
-; In a wild battle, we pull from the item slots in BaseData
-
-; Force Item1
-; Used for Ho-Oh, Lugia and Snorlax encounters
- ld a, [BattleType]
- cp BATTLETYPE_FORCEITEM
- ld a, [BaseItems]
- jr z, .UpdateItem
-
-; Failing that, it's all up to chance
-; Effective chances:
-; 75% None
-; 23% Item1
-; 2% Item2
-
-; 25% chance of getting an item
- call BattleRandom
- cp a, $c0
- ld a, NO_ITEM
- jr c, .UpdateItem
-
-; From there, an 8% chance for Item2
- call BattleRandom
- cp a, $14 ; 8% of 25% = 2% Item2
- ld a, [BaseItems]
- jr nc, .UpdateItem
- ld a, [BaseItems+1]
-
-
-.UpdateItem
- ld [EnemyMonItem], a
-
-
-; Initialize DVs
-
-; If we're in a trainer battle, DVs are predetermined
- ld a, [IsInBattle]
- and a
- jr z, .InitDVs
-
-; ????
- ld a, [EnemySubStatus5]
- bit 3, a
- jr z, .InitDVs
-
-; Unknown
- ld hl, $c6f2
- ld de, EnemyMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- jp .Happiness
-
-
-.InitDVs
-
-; Trainer DVs
-
-; All trainers have preset DVs, determined by class
-; See GetTrainerDVs for more on that
- callba GetTrainerDVs
-; These are the DVs we'll use if we're actually in a trainer battle
- ld a, [IsInBattle]
- dec a
- jr nz, .UpdateDVs
-
-
-; Wild DVs
-; Here's where the fun starts
-
-; Roaming monsters (Entei, Raikou) work differently
-; They have their own structs, which are shorter than normal
- ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
- jr nz, .NotRoaming
-
-; Grab HP
- call GetRoamMonHP
- ld a, [hl]
-; Check if the HP has been initialized
- and a
-; We'll do something with the result in a minute
- push af
-
-; Grab DVs
- call GetRoamMonDVs
- inc hl
- ld a, [hld]
- ld c, a
- ld b, [hl]
-
-; Get back the result of our check
- pop af
-; If the RoamMon struct has already been initialized, we're done
- jr nz, .UpdateDVs
-
-; If it hasn't, we need to initialize the DVs
-; (HP is initialized at the end of the battle)
- call GetRoamMonDVs
- inc hl
- call BattleRandom
- ld [hld], a
- ld c, a
- call BattleRandom
- ld [hl], a
- ld b, a
-; We're done with DVs
- jr .UpdateDVs
-
-
-.NotRoaming
-; Register a contains BattleType
-
-; Forced shiny battle type
-; Used by Red Gyarados at Lake of Rage
- cp a, BATTLETYPE_SHINY
- jr nz, .GenerateDVs
-
- ld b, ATKDEFDV_SHINY ; $ea
- ld c, SPDSPCDV_SHINY ; $aa
- jr .UpdateDVs
-
-.GenerateDVs
-; Generate new random DVs
- call BattleRandom
- ld b, a
- call BattleRandom
- ld c, a
-
-.UpdateDVs
-; Input DVs in register bc
- ld hl, EnemyMonDVs
- ld a, b
- ld [hli], a
- ld [hl], c
-
-
-; We've still got more to do if we're dealing with a wild monster
- ld a, [IsInBattle]
- dec a
- jr nz, .Happiness
-
-
-; Species-specfic:
-
-
-; Unown
- ld a, [TempEnemyMonSpecies]
- cp a, UNOWN
- jr nz, .Magikarp
-
-; Get letter based on DVs
- ld hl, EnemyMonDVs
- ld a, PREDEF_GET_UNOWN_LETTER
- call Predef
-; Can't use any letters that haven't been unlocked
-; If combined with forced shiny battletype, causes an infinite loop
- call CheckUnownLetter
- jr c, .GenerateDVs ; try again
-
-
-.Magikarp
-; Skimming this part recommended
-
- ld a, [TempEnemyMonSpecies]
- cp a, MAGIKARP
- jr nz, .Happiness
-
-; Get Magikarp's length
- ld de, EnemyMonDVs
- ld bc, PlayerID
- callab CalcMagikarpLength
-
-; We're clear if the length is < 1536
- ld a, [MagikarpLength]
- cp a, $06 ; $600 = 1536
- jr nz, .CheckMagikarpArea
-
-; 5% chance of skipping size checks
- call Random
- cp a, $0c ; / $100
- jr c, .CheckMagikarpArea
-; Try again if > 1614
- ld a, [MagikarpLength + 1]
- cp a, $50
- jr nc, .GenerateDVs
-
-; 20% chance of skipping this check
- call Random
- cp a, $32 ; / $100
- jr c, .CheckMagikarpArea
-; Try again if > 1598
- ld a, [MagikarpLength + 1]
- cp a, $40
- jr nc, .GenerateDVs
-
-.CheckMagikarpArea
-; The z checks are supposed to be nz
-; Instead, all maps in GROUP_LAKE_OF_RAGE (mahogany area)
-; and routes 20 and 44 are treated as Lake of Rage
-
-; This also means Lake of Rage Magikarp can be smaller than ones
-; caught elsewhere rather than the other way around
-
-; Intended behavior enforces a minimum size at Lake of Rage
-; The real behavior prevents size flooring in the Lake of Rage area
- ld a, [MapGroup]
- cp a, GROUP_LAKE_OF_RAGE
- jr z, .Happiness
- ld a, [MapNumber]
- cp a, MAP_LAKE_OF_RAGE
- jr z, .Happiness
-; 40% chance of not flooring
- call Random
- cp a, $64 ; / $100
- jr c, .Happiness
-; Floor at length 1024
- ld a, [MagikarpLength]
- cp a, 1024 >> 8
- jr c, .GenerateDVs ; try again
-
-
-; Finally done with DVs
-
-.Happiness
-; Set happiness
- ld a, BASE_HAPPINESS
- ld [EnemyMonHappiness], a
-; Set level
- ld a, [CurPartyLevel]
- ld [EnemyMonLevel], a
-; Fill stats
- ld de, EnemyMonMaxHP
- ld b, $00
- ld hl, $d201 ; ?
- ld a, PREDEF_FILLSTATS
- call Predef
-
-; If we're in a trainer battle,
-; get the rest of the parameters from the party struct
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr z, .OpponentParty
-
-; If we're in a wild battle, check wild-specific stuff
- and a
- jr z, .TreeMon
-
-; ????
- ld a, [EnemySubStatus5]
- bit 3, a
- jp nz, .Moves
-
-.TreeMon
-; If we're headbutting trees, some monsters enter battle asleep
- call CheckSleepingTreeMon
- ld a, 7 ; Asleep for 7 turns
- jr c, .UpdateStatus
-; Otherwise, no status
- xor a
-
-.UpdateStatus
- ld hl, EnemyMonStatus
- ld [hli], a
-
-; Unused byte
- xor a
- ld [hli], a
-
-; Full HP...
- ld a, [EnemyMonMaxHPHi]
- ld [hli], a
- ld a, [EnemyMonMaxHPLo]
- ld [hl], a
-
-; ...unless it's a RoamMon
- ld a, [BattleType]
- cp a, BATTLETYPE_ROAMING
- jr nz, .Moves
-
-; Grab HP
- call GetRoamMonHP
- ld a, [hl]
-; Check if it's been initialized again
- and a
- jr z, .InitRoamHP
-; Update from the struct if it has
- ld a, [hl]
- ld [EnemyMonHPLo], a
- jr .Moves
-
-.InitRoamHP
-; HP only uses the lo byte in the RoamMon struct since
-; Raikou/Entei/Suicune will have < 256 hp at level 40
- ld a, [EnemyMonHPLo]
- ld [hl], a
- jr .Moves
-
-
-.OpponentParty
-; Get HP from the party struct
- ld hl, (PartyMon1CurHP + 1) - PartyMon1 + OTPartyMon1
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld a, [hld]
- ld [EnemyMonHPLo], a
- ld a, [hld]
- ld [EnemyMonHPHi], a
-
-; Make sure everything knows which monster the opponent is using
- ld a, [CurPartyMon]
- ld [CurOTMon], a
-
-; Get status from the party struct
- dec hl
- ld a, [hl] ; OTPartyMonStatus
- ld [EnemyMonStatus], a
-
-
-.Moves
-; ????
- ld hl, BaseType1
- ld de, EnemyMonType1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
-
-; Get moves
- ld de, EnemyMonMoves
-; Are we in a trainer battle?
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr nz, .WildMoves
-; Then copy moves from the party struct
- ld hl, OTPartyMon1Moves
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld bc, NUM_MOVES
- call CopyBytes
- jr .PP
-
-.WildMoves
-; Clear EnemyMonMoves
- xor a
- ld h, d
- ld l, e
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-; Make sure the predef knows this isn't a partymon
- ld [MagikarpLength], a
-; Fill moves based on level
- ld a, PREDEF_FILLMOVES
- call Predef
-
-.PP
-; Trainer battle?
- ld a, [IsInBattle]
- cp a, TRAINER_BATTLE
- jr z, .TrainerPP
-
-; Fill wild PP
- ld hl, EnemyMonMoves
- ld de, EnemyMonPP
- ld a, PREDEF_FILLPP
- call Predef
- jr .Finish
-
-.TrainerPP
-; Copy PP from the party struct
- ld hl, OTPartyMon1PP
- ld a, [CurPartyMon]
- call GetPartyLocation
- ld de, EnemyMonPP
- ld bc, NUM_MOVES
- call CopyBytes
-
-.Finish
-; Only the first five base stats are copied...
- ld hl, BaseStats
- ld de, EnemyMonBaseStats
- ld b, BaseSpecialDefense - BaseStats
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .loop
-
- ld a, [BaseCatchRate]
- ld [de], a
- inc de
-
- ld a, [BaseExp]
- ld [de], a
-
- ld a, [TempEnemyMonSpecies]
- ld [$d265], a
-
- call GetPokemonName
-
-; Did we catch it?
- ld a, [IsInBattle]
- and a
- ret z
-
-; Update enemy nick
- ld hl, StringBuffer1
- ld de, EnemyMonNick
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-; Caught this mon
- ld a, [TempEnemyMonSpecies]
- dec a
- ld c, a
- ld b, 1 ; set
- ld hl, PokedexSeen
- ld a, PREDEF_FLAG
- call Predef
-
- ld hl, EnemyMonStats
- ld de, EnemyStats
- ld bc, EnemyMonStatsEnd - EnemyMonStats
- call CopyBytes
-
- ret
-; 3eb38
-
-
-CheckSleepingTreeMon: ; 3eb38
-; Return carry if species is in the list
-; for the current time of day
-
-; Don't do anything if this isn't a tree encounter
- ld a, [BattleType]
- cp a, BATTLETYPE_TREE
- jr nz, .NotSleeping
-
-; Get list for the time of day
- ld hl, .Morn
- ld a, [TimeOfDay]
- cp a, DAY
- jr c, .Check
- ld hl, .Day
- jr z, .Check
- ld hl, .Nite
-
-.Check
- ld a, [TempEnemyMonSpecies]
- ld de, 1 ; length of species id
- call IsInArray
-; If it's a match, the opponent is asleep
- ret c
-
-.NotSleeping
- and a
- ret
-
-.Nite
- db CATERPIE
- db METAPOD
- db BUTTERFREE
- db WEEDLE
- db KAKUNA
- db BEEDRILL
- db SPEAROW
- db EKANS
- db EXEGGCUTE
- db LEDYBA
- db AIPOM
- db $ff ; end
-
-.Day
- db VENONAT
- db HOOTHOOT
- db NOCTOWL
- db SPINARAK
- db HERACROSS
- db $ff ; end
-
-.Morn
- db VENONAT
- db HOOTHOOT
- db NOCTOWL
- db SPINARAK
- db HERACROSS
- db $ff ; end
-; 3eb75
-
-
-CheckUnownLetter: ; 3eb75
-; Return carry if the Unown letter hasn't been unlocked yet
-
- ld a, [UnlockedUnowns]
- ld c, a
- ld de, 0
-
-.loop
-
-; Don't check this set unless it's been unlocked
- srl c
- jr nc, .next
-
-; Is our letter in the set?
- ld hl, .LetterSets
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- push de
- ld a, [UnownLetter]
- ld de, 1
- push bc
- call IsInArray
- pop bc
- pop de
-
- jr c, .match
-
-.next
-; Make sure we haven't gone past the end of the table
- inc e
- inc e
- ld a, e
- cp a, .Set1 - .LetterSets
- jr c, .loop
-
-; Hasn't been unlocked, or the letter is invalid
- scf
- ret
-
-.match
-; Valid letter
- and a
- ret
-
-.LetterSets
- dw .Set1
- dw .Set2
- dw .Set3
- dw .Set4
-
-.Set1
- ; A B C D E F G H I J K
- db 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, $ff
-.Set2
- ; L M N O P Q R
- db 12, 13, 14, 15, 16, 17, 18, $ff
-.Set3
- ; S T U V W
- db 19, 20, 21, 22, 23, $ff
-.Set4
- ; X Y Z
- db 24, 25, 26, $ff
-
-; 3ebc7
-
-
-Function3ebc7: ; 3ebc7
- push bc
- ld a, [BattleMonLevel]
- ld b, a
- ld a, [EnemyMonLevel]
- ld [BattleMonLevel], a
- ld a, b
- ld [EnemyMonLevel], a
- pop bc
- ret
-; 3ebd8
-
-Function3ebd8: ; 3ebd8
- xor a
- ld [TempEnemyMonSpecies], a
- call Function3ee27
- ld a, [OtherTrainerClass]
- ld [TrainerClass], a
- ld de, VTiles2
- callab Function5120d
- ld hl, $c4b3
- ld c, $0
-.asm_3ebf3
- inc c
- ld a, c
- cp $7
- ret z
- xor a
- ld [hBGMapMode], a
- ld [hBGMapThird], a
- ld d, $0
- push bc
- push hl
-.asm_3ec01
- call Function3ec1a
- inc hl
- ld a, $7
- add d
- ld d, a
- dec c
- jr nz, .asm_3ec01
- ld a, $1
- ld [hBGMapMode], a
- ld c, $4
- call DelayFrames
- pop hl
- pop bc
- dec hl
- jr .asm_3ebf3
-; 3ec1a
-
-Function3ec1a: ; 3ec1a
- push hl
- push de
- push bc
- ld e, $7
-.asm_3ec1f
- ld [hl], d
- ld bc, $0014
- add hl, bc
- inc d
- dec e
- jr nz, .asm_3ec1f
- pop bc
- pop de
- pop hl
- ret
-; 3ec2c
-
-
-Function3ec2c: ; 3ec2c
- ld a, 1
- jr Function3ec31
-; 3ec30
-
-Function3ec30: ; 3ec30
- xor a
-; 3ec31
-
-Function3ec31: ; 3ec31
- ld [hBattleTurn], a
- call Function3ec39
- jp Function3ec76
-; 3ec39
-
-Function3ec39: ; 3ec39
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ec5a
- ld a, [BattleMonStatus]
- and $40
- ret z
- ld hl, $c645
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec58
- ld b, $1
-
-.asm_3ec58
- ld [hl], b
- ret
-
-.asm_3ec5a
- ld a, [EnemyMonStatus]
- and $40
- ret z
- ld hl, $d21f
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec74
- ld b, $1
-
-.asm_3ec74
- ld [hl], b
- ret
-; 3ec76
-
-Function3ec76: ; 3ec76
- ld a, [hBattleTurn]
- and a
- jr z, .asm_3ec93
- ld a, [BattleMonStatus]
- and $10
- ret z
- ld hl, $c641
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3ec91
- ld b, $1
-
-.asm_3ec91
- ld [hl], b
- ret
-
-.asm_3ec93
- ld a, [EnemyMonStatus]
- and $10
- ret z
- ld hl, $d21b
- ld a, [hld]
- ld b, a
- ld a, [hl]
- srl a
- rr b
- ld [hli], a
- or b
- jr nz, .asm_3eca9
- ld b, $1
-
-.asm_3eca9
- ld [hl], b
- ret
-; 3ecab
-
-Function3ecab: ; 3ecab
- ld c, 0
-.asm_3ecad
- call Function3ecb7
- inc c
- ld a, c
- cp 5
- jr nz, .asm_3ecad
- ret
-; 3ecb7
-
-Function3ecb7: ; 3ecb7
- push bc
- push bc
- ld a, [$d265]
- and a
- ld a, c
- ld hl, BattleMonAtk
- ld de, PlayerStats
- ld bc, PlayerAtkLevel
- jr z, .asm_3ecd2
- ld hl, EnemyMonAtk
- ld de, EnemyStats
- ld bc, EnemyAtkLevel
-
-.asm_3ecd2
- add c
- ld c, a
- jr nc, .asm_3ecd7
- inc b
-.asm_3ecd7
- ld a, [bc]
- pop bc
- ld b, a
- push bc
- sla c
- ld b, 0
- add hl, bc
- ld a, c
- add e
- ld e, a
- jr nc, .asm_3ece6
- inc d
-.asm_3ece6
- pop bc
- push hl
- ld hl, .StatLevelMultipliers
- dec b
- sla b
- ld c, b
- ld b, 0
- add hl, bc
- xor a
- ld [hMultiplicand], a
- ld a, [de]
- ld [$ffb5], a
- inc de
- ld a, [de]
- ld [$ffb6], a
- ld a, [hli]
- ld [hMultiplier], a
- call Multiply
- ld a, [hl]
- ld [hMultiplier], a
- ld b, $4
- call Divide
- pop hl
-
-; Cap at 999.
- ld a, [$ffb6]
- sub 999 % $100
- ld a, [$ffb5]
- sbc 999 / $100
- jp c, .asm_3ed1e
-
- ld a, 999 / $100
- ld [$ffb5], a
- ld a, 999 % $100
- ld [$ffb6], a
-
-.asm_3ed1e
- ld a, [$ffb5]
- ld [hli], a
- ld b, a
- ld a, [$ffb6]
- ld [hl], a
- or b
- jr nz, .asm_3ed29
- inc [hl]
-
-.asm_3ed29
- pop bc
- ret
-; 3ed2b
-
-.StatLevelMultipliers
-; /
- db 25, 100 ; 25%
- db 28, 100 ; 28%
- db 33, 100 ; 33%
- db 40, 100 ; 40%
- db 50, 100 ; 50%
- db 66, 100 ; 66%
-
- db 1, 1 ; 100%
-
- db 15, 10 ; 150%
- db 2, 1 ; 200%
- db 25, 10 ; 250%
- db 3, 1 ; 300%
- db 35, 10 ; 350%
- db 4, 1 ; 400%
-; 3ed45
-
-
-BadgeStatBoosts: ; 3ed45
-; Raise BattleMon stats depending on which badges have been obtained.
-
-; Every other badge boosts a stat, starting from the first.
-
-; ZephyrBadge: Attack
-; PlainBadge: Speed
-; MineralBadge: Defense
-; GlacierBadge: Special Attack
-; RisingBadge: Special Defense
-
-; The boosted stats are in order, except PlainBadge and MineralBadge's boosts are swapped.
-
- ld a, [InLinkBattle]
- and a
- ret nz
-
- ld a, [$cfc0]
- and a
- ret nz
-
- ld a, [JohtoBadges]
-
-; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
- ld d, a
- and %00000100
- add a
- add a
- ld b, a
- ld a, d
- and %00010000
- rrca
- rrca
- ld c, a
- ld a, d
- and %11101011
- or b
- or c
- ld b, a
-
- ld hl, BattleMonAtk
- ld c, 4
-.CheckBadge
- ld a, b
- srl b
- call c, BoostStat
- inc hl
- inc hl
-; Check every other badge.
- srl b
- dec c
- jr nz, .CheckBadge
-; And the last one (RisingBadge) too.
- srl a
- call c, BoostStat
- ret
-; 3ed7c
-
-
-BoostStat: ; 3ed7c
-; Raise stat at hl by 1/8.
-
- ld a, [hli]
- ld d, a
- ld e, [hl]
- srl d
- rr e
- srl d
- rr e
- srl d
- rr e
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hli], a
-
-; Cap at 999.
- ld a, [hld]
- sub 999 % $100
- ld a, [hl]
- sbc 999 / $100
- ret c
- ld a, 999 / $100
- ld [hli], a
- ld a, 999 % $100
- ld [hld], a
- ret
-; 3ed9f
-
-
-Function3ed9f: ; 3ed9f
- callab Functionfb4f2
- ret
-; 3eda6
-
-Function3eda6: ; 3eda6
- callab Functionfb50d
- ret
-; 3edad
-
-
-Function3edad: ; 3edad
- ld de, $4ac0
- ld hl, $96c0
- ld bc, $3e04
- call Get1bpp
- ld de, $4ae0
- ld hl, $9730
- ld bc, $3e06
- call Get1bpp
- ld de, $4b10
- ld hl, $9550
- ld bc, $3e08
- jp Get2bpp
-; 3edd1
-
-
-EmptyBattleTextBox: ; 3edd1
- ld hl, .empty
- jp BattleTextBox
-.empty
- db "@"
-; 3edd8
-
-
-_BattleRandom: ; 3edd8
-; If the normal RNG is used in a link battle it'll desync.
-; To circumvent this a shared PRNG is used instead.
-
-; But if we're in a non-link battle we're safe to use it
- ld a, [InLinkBattle]
- and a
- jp z, Random
-
-; The PRNG operates in streams of 10 values.
-
-; Which value are we trying to pull?
- push hl
- push bc
- ld a, [LinkBattleRNCount]
- ld c, a
- ld b, 0
- ld hl, LinkBattleRNs
- add hl, bc
- inc a
- ld [LinkBattleRNCount], a
-
-; If we haven't hit the end yet, we're good
- cp 10 - 1 ; Exclude last value. See the closing comment
- ld a, [hl]
- pop bc
- pop hl
- ret c
-
-; If we have, we have to generate new pseudorandom data
-; Instead of having multiple PRNGs, ten seeds are used
- push hl
- push bc
- push af
-
-; Reset count to 0
- xor a
- ld [LinkBattleRNCount], a
- ld hl, LinkBattleRNs
- ld b, 10 ; number of seeds
-
-; Generate next number in the sequence for each seed
-; The algorithm takes the form *5 + 1 % 256
-.loop
- ; get last #
- ld a, [hl]
-
- ; a * 5 + 1
- ld c, a
- add a
- add a
- add c
- inc a
-
- ; update #
- ld [hli], a
- dec b
- jr nz, .loop
-
-; This has the side effect of pulling the last value first,
-; then wrapping around. As a result, when we check to see if
-; we've reached the end, we check the one before it.
-
- pop af
- pop bc
- pop hl
- ret
-; 3ee0f
-
-
-Function3ee0f: ; 3ee0f
- ld a, BATTLE_VARS_SUBSTATUS3
- call GetBattleVar
- and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- ret nz
-; 3ee17
-
-Function3ee17: ; 3ee17
- ld a, e
- ld [FXAnimIDLo], a
- ld a, d
- ld [FXAnimIDHi], a
- call WaitBGMap
- ld a, $37
- jp Predef
-; 3ee27
-
-Function3ee27: ; 3ee27
- push af
- push bc
- push de
- push hl
- ld b, $1
- call GetSGBLayout
- call Function32f9
- call DelayFrame
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 3ee3b
-
-
-Function3ee3b: ; 3ee3b
- ld a, [InLinkBattle]
- and a
- ret nz
- ld a, [$cfc0]
- bit 0, a
- ret nz
- call Function3f0d4
- xor a
- ld [CurPartyMon], a
- ld bc, PartyMon1Species
-
-.asm_3ee50
- ld hl, $0022
- add hl, bc
- ld a, [hli]
- or [hl]
- jp z, .asm_3f0b9
- push bc
- ld hl, $c664
- ld a, [CurPartyMon]
- ld c, a
- ld b, $2
- ld d, $0
- ld a, $3
- call Predef
- ld a, c
- and a
- pop bc
- jp z, .asm_3f0b9
- ld hl, $000c
- add hl, bc
- ld d, h
- ld e, l
- ld hl, EnemyMonType2
- push bc
- ld c, $5
-.asm_3ee7c
- inc hl
- ld a, [de]
- add [hl]
- ld [de], a
- jr nc, .asm_3ee89
- dec de
- ld a, [de]
- inc a
- jr z, .asm_3eea4
- ld [de], a
- inc de
-
-.asm_3ee89
- push hl
- push bc
- ld a, $1c
- call GetPartyParamLocation
- ld a, [hl]
- and a
- pop bc
- pop hl
- jr z, .asm_3eea9
- ld a, [de]
- add [hl]
- ld [de], a
- jr nc, .asm_3eea9
- dec de
- ld a, [de]
- inc a
- jr z, .asm_3eea4
- ld [de], a
- inc de
- jr .asm_3eea9
-
-.asm_3eea4
- ld a, $ff
- ld [de], a
- inc de
- ld [de], a
-
-.asm_3eea9
- inc de
- inc de
- dec c
- jr nz, .asm_3ee7c
- xor a
- ld [hMultiplicand], a
- ld [$ffb5], a
- ld a, [EnemyMonBaseExp]
- ld [$ffb6], a
- ld a, [EnemyMonLevel]
- ld [hMultiplier], a
- call Multiply
- ld a, $7
- ld [hMultiplier], a
- ld b, $4
- call Divide
- pop bc
- ld hl, $0006
- add hl, bc
- ld a, [PlayerID]
- cp [hl]
- jr nz, .asm_3eedd
- inc hl
- ld a, [$d47c]
- cp [hl]
- ld a, $0
- jr z, .asm_3eee2
-
-.asm_3eedd
- call Function3f106
- ld a, $1
-
-.asm_3eee2
- ld [$d088], a
- ld a, [IsInBattle]
- dec a
- call nz, Function3f106
- push bc
- ld a, $1
- call GetPartyParamLocation
- ld a, [hl]
- cp $7e
- call z, Function3f106
- ld a, [$ffb6]
- ld [$d087], a
- ld a, [$ffb5]
- ld [StringBuffer2], a
- ld a, [CurPartyMon]
- ld hl, PartyMon1Nickname
- call GetNick
- ld hl, UnknownText_0x3f11b
- call BattleTextBox
- ld a, [$d087]
- ld [$ffb6], a
- ld a, [StringBuffer2]
- ld [$ffb5], a
- pop bc
- call Function3f136
- push bc
- call Function309d
- pop bc
- ld hl, $000a
- add hl, bc
- ld d, [hl]
- ld a, [$ffb6]
- add d
- ld [hld], a
- ld d, [hl]
- ld a, [$ffb5]
- adc d
- ld [hl], a
- jr nc, .asm_3ef3d
- dec hl
- inc [hl]
- jr nz, .asm_3ef3d
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3ef3d
- ld a, [CurPartyMon]
- ld e, a
- ld d, $0
- ld hl, PartySpecies
- add hl, de
- ld a, [hl]
- ld [CurSpecies], a
- call GetBaseData
- push bc
- ld d, $64
- callab Function50e47
- pop bc
- ld hl, $000a
- add hl, bc
- push bc
- ld a, [hMultiplicand]
- ld b, a
- ld a, [$ffb5]
- ld c, a
- ld a, [$ffb6]
- ld d, a
- ld a, [hld]
- sub d
- ld a, [hld]
- sbc c
- ld a, [hl]
- sbc b
- jr c, .asm_3ef74
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- ld [hld], a
-
-.asm_3ef74
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- callab Function50e1b
- pop bc
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- cp $64
- jp nc, .asm_3f0b9
- cp d
- jp z, .asm_3f0b9
- ld [$c719], a
- ld a, [CurPartyLevel]
- push af
- ld a, d
- ld [CurPartyLevel], a
- ld [hl], a
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- ld [CurSpecies], a
- ld [$d265], a
- call GetBaseData
- ld hl, $0025
- add hl, bc
- ld a, [hld]
- ld e, a
- ld d, [hl]
- push de
- ld hl, $0024
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000a
- add hl, bc
- push bc
- ld b, $1
- ld a, $c
- call Predef
- pop bc
- pop de
- ld hl, $0025
- add hl, bc
- ld a, [hld]
- sub e
- ld e, a
- ld a, [hl]
- sbc d
- ld d, a
- dec hl
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hl], a
- ld a, [CurBattleMon]
- ld d, a
- ld a, [CurPartyMon]
- cp d
- jr nz, .asm_3f035
- ld de, BattleMonHP
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld de, BattleMonMaxHP
- push bc
- ld bc, $000c
- call CopyBytes
- pop bc
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- ld [BattleMonLevel], a
- ld a, [PlayerSubStatus5]
- bit 3, a
- jr nz, .asm_3f012
- ld hl, $0026
- add hl, bc
- ld de, PlayerStats
- ld bc, $000a
- call CopyBytes
-
-.asm_3f012
- xor a
- ld [$d265], a
- call Function3ecab
- callab Function3ec2c
- callab BadgeStatBoosts
- callab Function3df48
- call EmptyBattleTextBox
- call Function309d
- ld a, $1
- ld [hBGMapMode], a
-
-.asm_3f035
- callba Function2709e
- ld a, [CurBattleMon]
- ld b, a
- ld a, [CurPartyMon]
- cp b
- jr z, .asm_3f057
- ld de, SFX_HIT_END_OF_EXP_BAR
- call PlaySFX
- call WaitSFX
- ld hl, BattleText_0x80c9c
- call StdBattleTextBox
- call Function309d
-
-.asm_3f057
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- ld hl, $c4a9
- ld b, $a
- ld c, $9
- call TextBox
- ld hl, $c4bf
- ld bc, $0004
- ld a, $28
- call Predef
- ld c, $1e
- call DelayFrames
- call Functiona80
- call Function30b4
- xor a
- ld [MonType], a
- ld a, [CurSpecies]
- ld [$d265], a
- ld a, [CurPartyLevel]
- push af
- ld c, a
- ld a, [$c719]
- ld b, a
-
-.asm_3f093
- inc b
- ld a, b
- ld [CurPartyLevel], a
- push bc
- ld a, $1a
- call Predef
- pop bc
- ld a, b
- cp c
- jr nz, .asm_3f093
- pop af
- ld [CurPartyLevel], a
- ld hl, EvolvableFlags
- ld a, [CurPartyMon]
- ld c, a
- ld b, $1
- ld a, $3
- call Predef
- pop af
- ld [CurPartyLevel], a
-
-.asm_3f0b9
- ld a, [PartyCount]
- ld b, a
- ld a, [CurPartyMon]
- inc a
- cp b
- jr z, .asm_3f0d1
- ld [CurPartyMon], a
- ld a, $0
- call GetPartyParamLocation
- ld b, h
- ld c, l
- jp .asm_3ee50
-
-.asm_3f0d1
- jp Function3d57a
-; 3f0d4
-
-Function3f0d4: ; 3f0d4
- ld a, [$c664]
- ld b, a
- ld c, $6
- ld d, $0
-.asm_3f0dc
- xor a
- srl b
- adc d
- ld d, a
- dec c
- jr nz, .asm_3f0dc
- cp $2
- ret c
- ld [$d265], a
- ld hl, EnemyMonBaseStats
- ld c, $7
-.asm_3f0ef
- xor a
- ld [hProduct], a
- ld a, [hl]
- ld [hMultiplicand], a
- ld a, [$d265]
- ld [hMultiplier], a
- ld b, $2
- call Divide
- ld a, [$ffb6]
- ld [hli], a
- dec c
- jr nz, .asm_3f0ef
- ret
-; 3f106
-
-Function3f106: ; 3f106
- push bc
- ld a, [$ffb5]
- ld b, a
- ld a, [$ffb6]
- ld c, a
- srl b
- rr c
- add c
- ld [$ffb6], a
- ld a, [$ffb5]
- adc b
- ld [$ffb5], a
- pop bc
- ret
-; 3f11b
-
-UnknownText_0x3f11b: ; 3f11b
- text_jump UnknownText_0x1c029c, BANK(UnknownText_0x1c029c)
- start_asm
- ld hl, UnknownText_0x3f131
- ld a, [$d088] ; IsTradedMon
- and a
- ret z
- ld hl, UnknownText_0x3f12c
- ret
-; 3f12c
-
-UnknownText_0x3f12c: ; 3f12c
- text_jump UnknownText_0x1c02a9, BANK(UnknownText_0x1c02a9)
- db "@"
-; 3f131
-
-UnknownText_0x3f131: ; 3f131
- text_jump UnknownText_0x1c02c9, BANK(UnknownText_0x1c02c9)
- db "@"
-; 3f136
-
-
-Function3f136: ; 3f136
-
- push bc
-
- ld hl, CurPartyMon
- ld a, [CurBattleMon]
- cp [hl]
- jp nz, .asm_3f219
-
- ld a, [BattleMonLevel]
- cp MAX_LEVEL
- jp nc, .asm_3f219
-
- ld a, [$ffb6]
- ld [$d004], a
- push af
- ld a, [$ffb5]
- ld [$d003], a
- push af
- xor a
- ld [DefaultFlypoint], a
- xor a
- ld [MonType], a
- ld a, $1f
- call Predef
- ld a, [TempMonLevel]
- ld b, a
- ld e, a
- push de
- ld de, $d118
- call Function3f39c
- push bc
- ld hl, $d118
- ld a, [$d004]
- add [hl]
- ld [hld], a
- ld a, [$d003]
- adc [hl]
- ld [hld], a
- jr nc, .asm_3f186
- inc [hl]
- jr nz, .asm_3f186
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3f186
- ld d, $64
- callab Function50e47
- ld a, [hMultiplicand]
- ld b, a
- ld a, [$ffb5]
- ld c, a
- ld a, [$ffb6]
- ld d, a
- ld hl, $d118
- ld a, [hld]
- sub d
- ld a, [hld]
- sbc c
- ld a, [hl]
- sbc b
- jr c, .asm_3f1a8
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- ld [hld], a
-
-.asm_3f1a8
- callab Function50e1b
- ld a, d
- pop bc
- pop de
- ld d, a
- cp e
- jr nc, .asm_3f1b7
- ld a, e
- ld d, a
-
-.asm_3f1b7
- ld a, e
- cp $64
- jr nc, .asm_3f1ff
- cp d
- jr z, .asm_3f1ff
- inc a
- ld [TempMonLevel], a
- ld [CurPartyLevel], a
- ld [BattleMonLevel], a
- push de
- call Function3f21b
- ld c, $40
- call Function3f22c
- call PrintPlayerHUD
- ld hl, BattleMonNick
- ld de, StringBuffer1
- ld bc, $000b
- call CopyBytes
- call Function3dfe
- ld de, SFX_HIT_END_OF_EXP_BAR
- call PlaySFX
- callba Function8e79d
- call WaitSFX
- ld hl, BattleText_0x80c9c
- call StdBattleTextBox
- pop de
- inc e
- ld b, $0
- jr .asm_3f1b7
-
-.asm_3f1ff
- push bc
- ld b, d
- ld de, $d118
- call Function3f39c
- ld a, b
- pop bc
- ld c, a
- call Function3f21b
- call Function3f22c
- call Function3dfe
- pop af
- ld [$ffb5], a
- pop af
- ld [$ffb6], a
-
-.asm_3f219
- pop bc
- ret
-; 3f21b
-
-Function3f21b: ; 3f21b
- push bc
- call WaitSFX
- ld de, SFX_EXP_BAR
- call PlaySFX
- ld c, 10
- call DelayFrames
- pop bc
- ret
-; 3f22c
-
-Function3f22c: ; 3f22c
- ld d, $3
- dec b
-.asm_3f22f
- inc b
- push bc
- push de
- ld hl, $c58d
- call Function3f41c
- pop de
- ld a, $1
- ld [hBGMapMode], a
- ld c, d
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- pop bc
- ld a, c
- cp b
- jr z, .asm_3f268
- inc b
- push bc
- push de
- ld hl, $c58d
- call Function3f41c
- pop de
- ld a, $1
- ld [hBGMapMode], a
- ld c, d
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- dec d
- jr nz, .asm_3f263
- ld d, $1
-
-.asm_3f263
- pop bc
- ld a, c
- cp b
- jr nz, .asm_3f22f
-
-.asm_3f268
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3f26d
-
-
-
-Function3f26d: ; 3f26d
-; SendOutMonText?
-
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3f27c
- ld hl, UnknownText_0x3f2d1
- ld a, [$d264]
- and a
- jr nz, .asm_3f2ce
-
-.asm_3f27c
- ld hl, EnemyMonHPHi
- ld a, [hli]
- or [hl]
- ld hl, UnknownText_0x3f2d1
- jr z, .asm_3f2ce
- xor a
- ld [hMultiplicand], a
- ld hl, EnemyMonHPHi
- ld a, [hli]
- ld [$c6ea], a
- ld [$ffb5], a
- ld a, [hl]
- ld [$c6eb], a
- ld [$ffb6], a
- ld a, $19
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, [hl]
- srl a
- rr b
- srl a
- rr b
- ld a, b
- ld b, $4
- ld [hMultiplier], a
- call Divide
- ld a, [$ffb6]
- ld hl, UnknownText_0x3f2d1
- cp $46
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2d8
- cp $28
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2df
- cp $a
- jr nc, .asm_3f2ce
- ld hl, UnknownText_0x3f2e6
-
-.asm_3f2ce
- jp BattleTextBox
-; 3f2d1
-
-
-UnknownText_0x3f2d1: ; 3f2d1
- text_jump UnknownText_0x1c02df, BANK(UnknownText_0x1c02df)
- start_asm
- jr Function3f2eb
-; 3f2d6
-
-UnknownText_0x3f2d8: ; 3f2d8
- text_jump UnknownText_0x1c02e6, BANK(UnknownText_0x1c02e6)
- start_asm
- jr Function3f2eb
-; 3f2dd
-
-UnknownText_0x3f2df: ; 3f2df
- text_jump UnknownText_0x1c02f0, BANK(UnknownText_0x1c02f0)
- start_asm
- jr Function3f2eb
-; 3f2e4
-
-UnknownText_0x3f2e6: ; 3f2e6
- text_jump UnknownText_0x1c02fe, BANK(UnknownText_0x1c02fe)
- start_asm
-; 3f2eb
-
-Function3f2eb: ; 3f2eb
- ld hl, UnknownText_0x3f2ef
- ret
-; 3f2ef
-
-UnknownText_0x3f2ef: ; 3f2ef
- text_jump UnknownText_0x1c0317, BANK(UnknownText_0x1c0317)
- db "@"
-; 3f2f4
-
-
-Function3f2f4: ; 3f2f4
- ld hl, UnknownText_0x3f2fa
- jp BattleTextBox
-; 3f2fa
-
-UnknownText_0x3f2fa: ; 3f2fa
- text_jump UnknownText_0x1c031d, BANK(UnknownText_0x1c031d)
- start_asm
-; 3f2ff
-
-Function3f2ff: ; 3f2ff
- push de
- push bc
- ld hl, EnemyMonHPLo
- ld de, $c6eb
- ld b, [hl]
- dec hl
- ld a, [de]
- sub b
- ld [$ffb6], a
- dec de
- ld b, [hl]
- ld a, [de]
- sbc b
- ld [$ffb5], a
- ld a, $19
- ld [hMultiplier], a
- call Multiply
- ld hl, EnemyMonMaxHPHi
- ld a, [hli]
- ld b, [hl]
- srl a
- rr b
- srl a
- rr b
- ld a, b
- ld b, $4
- ld [hMultiplier], a
- call Divide
- pop bc
- pop de
- ld a, [$ffb6]
- ld hl, UnknownText_0x3f348
- and a
- ret z
- ld hl, UnknownText_0x3f35b
- cp $1e
- ret c
- ld hl, UnknownText_0x3f34d
- cp $46
- ret c
- ld hl, UnknownText_0x3f352
- ret
-; 3f348
-
-UnknownText_0x3f348: ; 3f348
- text_jump UnknownText_0x1c0324, BANK(UnknownText_0x1c0324)
- db "@"
-; 3f34d
-
-UnknownText_0x3f34d: ; 3f34d
- text_jump UnknownText_0x1c0340, BANK(UnknownText_0x1c0340)
- db "@"
-; 3f352
-
-UnknownText_0x3f352: ; 3f352
- text_jump UnknownText_0x1c0352, BANK(UnknownText_0x1c0352)
- db "@"
-; 3f357
-
-Function3f357: ; 3f357
- ld hl, UnknownText_0x3f35b
- ret
-; 3f35b
-
-UnknownText_0x3f35b: ; 3f35b
- text_jump UnknownText_0x1c0366, BANK(UnknownText_0x1c0366)
- db "@"
-; 3f360
-
-
-Function3f360: ; 3f360
- ld hl, $c6f0
- ld a, [hl]
- and a
- jr z, .asm_3f36d
- dec [hl]
- ld hl, BattleText_0x80cba
- jr .asm_3f388
-
-.asm_3f36d
- dec hl
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ld hl, BattleText_0x80cd1
- jr nz, .asm_3f388
- push hl
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseCatchRate]
- ld [EnemyMonCatchRate], a
- pop hl
-
-.asm_3f388
- push hl
- call Function30b4
- pop hl
- jp StdBattleTextBox
-; 3f390
-
-
-FillInExpBar: ; 3f390
- push hl
- call Function3f39c
- pop hl
- ld de, $0007
- add hl, de
- jp Function3f41c
-; 3f39c
-
-Function3f39c: ; 3f39c
- push de
- ld d, b
- push de
- callab Function50e47
- pop de
- ld hl, hMultiplicand
- ld a, [hli]
- push af
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- inc d
- callab Function50e47
- ld hl, $ffb6
- ld a, [hl]
- ld [$ffba], a
- pop bc
- sub b
- ld [hld], a
- ld a, [hl]
- ld [$ffb9], a
- pop bc
- sbc b
- ld [hld], a
- ld a, [hl]
- ld [hMathBuffer], a
- pop bc
- sbc b
- ld [hl], a
- pop de
- ld hl, $ffb5
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- ld a, [de]
- dec de
- ld c, a
- ld a, [$ffba]
- sub c
- ld [hld], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [$ffb9]
- sbc b
- ld [hld], a
- ld a, [de]
- ld c, a
- ld a, [hMathBuffer]
- sbc c
- ld [hld], a
- xor a
- ld [hl], a
- ld a, $40
- ld [hMultiplier], a
- call Multiply
- pop af
- ld c, a
- pop af
- ld b, a
-.asm_3f3f4
- ld a, b
- and a
- jr z, .asm_3f40c
- srl b
- rr c
- ld hl, hProduct
- srl [hl]
- inc hl
- rr [hl]
- inc hl
- rr [hl]
- inc hl
- rr [hl]
- jr .asm_3f3f4
-
-.asm_3f40c
- ld a, c
- ld [hMultiplier], a
- ld b, $4
- call Divide
- ld a, [$ffb6]
- ld b, a
- ld a, $40
- sub b
- ld b, a
- ret
-; 3f41c
-
-Function3f41c: ; 3f41c
- ld c, $8
-.asm_3f41e
- ld a, b
- sub $8
- jr c, .asm_3f42c
- ld b, a
- ld a, $6a
- ld [hld], a
- dec c
- jr z, .asm_3f43c
- jr .asm_3f41e
-
-.asm_3f42c
- add $8
- jr z, .asm_3f434
- add $54
- jr .asm_3f436
-
-.asm_3f434
- ld a, $62
-
-.asm_3f436
- ld [hld], a
- ld a, $62
- dec c
- jr nz, .asm_3f434
-
-.asm_3f43c
- ret
-; 3f43d
-
-Function3f43d: ; 3f43d
- ld a, [PlayerSubStatus4]
- bit 4, a
- ld hl, Functioncc640
- jr nz, asm_3f46f
-Function3f447: ; 3f447
- ld a, [$c6fe]
- and a
- ld hl, Functioncc6cf
- jr nz, asm_3f46f
- ld a, [CurPartySpecies]
- push af
- ld a, [BattleMonSpecies]
- ld [CurPartySpecies], a
- ld hl, BattleMonAtkDefDV
- ld a, $2d
- call Predef
- ld de, $9310
- ld a, $3d
- call Predef
- pop af
- ld [CurPartySpecies], a
- ret
-
-asm_3f46f
- ld a, [hBattleTurn]
- push af
- xor a
- ld [hBattleTurn], a
- ld a, BANK(Functioncc640)
- rst FarCall
- pop af
- ld [hBattleTurn], a
- ret
-; 3f47c
-
-Function3f47c: ; 3f47c
- ld a, [EnemySubStatus4]
- bit 4, a
- ld hl, Functioncc640
- jr nz, asm_3f4b4
-Function3f486: ; 3f486
- ld a, [$c6fa]
- and a
- ld hl, Functioncc6cf
- jr nz, asm_3f4b4
- ld a, [CurPartySpecies]
- push af
- ld a, [EnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld de, VTiles2
- ld a, $3e
- call Predef
- pop af
- ld [CurPartySpecies], a
- ret
-
-asm_3f4b4
- ld a, [hBattleTurn]
- push af
- call SetEnemyTurn
- ld a, BANK(Functioncc640)
- rst FarCall
- pop af
- ld [hBattleTurn], a
- ret
-; 3f4c1
-
-
-StartBattle: ; 3f4c1
- ld a, [PartyCount]
- and a
- ret z
- ld a, [TimeOfDayPal]
- push af
- call Function3f4dd
- call Function3c000
- call Function3f69e
- pop af
- ld [TimeOfDayPal], a
- scf
- ret
-; 3f4d9
-
-
-Function3f4d9: ; 3f4d9
- call Function3c000
- ret
-; 3f4dd
-
-
-Function3f4dd: ; 3f4dd
- callba Function106050
- call Function3f54e
- xor a
- ld [TempBattleMonSpecies], a
- ld [$d0d2], a
- xor a
- ld [$ffde], a
- callba PlayBattleMusic
- callba Function2ee18
- callba Function2ee2f
- call Function2ed3
- callba ClearBattleRAM
- call Function3f55e
- call Function3f568
- ld b, $0
- call GetSGBLayout
- ld hl, rLCDC
- res 6, [hl]
- call Function3fb6c
- call BattleStartMessage
- ld hl, rLCDC
- set 6, [hl]
- xor a
- ld [hBGMapMode], a
- call EmptyBattleTextBox
- hlcoord 9, 7
- ld bc, 5 << 8 + 11
- call ClearBox
- hlcoord 1, 0
- ld bc, 4 << 8 + 10
- call ClearBox
- call ClearSprites
- ld a, [IsInBattle]
- cp $1
- call z, Function3e036
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 3f54e
-
-Function3f54e: ; 3f54e
- ld a, [OtherTrainerClass]
- and a
- jr nz, .asm_3f55a
- ld a, [$d22e]
- ld [CurPartySpecies], a
-
-.asm_3f55a
- ld [TempEnemyMonSpecies], a
- ret
-; 3f55e
-
-Function3f55e: ; 3f55e
- ld a, [OtherTrainerClass]
- and a
- jp nz, Function3f594
- jp Function3f607
-; 3f568
-
-Function3f568: ; 3f568
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, $d000
- ld bc, VBlank5
- ld a, $2
- call ByteFill
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld de, $d000
- ld hl, VBGMap0
- ld bc, $0f40
- call Request2bpp
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- ret
-; 3f594
-
-Function3f594: ; 3f594
- ld [TrainerClass], a
- callba Function10606a
- xor a
- ld [TempEnemyMonSpecies], a
- callab Function3957b
- callab Function39771
- ld a, [TrainerClass]
- cp $9
- jr nz, .asm_3f5b8
- xor a
- ld [OTPartyMon1Item], a
-
-.asm_3f5b8
- ld de, VTiles2
- callab Function5120d
- xor a
- ld [$ffad], a
- dec a
- ld [$c6e6], a
- ld hl, $c4ac
- ld bc, $0707
- ld a, $13
- call Predef
- ld a, $ff
- ld [CurOTMon], a
- ld a, $2
- ld [IsInBattle], a
- call IsJohtoGymLeader
- jr nc, .asm_3f606
- xor a
- ld [CurPartyMon], a
- ld a, [PartyCount]
- ld b, a
-.asm_3f5ea
- push bc
- ld a, $22
- call GetPartyParamLocation
- ld a, [hli]
- or [hl]
- jr z, .asm_3f5fc
- ld c, $4
- callab ChangeHappiness
-
-.asm_3f5fc
- pop bc
- dec b
- jr z, .asm_3f606
- ld hl, CurPartyMon
- inc [hl]
- jr .asm_3f5ea
-
-.asm_3f606
- ret
-; 3f607
-
-Function3f607: ; 3f607
- ld a, $1
- ld [IsInBattle], a
- callba Function10605d
- call LoadEnemyMon
- ld hl, EnemyMonMove1
- ld de, $c735
- ld bc, $0004
- call CopyBytes
- ld hl, EnemyMonPPMove1
- ld de, $c739
- ld bc, $0004
- call CopyBytes
- ld hl, EnemyMonAtkDefDV
- ld a, $2d
- call Predef
- ld a, [CurPartySpecies]
- cp $c9
- jr nz, .asm_3f648
- ld a, [$def4]
- and a
- jr nz, .asm_3f648
- ld a, [UnownLetter]
- ld [$def4], a
-
-.asm_3f648
- ld de, VTiles2
- ld a, $3e
- call Predef
- xor a
- ld [TrainerClass], a
- ld [$ffad], a
- ld hl, $c4ac
- ld bc, $0707
- ld a, $13
- call Predef
- ret
-; 3f662
-
-Function3f662: ; 3f662
- ld hl, EnemyMonMove1
- ld de, $d25e
- ld b, $4
-.asm_3f66a
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr z, .asm_3f690
- push bc
- push hl
- push hl
- dec a
- ld hl, $5b00
- ld bc, $0007
- call AddNTimes
- ld a, $10
- call GetFarByte
- pop hl
- ld bc, $0005
- add hl, bc
- ld [hl], a
- pop hl
- pop bc
- dec b
- jr nz, .asm_3f66a
- ret
-
-.asm_3f68e
- xor a
- ld [hli], a
-
-.asm_3f690
- push bc
- push hl
- ld bc, $0005
- add hl, bc
- xor a
- ld [hl], a
- pop hl
- pop bc
- dec b
- jr nz, .asm_3f68e
- ret
-; 3f69e
-
-
-Function3f69e: ; 3f69e
- call Function3f6a5
- call Function3f6d0
- ret
-; 3f6a5
-
-Function3f6a5: ; 3f6a5
- ld a, [InLinkBattle]
- and a
- jr z, .asm_3f6b7
- call Function3f759
- ld c, $96
- call DelayFrames
- call Function3f77c
- ret
-
-.asm_3f6b7
- ld a, [$d0ee]
- and $f
- ret nz
- call Function3f71d
- xor a
- ld [$d1e9], a
- ld a, $1c
- call Predef
- callba Function2ed44
- ret
-; 3f6d0
-
-Function3f6d0: ; 3f6d0
- call Function3f998
- xor a
- ld [Danger], a
- ld [IsInBattle], a
- ld [BattleType], a
- ld [AttackMissed], a
- ld [$d22e], a
- ld [OtherTrainerClass], a
- ld [$d266], a
- ld [$d267], a
- ld [$d232], a
- ld [$d0d8], a
- ld [$d0da], a
- ld [$d0d9], a
- ld [$d0d2], a
- ld [CurMoveNum], a
- ld [$d0db], a
- ld [$d0d6], a
- ld [$d0e4], a
- ld [$d0e0], a
- ld [$d0df], a
- ld [$d0e1], a
- ld hl, PlayerSubStatus1
- ld b, $18
-.asm_3f715
- ld [hli], a
- dec b
- jr nz, .asm_3f715
- call WaitSFX
- ret
-; 3f71d
-
-Function3f71d: ; 3f71d
- ld hl, $c6ec
- ld a, [hli]
- or [hl]
- inc hl
- or [hl]
- ret z
- ld a, [$c73d]
- and a
- jr z, .asm_3f73d
- ld hl, $c6ee
- sla [hl]
- dec hl
- rl [hl]
- dec hl
- rl [hl]
- jr nc, .asm_3f73d
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.asm_3f73d
- ld hl, $c6ee
- ld de, $d850
- call Function3d0be
- ld hl, BattleText_0x80730
- call StdBattleTextBox
- ld a, [$cfc0]
- bit 0, a
- ret z
- call ClearTileMap
- call WhiteBGMap
- ret
-; 3f759
-
-Function3f759: ; 3f759
- callba Function1060df
- callba Function106187
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- call GetPartyLocation
- ld a, [EnemyMonStatus]
- ld [hl], a
- call ClearTileMap
- callba Function2c1b2
- ret
-; 3f77c
-
-Function3f77c: ; 3f77c
- callba Function3d2e0
- jp c, Function3f80f
- call Function3f830
- jr nz, .asm_3f797
- ld hl, $cd2a
- bit 4, [hl]
- jr z, .asm_3f797
- callba Function2b930
-
-.asm_3f797
- ld a, [$d0ee]
- and $f
- cp $1
- jr c, .asm_3f7ad
- jr z, .asm_3f7b8
- callba Function106107
- ld de, .Draw
- jr .asm_3f7c3
-
-.asm_3f7ad
- callba Function1060fb
- ld de, .Win
- jr .asm_3f7c3
-
-.asm_3f7b8
- callba Function106101
- ld de, .Lose
- jr .asm_3f7c3
-
-.asm_3f7c3
- ld hl, $c546
- call PlaceString
- callba Function106187
- ld c, $c8
- call DelayFrames
- ld a, $1
- call GetSRAMBank
- call Function3fa42
- call Function3f85f
- call CloseSRAM
- call Function3f830
- jr z, .asm_3f7ee
- call Functiona80
- call ClearTileMap
- ret
-
-.asm_3f7ee
- ld c, $c8
- call DelayFrames
- call ClearTileMap
- ret
-; 3f7f7
-
-.Win
- db "YOU WIN@"
-.Lose
- db "YOU LOSE@"
-.Draw
- db " DRAW@"
-; 3f80f
-
-
-Function3f80f: ; 3f80f
- ld hl, $c546
- ld de, .Invalid
- call PlaceString
- ld c, $c8
- call DelayFrames
- call ClearTileMap
- ret
-; 3f821
-
-.Invalid
- db "INVALID BATTLE@"
-; 3f830
-
-
-Function3f830: ; 3f830
- ld a, [InLinkBattle]
- cp $4
- ret
-; 3f836
-
-
-Function3f836: ; 3f836
- ld a, $1
- call GetSRAMBank
- call Function3f85f
- call CloseSRAM
- ld hl, AttrMap
- xor a
- ld bc, $0168
- call ByteFill
- call Function3200
- ld b, $8
- call GetSGBLayout
- call Function32f9
- ld c, $8
- call DelayFrames
- call Functiona80
- ret
-; 3f85f
-
-
-Function3f85f: ; 3f85f
- call ClearTileMap
- call ClearSprites
- call .asm_3f8e0
- ld hl, $c540
- ld b, $5
- ld de, $b268
-.asm_3f870
- push bc
- push hl
- push de
- ld a, [de]
- and a
- jr z, .asm_3f8c9
- ld a, [$d4b4]
- and a
- jr z, .asm_3f8c9
- push hl
- push hl
- ld h, d
- ld l, e
- ld de, DefaultFlypoint
- ld bc, $000a
- call CopyBytes
- ld a, $50
- ld [de], a
- inc de
- ld bc, $0006
- call CopyBytes
- ld de, DefaultFlypoint
- pop hl
- call PlaceString
- pop hl
- ld de, $001a
- add hl, de
- push hl
- ld de, $d00d
- ld bc, $0204
- call PrintNum
- pop hl
- ld de, $0005
- add hl, de
- push hl
- ld de, $d00f
- ld bc, $0204
- call PrintNum
- pop hl
- ld de, $0005
- add hl, de
- ld de, $d011
- ld bc, $0204
- call PrintNum
- jr .asm_3f8cf
-
-.asm_3f8c9
- ld de, .Format
- call PlaceString
-
-.asm_3f8cf
- pop hl
- ld bc, $0012
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld bc, $0028
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_3f870
- ret
-
-.asm_3f8e0
- ld hl, $c4a1
- ld de, .Record
- call PlaceString
-
- ld hl, $c518
- ld de, .Result
- call PlaceString
-
- ld hl, $c4c8
- ld de, .Total
- call PlaceString
-
- ld hl, $c4f6
- ld de, $b260
- call .asm_3f92b
- jr c, .asm_3f92a
-
- ld bc, $0204
- call PrintNum
-
- ld hl, $c4fb
- ld de, $b262
- call .asm_3f92b
-
- ld bc, $0204
- call PrintNum
-
- ld hl, $c500
- ld de, $b264
- call .asm_3f92b
-
- ld bc, $0204
- call PrintNum
-
-.asm_3f92a
- ret
-
-.asm_3f92b
- ld a, [$d4b4]
- and a
- ret nz
- ld de, .Scores
- call PlaceString
- scf
- ret
-; 3f938
-
-.Scores
- db " 0 0 0@"
-; 3f947
-
-.Format ; 3f947
- db " --- ", $22, " - - -@"
-.Record ; 3f964
- db $52, "'s RECORD@"
-.Result ; 3f96e
- db "RESULT WIN LOSE DRAW@"
-.Total ; 3f983
- db "TOTAL WIN LOSE DRAW@"
-; 3f998
-
-
-Function3f998: ; 3f998
- ld a, [BattleType]
- cp BATTLETYPE_ROAMING
- jr nz, .asm_3f9c4
- ld a, [$d0ee]
- and $f
- jr z, .asm_3f9af
- call GetRoamMonHP
- ld a, [EnemyMonHPLo]
- ld [hl], a
- jr .asm_3f9ca
-
-.asm_3f9af
- call GetRoamMonHP
- ld [hl], $0
- call GetRoamMonMapGroup
- ld [hl], $ff
- call GetRoamMonMapNumber
- ld [hl], $ff
- call GetRoamMonSpecies
- ld [hl], $0
- ret
-
-.asm_3f9c4
- call BattleRandom
- and $f
- ret nz
-
-.asm_3f9ca
- callab Function2a30d
- ret
-; 3f9d1
-
-GetRoamMonMapGroup: ; 3f9d1
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1MapGroup
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2MapGroup
- ret z
- ld hl, RoamMon3MapGroup
- ret
-; 3f9e9
-
-GetRoamMonMapNumber: ; 3f9e9
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1MapNumber
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2MapNumber
- ret z
- ld hl, RoamMon3MapNumber
- ret
-; 3fa01
-
-GetRoamMonHP: ; 3fa01
-; output: hl = RoamMonCurHP
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1CurHP
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2CurHP
- ret z
- ld hl, RoamMon3CurHP
- ret
-; 3fa19
-
-GetRoamMonDVs: ; 3fa19
-; output: hl = RoamMonDVs
- ld a, [TempEnemyMonSpecies]
- ld b, a
- ld a, [RoamMon1Species]
- cp b
- ld hl, RoamMon1DVs
- ret z
- ld a, [RoamMon2Species]
- cp b
- ld hl, RoamMon2DVs
- ret z
- ld hl, RoamMon3DVs
- ret
-; 3fa31
-
-GetRoamMonSpecies: ; 3fa31
- ld a, [TempEnemyMonSpecies]
- ld hl, RoamMon1Species
- cp [hl]
- ret z
- ld hl, RoamMon2Species
- cp [hl]
- ret z
- ld hl, RoamMon3Species
- ret
-; 3fa42
-
-
-Function3fa42: ; 3fa42
- ld hl, $d276
- ld de, StringBuffer1
- ld bc, $0002
- call CopyBytes
- ld hl, $d26b
- ld bc, $000a
- call CopyBytes
- ld hl, $b254
- call Function3faa0
- ld hl, $b266
- ld d, $5
-.asm_3fa62
- push hl
- inc hl
- inc hl
- ld a, [hl]
- dec hl
- dec hl
- and a
- jr z, .asm_3fa85
- push de
- ld bc, $000c
- ld de, StringBuffer1
- call CompareLong
- pop de
- pop hl
- jr c, .asm_3fa99
- ld bc, $0012
- add hl, bc
- dec d
- jr nz, .asm_3fa62
- ld bc, $ffee
- add hl, bc
- push hl
-
-.asm_3fa85
- ld d, h
- ld e, l
- ld hl, StringBuffer1
- ld bc, $000c
- call CopyBytes
- ld b, $6
- xor a
-.asm_3fa93
- ld [de], a
- inc de
- dec b
- jr nz, .asm_3fa93
- pop hl
-
-.asm_3fa99
- call Function3faa0
- call Function3fac8
- ret
-; 3faa0
-
-Function3faa0: ; 3faa0
- ld a, [$d0ee]
- and $f
- cp $1
- ld bc, $000d
- jr c, .asm_3fab4
- ld bc, $000f
- jr z, .asm_3fab4
- ld bc, $0011
-
-.asm_3fab4
- add hl, bc
- call Function3fabe
- ret nc
- inc [hl]
- ret nz
- dec hl
- inc [hl]
- ret
-; 3fabe
-
-Function3fabe: ; 3fabe
- dec hl
- ld a, [hl]
- inc hl
- cp $27
- ret c
- ld a, [hl]
- cp $f
- ret
-; 3fac8
-
-Function3fac8: ; 3fac8
- ld b, $5
- ld hl, $b277
- ld de, DefaultFlypoint
-.asm_3fad0
- push bc
- push de
- push hl
- call Function3fb54
- pop hl
- ld a, e
- pop de
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld bc, $0012
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_3fad0
- ld b, $0
- ld c, $1
-.asm_3faed
- ld a, b
- add b
- add b
- ld e, a
- ld d, $0
- ld hl, DefaultFlypoint
- add hl, de
- push hl
- ld a, c
- add c
- add c
- ld e, a
- ld d, $0
- ld hl, DefaultFlypoint
- add hl, de
- ld d, h
- ld e, l
- pop hl
- push bc
- ld c, $3
- call StringCmp
- pop bc
- jr z, .asm_3fb10
- jr nc, .asm_3fb1f
-
-.asm_3fb10
- inc c
- ld a, c
- cp $5
- jr nz, .asm_3faed
- inc b
- ld c, b
- inc c
- ld a, b
- cp $4
- jr nz, .asm_3faed
- ret
-
-.asm_3fb1f
- push bc
- ld a, b
- ld bc, $0012
- ld hl, $b266
- call AddNTimes
- push hl
- ld de, DefaultFlypoint
- ld bc, $0012
- call CopyBytes
- pop hl
- pop bc
- push hl
- ld a, c
- ld bc, $0012
- ld hl, $b266
- call AddNTimes
- pop de
- push hl
- ld bc, $0012
- call CopyBytes
- ld hl, DefaultFlypoint
- ld bc, $0012
- pop de
- call CopyBytes
- ret
-; 3fb54
-
-Function3fb54: ; 3fb54
- ld e, $0
- ld a, [hld]
- ld c, a
- ld a, [hld]
- ld b, a
- ld a, [hld]
- add c
- ld c, a
- ld a, [hld]
- adc b
- ld b, a
- jr nc, .asm_3fb63
- inc e
-
-.asm_3fb63
- ld a, [hld]
- add c
- ld c, a
- ld a, [hl]
- adc b
- ld b, a
- ret nc
- inc e
- ret
-; 3fb6c
-
-Function3fb6c: ; 3fb6c
- call Function3fbf8
- ld hl, $c590
- ld b, $4
- ld c, $12
- call TextBox
- callba MobileTextBorder
- ld hl, $c505
- ld bc, $0307
- call ClearBox
- call Functione51
- call Function3ed9f
- call Function3fbd6
- xor a
- ld [$ffde], a
- ld [hSCY], a
- ld a, $90
- ld [hWY], a
- ld [rWY], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- callba Function4e980
- ld a, $1
- ld [hBGMapMode], a
- ld a, $31
- ld [$ffad], a
- ld hl, $c51a
- ld bc, $0606
- ld a, $13
- call Predef
- xor a
- ld [hWY], a
- ld [rWY], a
- call WaitBGMap
- call HideSprites
- ld b, $1
- call GetSGBLayout
- call Function32f9
- ld a, $90
- ld [hWY], a
- xor a
- ld [hSCX], a
- ret
-; 3fbd6
-
-Function3fbd6: ; 3fbd6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, $d000
- ld bc, VBlank5
- ld a, $7f
- call ByteFill
- ld de, $d000
- ld hl, VBGMap0
- ld bc, $0f40
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-; 3fbf8
-
-Function3fbf8: ; 3fbf8
- call GetBattleBackpic
- call Function3fc30
- ret
-; 3fbff
-
-
-GetBattleBackpic: ; 3fbff
-; Load the player character's backpic (6x6) into VRAM starting from $9310.
-
-; Special exception for Dude.
- ld b, BANK(DudeBackpic)
- ld hl, DudeBackpic
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jr z, .Decompress
-
-; What gender are we?
- ld a, [$d45b]
- bit 2, a
- jr nz, .Chris
- ld a, [PlayerGender]
- bit 0, a
- jr z, .Chris
-
-; It's a girl.
- callba GetKrisBackpic
- ret
-
-.Chris
-; It's a boy.
- ld b, BANK(ChrisBackpic)
- ld hl, ChrisBackpic
-
-.Decompress
- ld de, $9310
- ld c, $31
- ld a, PREDEF_DECOMPRESS
- call Predef
- ret
-; 3fc30
-
-
-Function3fc30: ; 3fc30
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, VTiles0
- ld de, $9310
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- pop af
- ld [rSVBK], a
- call Function3fc5b
- ld a, $31
- ld [$ffad], a
- ld hl, $c51a
- ld bc, $0606
- ld a, $13
- call Predef
- ret
-; 3fc5b
-
-Function3fc5b: ; 3fc5b
- ld hl, Sprites
- xor a
- ld [hConnectionStripLength], a
- ld b, $6
- ld e, $a8
-.asm_3fc65
- ld c, $3
- ld d, $40
-.asm_3fc69
- ld [hl], d
- inc hl
- ld [hl], e
- inc hl
- ld a, [hConnectionStripLength]
- ld [hli], a
- inc a
- ld [hConnectionStripLength], a
- ld a, $1
- ld [hli], a
- ld a, d
- add $8
- ld d, a
- dec c
- jr nz, .asm_3fc69
- ld a, [hConnectionStripLength]
- add $3
- ld [hConnectionStripLength], a
- ld a, e
- add $8
- ld e, a
- dec b
- jr nz, .asm_3fc65
- ret
-; 3fc8b
-
-
-BattleStartMessage: ; 3fc8b
- ld a, [IsInBattle]
- dec a
- jr z, .asm_3fcaa
-
- ld de, SFX_SHINE
- call PlaySFX
- call WaitSFX
-
- ld c, 20
- call DelayFrames
-
- callba Function39939
-
- ld hl, WantsToBattleText
- jr .asm_3fd0e
-
-.asm_3fcaa
- call Function3da79
- jr nc, .asm_3fcc2
-
- xor a
- ld [$cfca], a
- ld a, 1
- ld [hBattleTurn], a
- ld a, 1
- ld [$c689], a
- ld de, $0101
- call Function3ee17
-
-.asm_3fcc2
- callba CheckSleepingTreeMon
- jr c, .asm_3fceb
-
- callba Function4ea44
- jr c, .asm_3fce0
-
- hlcoord 12, 0
- ld d, $0
- ld e, $1
- ld a, $47
- call Predef
- jr .asm_3fceb
-
-.asm_3fce0
- ld a, $0f
- ld [CryTracks], a
- ld a, [TempEnemyMonSpecies]
- call Function37b6
-
-.asm_3fceb
- ld a, [BattleType]
- cp BATTLETYPE_FISH
- jr nz, .asm_3fcfd
-
- callba Function106086
-
- ld hl, HookedPokemonAttackedText
- jr .asm_3fd0e
+SECTION "bankF", ROMX, BANK[$F]
-.asm_3fcfd
- ld hl, PokemonFellFromTreeText
- cp BATTLETYPE_TREE
- jr z, .asm_3fd0e
- ld hl, WildPokemonAppearedText2
- cp $b
- jr z, .asm_3fd0e
- ld hl, WildPokemonAppearedText
-
-.asm_3fd0e
- push hl
- callba Function2c000
- pop hl
- call StdBattleTextBox
-
- call Function3f830
- ret nz
-
- ld c, $2
- callba Function4ea0a
-
- ret
-; 3fd26
-
-
- dw $0000 ; padding
-
-
-BattleCommandPointers: ; 3fd28
+INCLUDE "battle/core.asm"
INCLUDE "battle/effect_command_pointers.asm"
+SECTION "bank10", ROMX, BANK[$10]
-SECTION "bank10",ROMX,BANK[$10]
+Pokedex: ; 40000
-Function40000: ; 40000
ld a, [hWX]
ld l, a
ld a, [hWY]
@@ -51941,7 +38456,7 @@ Function40000: ; 40000
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
ld a, [VramState]
push af
xor a
@@ -51950,26 +38465,29 @@ Function40000: ; 40000
push af
ld a, $1
ld [$ffaa], a
+
xor a
ld [$ffde], a
- call Function40063
+ call InitPokedex
call DelayFrame
-.asm_40029
+
+.main
call Functiona57
ld a, [$cf63]
bit 7, a
- jr nz, .asm_4003b
+ jr nz, .exit
call Function4010b
call DelayFrame
- jr .asm_40029
+ jr .main
-.asm_4003b
+.exit
ld de, SFX_READ_TEXT_2
call PlaySFX
call WaitSFX
call ClearSprites
ld a, [$c7d4]
ld [$d959], a
+
pop af
ld [$ffaa], a
pop af
@@ -51986,23 +38504,28 @@ Function40000: ; 40000
ret
; 40063
-Function40063: ; 40063
+InitPokedex: ; 40063
call WhiteBGMap
call ClearSprites
call ClearTileMap
call Function414b7
- ld hl, PlayerSDefLevel
+
+ ld hl, $c6d0
ld bc, $0115
xor a
call ByteFill
+
xor a
ld [$cf63], a
ld [$cf64], a
ld [$cf65], a
ld [$cf66], a
+
call Function400a2
+
ld a, [$d959]
ld [$c7d4], a
+
call Function40bdc
call Function400b4
call Function400ed
@@ -52015,27 +38538,30 @@ Function400a2: ; 400a2
ld a, [StatusFlags]
bit 1, a
jr nz, .asm_400ae
+
xor a
ld [$c7dc], a
ret
.asm_400ae
- ld a, $1
+ ld a, 1
ld [$c7dc], a
ret
; 400b4
Function400b4: ; 400b4
- ld hl, PlayerSDefLevel
+ ld hl, $c6d0
ld a, [$c2d6]
and a
jr z, .asm_400ec
cp $fc
jr nc, .asm_400ec
+
ld b, a
ld a, [$c7d2]
cp $8
jr c, .asm_400db
+
sub $7
ld c, a
.asm_400cc
@@ -52072,8 +38598,10 @@ Function400ed: ; 400ed
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $0
+
+ cp SPECIAL_MAP
jr nz, .asm_40107
+
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
@@ -52087,7 +38615,7 @@ Function400ed: ; 400ed
Function4010b: ; 4010b
ld a, [$cf63]
- ld hl, $4115
+ ld hl, Jumptable_40115
call Function41432
jp [hl]
; 40115
@@ -52149,6 +38677,7 @@ Function4013c: ; 4013c (10:413c)
ld a, $4a
jr z, .asm_4017b
ld a, $47
+
.asm_4017b
ld [hWX], a ; $ff00+$d1
xor a
@@ -52194,6 +38723,7 @@ Function401ae: ; 401ae (10:41ae)
call Function41ad7
call Function41af7
ret
+
.asm_401d9
call Function40bb1
call Function40bd0
@@ -52203,6 +38733,7 @@ Function401ae: ; 401ae (10:41ae)
ld a, $0
ld [$cf64], a
ret
+
.asm_401eb
call Function41401
ld a, $7
@@ -52213,6 +38744,7 @@ Function401ae: ; 401ae (10:41ae)
ld [hWX], a ; $ff00+$d1
call DelayFrame
ret
+
.asm_401fe
call Function41401
ld a, $5
@@ -52223,6 +38755,7 @@ Function401ae: ; 401ae (10:41ae)
ld [hWX], a ; $ff00+$d1
call DelayFrame
ret
+
.asm_40211
ld a, $d
ld [$cf63], a
@@ -52270,17 +38803,20 @@ Function40258: ; 40258 (10:4258)
ret nc
call Function40131
ret
+
.asm_40273
ld a, [$c7d8]
ld hl, $42f2
call Function41432
jp [hl]
+
.asm_4027d
ld a, [LastVolume] ; $c2b4
and a
jr z, .asm_40288
ld a, $77
ld [LastVolume], a ; $c2b4
+
.asm_40288
call MaxVolume
ld a, [$cf64]
@@ -52342,6 +38878,7 @@ Function403be: ; 403be (10:43be)
jr nz, .asm_403c9
ld de, $43f3
jr .asm_403cc
+
.asm_403c9
ld de, $43fb
.asm_403cc
@@ -52355,11 +38892,13 @@ Function403be: ; 403be (10:43be)
and $1
jr nz, .asm_403e0
ret
+
.asm_403e0
ld a, [$c7d8]
- ld hl, $4405
+ ld hl, Jumptable_40405
call Function41432
jp [hl]
+
.asm_403ea
call Function41401
ld a, $0
@@ -52380,17 +38919,17 @@ Jumptable_40405: ; 40405 (10:4405)
; no known jump sources
Function4040d: ; 4040d (10:440d)
ld b, $0
- jr asm_40417
+ jr Function40417
; no known jump sources
Function40411: ; 40411 (10:4411)
ld b, $1
- jr asm_40417
+ jr Function40417
; no known jump sources
Function40415: ; 40415 (10:4415)
ld b, $2
-asm_40417: ; 40417 (10:4417)
+Function40417: ; 40417 (10:4417)
ld a, [$c7d4]
cp b
jr z, .asm_40431
@@ -52402,6 +38941,7 @@ asm_40417: ; 40417 (10:4417)
ld [$c7d0], a
ld [$c7d1], a
call Function400b4
+
.asm_40431
call Function41401
ld a, $0
@@ -52450,11 +38990,13 @@ Function40471: ; 40471 (10:4471)
and $1
jr nz, .asm_4048b
ret
+
.asm_4048b
ld a, [$c7d8]
ld hl, $44a8
call Function41432
jp [hl]
+
.asm_40495
call Function41401
ld a, $0
@@ -52518,6 +39060,7 @@ Function40562: ; 40562 (10:4562)
call Function41ad7
call Function41af7
ret
+
.asm_40583
call Function40bb1
call Function40bd0
@@ -52527,6 +39070,7 @@ Function40562: ; 40562 (10:4562)
ld a, $9
ld [$cf64], a
ret
+
.asm_40595
ld a, [$c7e0]
ld [$c7d0], a
@@ -52564,10 +39108,11 @@ Function405bd: ; 405bd (10:45bd)
Function405df: ; 405df (10:45df)
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
- and $3
+ and A_BUTTON | B_BUTTON
jr nz, .asm_405eb
call Function40610
ret
+
.asm_405eb
call Function41401
ld a, $7
@@ -52577,11 +39122,13 @@ Function405df: ; 405df (10:45df)
jr nz, .asm_40603
callba Function1ddf26
jr .asm_4060f
+
.asm_40603
ld hl, $550e
ld de, $9310
ld bc, $103a
call Functione73
+
.asm_4060f
ret
@@ -52595,6 +39142,7 @@ Function40610: ; 40610 (10:4610)
and $20
jr nz, .asm_4062d
ret
+
.asm_4061e
ld a, [$c7de]
ld e, a
@@ -52606,6 +39154,7 @@ Function40610: ; 40610 (10:4610)
ld a, [hl]
inc [hl]
jr .asm_40635
+
.asm_4062d
ld hl, $c7dd
ld a, [hl]
@@ -52613,6 +39162,7 @@ Function40610: ; 40610 (10:4610)
ret z
ld a, [hl]
dec [hl]
+
.asm_40635
push af
xor a
@@ -53962,7 +40512,7 @@ Function41a24: ; 41a24
Function41a2c: ; 41a2c
ld a, $0
call GetSRAMBank
- ld hl, Function40000
+ ld hl, Pokedex
ld de, $a188
ld bc, Function270
ld a, $77
@@ -54679,7 +41229,7 @@ GetPreEvolution: ; 42581
-SECTION "bank11",ROMX,BANK[$11]
+SECTION "bank11", ROMX, BANK[$11]
INCLUDE "engine/fruit_trees.asm"
@@ -55539,7 +42089,7 @@ Function4484a: ; 0x4484a
.PutInPack ; 0x44877
ld hl, .MessageLostText
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
ret c
ld a, [MenuSelection]
@@ -55678,7 +42228,7 @@ MenuData44964: ; 0x44964
db "ATTACH MAIL@"
db "CANCEL@"
-SECTION "bank12",ROMX,BANK[$12]
+SECTION "bank12", ROMX, BANK[$12]
Function48000: ; 48000
ld a, $1
@@ -58496,7 +45046,7 @@ Function49e75: ; 49e75
; 49e8c
UnknownText_0x49e8c: ; 49e8c
- text_jump UnknownText_0x1c5182, BANK(UnknownText_0x1c5182)
+ text_jump UnknownText_0x1c5182
db "@"
; 49e91
@@ -59756,7 +46306,7 @@ Function4a9d7: ; 4a9d7
call CopyBytes
ld hl, $6a1d
call PrintText
- call Function1dcf
+ call YesNoBox
ret
; 4aa1d
@@ -60257,7 +46807,7 @@ Function4ad17: ; 4ad17
UnknownText_0x4ad51: ; 0x4ad51
; Only three #MON may enter.
- text_jump UnknownText_0x1c521c, BANK(UnknownText_0x1c521c)
+ text_jump UnknownText_0x1c521c
db "@"
; 0x4ad56
@@ -60369,7 +46919,7 @@ Function4ae12: ; 4ae12
Function4ae1f: ; 4ae1f
ld bc, $0e07
push bc
- ld hl, MenuDataHeader_0x1e1d
+ ld hl, YesNoMenuDataHeader
call Function1d3c
pop bc
ld a, b
@@ -60418,7 +46968,7 @@ Function4ae5e: ; 4ae5e
; 4ae78
-SECTION "bank13",ROMX,BANK[$13]
+SECTION "bank13", ROMX, BANK[$13]
Function4c000: ; 4c000
ld hl, TileMap
@@ -60511,8 +47061,6 @@ Function4c03f: ; 4c03f
INCLUDE "tilesets/palette_maps.asm"
-INCBIN "baserom.gbc",$4ce05,$4ce1f - $4ce05
-
TileCollisionTable: ; 4ce1f
; 00 land
; 01 water
@@ -61805,7 +48353,7 @@ Function4db35: ; 4db35
Function4db3b: ; 4db3b
ld hl, $5b44
call PrintText
- jp Function1dcf
+ jp YesNoBox
; 4db44
INCBIN "baserom.gbc",$4db44,$4db49 - $4db44
@@ -62264,7 +48812,7 @@ Function4ddf2: ; 4ddf2 (13:5df2)
; known jump sources: 4ddac (13:5dac), 4ddd6 (13:5dd6)
Function4de2c: ; 4de2c (13:5e2c)
- call GetJoypadPublic
+ call GetJoypad
ld a, [MonType] ; $cf5f
cp $3
jr nz, .asm_4de4e
@@ -63410,7 +49958,7 @@ Function4e711: ; 4e711
; 4e726
Function4e726: ; 4e726
- call ClearJoypadPublic
+ call ClearJoypad
ld bc, $010e
.asm_4e72c
push bc
@@ -63869,30 +50417,37 @@ Function4ea0a: ; 4ea0a
-Function4ea44: ; 4ea44
- ld a, $0
+CheckBattleScene: ; 4ea44
+; Return carry if battle scene is turned off.
+
+ ld a, 0
ld hl, InLinkBattle
call GetFarWRAMByte
- cp $4
- jr z, .asm_4ea59
+ cp 4
+ jr z, .mobile
+
ld a, [Options]
- bit 7, a
- jr nz, .asm_4ea80
+ bit BATTLE_SCENE, a
+ jr nz, .off
+
and a
ret
-.asm_4ea59
+.mobile
ld a, [$cd2f]
and a
jr nz, .asm_4ea72
+
ld a, $4
call GetSRAMBank
ld a, [$a60c]
ld c, a
call CloseSRAM
+
ld a, c
bit 0, c
- jr z, .asm_4ea80
+ jr z, .off
+
and a
ret
@@ -63901,449 +50456,23 @@ Function4ea44: ; 4ea44
ld hl, $dc00
call GetFarWRAMByte
bit 0, a
- jr z, .asm_4ea80
- and a
- ret
-
-.asm_4ea80
- scf
- ret
-; 4ea82
-
-
+ jr z, .off
-Function4ea82: ; 4ea82
- ld a, [hCGB]
and a
- ret nz
- ld de, $0000
- call PlayMusic
- call ClearTileMap
- ld hl, $6b76
- ld de, $d000
- ld a, [rSVBK]
- push af
- ld a, $0
- ld [rSVBK], a
- call Decompress
- pop af
- ld [rSVBK], a
- ld de, $d000
- ld hl, VTiles2
- ld bc, Text_1354
- call Get2bpp
- ld de, $4200
- ld hl, VTiles1
- ld bc, Function3e80
- call Get1bpp
- call Function4eac5
- call WaitBGMap
-.asm_4eac0
- call DelayFrame
- jr .asm_4eac0
-; 4eac5
-
-Function4eac5: ; 4eac5
- call Function4eaea
- ld hl, $c4cb
- ld b, $e
- ld c, $4
- ld a, $8
- call Function4eb27
- ld hl, $c51d
- ld b, $a
- ld c, $2
- ld a, $40
- call Function4eb27
- ld de, $6b38
- ld hl, $c569
- call PlaceString
- ret
-; 4eaea
-
-Function4eaea: ; 4eaea
- ld hl, TileMap
- ld [hl], $0
- inc hl
- ld a, $1
- call Function4eb15
- ld [hl], $2
- ld hl, $c4b4
- ld a, $3
- call Function4eb1c
- ld hl, $c4c7
- ld a, $4
- call Function4eb1c
- ld hl, $c5f4
- ld [hl], $5
- inc hl
- ld a, $6
- call Function4eb15
- ld [hl], $7
- ret
-; 4eb15
-
-Function4eb15: ; 4eb15
- ld c, $12
-.asm_4eb17
- ld [hli], a
- dec c
- jr nz, .asm_4eb17
- ret
-; 4eb1c
-
-Function4eb1c: ; 4eb1c
- ld de, $0014
- ld c, $10
-.asm_4eb21
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_4eb21
- ret
-; 4eb27
-
-Function4eb27: ; 4eb27
- ld de, $0014
-.asm_4eb2a
- push bc
- push hl
-.asm_4eb2c
- ld [hli], a
- inc a
- dec b
- jr nz, .asm_4eb2c
- pop hl
- add hl, de
- pop bc
- dec c
- jr nz, .asm_4eb2a
- ret
-; 4eb38
-
-INCBIN "baserom.gbc",$4eb38,$4f0bc - $4eb38
-
-Function4f0bc: ; 4f0bc
- ld a, $0
- call Function4f26d
- call Functiona36
- ld b, $6
- callba Function50000
- jr c, .asm_4f0e1
- ld a, [CurPartySpecies]
- cp $fd
- jr z, .asm_4f0e8
- call IsAPokemon
- jr c, .asm_4f0e7
- call Function4f134
- call Function4f0ee
- ret
-
-.asm_4f0e1
- ld a, $5
- call Function4f26d
- ret
-
-.asm_4f0e7
- ret
-
-.asm_4f0e8
- ld a, $6
- call Function4f26d
- ret
-; 4f0ee
-
-Function4f0ee: ; 4f0ee
- ld a, [DefaultFlypoint]
- ld hl, $70f6
- rst JumpTable
- ret
-; 4f0f6
-
-Table4f0f6: ; 4f0f6
- dw Function4f100
- dw Function4f10e
- dw Function4f11f
- dw Function4f125
- dw Function4f12b
-; 4f100
-
-Function4f100: ; 4f100
- ld a, $2
- call Function4f26d
- ld a, $3
- call Function4f26d
- call Function4f2b4
- ret
-; 4f10e
-
-Function4f10e: ; 4f10e
- call Function4f242
- ld a, $4
- call Function4f26d
- ld a, $3
- call Function4f26d
- call Function4f2b4
- ret
-; 4f11f
-
-Function4f11f: ; 4f11f
- ld a, $1
- call Function4f26d
- ret
-; 4f125
-
-Function4f125: ; 4f125
- ld a, $1
- call Function4f26d
- ret
-; 4f12b
-
-Function4f12b: ; 4f12b
- ld a, $7
- call Function4f26d
- call Function4f2b4
- ret
-; 4f134
-
-Function4f134: ; 4f134
- ld a, $1d
- call GetPartyParamLocation
- ld a, [hli]
- ld [$d03b], a
- ld a, [hld]
- ld [$d03c], a
- or [hl]
- jr z, .asm_4f170
- ld a, $1
- ld [DefaultFlypoint], a
- ld a, $6
- call GetPartyParamLocation
- ld a, [PlayerID]
- cp [hl]
- jr nz, .asm_4f15f
- inc hl
- ld a, [$d47c]
- jr nz, .asm_4f15f
- ld a, $0
- ld [DefaultFlypoint], a
-
-.asm_4f15f
- call Function4f18c
- call Function4f242
- call Function4f176
- call Function4f1c5
- call Function4f20a
- and a
- ret
-
-.asm_4f170
- ld a, $2
- ld [DefaultFlypoint], a
- ret
-; 4f176
-
-Function4f176: ; 4f176
- ld a, [CurPartyMon]
- ld hl, PartyMon1Nickname
- ld bc, $000b
- call AddNTimes
- ld de, $d003
- ld bc, $000b
- call CopyBytes
- ret
-; 4f18c
-
-Function4f18c: ; 4f18c
- ld a, $50
- ld hl, $d036
- ld bc, $0004
- call ByteFill
- ld a, [$d03b]
- and $3f
- jr z, .asm_4f1b4
- cp $1
- jr nz, .asm_4f1a4
- ld a, $5
-
-.asm_4f1a4
- ld [$d03a], a
- ld hl, $d036
- ld de, $d03a
- ld bc, $4103
- call PrintNum
ret
-.asm_4f1b4
- ld de, $d036
- ld hl, $71c1
- ld bc, $0004
- call CopyBytes
- ret
-; 4f1c1
-
-INCBIN "baserom.gbc",$4f1c1,$4f1c5 - $4f1c1
-
-Function4f1c5: ; 4f1c5
- ld a, [$d03b]
- and $c0
- jr z, .asm_4f1df
- rlca
- rlca
- dec a
- ld hl, $71e6
- call GetNthString
- ld d, h
- ld e, l
- ld hl, $d01f
- call CopyName2
- and a
- ret
-
-.asm_4f1df
- ld de, $d01f
- call Function4f1f8
- ret
-; 4f1e6
-
-INCBIN "baserom.gbc",$4f1e6,$4f1f8 - $4f1e6
-
-Function4f1f8: ; 4f1f8
- ld hl, $7202
- ld bc, $000b
- call CopyBytes
- ret
-; 4f202
-
-INCBIN "baserom.gbc",$4f202,$4f20a - $4f202
-
-Function4f20a: ; 4f20a
- ld a, [$d03c]
- and $7f
- jr z, .asm_4f22e
- cp $7f
- jr z, .asm_4f234
- cp $7e
- jr z, .asm_4f23b
- ld e, a
- callba GetLandmarkName
- ld hl, StringBuffer1
- ld de, $d00e
- ld bc, $0011
- call CopyBytes
- and a
- ret
-
-.asm_4f22e
- ld de, $d00e
- jp Function4f1f8
-
-.asm_4f234
- ld a, $4
- ld [DefaultFlypoint], a
+.off
scf
ret
+; 4ea82
-.asm_4f23b
- ld a, $3
- ld [DefaultFlypoint], a
- scf
- ret
-; 4f242
-
-Function4f242: ; 4f242
- ld a, [CurPartyMon]
- ld hl, PartyMon1OT
- ld bc, $000b
- call AddNTimes
- ld de, $d02a
- ld bc, $000b
- call CopyBytes
- ld hl, $726b
- ld a, [$d03c]
- bit 7, a
- jr z, .asm_4f264
- ld hl, $726c
-
-.asm_4f264
- ld de, $d035
- ld a, $50
- ld [de], a
- ret
-; 4f26b
-
-INCBIN "baserom.gbc",$4f26b,$4f26d - $4f26b
-
-Function4f26d: ; 4f26d
- ld e, a
- ld d, $0
- ld hl, $727c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 4f27c
-
-INCBIN "baserom.gbc",$4f27c,$4f2b4 - $4f27c
-
-Function4f2b4: ; 4f2b4
- ld a, $1f
- call GetPartyParamLocation
- ld a, [$d03a]
- ld c, a
- ld a, [hl]
- sub c
- ld c, a
- ld hl, $72d6
- ld de, $0003
-.asm_4f2c6
- cp [hl]
- jr c, .asm_4f2ce
- jr z, .asm_4f2ce
- add hl, de
- jr .asm_4f2c6
-
-.asm_4f2ce
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 4f2d6
-
-INCBIN "baserom.gbc",$4f2d6,$4f301 - $4f2d6
+INCLUDE "misc/gbc_only.asm"
-Function4f301: ; 4f301
- ld hl, $001e
- add hl, bc
- ld a, [hl]
- and $7f
- jr z, .asm_4f319
- cp $7f
- jr z, .asm_4f319
- ld a, [hl]
- and $80
- jr nz, .asm_4f316
- ld c, $1
- ret
-
-.asm_4f316
- ld c, $2
- ret
+INCLUDE "event/poke_seer.asm"
-.asm_4f319
- ld c, $0
- ret
-; 4f31c
-
-
-SECTION "bank14",ROMX,BANK[$14]
+SECTION "bank14", ROMX, BANK[$14]
Function50000: ; 50000
call Function2ed3
@@ -65014,7 +51143,7 @@ Function5042d: ; 0x5042d
INCBIN "baserom.gbc",$5044f,$50457 - $5044f
PartyMenuSelect: ; 0x50457
-; sets carry if exited menu.
+; sets carry if exitted menu.
call Function1bc9
call Function1bee
ld a, [PartyCount]
@@ -65247,16 +51376,16 @@ Function50658: ; 50658
; 50669
UnknownScript_0x50669: ; 50669
- 3callasm BANK(Function50658), Function50658
+ 3callasm Function50658
loadfont
- 3callasm BANK(Function5067b), Function5067b
+ 3callasm Function5067b
iffalse UnknownScript_0x50677
loadmovesprites
end
; 50677
UnknownScript_0x50677: ; 50677
- 3jump BANK(UnknownScript_0x124c8), UnknownScript_0x124c8
+ 3jump UnknownScript_0x124c8
; 5067b
Function5067b: ; 5067b
@@ -65290,12 +51419,12 @@ Function5067b: ; 5067b
; 506b2
PoisonFaintText: ; 506b2
- text_jump UnknownText_0x1c0acc, BANK(UnknownText_0x1c0acc)
+ text_jump UnknownText_0x1c0acc
db "@"
; 506b7
PoisonWhiteOutText: ; 506b7
- text_jump UnknownText_0x1c0ada, BANK(UnknownText_0x1c0ada)
+ text_jump UnknownText_0x1c0ada
db "@"
; 506bc
@@ -65311,10 +51440,10 @@ Function506bc: ; 506bc
UnknownScript_0x506c8: ; 0x506c8
reloadmappart
special $0035
- 3callasm BANK(GetPartyNick), GetPartyNick
+ 3callasm GetPartyNick
2writetext UnknownText_0x50726
closetext
- 3callasm BANK(Function506ef), Function506ef
+ 3callasm Function506ef
iffalse UnknownScript_0x506e9
checkflag $0011
iftrue UnknownScript_0x506e5
@@ -65325,7 +51454,7 @@ UnknownScript_0x506c8: ; 0x506c8
; 0x506e5
UnknownScript_0x506e5: ; 0x506e5
- 3jump BANK(UnknownScript_0x135eb), UnknownScript_0x135eb
+ 3jump UnknownScript_0x135eb
; 0x506e9
UnknownScript_0x506e9: ; 0x506e9
@@ -65365,12 +51494,12 @@ Function506ef: ; 506ef
; 50726
UnknownText_0x50726: ; 0x50726
- text_jump UnknownText_0x1c0b03, BANK(UnknownText_0x1c0b03)
+ text_jump UnknownText_0x1c0b03
db $50
; 0x5072b
UnknownText_0x5072b: ; 0x5072b
- text_jump UnknownText_0x1c0b1a, BANK(UnknownText_0x1c0b1a)
+ text_jump UnknownText_0x1c0b1a
db $50
; 0x50730
@@ -65386,9 +51515,9 @@ _Squirtbottle: ; 50730
UnknownScript_0x5073c: ; 0x5073c
reloadmappart
special $0035
- 3callasm BANK(Function50753), Function50753
+ 3callasm Function50753
iffalse UnknownScript_0x5074b
- 3jump BANK(WateredWeirdTreeScript), WateredWeirdTreeScript
+ 3jump WateredWeirdTreeScript
; 0x5074b
UnknownScript_0x5074b: ; 0x5074b
@@ -65396,7 +51525,7 @@ UnknownScript_0x5074b: ; 0x5074b
; 0x5074e
UnknownText_0x5074e: ; 0x5074e
- text_jump UnknownText_0x1c0b3b, BANK(UnknownText_0x1c0b3b)
+ text_jump UnknownText_0x1c0b3b
db $50
; 0x50753
@@ -65463,7 +51592,7 @@ _CardKey: ; 50779
UnknownScript_0x507af: ; 0x507af
loadmovesprites
- 3jump BANK(MapRadioTower3FSignpost2Script), MapRadioTower3FSignpost2Script
+ 3jump MapRadioTower3FSignpost2Script
; 0x507b4
@@ -65498,7 +51627,7 @@ _BasementKey: ; 507b4
UnknownScript_0x507e1: ; 0x507e1
loadmovesprites
- 3jump BANK(MapWarehouseEntranceSignpost0Script), MapWarehouseEntranceSignpost0Script
+ 3jump MapWarehouseEntranceSignpost0Script
; 0x507e6
@@ -65571,7 +51700,7 @@ UnknownScript_0x50821: ; 0x50821
; 0x50845
UnknownText_0x50845: ; 0x50845
- text_jump UnknownText_0x1c0b65, BANK(UnknownText_0x1c0b65)
+ text_jump UnknownText_0x1c0b65
db $50
; 0x5084a
@@ -67267,223 +53396,14 @@ INCLUDE "stats/pokemon_names.asm"
INCBIN "baserom.gbc",$53d84,$53e2e - $53d84
-SECTION "bank15",ROMX,BANK[$15]
-
-; Map Scripts I
-
-INCLUDE "maps/GoldenrodGym.asm"
-INCLUDE "maps/GoldenrodBikeShop.asm"
-INCLUDE "maps/GoldenrodHappinessRater.asm"
-INCLUDE "maps/GoldenrodBillsHouse.asm"
-INCLUDE "maps/GoldenrodMagnetTrainStation.asm"
-INCLUDE "maps/GoldenrodFlowerShop.asm"
-INCLUDE "maps/GoldenrodPPSpeechHouse.asm"
-INCLUDE "maps/GoldenrodNameRatersHouse.asm"
-INCLUDE "maps/GoldenrodDeptStore1F.asm"
-INCLUDE "maps/GoldenrodDeptStore2F.asm"
-INCLUDE "maps/GoldenrodDeptStore3F.asm"
-INCLUDE "maps/GoldenrodDeptStore4F.asm"
-INCLUDE "maps/GoldenrodDeptStore5F.asm"
-INCLUDE "maps/GoldenrodDeptStore6F.asm"
-INCLUDE "maps/GoldenrodDeptStoreElevator.asm"
-INCLUDE "maps/GoldenrodDeptStoreRoof.asm"
-INCLUDE "maps/GoldenrodGameCorner.asm"
-
-
-SECTION "bank16",ROMX,BANK[$16]
-
-; Map Scripts II
-
-INCLUDE "maps/RuinsofAlphOutside.asm"
-INCLUDE "maps/RuinsofAlphHoOhChamber.asm"
-INCLUDE "maps/RuinsofAlphKabutoChamber.asm"
-INCLUDE "maps/RuinsofAlphOmanyteChamber.asm"
-INCLUDE "maps/RuinsofAlphAerodactylChamber.asm"
-INCLUDE "maps/RuinsofAlphInnerChamber.asm"
-INCLUDE "maps/RuinsofAlphResearchCenter.asm"
-INCLUDE "maps/RuinsofAlphHoOhItemRoom.asm"
-INCLUDE "maps/RuinsofAlphKabutoItemRoom.asm"
-INCLUDE "maps/RuinsofAlphOmanyteItemRoom.asm"
-INCLUDE "maps/RuinsofAlphAerodactylItemRoom.asm"
-INCLUDE "maps/RuinsofAlphHoOhWordRoom.asm"
-INCLUDE "maps/RuinsofAlphKabutoWordRoom.asm"
-INCLUDE "maps/RuinsofAlphOmanyteWordRoom.asm"
-INCLUDE "maps/RuinsofAlphAerodactylWordRoom.asm"
-INCLUDE "maps/UnionCave1F.asm"
-INCLUDE "maps/UnionCaveB1F.asm"
-INCLUDE "maps/UnionCaveB2F.asm"
-INCLUDE "maps/SlowpokeWellB1F.asm"
-INCLUDE "maps/SlowpokeWellB2F.asm"
-INCLUDE "maps/OlivineLighthouse1F.asm"
-INCLUDE "maps/OlivineLighthouse2F.asm"
-INCLUDE "maps/OlivineLighthouse3F.asm"
-INCLUDE "maps/OlivineLighthouse4F.asm"
-
-
-SECTION "bank17",ROMX,BANK[$17]
-
-; Map Scripts III
-
-INCLUDE "maps/NationalPark.asm"
-INCLUDE "maps/NationalParkBugContest.asm"
-INCLUDE "maps/RadioTower1F.asm"
-INCLUDE "maps/RadioTower2F.asm"
-INCLUDE "maps/RadioTower3F.asm"
-INCLUDE "maps/RadioTower4F.asm"
-
-
-SECTION "bank18",ROMX,BANK[$18]
-
-; Map Scripts IV
-
-INCLUDE "maps/RadioTower5F.asm"
-INCLUDE "maps/OlivineLighthouse5F.asm"
-INCLUDE "maps/OlivineLighthouse6F.asm"
-INCLUDE "maps/GoldenrodPokeCenter1F.asm"
-INCLUDE "maps/GoldenrodPokeComCenter2FMobile.asm"
-INCLUDE "maps/IlexForestAzaleaGate.asm"
-INCLUDE "maps/Route34IlexForestGate.asm"
-INCLUDE "maps/DayCare.asm"
-
-
-SECTION "bank19",ROMX,BANK[$19]
+
+SECTION "bank19", ROMX, BANK[$19]
INCLUDE "text/phone/extra.asm"
-SECTION "bank1A",ROMX,BANK[$1A]
-
-; Map Scripts V
-
-INCLUDE "maps/Route11.asm"
-INCLUDE "maps/VioletMart.asm"
-INCLUDE "maps/VioletGym.asm"
-INCLUDE "maps/EarlsPokemonAcademy.asm"
-INCLUDE "maps/VioletNicknameSpeechHouse.asm"
-INCLUDE "maps/VioletPokeCenter1F.asm"
-INCLUDE "maps/VioletOnixTradeHouse.asm"
-INCLUDE "maps/Route32RuinsofAlphGate.asm"
-INCLUDE "maps/Route32PokeCenter1F.asm"
-INCLUDE "maps/Route35Goldenrodgate.asm"
-INCLUDE "maps/Route35NationalParkgate.asm"
-INCLUDE "maps/Route36RuinsofAlphgate.asm"
-INCLUDE "maps/Route36NationalParkgate.asm"
-
-
-SECTION "bank1B",ROMX,BANK[$1B]
-
-; Map Scripts VI
-
-INCLUDE "maps/Route8.asm"
-INCLUDE "maps/MahoganyMart1F.asm"
-INCLUDE "maps/TeamRocketBaseB1F.asm"
-INCLUDE "maps/TeamRocketBaseB2F.asm"
-INCLUDE "maps/TeamRocketBaseB3F.asm"
-INCLUDE "maps/IlexForest.asm"
-
-
-SECTION "bank1C",ROMX,BANK[$1C]
-
-; Map Scripts VII
-
-INCLUDE "maps/LakeofRage.asm"
-INCLUDE "maps/CeladonDeptStore1F.asm"
-INCLUDE "maps/CeladonDeptStore2F.asm"
-INCLUDE "maps/CeladonDeptStore3F.asm"
-INCLUDE "maps/CeladonDeptStore4F.asm"
-INCLUDE "maps/CeladonDeptStore5F.asm"
-INCLUDE "maps/CeladonDeptStore6F.asm"
-INCLUDE "maps/CeladonDeptStoreElevator.asm"
-INCLUDE "maps/CeladonMansion1F.asm"
-INCLUDE "maps/CeladonMansion2F.asm"
-INCLUDE "maps/CeladonMansion3F.asm"
-INCLUDE "maps/CeladonMansionRoof.asm"
-INCLUDE "maps/CeladonMansionRoofHouse.asm"
-INCLUDE "maps/CeladonPokeCenter1F.asm"
-INCLUDE "maps/CeladonPokeCenter2FBeta.asm"
-INCLUDE "maps/CeladonGameCorner.asm"
-INCLUDE "maps/CeladonGameCornerPrizeRoom.asm"
-INCLUDE "maps/CeladonGym.asm"
-INCLUDE "maps/CeladonCafe.asm"
-INCLUDE "maps/Route16FuchsiaSpeechHouse.asm"
-INCLUDE "maps/Route16Gate.asm"
-INCLUDE "maps/Route7SaffronGate.asm"
-INCLUDE "maps/Route1718Gate.asm"
-
-
-SECTION "bank1D",ROMX,BANK[$1D]
-
-; Map Scripts VIII
-
-INCLUDE "maps/DiglettsCave.asm"
-INCLUDE "maps/MountMoon.asm"
-INCLUDE "maps/Underground.asm"
-INCLUDE "maps/RockTunnel1F.asm"
-INCLUDE "maps/RockTunnelB1F.asm"
-INCLUDE "maps/SafariZoneFuchsiaGateBeta.asm"
-INCLUDE "maps/SafariZoneBeta.asm"
-INCLUDE "maps/VictoryRoad.asm"
-INCLUDE "maps/OlivinePort.asm"
-INCLUDE "maps/VermilionPort.asm"
-INCLUDE "maps/FastShip1F.asm"
-INCLUDE "maps/FastShipCabins_NNW_NNE_NE.asm"
-INCLUDE "maps/FastShipCabins_SW_SSW_NW.asm"
-INCLUDE "maps/FastShipCabins_SE_SSE_CaptainsCabin.asm"
-INCLUDE "maps/FastShipB1F.asm"
-INCLUDE "maps/OlivinePortPassage.asm"
-INCLUDE "maps/VermilionPortPassage.asm"
-INCLUDE "maps/MountMoonSquare.asm"
-INCLUDE "maps/MountMoonGiftShop.asm"
-INCLUDE "maps/TinTowerRoof.asm"
-
-
-SECTION "bank1E",ROMX,BANK[$1E]
-
-; Map Scripts IX
-
-INCLUDE "maps/Route34.asm"
-INCLUDE "maps/ElmsLab.asm"
-INCLUDE "maps/KrissHouse1F.asm"
-INCLUDE "maps/KrissHouse2F.asm"
-INCLUDE "maps/KrissNeighborsHouse.asm"
-INCLUDE "maps/ElmsHouse.asm"
-INCLUDE "maps/Route26HealSpeechHouse.asm"
-INCLUDE "maps/Route26DayofWeekSiblingsHouse.asm"
-INCLUDE "maps/Route27SandstormHouse.asm"
-INCLUDE "maps/Route2946Gate.asm"
-
-
-SECTION "bank1F",ROMX,BANK[$1F]
-
-; Map Scripts X
-
-INCLUDE "maps/Route22.asm"
-INCLUDE "maps/WarehouseEntrance.asm"
-INCLUDE "maps/UndergroundPathSwitchRoomEntrances.asm"
-INCLUDE "maps/GoldenrodDeptStoreB1F.asm"
-INCLUDE "maps/UndergroundWarehouse.asm"
-INCLUDE "maps/MountMortar1FOutside.asm"
-INCLUDE "maps/MountMortar1FInside.asm"
-INCLUDE "maps/MountMortar2FInside.asm"
-INCLUDE "maps/MountMortarB1F.asm"
-INCLUDE "maps/IcePath1F.asm"
-INCLUDE "maps/IcePathB1F.asm"
-INCLUDE "maps/IcePathB2FMahoganySide.asm"
-INCLUDE "maps/IcePathB2FBlackthornSide.asm"
-INCLUDE "maps/IcePathB3F.asm"
-INCLUDE "maps/LavenderPokeCenter1F.asm"
-INCLUDE "maps/LavenderPokeCenter2FBeta.asm"
-INCLUDE "maps/MrFujisHouse.asm"
-INCLUDE "maps/LavenderTownSpeechHouse.asm"
-INCLUDE "maps/LavenderNameRater.asm"
-INCLUDE "maps/LavenderMart.asm"
-INCLUDE "maps/SoulHouse.asm"
-INCLUDE "maps/LavRadioTower1F.asm"
-INCLUDE "maps/Route8SaffronGate.asm"
-INCLUDE "maps/Route12SuperRodHouse.asm"
-
-
-SECTION "bank20",ROMX,BANK[$20]
+
+SECTION "bank20", ROMX, BANK[$20]
DoPlayerMovement: ; 80000
@@ -68486,7 +54406,7 @@ INCBIN "gfx/debug/color_test.2bpp"
INCBIN "baserom.gbc",$82153,$823c8 - $82153
-SECTION "bank21",ROMX,BANK[$21]
+SECTION "bank21", ROMX, BANK[$21]
Function84000: ; 84000
ld hl, OverworldMap
@@ -69903,7 +55823,7 @@ Function84a0e: ; 84a0e (21:4a0e)
.asm_84a13
push bc
push hl
- ld de, $4a25
+ ld de, String84a25
call PlaceString
pop hl
ld bc, $3c
@@ -69914,164 +55834,13 @@ Function84a0e: ; 84a0e (21:4a0e)
ret
; 84a25 (21:4a25)
-INCBIN "baserom.gbc",$84a25,$84a2e - $84a25
-
-FX00GFX:
-FX01GFX: ; 84a2e
-INCBIN "gfx/fx/001.lz"
-; 84b1e
-
-FX02GFX: ; 84b1e
-INCBIN "gfx/fx/002.lz"
-; 84b7e
-
-FX03GFX: ; 84b7e
-INCBIN "gfx/fx/003.lz"
-; 84bde
-
-FX04GFX: ; 84bde
-INCBIN "gfx/fx/004.lz"
-; 84cae
-
-FX05GFX: ; 84cae
-INCBIN "gfx/fx/005.lz"
-; 84dee
-
-FX07GFX: ; 84dee
-INCBIN "gfx/fx/007.lz"
-; 84e7e
-
-FX08GFX: ; 84e7e
-INCBIN "gfx/fx/008.lz"
-; 84ede
-
-FX10GFX: ; 84ede
-INCBIN "gfx/fx/010.lz"
-; 84f1e
-
-FX09GFX: ; 84f1e
-INCBIN "gfx/fx/009.lz"
-; 8500e
-
-FX12GFX: ; 8500e
-INCBIN "gfx/fx/012.lz"
-; 8507e
-
-FX06GFX: ; 8507e
-INCBIN "gfx/fx/006.lz"
-; 8515e
-
-FX11GFX: ; 8515e
-INCBIN "gfx/fx/011.lz"
-; 851ae
-
-FX13GFX: ; 851ae
-INCBIN "gfx/fx/013.lz"
-; 8524e
-
-FX14GFX: ; 8524e
-INCBIN "gfx/fx/014.lz"
-; 8520e
-
-FX24GFX: ; 8530e
-INCBIN "gfx/fx/024.lz"
-; 8537e
-
-FX15GFX: ; 8537e
-INCBIN "gfx/fx/015.lz"
-; 8539e
-
-FX16GFX: ; 8539e
-INCBIN "gfx/fx/016.lz"
-; 8542e
-
-FX17GFX: ; 8542e
-INCBIN "gfx/fx/017.lz"
-; 8547e
-
-FX18GFX: ; 8547e
-INCBIN "gfx/fx/018.lz"
-; 854ee
-
-FX19GFX: ; 854ee
-INCBIN "gfx/fx/019.lz"
-; 855ae
-
-FX20GFX: ; 855ae
-INCBIN "gfx/fx/020.lz"
-; 8562e
-
-FX22GFX: ; 8562e
-INCBIN "gfx/fx/022.lz"
-; 856ee
-
-FX21GFX: ; 856ee
-INCBIN "gfx/fx/021.lz"
-; 8576e
-
-FX23GFX: ; 8576e
-INCBIN "gfx/fx/023.lz"
-; 857de
-
-FX26GFX: ; 857de
-INCBIN "gfx/fx/026.lz"
-; 8583e
-
-FX27GFX: ; 8583e
-INCBIN "gfx/fx/027.lz"
-; 858be
-
-FX28GFX: ; 858be
-INCBIN "gfx/fx/028.lz"
-; 8594e
-
-FX29GFX: ; 8594e
-INCBIN "gfx/fx/029.lz"
-; 859ae
-
-FX30GFX: ; 859ae
-INCBIN "gfx/fx/030.lz"
-; 8590e
+String84a25: ; 84a25
+ db " ------@"
+; 84a2e
-FX31GFX: ; 85a0e
-INCBIN "gfx/fx/031.lz"
-; 85bae
-FX32GFX: ; 85bae
-INCBIN "gfx/fx/032.lz"
-; 85d0e
+INCLUDE "battle/anim_gfx.asm"
-FX33GFX: ; 85d0e
-INCBIN "gfx/fx/033.lz"
-; 85dfe
-
-FX34GFX: ; 85dfe
-INCBIN "gfx/fx/034.lz"
-; 85e9e
-
-FX25GFX: ; 85e9e
-INCBIN "gfx/fx/025.lz"
-; 85fbe
-
-FX35GFX: ; 85fbe
-INCBIN "gfx/fx/035.lz"
-; 8609e
-
-FX36GFX: ; 8609e
-INCBIN "gfx/fx/036.lz"
-; 8617e
-
-FX37GFX: ; 8617e
-INCBIN "gfx/fx/037.lz"
-; 862ee
-
-FX38GFX: ; 862ee
-INCBIN "gfx/fx/038.lz"
-; 8638e
-
-FX39GFX: ; 8638e
-INCBIN "gfx/fx/039.lz"
-; 8640e
HallOfFame: ; 0x8640e
call Function8648e
@@ -70582,7 +56351,7 @@ Function86810: ; 86810
; 868f7
-SECTION "bank22",ROMX,BANK[$22]
+SECTION "bank22", ROMX, BANK[$22]
Function88000: ; 88000
ld hl, $4007
@@ -75543,7 +61312,7 @@ Function8afd4: ; 8afd4
call GetItemName
ld hl, $7077
call Function105a
- call Function1dcf
+ call YesNoBox
jr c, .asm_8afeb
ld a, [$cf75]
call Function8b154
@@ -76751,7 +62520,7 @@ Function8b9e9: ; 8b9e9 (22:79e9)
INCBIN "baserom.gbc",$8ba1c,$8ba24 - $8ba1c
-SECTION "bank23",ROMX,BANK[$23]
+SECTION "bank23", ROMX, BANK[$23]
Function8c000: ; 8c000
ret
@@ -78028,7 +63797,103 @@ Function8c7d4: ; 8c7d4
ret
; 8c7e1
-INCBIN "baserom.gbc",$8c7e1,$8c940 - $8c7e1
+Function8c7e1: ; 8c7e1
+ callba Function8c084
+ ld hl, StatusFlags
+ set 2, [hl]
+ callba Function8c0e5
+ callba Function8c001
+ ld b, $9
+ call GetSGBLayout
+ callba Function49409
+ callba Function8c079
+ ret
+; 8c80a
+
+Function8c80a: ; 8c80a
+ callba Function8cf53
+ ld de, $49cc
+ ld hl, VTiles1
+ ld bc, $2304
+ call Request2bpp
+ ld de, $4893
+ ld hl, $8840
+ ld bc, $2308
+ call Request2bpp
+ call Function8cad3
+ ld a, $1b
+ call Function3b2a
+ ld hl, $0003
+ add hl, bc
+ ld [hl], $84
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call Function8c913
+ ld a, $20
+ ld [$cf64], a
+ call WaitSFX
+ ld de, $006d
+ call PlaySFX
+.asm_8c852
+ ld hl, $cf64
+ ld a, [hl]
+ and a
+ jr z, .asm_8c86a
+ dec [hl]
+ ld a, $90
+ ld [$c3b5], a
+ callba Function8cf7a
+ call DelayFrame
+ jr .asm_8c852
+
+.asm_8c86a
+ call Function2173
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ ld hl, $c490
+ ld bc, $0010
+ xor a
+ call ByteFill
+ ld de, $4200
+ ld hl, VTiles1
+ ld bc, $3e0c
+ call Get1bpp
+ call Functione4a
+ ret
+; 8c893
+
+INCBIN "baserom.gbc", $8c893, $8c913 - $8c893
+
+Function8c913: ; 8c913
+ xor a
+ ld [hBGMapMode], a
+ ld a, [PlayerDirection]
+ and $c
+ srl a
+ ld e, a
+ ld d, $0
+ ld hl, $4938
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, $5
+ ld [hli], a
+ ld [hld], a
+ ld bc, $0014
+ add hl, bc
+ ld [hli], a
+ ld [hld], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 8c938
+
+INCBIN "baserom.gbc", $8c938, $8c940 - $8c938
Function8c940: ; 8c940
ld a, e
@@ -78205,6 +64070,8 @@ Function8cad3: ; 8cad3 (23:4ad3)
; 8cae5 (23:4ae5)
INCBIN "baserom.gbc",$8cae5,$8caed - $8cae5
+
+Function8caed: ; 8caed
call DelayFrame
ld a, [VramState] ; $d0ed
push af
@@ -78236,6 +64103,9 @@ INCBIN "baserom.gbc",$8cae5,$8caed - $8cae5
pop af
ld [VramState], a ; $d0ed
ret
+; 8cb33
+
+Function8cb33: ; 8cb33
call DelayFrame
ld a, [VramState] ; $d0ed
push af
@@ -80421,7 +66291,7 @@ Function8ea8c: ; 8ea8c
INCLUDE "menu/mon_icons.asm"
-SECTION "bank24",ROMX,BANK[$24]
+SECTION "bank24", ROMX, BANK[$24]
Function90000: ; 90000
call Function9001c
@@ -80918,7 +66788,7 @@ Function9031d: ; 9031d
; 9032a
UnknownText_0x9032a: ; 9032a
- text_jump UnknownText_0x1c5580, BANK(UnknownText_0x1c5580)
+ text_jump UnknownText_0x1c5580
db "@"
; 9032f
@@ -80930,7 +66800,7 @@ Function9032f: ; 9032f
; 90336
UnknownText_0x90336: ; 0x90336
- text_jump UnknownText_0x1c5588, BANK(UnknownText_0x1c5588)
+ text_jump UnknownText_0x1c5588
db "@"
; 0x9033b
@@ -81169,7 +67039,7 @@ Function90672: ; 90672 (24:4672)
call Function90783
ld hl, $4886
call PrintText
- call Function1dcf
+ call YesNoBox
jr nc, .asm_9072e
call Function90783
jr .asm_906e8
@@ -81196,7 +67066,7 @@ Function90672: ; 90672 (24:4672)
call Function90783
ld hl, $48a4
call PrintText
- call Function1dcf
+ call YesNoBox
jr nc, .asm_90773
call Function90783
jr .asm_9072e
@@ -81444,7 +67314,7 @@ Function90913: ; 90913
call Function1ad2
ld hl, $4a44
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_90936
ld a, [DefaultFlypoint]
ld [StringBuffer2], a
@@ -81743,52 +67613,62 @@ Function90bea: ; 90bea (24:4bea)
Function90c4e: ; 90c4e
call Functiond79
- ld hl, $4ba0
+ ld hl, TownMapGFX
ld de, VTiles2
- ld a, $3e
+ ld a, BANK(TownMapGFX)
call FarDecompress
- ld hl, $62e4
+
+ ld hl, PokegearGFX
ld de, $9300
- ld a, $77
+ ld a, BANK(PokegearGFX)
call FarDecompress
+
ld hl, PokegearSpritesGFX
ld de, VTiles0
- ld a, $24
+ ld a, BANK(PokegearSpritesGFX)
call Decompress
+
ld a, [MapGroup]
ld b, a
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $5f
- jr z, .asm_90ca5
+ cp FAST_SHIP
+ jr z, .ssaqua
+
callba GetPlayerIcon
+
push de
ld h, d
ld l, e
ld a, b
+
push af
ld de, $8100
- ld bc, $0040
+ ld bc, $40
call FarCopyBytes
pop af
+
pop hl
- ld de, $00c0
+
+ ld de, $c0
add hl, de
ld de, $8140
- ld bc, $0040
+ ld bc, $40
call FarCopyBytes
ret
-.asm_90ca5
- ld hl, $4cb2
+.ssaqua
+ ld hl, FastShipGFX
ld de, $8100
- ld bc, $0080
+ ld bc, $80
call CopyBytes
ret
; 90cb2
-INCBIN "baserom.gbc",$90cb2,$90d32 - $90cb2
+FastShipGFX: ; 90cb2
+INCBIN "gfx/misc/fast_ship.2bpp"
+; 90d32
; known jump sources: 90c08 (24:4c08)
Function90d32: ; 90d32 (24:4d32)
@@ -81822,7 +67702,7 @@ Function90d56: ; 90d56
ld a, [MapNumber]
ld c, a
call GetWorldMapLocation
- cp $0
+ cp SPECIAL_MAP
ret nz
ld a, [BackupMapGroup]
ld b, a
@@ -81840,23 +67720,28 @@ Function90d70: ; 90d70 (24:4d70)
ld a, [MapNumber] ; $dcb6
ld c, a
call GetWorldMapLocation
- cp $5f
+
+ cp FAST_SHIP
jr z, .asm_90d95
- cp $0
+
+ cp SPECIAL_MAP
jr nz, .asm_90d8e
+
ld a, [BackupMapGroup] ; $dcad
ld b, a
ld a, [BackupMapNumber] ; $dcae
ld c, a
call GetWorldMapLocation
+
.asm_90d8e
- ld [EnemySDefLevel], a ; $c6d8
- ld [EnemySAtkLevel], a ; $c6d7
+ ld [$c6d8], a
+ ld [$c6d7], a
ret
+
.asm_90d95
- ld [EnemySDefLevel], a ; $c6d8
- ld a, $1
- ld [EnemySAtkLevel], a ; $c6d7
+ ld [$c6d8], a
+ ld a, 1
+ ld [$c6d7], a
ret
; known jump sources: 90c36 (24:4c36)
@@ -81871,23 +67756,25 @@ Function90d9e: ; 90d9e (24:4d9e)
Function90da8: ; 90da8 (24:4da8)
xor a
ld [hBGMapMode], a ; $ff00+$d4
- ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
- ld bc, $168
+ ld hl, TileMap
+ ld bc, TileMapEnd - TileMap
ld a, $4f
call ByteFill
ld a, [$cf64]
and $3
add a
ld e, a
- ld d, $0
+ ld d, 0
ld hl, $4e12
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $4dcb
+ ld de, .asm_90dcb
push de
jp [hl]
+
+.asm_90dcb
call Function90eb0
callba TownMapPals
ld a, [$cf65]
@@ -81910,8 +67797,8 @@ Function90da8: ; 90da8 (24:4da8)
.asm_90df3
ld [hWY], a ; $ff00+$d2
ld a, [$cf65]
- and $1
- xor $1
+ and 1
+ xor 1
ld [$cf65], a
ret
@@ -81929,30 +67816,42 @@ Function90e00: ; 90e00 (24:4e00)
ret
; 90e12 (24:4e12)
-INCBIN "baserom.gbc",$90e12,$90e1a - $90e12
+JumpTable90e12: ; 90e12
+ dw Function90e1a
+ dw Function90e3f
+ dw Function90e82
+ dw Function90e72
+; 90e1a
+
+Function90e1a: ; 90e1a
ld de, $55db
call Function914bb
ld hl, $c4c0
- ld de, $4e36
+ ld de, .switch
call PlaceString
ld hl, $c590
- ld bc, $412
+ lb bc, 4, 18
call TextBox
call Function90f86
ret
; 90e36 (24:4e36)
-INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
- ld a, [EnemySDefLevel] ; $c6d8
- cp $5f
- jr z, .asm_90e4a
- cp $2f
- jr nc, .asm_90e4e
-.asm_90e4a
- ld e, $0
+.switch
+ db " SWITCH▶@"
+; 90e3f
+
+Function90e3f: ; 90e3f
+
+ ld a, [$c6d8]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr nc, .kanto
+.johto
+ ld e, 0
jr .asm_90e50
-.asm_90e4e
- ld e, $1
+.kanto
+ ld e, 1
.asm_90e50
callba Function91ae1
ld a, $7
@@ -81963,15 +67862,21 @@ INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
ld [hl], $6
ld hl, $c4db
ld [hl], $17
- ld a, [EnemySAtkLevel] ; $c6d7
+ ld a, [$c6d7]
call Function910b4
ret
+; 90e72
+
+Function90e72: ; 90e72
ld de, $550d
call Function914bb
ld hl, $c590
ld bc, $412
call TextBox
ret
+; 90e82
+
+Function90e82: ; 90e82
ld de, $558a
call Function914bb
ld hl, $c590
@@ -81980,6 +67885,7 @@ INCBIN "baserom.gbc",$90e36,$90e3f - $90e36
call Function90e98
call Function912d8
ret
+; 90e98
; known jump sources: 90e91 (24:4e91)
Function90e98: ; 90e98 (24:4e98)
@@ -83702,12 +69608,12 @@ Function91c3c: ; 91c3c
push de
push hl
ld l, [hl]
- ld h, $0
+ ld h, 0
add hl, hl
- ld de, $5c5f
+ ld de, Flypoints + 1
add hl, de
ld c, [hl]
- call GetFlyPermission
+ call HasVisitedSpawn
pop hl
pop de
pop bc
@@ -83715,51 +69621,78 @@ Function91c3c: ; 91c3c
ret
; 91c50
-GetFlyPermission: ; 91c50
-; Return flypoint c permission flag in a
- ld hl, FlypointPerms
- ld b, $2
- ld d, $0
- ld a, 3 ; PREDEF_GET_FLAG_NO
+HasVisitedSpawn: ; 91c50
+; Check if spawn point c has been visited.
+ ld hl, VisitedSpawns
+ ld b, CHECK_FLAG
+ ld d, 0
+ ld a, PREDEF_FLAG
call Predef
ld a, c
ret
; 91c5e
Flypoints: ; 91c5e
-; location id, blackout id
+; landmark, spawn point
+
+ const_def
; Johto
- db 01, 14 ; New Bark Town
- db 03, 15 ; Cherrygrove City
- db 06, 16 ; Violet City
- db 12, 18 ; Azalea Town
- db 16, 20 ; Goldenrod City
- db 22, 22 ; Ecruteak City
- db 27, 21 ; Olivine City
- db 33, 19 ; Cianwood City
- db 36, 23 ; Mahogany Town
- db 38, 24 ; Lake of Rage
- db 41, 25 ; Blackthorn City
- db 46, 26 ; Silver Cave
-
-; Kanto
- db 47, 02 ; Pallet Town
- db 49, 03 ; Viridian City
- db 51, 04 ; Pewter City
- db 55, 05 ; Cerulean City
- db 61, 07 ; Vermilion City
- db 66, 06 ; Rock Tunnel
- db 69, 08 ; Lavender Town
- db 71, 10 ; Celadon City
- db 72, 09 ; Saffron City
- db 81, 11 ; Fuchsia City
- db 85, 12 ; Cinnabar Island
- db 90, 13 ; Indigo Plateau
-
-; 91c8e
+ const FLY_NEW_BARK
+ const FLY_CHERRYGROVE
+ const FLY_VIOLET
+ const FLY_AZALEA
+ const FLY_GOLDENROD
+ const FLY_ECRUTEAK
+ const FLY_OLIVINE
+ const FLY_CIANWOOD
+ const FLY_MAHOGANY
+ const FLY_LAKE
+ const FLY_BLACKTHORN
+ const FLY_MT_SILVER
+
+ db NEW_BARK_TOWN, SPAWN_NEW_BARK
+ db CHERRYGROVE_CITY, SPAWN_CHERRYGROVE
+ db VIOLET_CITY, SPAWN_VIOLET
+ db AZALEA_TOWN, SPAWN_AZALEA
+ db GOLDENROD_CITY, SPAWN_GOLDENROD
+ db ECRUTEAK_CITY, SPAWN_ECRUTEAK
+ db OLIVINE_CITY, SPAWN_OLIVINE
+ db CIANWOOD_CITY, SPAWN_CIANWOOD
+ db MAHOGANY_TOWN, SPAWN_MAHOGANY
+ db LAKE_OF_RAGE, SPAWN_LAKE
+ db BLACKTHORN_CITY, SPAWN_BLACKTHORN
+ db SILVER_CAVE, SPAWN_MT_SILVER
-INCBIN "baserom.gbc",$91c8e,$91c8f - $91c8e
+; Kanto
+ const FLY_PALLET
+ const FLY_VIRIDIAN
+ const FLY_PEWTER
+ const FLY_CERULEAN
+ const FLY_VERMILION
+ const FLY_ROCK_TUNNEL
+ const FLY_LAVENDER
+ const FLY_CELADON
+ const FLY_SAFFRON
+ const FLY_FUCHSIA
+ const FLY_CINNABAR
+ const FLY_INDIGO_PLATEAU
+
+ db PALLET_TOWN, SPAWN_PALLET
+ db VIRIDIAN_CITY, SPAWN_VIRIDIAN
+ db PEWTER_CITY, SPAWN_PEWTER
+ db CERULEAN_CITY, SPAWN_CERULEAN
+ db VERMILION_CITY, SPAWN_VERMILION
+ db ROCK_TUNNEL, SPAWN_ROCK_TUNNEL
+ db LAVENDER_TOWN, SPAWN_LAVENDER
+ db CELADON_CITY, SPAWN_CELADON
+ db SAFFRON_CITY, SPAWN_SAFFRON
+ db FUCHSIA_CITY, SPAWN_FUCHSIA
+ db CINNABAR_ISLAND, SPAWN_CINNABAR
+ db INDIGO_PLATEAU, SPAWN_INDIGO_PLATEAU
+
+ db -1
+; 91c8f
Function91c8f: ; 91c8f
ret
@@ -83776,7 +69709,7 @@ FlyMap: ; 91c90
; If we're not in a valid location, i.e. Pokecenter floor 2F,
; the backup map information is used
- cp 0
+ cp SPECIAL_MAP
jr nz, .CheckRegion
ld a, [BackupMapGroup]
@@ -83787,7 +69720,7 @@ FlyMap: ; 91c90
.CheckRegion
; The first 46 locations are part of Johto. The rest are in Kanto
- cp 47
+ cp KANTO_LANDMARK
jr nc, .KantoFlyMap
.JohtoFlyMap
@@ -83796,13 +69729,13 @@ FlyMap: ; 91c90
push af
; Start from New Bark Town
- ld a, 0
+ ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
- ld a, $b
+ ld a, FLY_MT_SILVER
ld [EndFlypoint], a
; Fill out the map
@@ -83825,18 +69758,18 @@ FlyMap: ; 91c90
; visited and its flypoint enabled
push af
- ld c, $d ; Indigo Plateau
- call GetFlyPermission
+ ld c, SPAWN_INDIGO_PLATEAU
+ call HasVisitedSpawn
and a
jr z, .NoKanto
; Kanto's map is only loaded if we've visited Indigo Plateau
; Flypoints begin at Pallet Town...
- ld a, $c
+ ld a, FLY_PALLET
ld [StartFlypoint], a
; ...and end at Indigo Plateau
- ld a, $17
+ ld a, FLY_INDIGO_PLATEAU
ld [EndFlypoint], a
; Because Indigo Plateau is the first flypoint the player
@@ -83854,13 +69787,13 @@ FlyMap: ; 91c90
; If Indigo Plateau hasn't been visited, we use Johto's map instead
; Start from New Bark Town
- ld a, 0
+ ld a, FLY_NEW_BARK
ld [DefaultFlypoint], a
; Flypoints begin at New Bark Town...
ld [StartFlypoint], a
; ..and end at Silver Cave
- ld a, $b
+ ld a, FLY_MT_SILVER
ld [EndFlypoint], a
call FillJohtoMap
@@ -85256,8 +71189,8 @@ Function930e9: ; 930e9 (24:70e9)
ld hl, UnknownText_9311f
call PrintText
call Function1d58
- ld bc, $e0c
- call Function1dd2
+ lb bc, 14, 12
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c17
@@ -85545,100 +71478,26 @@ Function9331e: ; 9331e (24:731e)
INCBIN "baserom.gbc",$93327,$93a31 - $93327
-SECTION "bank25",ROMX,BANK[$25]
-
-INCLUDE "maps/map_headers.asm"
-INCLUDE "maps/second_map_headers.asm"
-
-
-
-SECTION "bank26",ROMX,BANK[$26]
-
-; Map Scripts XI
-
-INCLUDE "maps/EcruteakHouse.asm"
-INCLUDE "maps/WiseTriosRoom.asm"
-INCLUDE "maps/EcruteakPokeCenter1F.asm"
-INCLUDE "maps/EcruteakLugiaSpeechHouse.asm"
-INCLUDE "maps/DanceTheatre.asm"
-INCLUDE "maps/EcruteakMart.asm"
-INCLUDE "maps/EcruteakGym.asm"
-INCLUDE "maps/EcruteakItemfinderHouse.asm"
-INCLUDE "maps/ViridianGym.asm"
-INCLUDE "maps/ViridianNicknameSpeechHouse.asm"
-INCLUDE "maps/TrainerHouse1F.asm"
-INCLUDE "maps/TrainerHouseB1F.asm"
-INCLUDE "maps/ViridianMart.asm"
-INCLUDE "maps/ViridianPokeCenter1F.asm"
-INCLUDE "maps/ViridianPokeCenter2FBeta.asm"
-INCLUDE "maps/Route2NuggetSpeechHouse.asm"
-INCLUDE "maps/Route2Gate.asm"
-INCLUDE "maps/VictoryRoadGate.asm"
-
-
-SECTION "bank27",ROMX,BANK[$27]
-
-; Map Scripts XII
-
-INCLUDE "maps/OlivinePokeCenter1F.asm"
-INCLUDE "maps/OlivineGym.asm"
-INCLUDE "maps/OlivineVoltorbHouse.asm"
-INCLUDE "maps/OlivineHouseBeta.asm"
-INCLUDE "maps/OlivinePunishmentSpeechHouse.asm"
-INCLUDE "maps/OlivineGoodRodHouse.asm"
-INCLUDE "maps/OlivineCafe.asm"
-INCLUDE "maps/OlivineMart.asm"
-INCLUDE "maps/Route38EcruteakGate.asm"
-INCLUDE "maps/Route39Barn.asm"
-INCLUDE "maps/Route39Farmhouse.asm"
-INCLUDE "maps/ManiasHouse.asm"
-INCLUDE "maps/CianwoodGym.asm"
-INCLUDE "maps/CianwoodPokeCenter1F.asm"
-INCLUDE "maps/CianwoodPharmacy.asm"
-INCLUDE "maps/CianwoodCityPhotoStudio.asm"
-INCLUDE "maps/CianwoodLugiaSpeechHouse.asm"
-INCLUDE "maps/PokeSeersHouse.asm"
-INCLUDE "maps/BattleTower1F.asm"
-INCLUDE "maps/BattleTowerBattleRoom.asm"
-INCLUDE "maps/BattleTowerElevator.asm"
-INCLUDE "maps/BattleTowerHallway.asm"
-INCLUDE "maps/Route40BattleTowerGate.asm"
-INCLUDE "maps/BattleTowerOutside.asm"
-
-
-SECTION "bank28",ROMX,BANK[$28]
+
+SECTION "bank28", ROMX, BANK[$28]
INCBIN "baserom.gbc",$a0000,$a0c28 - $a0000
INCLUDE "text/buena.asm"
-SECTION "bank29",ROMX,BANK[$29]
+SECTION "bank29", ROMX, BANK[$29]
INCLUDE "text/phone/extra2.asm"
-SECTION "bank2A",ROMX,BANK[$2A]
-
-INCLUDE "maps/blockdata_1.asm"
-
-
-SECTION "bank2B",ROMX,BANK[$2B]
-
-INCLUDE "maps/blockdata_2.asm"
-
-
-SECTION "bank2C",ROMX,BANK[$2C]
-
-INCLUDE "maps/blockdata_3.asm"
-
-SECTION "bank2D",ROMX,BANK[$2D]
+SECTION "Tileset Data 5", ROMX, BANK[TILESETS_5]
INCLUDE "tilesets/data_5.asm"
-SECTION "bank2E",ROMX,BANK[$2E]
+SECTION "bank2E", ROMX, BANK[$2E]
Functionb8000: ; b8000
xor a
@@ -85969,7 +71828,29 @@ Functionb81e2: ; b81e2
ret
; b81ea
-INCBIN "baserom.gbc",$b81ea,$b8219 - $b81ea
+Functionb81ea: ; b81ea
+ callba Function1060ef
+ xor a
+ ld [$d22e], a
+ ld [CurPartyLevel], a
+ ld hl, $425e
+ call GetTreeMonEncounterTable
+ jr nc, .asm_b8214
+ call LoadTreeMonData
+ jr nc, .asm_b8214
+ call Functionb83e5
+ jr nc, .asm_b8214
+ ld a, $8
+ ld [BattleType], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_b8214
+ xor a
+ ld [ScriptVar], a
+ ret
+; b8219
Functionb8219: ; b8219
; get a RockMon encounter
@@ -87845,7 +73726,7 @@ Functionb9237: ; b9237
Functionb929a: ; b929a
.asm_b929a
- call GetJoypadPublic
+ call GetJoypad
ld a, [hJoyPressed]
and $b
jr z, .asm_b929a
@@ -87932,7 +73813,7 @@ ItemIsMail: ; b9e76
; b9e8b
-SECTION "bank2F",ROMX,BANK[$2F]
+SECTION "bank2F", ROMX, BANK[$2F]
INCLUDE "engine/std_scripts.asm"
@@ -87951,7 +73832,7 @@ UnknownScript_0xbe675: ; 0xbe675
loadtrainerdata
playrammusic
showemote $0, $fe, 30
- 3callasm BANK(Function831e), Function831e
+ 3callasm Function831e
applymovement2 $d007
writepersonxy $fe
faceperson $0, $fe
@@ -87972,2943 +73853,20 @@ UnknownScript_0xbe68a: ; 0xbe68a
; 0xbe699
-SECTION "bank30",ROMX,BANK[$30]
+SECTION "bank30", ROMX, BANK[$30]
INCLUDE "gfx/overworld/sprites_1.asm"
-SECTION "bank31",ROMX,BANK[$31]
+SECTION "bank31", ROMX, BANK[$31]
INCLUDE "gfx/overworld/sprites_2.asm"
-SECTION "bank32",ROMX,BANK[$32]
-
-
-; no known jump sources
-Functionc8000: ; c8000 (32:4000)
- ld hl, $d3fa
- ld e, $5
-.asm_c8005
- ld a, [hl]
- and a
- jr z, .asm_c8012
- ld c, l
- ld b, h
- push hl
- push de
- call Functionc804a
- pop de
- pop hl
-.asm_c8012
- ld bc, $4
- add hl, bc
- dec e
- jr nz, .asm_c8005
- ret
-
-; no known jump sources
-Functionc801a: ; c801a (32:401a)
- ld hl, $d3fa
- ld e, $5
-.asm_c801f
- ld a, [hl]
- and a
- jr z, .asm_c802c
- ld bc, $4
- add hl, bc
- dec e
- jr nz, .asm_c801f
- scf
- ret
-.asm_c802c
- ld c, l
- ld b, h
- ld hl, $0
- add hl, bc
- ld a, [$d419]
- ld [hli], a
- ld a, [$d41a]
- ld [hli], a
- ld a, [$d41b]
- ld [hli], a
- ld a, [$d41c]
- ld [hl], a
- ret
-
-; known jump sources: c80c6 (32:40c6), c811c (32:411c), c8139 (32:4139), c814d (32:414d), c8164 (32:4164), c81e6 (32:41e6), c81ef (32:41ef), c822c (32:422c), c827d (32:427d), c8299 (32:4299), c82ea (32:42ea), c8377 (32:4377), c8437 (32:4437), c85ca (32:45ca), c85ff (32:45ff), c8d13 (32:4d13), c8dd0 (32:4dd0), c8e26 (32:4e26), c8e4e (32:4e4e), c8f15 (32:4f15)
-Functionc8043: ; c8043 (32:4043)
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-
-; known jump sources: c800d (32:400d)
-Functionc804a: ; c804a (32:404a)
- ld hl, $0
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $405a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; no known jump sources
-Jumptable_c805a: ; c805a (32:405a)
- dw Functionc80c6
- dw Functionc80eb
- dw Functionc80f3
- dw Functionc812d
- dw Functionc8141
- dw Functionc8155
- dw Functionc8171
- dw Functionc818b
- dw Functionc81a5
- dw Functionc81b3
- dw Functionc81ea
- dw Functionc837b
- dw Functionc83a8
- dw Functionc8545
- dw Functionc8599
- dw Functionc863f
- dw Functionc8662
- dw Functionc8214
- dw Functionc8281
- dw Functionc8689
- dw Functionc8709
- dw Functionc8be8
- dw Functionc8bf2
- dw Functionc8bfd
- dw Functionc8c08
- dw Functionc8c14
- dw Functionc8c20
- dw Functionc8c30
- dw Functionc8b00
- dw Functionc8c3c
- dw Functionc8c55
- dw Functionc8cf9
- dw Functionc8d02
- dw Functionc8761
- dw Functionc89ee
- dw Functionc87a7
- dw Functionc8805
- dw Functionc8837
- dw Functionc892a
- dw Functionc82f5
- dw Functionc89b5
- dw Functionc8607
- dw Functionc8a3a
- dw Functionc8acc
- dw Functionc8964
- dw Functionc88e7
- dw Functionc8ce1
- dw Functionc8919
- dw Functionc85c2
- dw Functionc85ce
- dw Functionc8603
- dw Functionc8c61
- dw Functionc8ca2
- dw Functionc8d3a
-
-
-; no known jump sources
-Functionc80c6: ; c80c6 (32:40c6)
- call Functionc8043
- ret
-
-; known jump sources: c8b7d (32:4b7d), c8d80 (32:4d80), c8dd8 (32:4dd8)
-Functionc80ca: ; c80ca (32:40ca)
- ld hl, $1
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-; known jump sources: c81b3 (32:41b3), c8214 (32:4214), c8281 (32:4281), c82f5 (32:42f5), c83ed (32:43ed), c8545 (32:4545), c8599 (32:4599), c8607 (32:4607), c863f (32:463f), c8662 (32:4662), c8689 (32:4689), c8709 (32:4709), c8761 (32:4761), c87a7 (32:47a7), c8805 (32:4805), c8837 (32:4837), c88e7 (32:48e7), c8919 (32:4919), c892a (32:492a), c8964 (32:4964), c89b5 (32:49b5), c89ee (32:49ee), c8a3a (32:4a3a), c8acc (32:4acc), c8b05 (32:4b05), c8c61 (32:4c61), c8ca2 (32:4ca2)
-Functionc80d7: ; c80d7 (32:40d7)
- pop de
- ld hl, $1
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; known jump sources: c81c0 (32:41c0), c8230 (32:4230), c825a (32:425a), c829d (32:429d), c82c7 (32:42c7), c8302 (32:4302), c835c (32:435c), c841d (32:441d), c854e (32:454e), c85a2 (32:45a2), c8610 (32:4610), c8648 (32:4648), c866b (32:466b), c8698 (32:4698), c86cb (32:46cb), c8712 (32:4712), c876a (32:476a), c87b2 (32:47b2), c87db (32:47db), c8810 (32:4810), c8842 (32:4842), c8876 (32:4876), c8890 (32:4890), c88f6 (32:48f6), c8933 (32:4933), c896d (32:496d), c89be (32:49be), c89f7 (32:49f7), c8a49 (32:4a49), c8a84 (32:4a84), c8a96 (32:4a96), c8ad3 (32:4ad3), c8b0e (32:4b0e), c8c68 (32:4c68), c8cab (32:4cab), c8d8b (32:4d8b), c8dec (32:4dec), c8def (32:4def), c8df2 (32:4df2)
-Functionc80e5: ; c80e5 (32:40e5)
- ld hl, $1
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionc80eb: ; c80eb (32:40eb)
- ld de, $40f1
- jp Functionc80fb
-; c80f1 (32:40f1)
-
-INCBIN "baserom.gbc",$c80f1,$c80f3 - $c80f1
-
-; no known jump sources
-Functionc80f3: ; c80f3 (32:40f3)
- ld de, $40f9
- jp Functionc80fb
-; c80f9 (32:40f9)
-
-INCBIN "baserom.gbc",$c80f9,$c80fb - $c80f9
-
-; known jump sources: c80ee (32:40ee), c80f6 (32:40f6)
-Functionc80fb: ; c80fb (32:40fb)
- ld a, $1
- ld [$d419], a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c810a
- dec [hl]
- ret
-.asm_c810a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8120
- call Functionc8043
- ret
-.asm_c8120
- dec a
- ld [hl], a
- and $1
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- ld [$cfc7], a
- ret
-
-; no known jump sources
-Functionc812d: ; c812d (32:412d)
- ld de, $413d
- call Functionc8d57
- jr c, .asm_c8139
- ld [$cfc7], a
- ret
-.asm_c8139
- call Functionc8043
- ret
-; c813d (32:413d)
-
-INCBIN "baserom.gbc",$c813d,$c8141 - $c813d
-
-; no known jump sources
-Functionc8141: ; c8141 (32:4141)
- ld de, $4151
- call Functionc8d57
- jr c, .asm_c814d
- ld [$cfc7], a
- ret
-.asm_c814d
- call Functionc8043
- ret
-; c8151 (32:4151)
-
-INCBIN "baserom.gbc",$c8151,$c8155 - $c8151
-
-; no known jump sources
-Functionc8155: ; c8155 (32:4155)
- ld de, $4168
- call Functionc8d57
- jr c, .asm_c8164
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-.asm_c8164
- call Functionc8043
- ret
-; c8168 (32:4168)
-
-INCBIN "baserom.gbc",$c8168,$c8171 - $c8168
-
-; no known jump sources
-Functionc8171: ; c8171 (32:4171)
- call Functionc9059
- jr nz, .asm_c817b
- ld de, $4185
- jr .asm_c817e
-.asm_c817b
- ld de, $4188
-.asm_c817e
- call Functionc8d57
- ld [$cfc8], a
- ret
-; c8185 (32:4185)
-
-INCBIN "baserom.gbc",$c8185,$c818b - $c8185
-
-; no known jump sources
-Functionc818b: ; c818b (32:418b)
- call Functionc9059
- jr nz, .asm_c8195
- ld de, $419f
- jr .asm_c8198
-.asm_c8195
- ld de, $41a2
-.asm_c8198
- call Functionc8d57
- ld [$cfc8], a
- ret
-; c819f (32:419f)
-
-INCBIN "baserom.gbc",$c819f,$c81a5 - $c819f
-
-; no known jump sources
-Functionc81a5: ; c81a5 (32:41a5)
- ld de, $41af
- call Functionc8d57
- ld [$cfc7], a
- ret
-; c81af (32:41af)
-
-INCBIN "baserom.gbc",$c81af,$c81b3 - $c81af
-
-; no known jump sources
-Functionc81b3: ; c81b3 (32:41b3)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c81b6: ; c81b6 (32:41b6)
- dw Functionc81c0
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc81e3
-
-
-; no known jump sources
-Functionc81c0: ; c81c0 (32:41c0)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c81d1
- ld hl, $c4ac
- ld bc, $707
- jr .asm_c81d7
-.asm_c81d1
- ld hl, $c51a
- ld bc, $606
-.asm_c81d7
- call ClearBox
- pop bc
- xor a
- ld [hBGMapThird], a ; $ff00+$d5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
-; no known jump sources
-Functionc81e3: ; c81e3 (32:41e3)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc81ea: ; c81ea (32:41ea)
- call Functionc9042
- jr z, .asm_c81f3
- call Functionc8043
- ret
-.asm_c81f3
- call Functionc9038
- jr nz, .asm_c81fd
- ld de, $4210
- jr .asm_c8200
-.asm_c81fd
- ld de, $420c
-.asm_c8200
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c820c (32:420c)
-
-INCBIN "baserom.gbc",$c820c,$c8214 - $c820c
-
-; no known jump sources
-Functionc8214: ; c8214 (32:4214)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8217: ; c8217 (32:4217)
- dw Functionc8223
- dw Functionc825a
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc827a
-
-
-; no known jump sources
-Functionc8223: ; c8223 (32:4223)
- call Functionc9042
- jr z, .asm_c8230
- ld hl, $d40e
- inc [hl]
- call Functionc8043
- ret
-.asm_c8230
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c8242
- ld a, $b8
- ld [$d419], a
- ld a, $84
- jr .asm_c8249
-.asm_c8242
- ld a, $b9
- ld [$d419], a
- ld a, $30
-.asm_c8249
- ld [$d41a], a
- ld a, $40
- ld [$d41b], a
- xor a
- ld [$d41c], a
- call Functionc82ee
- pop bc
- ret
-
-; no known jump sources
-Functionc825a: ; c825a (32:425a)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c826b
- ld hl, $c524
- ld bc, $107
- jr .asm_c8271
-.asm_c826b
- ld hl, $c51a
- ld bc, $106
-.asm_c8271
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- pop bc
- ret
-
-; no known jump sources
-Functionc827a: ; c827a (32:427a)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8281: ; c8281 (32:4281)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8284: ; c8284 (32:4284)
- dw Functionc8290
- dw Functionc82c7
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc82e7
-
-
-; no known jump sources
-Functionc8290: ; c8290 (32:4290)
- call Functionc9042
- jr z, .asm_c829d
- ld hl, $d40e
- inc [hl]
- call Functionc8043
- ret
-.asm_c829d
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c82af
- ld a, $ba
- ld [$d419], a
- ld a, $84
- jr .asm_c82b6
-.asm_c82af
- ld a, $bb
- ld [$d419], a
- ld a, $30
-.asm_c82b6
- ld [$d41a], a
- ld a, $40
- ld [$d41b], a
- xor a
- ld [$d41c], a
- call Functionc82ee
- pop bc
- ret
-
-; no known jump sources
-Functionc82c7: ; c82c7 (32:42c7)
- call Functionc80e5
- push bc
- call Functionc9038
- jr nz, .asm_c82d8
- ld hl, $c510
- ld bc, $207
- jr .asm_c82de
-.asm_c82d8
- ld hl, $c51a
- ld bc, $206
-.asm_c82de
- call ClearBox
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- pop bc
- ret
-
-; no known jump sources
-Functionc82e7: ; c82e7 (32:42e7)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; known jump sources: c8255 (32:4255), c82c2 (32:42c2)
-Functionc82ee: ; c82ee (32:42ee)
- callab Functioncc9a1
- ret
-
-; no known jump sources
-Functionc82f5: ; c82f5 (32:42f5)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c82f8: ; c82f8 (32:42f8)
- dw Functionc8302
- dw Functionc831d
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc8365
-
-
-; no known jump sources
-Functionc8302: ; c8302 (32:4302)
- call Functionc80e5
- call Functionc9038
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8315
- ld a, $9
- jr .asm_c8317
-.asm_c8315
- ld a, $8
-.asm_c8317
- ld hl, $3
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc831d: ; c831d (32:431d)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c833e
- ld hl, $c518
- ld de, $806
-.asm_c832b
- push de
- push hl
-.asm_c832d
- inc hl
- ld a, [hld]
- ld [hli], a
- dec d
- jr nz, .asm_c832d
- pop hl
- ld de, $14
- add hl, de
- pop de
- dec e
- jr nz, .asm_c832b
- jr .asm_c8355
-.asm_c833e
- ld hl, $c4b3
- ld de, $807
-.asm_c8344
- push de
- push hl
-.asm_c8346
- dec hl
- ld a, [hli]
- ld [hld], a
- dec d
- jr nz, .asm_c8346
- pop hl
- ld de, $14
- add hl, de
- pop de
- dec e
- jr nz, .asm_c8344
-.asm_c8355
- xor a
- ld [hBGMapThird], a ; $ff00+$d5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc80e5
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8365: ; c8365 (32:4365)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8377
- ld hl, $1
- add hl, bc
- ld [hl], $1
- ret
-.asm_c8377
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc837b: ; c837b (32:437b)
- call Functionc9038
- jr nz, .asm_c8385
- ld de, $439e
- jr .asm_c8388
-.asm_c8385
- ld de, $4394
-.asm_c8388
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c8394 (32:4394)
-
-INCBIN "baserom.gbc",$c8394,$c83a8 - $c8394
-
-; no known jump sources
-Functionc83a8: ; c83a8 (32:43a8)
- call Functionc9038
- jr nz, .asm_c83b2
- ld de, $43d7
- jr .asm_c83b5
-.asm_c83b2
- ld de, $43c1
-.asm_c83b5
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc83ed
- ret
-; c83c1 (32:43c1)
-
-INCBIN "baserom.gbc",$c83c1,$c83ed - $c83c1
-
-; known jump sources: c8208 (32:4208), c8390 (32:4390), c83bd (32:43bd)
-Functionc83ed: ; c83ed (32:43ed)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c83f0: ; c83f0 (32:43f0)
- dw Functionc83fa
- dw Functionc80e5
- dw Functionc80e5
- dw Functionc842a
- dw Functionc8434
-
-
-; known jump sources: c8428 (32:4428)
-Functionc83fa: ; c83fa (32:43fa)
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $0
- inc [hl]
- ld a, [$d41a]
- ld l, a
- ld a, [$d41b]
- ld h, a
- add hl, de
- add hl, de
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, Functionc8434
- cp $fe
- jr z, .asm_c8425
- cp $fd
- jr z, .asm_c841d
- call Functionc8458
-.asm_c841d
- call Functionc80e5
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-.asm_c8425
- call Functionc843b
- jr Functionc83fa
-
-; no known jump sources
-Functionc842a: ; c842a (32:442a)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld hl, $1
- add hl, bc
- ld [hl], $0
- ret
-
-; known jump sources: c8410 (32:4410)
-Functionc8434: ; c8434 (32:4434)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functionc8043
- ret
-
-; known jump sources: c8425 (32:4425)
-Functionc843b: ; c843b (32:443b)
- push bc
- inc hl
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
- ld e, [hl]
- ld d, $0
- ld hl, $449c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call ClearBox
- pop bc
- ret
-
-; known jump sources: c841a (32:441a)
-Functionc8458: ; c8458 (32:4458)
- push bc
- push hl
- ld e, [hl]
- ld d, $0
- ld hl, $44a8
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- ld b, a
- and $f
- ld c, a
- ld a, b
- swap a
- and $f
- ld b, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- inc hl
- ld a, [hli]
- ld [$d419], a
- push de
- ld e, [hl]
- ld d, $0
- ld hl, $449c
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
-.asm_c8484
- push bc
- push hl
- ld a, [$d419]
- ld b, a
-.asm_c848a
- ld a, [de]
- add b
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_c848a
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_c8484
- pop bc
- ret
-; c849c (32:449c)
-
-INCBIN "baserom.gbc",$c849c,$c8545 - $c849c
-
-; no known jump sources
-Functionc8545: ; c8545 (32:4545)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8548: ; c8548 (32:4548)
- dw Functionc854e
- dw Functionc8557
- dw Functionc8561
-
-
-; no known jump sources
-Functionc854e: ; c854e (32:454e)
- call Functionc80e5
- ld de, $202
- call Functionc8f69
-
-; no known jump sources
-Functionc8557: ; c8557 (32:4557)
- ld a, [hLCDStatCustom] ; $ff00+$c6
- and a
- ret z
- push bc
- call Functionc8565
- pop bc
- ret
-
-; no known jump sources
-Functionc8561: ; c8561 (32:4561)
- call Functionc8f0a
- ret
-
-; known jump sources: c855c (32:455c)
-Functionc8565: ; c8565 (32:4565)
- ld hl, $d422
- ld de, $d423
- ld c, $3f
- ld a, [hl]
- push af
-.asm_c856f
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_c856f
- pop af
- ld [hl], a
- ld de, $d200
- ld hl, $d422
- ld bc, $0
-.asm_c8580
- ld a, [$FF00+$c7]
- cp e
- jr nc, .asm_c858b
- push hl
- add hl, bc
- ld a, [hl]
- pop hl
- jr .asm_c858c
-.asm_c858b
- xor a
-.asm_c858c
- ld [de], a
- ld a, c
- inc a
- and $3f
- ld c, a
- inc de
- ld a, e
- cp $5f
- jr c, .asm_c8580
- ret
-
-; no known jump sources
-Functionc8599: ; c8599 (32:4599)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c859c: ; c859c (32:459c)
- dw Functionc85a2
- dw Functionc85ba
- dw Functionc85be
-
-
-; no known jump sources
-Functionc85a2: ; c85a2 (32:45a2)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $5e
- ld [$FF00+$c8], a
- ld de, $202
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc85ba: ; c85ba (32:45ba)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc85be: ; c85be (32:45be)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc85c2: ; c85c2 (32:45c2)
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc85ce: ; c85ce (32:45ce)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld e, a
- add $4
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- xor $ff
- add $4
- ld d, a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- ld [$d419], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_c85fc
- inc [hl]
- inc [hl]
- call Functionc8f9a
- ret
-.asm_c85fc
- call Functionc8eca
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8603: ; c8603 (32:4603)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8607: ; c8607 (32:4607)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c860a: ; c860a (32:460a)
- dw Functionc8610
- dw Functionc862e
- dw Functionc863b
-
-
-; no known jump sources
-Functionc8610: ; c8610 (32:4610)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $5f
- ld [$FF00+$c8], a
- ld de, $605
- call Functionc8f2e
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-; no known jump sources
-Functionc862e: ; c862e (32:462e)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3
- ret nz
- call Functionc8fef
- ret
+SECTION "bank32", ROMX, BANK[$32]
-; no known jump sources
-Functionc863b: ; c863b (32:463b)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc863f: ; c863f (32:463f)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8642: ; c8642 (32:4642)
- dw Functionc8648
- dw Functionc865a
- dw Functionc865e
-
-
-; no known jump sources
-Functionc8648: ; c8648 (32:4648)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld de, $605
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc865a: ; c865a (32:465a)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc865e: ; c865e (32:465e)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8662: ; c8662 (32:4662)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8665: ; c8665 (32:4665)
- dw Functionc866b
- dw Functionc8681
- dw Functionc8685
-
-
-; no known jump sources
-Functionc866b: ; c866b (32:466b)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $2
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc8681: ; c8681 (32:4681)
- call Functionc8fef
- ret
-
-; no known jump sources
-Functionc8685: ; c8685 (32:4685)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8689: ; c8689 (32:4689)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c868c: ; c868c (32:468c)
- dw Functionc8698
- dw Functionc86af
- dw Functionc86cf
- dw Functionc86bd
- dw Functionc86e9
- dw Functionc8705
-
-
-; no known jump sources
-Functionc8698: ; c8698 (32:4698)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc86af: ; c86af (32:46af)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, asm_c86cb
- inc [hl]
- call Functionc86ea
- ret
-
-; no known jump sources
-Functionc86bd: ; c86bd (32:46bd)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, asm_c86cb
- dec [hl]
- call Functionc86ea
- ret
-asm_c86cb: ; c86cb (32:46cb)
- call Functionc80e5
- ret
+INCLUDE "battle/bg_effects.asm"
-; no known jump sources
-Functionc86cf: ; c86cf (32:46cf)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld d, $2
- call Functionc905d
- ld hl, $3
- add hl, bc
- add [hl]
- call Functionc86ea
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
-
-; no known jump sources
-Functionc86e9: ; c86e9 (32:46e9)
- ret
-
-; known jump sources: c86b9 (32:46b9), c86c7 (32:46c7), c86de (32:46de)
-Functionc86ea: ; c86ea (32:46ea)
- ld e, a
- xor $ff
- inc a
- ld d, a
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- srl a
- push af
-.asm_c86fa
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- dec a
- jr nz, .asm_c86fa
- pop af
- ret nc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionc8705: ; c8705 (32:4705)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8709: ; c8709 (32:4709)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c870c: ; c870c (32:470c)
- dw Functionc8712
- dw Functionc8732
- dw Functionc875d
-
-
-; no known jump sources
-Functionc8712: ; c8712 (32:4712)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $2
- call Functionc8f2e
- ld h, $d2
- ld a, [$FF00+$c8]
- ld l, a
- ld [hl], $0
- dec l
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc8732: ; c8732 (32:4732)
- ld a, [$FF00+$c8]
- ld l, a
- ld h, $d2
- ld e, l
- ld d, h
- dec de
-.asm_c873a
- ld a, [de]
- dec de
- ld [hld], a
- ld a, [$FF00+$c7]
- cp l
- jr nz, .asm_c873a
- ld [hl], $90
- ld a, [$FF00+$c8]
- ld l, a
- ld a, [hl]
- cp $1
- jr c, .asm_c8752
- cp $90
- jr z, .asm_c8752
- ld [hl], $0
-.asm_c8752
- dec l
- ld a, [hl]
- cp $2
- ret c
- cp $90
- ret z
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc875d: ; c875d (32:475d)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8761: ; c8761 (32:4761)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8764: ; c8764 (32:4764)
- dw Functionc876a
- dw Functionc8781
- dw Functionc87a3
-
-
-; no known jump sources
-Functionc876a: ; c876a (32:476a)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functionc8781: ; c8781 (32:4781)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp d
- ret nc
- call Functionc901b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- rlca
- rlca
- and $3
- ld hl, $2
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc87a3: ; c87a3 (32:47a3)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc87a7: ; c87a7 (32:47a7)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c87aa: ; c87aa (32:47aa)
- dw Functionc87b2
- dw Functionc87cf
- dw Functionc87de
- dw Functionc8801
-
-
-; no known jump sources
-Functionc87b2: ; c87b2 (32:47b2)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $2
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc87cf: ; c87cf (32:47cf)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c87d9
- dec [hl]
- ret
-.asm_c87d9
- ld [hl], $10
- call Functionc80e5
-
-; no known jump sources
-Functionc87de: ; c87de (32:47de)
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- dec a
- ld hl, $2
- add hl, bc
- cp [hl]
- ret c
- ld a, [hl]
- push af
- and $7
- jr nz, .asm_c87f6
- ld hl, $1
- add hl, bc
- dec [hl]
-.asm_c87f6
- pop af
- call Functionc901b
- ld hl, $2
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionc8801: ; c8801 (32:4801)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8805: ; c8805 (32:4805)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8808: ; c8808 (32:4808)
- dw Functionc8810
- dw Functionc8869
- dw Functionc8888
- dw Functionc8833
-
-
-; no known jump sources
-Functionc8810: ; c8810 (32:4810)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c882f
- ld a, $2
- jr .asm_c8831
-.asm_c882f
- ld a, $fe
-.asm_c8831
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8833: ; c8833 (32:4833)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8837: ; c8837 (32:4837)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c883a: ; c883a (32:483a)
- dw Functionc8842
- dw Functionc8869
- dw Functionc8888
- dw Functionc8865
-
-
-; no known jump sources
-Functionc8842: ; c8842 (32:4842)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ef4
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c8861
- ld a, $2
- jr .asm_c8863
-.asm_c8861
- ld a, $fe
-.asm_c8863
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8865: ; c8865 (32:4865)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8869: ; c8869 (32:4869)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $f8
- jr z, .asm_c8876
- cp $8
- jr nz, .asm_c8879
-.asm_c8876
- call Functionc80e5
-.asm_c8879
- call Functionc88a5
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $3
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8888: ; c8888 (32:4888)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8893
- call Functionc80e5
-.asm_c8893
- call Functionc88a5
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld hl, $3
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; known jump sources: c8879 (32:4879), c8893 (32:4893)
-Functionc88a5: ; c88a5 (32:48a5)
- push af
- ld a, [FXAnimIDHi] ; $cfc3
- or a
- jr nz, .asm_c88b3
- ld a, [FXAnimIDLo] ; $cfc2
- cp $cd
- jr z, .asm_c88b7
-.asm_c88b3
- pop af
- jp Functionc900b
-.asm_c88b7
- ld a, [$FF00+$c7]
- ld d, a
- ld a, [$FF00+$c8]
- sub d
- ld d, a
- ld h, $d2
- ld a, [hSCY] ; $ff00+$d0
- or a
- jr nz, .asm_c88d0
- ld a, [$FF00+$c7]
- or a
- jr z, .asm_c88d6
- dec a
- ld l, a
- ld [hl], $0
- jr .asm_c88d6
-.asm_c88d0
- ld a, [$FF00+$c8]
- dec a
- ld l, a
- ld [hl], $0
-.asm_c88d6
- ld a, [hSCY] ; $ff00+$d0
- ld l, a
- ld a, [$FF00+$c7]
- sub l
- jr nc, .asm_c88e0
- xor a
- dec d
-.asm_c88e0
- ld l, a
- pop af
-.asm_c88e2
- ld [hli], a
- dec d
- jr nz, .asm_c88e2
- ret
-
-; no known jump sources
-Functionc88e7: ; c88e7 (32:48e7)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c88ea: ; c88ea (32:48ea)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8888
- dw Functionc88f2
-
-
-; no known jump sources
-Functionc88f2: ; c88f2 (32:48f2)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc88f6: ; c88f6 (32:48f6)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- call Functionc9038
- jr nz, .asm_c8915
- ld a, $fe
- jr .asm_c8917
-.asm_c8915
- ld a, $2
-.asm_c8917
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8919: ; c8919 (32:4919)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c891c: ; c891c (32:491c)
- dw Functionc88f6
- dw Functionc8869
- dw Functionc8929
- dw Functionc8888
- dw Functionc8926
-
-
-; no known jump sources
-Functionc8926: ; c8926 (32:4926)
- call Functionc8f0a
-
-; no known jump sources
-Functionc8929: ; c8929 (32:4929)
- ret
-
-; no known jump sources
-Functionc892a: ; c892a (32:492a)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c892d: ; c892d (32:492d)
- dw Functionc8933
- dw Functionc894a
- dw Functionc8960
-
-
-; no known jump sources
-Functionc8933: ; c8933 (32:4933)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc894a: ; c894a (32:494a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionc905d
- call Functionc900b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8960: ; c8960 (32:4960)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8964: ; c8964 (32:4964)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8967: ; c8967 (32:4967)
- dw Functionc896d
- dw Functionc8985
- dw Functionc89b1
-
-
-; no known jump sources
-Functionc896d: ; c896d (32:496d)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- xor a
- ld hl, $2
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8985: ; c8985 (32:4985)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $6
- call Functionc905d
- push af
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld d, $2
- call Functionc905d
- ld e, a
- pop af
- add e
- call Functionc900b
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc89b1: ; c89b1 (32:49b1)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc89b5: ; c89b5 (32:49b5)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c89b8: ; c89b8 (32:49b8)
- dw Functionc89be
- dw Functionc89ca
- dw Functionc89da
-
-
-; no known jump sources
-Functionc89be: ; c89be (32:49be)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ret
-
-; no known jump sources
-Functionc89ca: ; c89ca (32:49ca)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $20
- ret nc
- inc [hl]
- ld d, a
- ld e, $4
- call Functionc8f2e
- ret
-
-; no known jump sources
-Functionc89da: ; c89da (32:49da)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c89ea
- dec [hl]
- ld d, a
- ld e, $4
- call Functionc8f2e
- ret
-.asm_c89ea
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc89ee: ; c89ee (32:49ee)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c89f1: ; c89f1 (32:49f1)
- dw Functionc89f7
- dw Functionc8a14
- dw Functionc8a36
-
-
-; no known jump sources
-Functionc89f7: ; c89f7 (32:49f7)
- call Functionc80e5
- call Functionc8eca
- ld a, $42
- call Functionc8ef4
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ld hl, $3
- add hl, bc
- ld [hl], $20
- ret
-
-; no known jump sources
-Functionc8a14: ; c8a14 (32:4a14)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- cp $38
- ret nc
- push af
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionc9066
- add $10
- ld d, a
- pop af
- add d
- call Functionc901b
- ld hl, $3
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionc8a36: ; c8a36 (32:4a36)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8a3a: ; c8a3a (32:4a3a)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8a3d: ; c8a3d (32:4a3d)
- dw Functionc8a49
- dw Functionc8a6f
- dw Functionc8a70
- dw Functionc8a88
- dw Functionc8a6f
- dw Functionc8aac
-
-
-; no known jump sources
-Functionc8a49: ; c8a49 (32:4a49)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld a, [$FF00+$c7]
- ld l, a
- ld h, $d2
-.asm_c8a60
- ld a, [$FF00+$c8]
- cp l
- jr z, .asm_c8a69
- xor a
- ld [hli], a
- jr .asm_c8a60
-.asm_c8a69
- ld hl, $3
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functionc8a6f: ; c8a6f (32:4a6f)
- ret
-
-; no known jump sources
-Functionc8a70: ; c8a70 (32:4a70)
- call Functionc8ab0
- jr nc, .asm_c8a79
- call Functionc8a9a
- ret
-.asm_c8a79
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ld a, [$FF00+$c7]
- inc a
- ld [$FF00+$c7], a
- call Functionc80e5
- ret
-
-; no known jump sources
-Functionc8a88: ; c8a88 (32:4a88)
- call Functionc8ab0
- jr nc, .asm_c8a96
- call Functionc8a9a
- ld a, [$FF00+$c8]
- dec a
- ld l, a
- ld [hl], e
- ret
-.asm_c8a96
- call Functionc80e5
- ret
-
-; known jump sources: c8a75 (32:4a75), c8a8d (32:4a8d)
-Functionc8a9a: ; c8a9a (32:4a9a)
- ld e, a
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- srl a
- ld h, $d2
-.asm_c8aa5
- ld [hl], e
- inc hl
- inc hl
- dec a
- jr nz, .asm_c8aa5
- ret
-
-; no known jump sources
-Functionc8aac: ; c8aac (32:4aac)
- call Functionc8f19
- ret
-
-; known jump sources: c8a70 (32:4a70), c8a88 (32:4a88)
-Functionc8ab0: ; c8ab0 (32:4ab0)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, $4ac7
- add hl, de
- ld a, [hl]
- cp $ff
- ret
-; c8ac7 (32:4ac7)
-
-INCBIN "baserom.gbc",$c8ac7,$c8acc - $c8ac7
-
-; no known jump sources
-Functionc8acc: ; c8acc (32:4acc)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8acf: ; c8acf (32:4acf)
- dw Functionc8ad3
- dw Functionc8ae5
-
-
-; no known jump sources
-Functionc8ad3: ; c8ad3 (32:4ad3)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld hl, $2
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functionc8ae5: ; c8ae5 (32:4ae5)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8afc
- dec [hl]
- srl a
- srl a
- srl a
- and $f
- ld d, a
- ld e, a
- call Functionc8f2e
- ret
-.asm_c8afc
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8b00: ; c8b00 (32:4b00)
- ld a, [hCGB] ; $ff00+$e6
- and a
- jr nz, asm_c8b7a
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8b08: ; c8b08 (32:4b08)
- dw Functionc8b0e
- dw Functionc8b22
- dw Functionc8b60
-
-
-; no known jump sources
-Functionc8b0e: ; c8b0e (32:4b0e)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $60
- ld [$FF00+$c8], a
- ret
-
-; no known jump sources
-Functionc8b22: ; c8b22 (32:4b22)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld e, a
- and $7
- ret nz
- ld a, e
- and $18
- sla a
- swap a
- sla a
- ld e, a
- ld d, $0
- push bc
- call Functionc9038
- jr nz, .asm_c8b4d
- ld hl, $4bd8
- add hl, de
- ld a, [hli]
- ld [$cfc9], a
- ld d, a
- ld e, [hl]
- ld bc, $2f30
- jr .asm_c8b5b
-.asm_c8b4d
- ld hl, $4be0
- add hl, de
- ld d, [hl]
- inc hl
- ld a, [hl]
- ld [$cfc9], a
- ld e, a
- ld bc, $3728
-.asm_c8b5b
- call Functionc8b6c
- pop bc
- ret
-
-; no known jump sources
-Functionc8b60: ; c8b60 (32:4b60)
- call Functionc8f19
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-
-; known jump sources: c8b5b (32:4b5b)
-Functionc8b6c: ; c8b6c (32:4b6c)
- ld hl, $d200
-.asm_c8b6f
- ld [hl], d
- inc hl
- dec b
- jr nz, .asm_c8b6f
-.asm_c8b74
- ld [hl], e
- inc hl
- dec c
- jr nz, .asm_c8b74
- ret
-asm_c8b7a: ; c8b7a (32:4b7a)
- ld de, $4b81
- call Functionc80ca
- jp [hl]
-; c8b81 (32:4b81)
-
-INCBIN "baserom.gbc",$c8b81,$c8be8 - $c8b81
-
-; no known jump sources
-Functionc8be8: ; c8be8 (32:4be8)
- ld de, $4bef
- call Functionc8d77
- ret
-; c8bef (32:4bef)
-
-INCBIN "baserom.gbc",$c8bef,$c8bf2 - $c8bef
-
-; no known jump sources
-Functionc8bf2: ; c8bf2 (32:4bf2)
- ld de, $4bf9
- call Functionc8d77
- ret
-; c8bf9 (32:4bf9)
-
-INCBIN "baserom.gbc",$c8bf9,$c8bfd - $c8bf9
-
-; no known jump sources
-Functionc8bfd: ; c8bfd (32:4bfd)
- ld de, $4c04
- call Functionc8d77
- ret
-; c8c04 (32:4c04)
-
-INCBIN "baserom.gbc",$c8c04,$c8c08 - $c8c04
-
-; no known jump sources
-Functionc8c08: ; c8c08 (32:4c08)
- ld de, $4c0f
- call Functionc8d77
- ret
-; c8c0f (32:4c0f)
-
-INCBIN "baserom.gbc",$c8c0f,$c8c14 - $c8c0f
-
-; no known jump sources
-Functionc8c14: ; c8c14 (32:4c14)
- ld de, $4c1b
- call Functionc8d77
- ret
-; c8c1b (32:4c1b)
-
-INCBIN "baserom.gbc",$c8c1b,$c8c20 - $c8c1b
-
-; no known jump sources
-Functionc8c20: ; c8c20 (32:4c20)
- ld de, $4c27
- call Functionc8d77
- ret
-; c8c27 (32:4c27)
-
-INCBIN "baserom.gbc",$c8c27,$c8c30 - $c8c27
-
-; no known jump sources
-Functionc8c30: ; c8c30 (32:4c30)
- ld de, $4c37
- call Functionc8d77
- ret
-; c8c37 (32:4c37)
-
-INCBIN "baserom.gbc",$c8c37,$c8c3c - $c8c37
-
-; no known jump sources
-Functionc8c3c: ; c8c3c (32:4c3c)
- ld de, $4c43
- call Functionc8d77
- ret
-; c8c43 (32:4c43)
-
-INCBIN "baserom.gbc",$c8c43,$c8c55 - $c8c43
-
-; no known jump sources
-Functionc8c55: ; c8c55 (32:4c55)
- ld de, $4c5c
- call Functionc8d77
- ret
-; c8c5c (32:4c5c)
-
-INCBIN "baserom.gbc",$c8c5c,$c8c61 - $c8c5c
-
-; no known jump sources
-Functionc8c61: ; c8c61 (32:4c61)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8c64: ; c8c64 (32:4c64)
- dw Functionc8c68
- dw Functionc8c85
-
-
-; no known jump sources
-Functionc8c68: ; c8c68 (32:4c68)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $2
- add hl, bc
- ld [hl], $1
- ld hl, $3
- add hl, bc
- ld [hl], $20
- ret
-
-; no known jump sources
-Functionc8c85: ; c8c85 (32:4c85)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8c9e
- dec [hl]
- and $1
- ret nz
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- call Functionc900b
- ret
-.asm_c8c9e
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8ca2: ; c8ca2 (32:4ca2)
- call Functionc80d7 ; ; ; call does not return
-
-; no known jump sources
-Jumptable_c8ca5: ; c8ca5 (32:4ca5)
- dw Functionc8cab
- dw Functionc8cc3
- dw Functionc8cdd
-
-
-; no known jump sources
-Functionc8cab: ; c8cab (32:4cab)
- call Functionc80e5
- call Functionc8eca
- ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
- xor a
- ld [$FF00+$c7], a
- ld a, $37
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ret
-
-; no known jump sources
-Functionc8cc3: ; c8cc3 (32:4cc3)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, Functionc8cdd
- ld d, $6
- call Functionc905d
- call Functionc900b
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-
-; known jump sources: c8cca (32:4cca)
-Functionc8cdd: ; c8cdd (32:4cdd)
- call Functionc8f0a
- ret
-
-; no known jump sources
-Functionc8ce1: ; c8ce1 (32:4ce1)
- call Functionc8d0b
- jr c, .asm_c8cea
- bit 7, a
- jr z, .asm_c8ceb
-.asm_c8cea
- xor a
-.asm_c8ceb
- push af
- call DelayFrame
- pop af
- ld [hSCY], a ; $ff00+$d0
- xor $ff
- inc a
- ld [$d314], a
- ret
-
-; no known jump sources
-Functionc8cf9: ; c8cf9 (32:4cf9)
- call Functionc8d0b
- jr nc, .asm_c8cff
- xor a
-.asm_c8cff
- ld [hSCX], a ; $ff00+$cf
- ret
-
-; no known jump sources
-Functionc8d02: ; c8d02 (32:4d02)
- call Functionc8d0b
- jr nc, .asm_c8d08
- xor a
-.asm_c8d08
- ld [hSCY], a ; $ff00+$d0
- ret
-
-; known jump sources: c8ce1 (32:4ce1), c8cf9 (32:4cf9), c8d02 (32:4d02)
-Functionc8d0b: ; c8d0b (32:4d0b)
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_c8d18
- call Functionc8043
- scf
- ret
-.asm_c8d18
- dec [hl]
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8d2a
- dec [hl]
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and a
- ret
-.asm_c8d2a
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- and a
- ret
-
-; no known jump sources
-Functionc8d3a: ; c8d3a (32:4d3a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_c8d53
- ld d, $6
- call Functionc905d
- ld [hSCX], a ; $ff00+$cf
- ld hl, $3
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ret
-.asm_c8d53
- xor a
- ld [hSCX], a ; $ff00+$cf
- ret
-
-; known jump sources: c8130 (32:4130), c8144 (32:4144), c8158 (32:4158), c817e (32:417e), c8198 (32:4198), c81a8 (32:41a8)
-Functionc8d57: ; c8d57 (32:4d57)
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_c8d69
- dec [hl]
- ld hl, $3
- add hl, bc
- ld a, [hl]
- call Functionc8eb2
- ret
-.asm_c8d69
- ld hl, $2
- add hl, bc
- ld a, [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- call Functionc8eac
- ret
-
-; known jump sources: c8beb (32:4beb), c8bf5 (32:4bf5), c8c00 (32:4c00), c8c0b (32:4c0b), c8c17 (32:4c17), c8c23 (32:4c23), c8c33 (32:4c33), c8c3f (32:4c3f), c8c58 (32:4c58)
-Functionc8d77: ; c8d77 (32:4d77)
- ld a, [hCGB] ; $ff00+$e6
- and a
- jr nz, asm_c8dd4
- push de
- ld de, $4d85
- call Functionc80ca
- pop de
- jp [hl]
-
-; no known jump sources
-Jumptable_c8d85: ; c8d85 (32:4d85)
- dw Functionc8d8b
- dw Functionc8daa
- dw Functionc8dc9
-
-
-; no known jump sources
-Functionc8d8b: ; c8d8b (32:4d8b)
- call Functionc80e5
- ld a, $e4
- call Functionc8ecb
- ld a, $47
- call Functionc8ede
- ld a, [$FF00+$c8]
- inc a
- ld [$FF00+$c8], a
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, $2
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8daa: ; c8daa (32:4daa)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8db5
- dec [hl]
- ret
-.asm_c8db5
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8dc3
- call Functionc900b
- ret
-.asm_c8dc3
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8dc9: ; c8dc9 (32:4dc9)
- call Functionc8f19
- ld a, $e4
- ld [rBGP], a ; $ff00+$47
- call Functionc8043
- ret
-asm_c8dd4: ; c8dd4 (32:4dd4)
- push de
- ld de, $4ddd
- call Functionc80ca
- pop de
- jp [hl]
-
-; no known jump sources
-Jumptable_c8ddd: ; c8ddd (32:4ddd)
- dw Functionc8de7
- dw Functionc8e02
- dw Functionc8e21
- dw Functionc8e2a
- dw Functionc8e49
-
-
-; no known jump sources
-Functionc8de7: ; c8de7 (32:4de7)
- call Functionc9038
- jr nz, .asm_c8df2
- call Functionc80e5
- call Functionc80e5
-.asm_c8df2
- call Functionc80e5
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld [hl], $0
- ld hl, $2
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionc8e02: ; c8e02 (32:4e02)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8e0d
- dec [hl]
- ret
-.asm_c8e0d
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e1b
- call Functionc8e52
- ret
-.asm_c8e1b
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8e21: ; c8e21 (32:4e21)
- ld a, $e4
- call Functionc8e52
- call Functionc8043
- ret
-
-; no known jump sources
-Functionc8e2a: ; c8e2a (32:4e2a)
- ld hl, $2
- add hl, bc
- ld a, [hl]
- and $f
- jr z, .asm_c8e35
- dec [hl]
- ret
-.asm_c8e35
- ld a, [hl]
- swap a
- or [hl]
- ld [hl], a
- call Functionc8eac
- jr c, .asm_c8e43
- call Functionc8e7f
- ret
-.asm_c8e43
- ld hl, $3
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionc8e49: ; c8e49 (32:4e49)
- ld a, $e4
- call Functionc8e7f
- call Functionc8043
- ret
-
-; known jump sources: c8e17 (32:4e17), c8e23 (32:4e23)
-Functionc8e52: ; c8e52 (32:4e52)
- ld h, a
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld a, h
- push bc
- push af
- ld hl, BGPals ; $d080
- ld de, Unkn1Pals ; $d000
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, $d0c8
- ld de, $d048
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a ; $ff00+$70
- ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
- ret
-
-; known jump sources: c8e3f (32:4e3f), c8e4b (32:4e4b)
-Functionc8e7f: ; c8e7f (32:4e7f)
- ld h, a
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld a, h
- push bc
- push af
- ld hl, $d088
- ld de, $d008
- ld b, a
- ld c, $1
- call CopyPals
- ld hl, OBPals ; $d0c0
- ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
- pop af
- ld b, a
- ld c, $1
- call CopyPals
- pop bc
- pop af
- ld [rSVBK], a ; $ff00+$70
- ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
- ret
-
-; known jump sources: c8d73 (32:4d73), c8dba (32:4dba), c8e12 (32:4e12), c8e3a (32:4e3a)
-Functionc8eac: ; c8eac (32:4eac)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc [hl]
-
-; known jump sources: c8d65 (32:4d65)
-Functionc8eb2: ; c8eb2 (32:4eb2)
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- cp $ff
- jr z, .asm_c8ec8
- cp $fe
- jr nz, .asm_c8ec6
- ld a, [de]
- ld hl, $3
- add hl, bc
- ld [hl], $0
-.asm_c8ec6
- and a
- ret
-.asm_c8ec8
- scf
- ret
-
-; known jump sources: c85a5 (32:45a5), c85c2 (32:45c2), c85fc (32:45fc), c8613 (32:4613), c864b (32:464b), c866e (32:466e), c869b (32:469b), c8715 (32:4715), c876d (32:476d), c87b5 (32:47b5), c8813 (32:4813), c8845 (32:4845), c88f9 (32:48f9), c8936 (32:4936), c8970 (32:4970), c89c1 (32:49c1), c89fa (32:49fa), c8ad6 (32:4ad6), c8c6b (32:4c6b), c8cae (32:4cae), c8f0f (32:4f0f), c8f2a (32:4f2a)
-Functionc8eca: ; c8eca (32:4eca)
- xor a
-
-; known jump sources: c8a4e (32:4a4e), c8b13 (32:4b13), c8d90 (32:4d90)
-Functionc8ecb: ; c8ecb (32:4ecb)
- ld hl, CurMartEnd ; $d100 (aliases: LYOverrides)
- ld e, $99
-.asm_c8ed0
- ld [hli], a
- dec e
- jr nz, .asm_c8ed0
- ld hl, $d200
- ld e, $91
-.asm_c8ed9
- ld [hli], a
- dec e
- jr nz, .asm_c8ed9
- ret
-
-; known jump sources: c85c7 (32:45c7), c8650 (32:4650), c8673 (32:4673), c86a0 (32:46a0), c871a (32:471a), c8772 (32:4772), c87ba (32:47ba), c8818 (32:4818), c88fe (32:48fe), c893b (32:493b), c8975 (32:4975), c89c6 (32:49c6), c8a53 (32:4a53), c8adb (32:4adb), c8c70 (32:4c70), c8d95 (32:4d95)
-Functionc8ede: ; c8ede (32:4ede)
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc9038
- jr nz, .asm_c8eea
- ld de, $36
- jr .asm_c8eed
-.asm_c8eea
- ld de, $2f5e
-.asm_c8eed
- ld a, d
- ld [$FF00+$c7], a
- ld a, e
- ld [$FF00+$c8], a
- ret
-
-; known jump sources: c884a (32:484a), c89ff (32:49ff)
-Functionc8ef4: ; c8ef4 (32:4ef4)
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc9038
- jr nz, .asm_c8f00
- ld de, $36
- jr .asm_c8f03
-.asm_c8f00
- ld de, $2d5e
-.asm_c8f03
- ld a, d
- ld [$FF00+$c7], a
- ld a, e
- ld [$FF00+$c8], a
- ret
-
-; known jump sources: c8561 (32:4561), c85be (32:45be), c8603 (32:4603), c863b (32:463b), c865e (32:465e), c8685 (32:4685), c8705 (32:4705), c875d (32:475d), c87a3 (32:47a3), c8801 (32:4801), c8833 (32:4833), c8865 (32:4865), c88f2 (32:48f2), c8926 (32:4926), c8960 (32:4960), c89b1 (32:49b1), c89ea (32:49ea), c8a36 (32:4a36), c8afc (32:4afc), c8c9e (32:4c9e), c8cdd (32:4cdd)
-Functionc8f0a: ; c8f0a (32:4f0a)
- xor a
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
- call Functionc8eca
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- call Functionc8043
- ret
-
-; known jump sources: c8aac (32:4aac), c8b60 (32:4b60), c8dc9 (32:4dc9)
-Functionc8f19: ; c8f19 (32:4f19)
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld a, $e4
- ld [rBGP], a ; $ff00+$47
- ld [$cfc7], a
- ld [$cfc9], a
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
- call Functionc8eca
- ret
-
-; known jump sources: c85b6 (32:45b6), c8624 (32:4624), c8656 (32:4656), c867d (32:467d), c8724 (32:4724), c89d6 (32:49d6), c89e6 (32:49e6), c8af8 (32:4af8)
-Functionc8f2e: ; c8f2e (32:4f2e)
- push bc
- xor a
- ld [$d419], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- ld a, $80
- ld [$d41c], a
- ld bc, $d200
-.asm_c8f43
- ld a, [$FF00+$c7]
- cp c
- jr nc, .asm_c8f58
- ld a, [$FF00+$c8]
- cp c
- jr c, .asm_c8f58
- ld a, [$d41b]
- ld d, a
- ld a, [$d419]
- call Functionc905d
- ld [bc], a
-.asm_c8f58
- inc bc
- ld a, [$d41a]
- ld hl, $d419
- add [hl]
- ld [hl], a
- ld hl, $d41c
- dec [hl]
- jr nz, .asm_c8f43
- pop bc
- ret
-
-; known jump sources: c8554 (32:4554)
-Functionc8f69: ; c8f69 (32:4f69)
- push bc
- xor a
- ld [$d419], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- ld a, $40
- ld [$d41c], a
- ld bc, $d422
-.asm_c8f7e
- ld a, [$d41b]
- ld d, a
- ld a, [$d419]
- call Functionc905d
- ld [bc], a
- inc bc
- ld a, [$d41a]
- ld hl, $d419
- add [hl]
- ld [hl], a
- ld hl, $d41c
- dec [hl]
- jr nz, .asm_c8f7e
- pop bc
- ret
-
-; known jump sources: c85f8 (32:45f8)
-Functionc8f9a: ; c8f9a (32:4f9a)
- push bc
- ld [$d41c], a
- ld a, e
- ld [$d41a], a
- ld a, d
- ld [$d41b], a
- call Functionc8fe4
- ld hl, $d200
- add hl, de
- ld c, l
- ld b, h
-.asm_c8faf
- ld a, [$d41c]
- and a
- jr z, .asm_c8fe1
- dec a
- ld [$d41c], a
- push af
- ld a, [$d41b]
- ld d, a
- ld a, [$d41a]
- push hl
- call Functionc905d
- ld e, a
- pop hl
- ld a, [$FF00+$c8]
- cp c
- jr c, .asm_c8fcf
- ld a, e
- ld [bc], a
- inc bc
-.asm_c8fcf
- ld a, [$FF00+$c7]
- cp l
- jr nc, .asm_c8fd6
- ld [hl], e
- dec hl
-.asm_c8fd6
- ld a, [$d41a]
- add $4
- ld [$d41a], a
- pop af
- jr .asm_c8faf
-.asm_c8fe1
- pop bc
- and a
- ret
-
-; known jump sources: c8fa6 (32:4fa6)
-Functionc8fe4: ; c8fe4 (32:4fe4)
- ld a, [$FF00+$c7]
- ld e, a
- ld a, [$d419]
- add e
- ld e, a
- ld d, $0
- ret
-
-; known jump sources: c85ba (32:45ba), c8637 (32:4637), c865a (32:465a), c8681 (32:4681)
-Functionc8fef: ; c8fef (32:4fef)
- push bc
- ld a, [$FF00+$c7]
- ld l, a
- inc a
- ld e, a
- ld h, $d2
- ld d, h
- ld a, [$FF00+$c8]
- sub l
- and a
- jr z, .asm_c9009
- ld c, a
- ld a, [hl]
- push af
-.asm_c9001
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_c9001
- pop af
- ld [hl], a
-.asm_c9009
- pop bc
- ret
-
-; known jump sources: c88b4 (32:48b4), c8954 (32:4954), c899d (32:499d), c8c9a (32:4c9a), c8cd1 (32:4cd1), c8dbf (32:4dbf)
-Functionc900b: ; c900b (32:500b)
- push af
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- ld d, a
- pop af
-.asm_c9016
- ld [hli], a
- dec d
- jr nz, .asm_c9016
- ret
-
-; known jump sources: c8790 (32:4790), c87f7 (32:47f7), c8a2c (32:4a2c)
-Functionc901b: ; c901b (32:501b)
- push af
- ld e, a
- ld a, [$FF00+$c7]
- ld l, a
- ld a, [$FF00+$c8]
- sub l
- sub e
- ld d, a
- ld h, $d2
- ld a, [$FF00+$c7]
- ld l, a
- ld a, $90
-.asm_c902c
- ld [hli], a
- dec e
- jr nz, .asm_c902c
- pop af
- xor $ff
-.asm_c9033
- ld [hli], a
- dec d
- jr nz, .asm_c9033
- ret
-
-; known jump sources: c81c4 (32:41c4), c81f3 (32:41f3), c8234 (32:4234), c825e (32:425e), c82a1 (32:42a1), c82cb (32:42cb), c8305 (32:4305), c837b (32:437b), c83a8 (32:43a8), c8826 (32:4826), c8858 (32:4858), c890c (32:490c), c8b39 (32:4b39), c8de7 (32:4de7), c8ee0 (32:4ee0), c8ef6 (32:4ef6)
-Functionc9038: ; c9038 (32:5038)
- ld hl, $2
- add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
- and $1
- xor [hl]
- ret
-
-; known jump sources: c81ea (32:41ea), c8223 (32:4223), c8290 (32:4290)
-Functionc9042: ; c9042 (32:5042)
- ld hl, $2
- add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
- and $1
- xor [hl]
- jr nz, .asm_c9053
- ld a, [EnemySubStatus3] ; $c66f
- and $60
- ret
-.asm_c9053
- ld a, [PlayerSubStatus3] ; $c66a
- and $60
- ret
-
-; known jump sources: c8171 (32:4171), c818b (32:418b)
-Functionc9059: ; c9059 (32:5059)
- ld a, [hSGB] ; $ff00+$e7
- and a
- ret
-
-; known jump sources: c86d6 (32:46d6), c8951 (32:4951), c898c (32:498c), c8997 (32:4997), c8cce (32:4cce), c8d45 (32:4d45), c8f54 (32:4f54), c8f85 (32:4f85), c8fc2 (32:4fc2)
-Functionc905d: ; c905d (32:505d)
- ld e, a
- callab Functionce765
- ld a, e
- ret
-
-; known jump sources: c8a24 (32:4a24)
-Functionc9066: ; c9066 (32:5066)
- ld e, a
- callab Functionce76b
- ld a, e
- ret
-; c906f (32:506f)
-
-INCBIN "baserom.gbc",$c906f,$cbcdd - $c906f
+INCLUDE "battle/anims.asm"
Functioncbcdd: ; cbcdd
call Functioncbce5
@@ -90960,70 +73918,89 @@ Functioncbce5: ; cbce5
ret
; cbd2e
-INCBIN "baserom.gbc",$cbd2e,$cbe2b - $cbd2e
+TheEndGFX: ; cbd2e
+INCBIN "gfx/credits/theend.2bpp"
+; cbe2e
-SECTION "bank33",ROMX,BANK[$33]
+SECTION "bank33", ROMX, BANK[$33]
Functioncc000: ; cc000
+
call WhiteBGMap
call ClearTileMap
call ClearSprites
call Functione58
+
ld hl, Options
ld a, [hl]
push af
set 4, [hl]
- ld hl, TileMap
- ld b, $4
- ld c, $d
+
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 13
call TextBox
- ld hl, $c518
- ld b, $4
- ld c, $d
+
+ hlcoord 0, 6
+ ld b, 4
+ ld c, 13
call TextBox
- ld hl, $c4a2
- ld de, $40ae
+
+ hlcoord 2, 0
+ ld de, .Stock
call PlaceString
- ld hl, $c51a
- ld de, $40b8
+
+ hlcoord 2, 6
+ ld de, .This
call PlaceString
- ld hl, $c4f5
- ld de, $40a7
+
+ hlcoord 5, 4
+ ld de, .Health
call PlaceString
- ld hl, $c56d
- ld de, $40a7
+
+ hlcoord 5, 10
+ ld de, .Health
call PlaceString
+
ld a, [$df9c]
ld [$d265], a
call GetPokemonName
ld de, StringBuffer1
- ld hl, $c4c9
+ hlcoord 1, 2
call PlaceString
+
ld h, b
ld l, c
ld a, [$dfbb]
ld [TempMonLevel], a
call PrintLevel
+
ld de, EnemyMonNick
- ld hl, $c541
+ hlcoord 1, 8
call PlaceString
+
ld h, b
ld l, c
ld a, [EnemyMonLevel]
ld [TempMonLevel], a
call PrintLevel
- ld hl, $c4fb
+
+ hlcoord 11, 4
ld de, $dfc0
ld bc, $0203
call PrintNum
- ld hl, $c573
+
+ hlcoord 11, 10
ld de, EnemyMonMaxHPHi
call PrintNum
- ld hl, $40c2
+
+ ld hl, SwitchMonText
call PrintText
+
pop af
ld [Options], a
+
call WaitBGMap
ld b, $8
call GetSGBLayout
@@ -91031,7510 +74008,46 @@ Functioncc000: ; cc000
ret
; cc0a7
-INCBIN "baserom.gbc",$cc0a7,$cc0c7 - $cc0a7
+.Health
+ db "HEALTH@"
+.Stock
+ db " STOCK ", $4a, " @"
+.This
+ db " THIS ", $4a, " @"
+SwitchMonText: ; cc0c2
+ ; Switch #MON?
+ text_jump UnknownText_0x1c10cf
+ db "@"
+; cc0c7
Functioncc0c7: ; cc0c7
call GetPokemonName
- ld hl, $40d0
+ ld hl, AlreadyCaughtText
jp PrintText
; cc0d0
-INCBIN "baserom.gbc",$cc0d0,$cc0d5 - $cc0d0
+AlreadyCaughtText: ; 0xcc0d0
+ ; You already caught a @ .
+ text_jump UnknownText_0x1c10dd
+ db "@"
+; 0xcc0d5
-Functioncc0d5: ; cc0d5
+Predef2F:
+Predef38:
+Predef39: ; cc0d5
ret
; cc0d6
-Functioncc0d6: ; cc0d6
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Functioncc0e4
- pop af
- ld [rSVBK], a
- ret
-; cc0e4
-
-Functioncc0e4: ; cc0e4
- ld c, $6
-.asm_cc0e6
- call Functioncc1fb
- dec c
- jr nz, .asm_cc0e6
- call Functioncc8a4
- call Functioncc1e2
- call Functioncc1fb
- ld c, $1
- ld a, [rKEY1]
- bit 7, a
- jr nz, .asm_cc0ff
- ld c, $3
-
-.asm_cc0ff
- ld hl, $ff9e
- ld a, [hl]
- push af
- ld [hl], c
- call Functioncc11c
- pop af
- ld [$ff9e], a
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitSFX
- ret
-; cc11c
-
-Functioncc11c: ; cc11c
- ld a, [FXAnimIDHi]
- and a
- jr nz, .asm_cc156
- callba Function4ea44
- jr c, .asm_cc141
- call Functioncc1a1
- call Functioncc163
- call Functioncc8a4
- call Functioncc1e2
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call Functioncc1fb
- call Functioncc1bb
-
-.asm_cc141
- ld a, [$cfca]
- and a
- jr z, .asm_cc15f
- ld l, a
- ld h, $0
- ld de, $010e
- add hl, de
- ld a, l
- ld [FXAnimIDLo], a
- ld a, h
- ld [FXAnimIDHi], a
-
-.asm_cc156
- call WaitSFX
- call Functioncc881
- call Functioncc163
-
-.asm_cc15f
- call Functioncc8f6
- ret
-; cc163
-
-Functioncc163: ; cc163
- call Functioncc8d3
-.asm_cc166
- call Functioncc25f
- call Functionccb48
- call Functioncc96e
- call Function3b0c
- call Functioncc1e2
- ld a, [FXAnimIDHi]
- or a
- jr nz, .asm_cc193
- ld a, [FXAnimIDLo]
- cp $cd
- jr nz, .asm_cc193
- ld a, $2e
- ld b, $5
- ld de, $0004
- ld hl, $d3fa
-.asm_cc18c
- cp [hl]
- jr z, .asm_cc196
- add hl, de
- dec b
- jr nz, .asm_cc18c
-
-.asm_cc193
- call Functioncc1fb
-
-.asm_cc196
- ld a, [$d40f]
- bit 0, a
- jr z, .asm_cc166
- call Functioncc23d
- ret
-; cc1a1
-
-Functioncc1a1: ; cc1a1
- call Functioncc1fb
- call WaitTop
- call Functioncc207
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitTop
- ret
-; cc1bb
-
-Functioncc1bb: ; cc1bb
- call Functioncc1fb
- call WaitTop
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, UpdateBattleHuds
- ld a, $f
- rst FarCall
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hBGMapMode], a
- call Functioncc1fb
- call Functioncc1fb
- call Functioncc1fb
- call WaitTop
- ret
-; cc1e2
-
-Functioncc1e2: ; cc1e2
- ld a, [hCGB]
- and a
- ret z
- ld a, [rBGP]
- ld b, a
- ld a, [$cfc7]
- cp b
- call nz, Functioncc91a
- ld a, [rOBP0]
- ld b, a
- ld a, [$cfc8]
- cp b
- call nz, Functioncc94b
- ret
-; cc1fb
-
-Functioncc1fb: ; cc1fb
- ld a, $1
- ld [VBlankOccurred], a
-.asm_cc200
- ld a, [VBlankOccurred]
- and a
- jr nz, .asm_cc200
- ret
-; cc207
-
-Functioncc207: ; cc207
- ld a, [hBattleTurn]
- and a
- jr z, .asm_cc216
- ld hl, $c4a1
- ld bc, $040a
- call ClearBox
- ret
-
-.asm_cc216
- ld hl, $c535
- ld bc, $050b
- call ClearBox
- ret
-; cc220
-
-INCBIN "baserom.gbc",$cc220,$cc23d - $cc220
-
-
-Functioncc23d: ; cc23d
- ld a, [$d40f]
- bit 3, a
- jr z, .asm_cc254
- ld hl, $c403
- ld c, $28
-.asm_cc249
- ld a, [hl]
- and $f0
- ld [hli], a
- inc hl
- inc hl
- inc hl
- dec c
- jr nz, .asm_cc249
- ret
-
-.asm_cc254
- ld hl, Sprites
- ld c, $a0
- xor a
-.asm_cc25a
- ld [hli], a
- dec c
- jr nz, .asm_cc25a
- ret
-; cc25f
-
-Functioncc25f: ; cc25f
- call Functioncc267
- ret nc
- call Functioncc275
- ret
-; cc267
-
-Functioncc267: ; cc267
- ld a, [$d412]
- and a
- jr z, .asm_cc273
- dec a
- ld [$d412], a
- and a
- ret
-
-.asm_cc273
- scf
- ret
-; cc275
-
-Functioncc275: ; cc275
-.asm_cc275
- call Function3af0
- cp $ff
- jr nz, .asm_cc286
- ld hl, $d40f
- bit 1, [hl]
- jr nz, .asm_cc28e
- set 0, [hl]
- ret
-
-.asm_cc286
- cp $d0
- jr nc, .asm_cc28e
- ld [$d412], a
- ret
-
-.asm_cc28e
- call Functioncc293
- jr .asm_cc275
-; cc293
-
-Functioncc293: ; cc293
- ld a, [$d417]
- sub $d0
- ld e, a
- ld d, $0
- ld hl, $42a4
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; cc2a4
-
-
-; no known jump sources
-Jumptable_cc2a4: ; cc2a4 (33:42a4)
- dw Functioncc41f
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc485
- dw Functioncc4c0
- dw Functioncc506
- dw Functioncc4e3
- dw Functioncc52c
- dw Functioncc57e
- dw Functioncc5d0
- dw Functioncc5dc
- dw Functioncc640
- dw Functioncc750
- dw Functioncc46c
- dw Functioncc7cd
- dw Functioncc807
- dw Functioncc6cf
- dw Functioncc7bb
- dw Functioncc7bf
- dw Functioncc479
- dw Functioncc776
- dw Functioncc5db
- dw Functioncc622
- dw Functioncc735
- dw Functioncc304
- dw Functioncc304
- dw Functioncc304
- dw Functioncc304
- dw Functioncc3fa
- dw Functioncc383
- dw Functioncc43b
- dw Functioncc457
- dw Functioncc45e
- dw Functioncc465
- dw Functioncc7c4
- dw Functioncc7ca
- dw Functioncc7cb
- dw Functioncc7cc
- dw Functioncc3d6
- dw Functioncc3a6
- dw Functioncc3ad
- dw Functioncc3b2
- dw Functioncc339
- dw Functioncc348
- dw Functioncc317
- dw Functioncc305
-
-
-; no known jump sources
-Functioncc304: ; cc304 (33:4304)
- ret
-
-; no known jump sources
-Functioncc305: ; cc305 (33:4305)
- ld hl, $d40f
- res 1, [hl]
- ld hl, $d413
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc317: ; cc317 (33:4317)
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- push de
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $d413
- ld [hl], e
- inc hl
- ld [hl], d
- pop de
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $d40f
- set 1, [hl]
- ret
-
-; no known jump sources
-Functioncc339: ; cc339 (33:4339)
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc348: ; cc348 (33:4348)
- call Function3af0
- ld hl, $d40f
- bit 2, [hl]
- jr nz, .asm_cc35b
- and a
- jr z, .asm_cc363
- dec a
- set 2, [hl]
- ld [$d415], a
-.asm_cc35b
- ld hl, $d415
- ld a, [hl]
- and a
- jr z, .asm_cc372
- dec [hl]
-.asm_cc363
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_cc372
- ld hl, $d40f
- res 2, [hl]
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncc383: ; cc383 (33:4383)
- ld hl, $c689
- ld a, [hl]
- and a
- jr z, .asm_cc39a
- dec [hl]
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_cc39a
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncc3a6: ; cc3a6 (33:43a6)
- call Function3af0
- ld [$d416], a
- ret
-
-; no known jump sources
-Functioncc3ad: ; cc3ad (33:43ad)
- ld hl, $d416
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc3b2: ; cc3b2 (33:43b2)
- call Function3af0
- ld hl, $d416
- cp [hl]
- jr z, .asm_cc3c7
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc3c7
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc3d6: ; cc3d6 (33:43d6)
- call Function3af0
- ld hl, $c689
- cp [hl]
- jr z, .asm_cc3eb
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc3eb
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc3fa: ; cc3fa (33:43fa)
- call Function3af0
- ld e, a
- ld a, [$c689]
- and e
- jr nz, .asm_cc410
- ld hl, $d410
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-.asm_cc410
- call Function3af0
- ld e, a
- call Function3af0
- ld d, a
- ld hl, $d410
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncc41f: ; cc41f (33:441f)
- call Function3af0
- ld [$d419], a
- call Function3af0
- ld [$d41a], a
- call Function3af0
- ld [$d41b], a
- call Function3af0
- ld [$d41c], a
- call Functioncc9a1
- ret
-
-; no known jump sources
-Functioncc43b: ; cc43b (33:443b)
- call Function3af0
- ld [$d419], a
- call Function3af0
- ld [$d41a], a
- call Function3af0
- ld [$d41b], a
- call Function3af0
- ld [$d41c], a
- call Functionccb4f
- ret
-
-; no known jump sources
-Functioncc457: ; cc457 (33:4457)
- call Function3af0
- ld [$cfc7], a
- ret
-
-; no known jump sources
-Functioncc45e: ; cc45e (33:445e)
- call Function3af0
- ld [$cfc8], a
- ret
-
-; no known jump sources
-Functioncc465: ; cc465 (33:4465)
- call Function3af0
- ld [$cfc9], a
- ret
-
-; no known jump sources
-Functioncc46c: ; cc46c (33:446c)
- ld a, [hSGB] ; $ff00+$e7
- and a
- ld a, $e0
- jr z, .asm_cc475
- ld a, $f0
-.asm_cc475
- ld [$cfc8], a
- ret
-
-; no known jump sources
-Functioncc479: ; cc479 (33:4479)
- ld hl, $d30a
- ld a, $a0
-.asm_cc47e
- ld [hl], $0
- inc hl
- dec a
- jr nz, .asm_cc47e
- ret
-
-; no known jump sources
-Functioncc485: ; cc485 (33:4485)
- ld a, [$d417]
- and $f
- ld c, a
- ld hl, $d300
- xor a
- ld [$d419], a
-.asm_cc492
- ld a, [$d419]
- cp $4f
- ret nc
- call Function3af0
- ld [hli], a
- ld a, [$d419]
- ld [hli], a
- push bc
- push hl
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, $8310
- add hl, de
- ld a, [$d417]
- call Functionce846
- ld a, [$d419]
- add c
- ld [$d419], a
- pop hl
- pop bc
- dec c
- jr nz, .asm_cc492
- ret
-
-; no known jump sources
-Functioncc4c0: ; cc4c0 (33:44c0)
- call Function3af0
- ld e, $a
- ld bc, $d30a
-.asm_cc4c8
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc4dd
- ld hl, $18
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc4c8
- ret
-.asm_cc4dd
- ld hl, $e
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc4e3: ; cc4e3 (33:44e3)
- call Function3af0
- ld e, $5
- ld bc, $d3fa
-.asm_cc4eb
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc500
- ld hl, $4
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc4eb
- ret
-.asm_cc500
- ld hl, $1
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncc506: ; cc506 (33:4506)
- call Function3af0
- ld e, $a
- ld bc, $d30a
-.asm_cc50e
- ld hl, $0
- add hl, bc
- ld d, [hl]
- ld a, [$d417]
- cp d
- jr z, .asm_cc523
- ld hl, $18
- add hl, bc
- ld c, l
- ld b, h
- dec e
- jr nz, .asm_cc50e
- ret
-.asm_cc523
- call Function3af0
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncc52c: ; cc52c (33:452c)
- ld hl, $d300
-.asm_cc52f
- ld a, [hl]
- and a
- jr z, .asm_cc537
- inc hl
- inc hl
- jr .asm_cc52f
-.asm_cc537
- ld a, $28
- ld [hli], a
- ld a, $42
- ld [hli], a
- ld a, $29
- ld [hli], a
- ld a, $49
- ld [hl], a
- ld hl, $8730
- ld de, $9060
- ld a, $70
- ld [$d419], a
- ld a, $7
- call Functioncc561
- ld de, $9310
- ld a, $60
- ld [$d419], a
- ld a, $6
- call Functioncc561
- ret
-
-; known jump sources: cc550 (33:4550), cc55d (33:455d), cc57b (33:457b)
-Functioncc561: ; cc561 (33:4561)
- push af
- push hl
- push de
- ld bc, $3301
- call Request2bpp
- pop de
- ld a, [$d419]
- ld l, a
- ld h, $0
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld bc, $10
- add hl, bc
- pop af
- dec a
- jr nz, Functioncc561
- ret
-
-; no known jump sources
-Functioncc57e: ; cc57e (33:457e)
- ld hl, $d300
-.asm_cc581
- ld a, [hl]
- and a
- jr z, .asm_cc589
- inc hl
- inc hl
- jr .asm_cc581
-.asm_cc589
- ld a, $28
- ld [hli], a
- ld a, $35
- ld [hli], a
- ld a, $29
- ld [hli], a
- ld a, $43
- ld [hl], a
- ld hl, $8660
- ld de, $9050
- ld a, $70
- ld [$d419], a
- ld a, $7
- call Functioncc5b3
- ld de, $9310
- ld a, $60
- ld [$d419], a
- ld a, $6
- call Functioncc5b3
- ret
-
-; known jump sources: cc5a2 (33:45a2), cc5af (33:45af), cc5cd (33:45cd)
-Functioncc5b3: ; cc5b3 (33:45b3)
- push af
- push hl
- push de
- ld bc, $3302
- call Request2bpp
- pop de
- ld a, [$d419]
- ld l, a
- ld h, $0
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld bc, $20
- add hl, bc
- pop af
- dec a
- jr nz, Functioncc5b3
- ret
-
-; no known jump sources
-Functioncc5d0: ; cc5d0 (33:45d0)
- callab Functionf971
- ld a, c
- ld [$d416], a
- ret
-
-; no known jump sources
-Functioncc5db: ; cc5db (33:45db)
- ret
-
-; no known jump sources
-Functioncc5dc: ; cc5dc (33:45dc)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc604
- ld a, [TempBattleMonSpecies] ; $d205
- ld [CurPartySpecies], a ; $d108
- ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
- ld a, $2d
- call Predef
- ld de, $8000
- ld a, $3c
- call Predef
- jr .asm_cc61a
-.asm_cc604
- ld a, [TempEnemyMonSpecies] ; $d204
- ld [CurPartySpecies], a ; $d108
- ld hl, EnemyMonAtkDefDV ; $d20c (aliases: EnemyMonDVs, EnemyMonMovesEnd)
- ld a, $2d
- call Predef
- ld de, $8000
- ld a, $3d
- call Predef
-.asm_cc61a
- pop af
- ld [CurPartySpecies], a ; $d108
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc622: ; cc622 (33:4622)
- ld de, $8000
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc635
- ld hl, $9000
- ld b, $0
- ld c, $31
- call Request2bpp
- ret
-.asm_cc635
- ld hl, $9310
- ld b, $0
- ld c, $24
- call Request2bpp
- ret
-
-; no known jump sources
-Functioncc640: ; cc640 (33:4640)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- ld hl, $a000
- ld bc, $310
-.asm_cc651
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc651
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc68f
- ld hl, $6a80
- ld de, $a130
- call Functioncc6c6
- ld hl, $6a90
- ld de, $a1a0
- call Functioncc6c6
- ld hl, $6aa0
- ld de, $a140
- call Functioncc6c6
- ld hl, $6ab0
- ld de, $a1b0
- call Functioncc6c6
- ld hl, $9000
- ld de, $a000
- ld bc, $3331
- call Request2bpp
- jr .asm_cc6bf
-.asm_cc68f
- ld hl, $6ac0
- ld de, $a100
- call Functioncc6c6
- ld hl, $6ad0
- ld de, $a160
- call Functioncc6c6
- ld hl, $6ae0
- ld de, $a110
- call Functioncc6c6
- ld hl, $6af0
- ld de, $a170
- call Functioncc6c6
- ld hl, $9310
- ld de, $a000
- ld bc, $3324
- call Request2bpp
-.asm_cc6bf
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: cc663 (33:4663), cc66c (33:466c), cc675 (33:4675), cc67e (33:467e), cc695 (33:4695), cc69e (33:469e), cc6a7 (33:46a7), cc6b0 (33:46b0)
-Functioncc6c6: ; cc6c6 (33:46c6)
- ld bc, $10
- ld a, $31
- call FarCopyBytes
- ret
-
-; no known jump sources
-Functioncc6cf: ; cc6cf (33:46cf)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- call Functioncc6e7
- call Request2bpp
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: cc6da (33:46da), cc740 (33:4740)
-Functioncc6e7: ; cc6e7 (33:46e7)
- ld hl, $a000
- ld bc, $310
-.asm_cc6ed
- xor a
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc6ed
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc709
- ld de, $a1a0
- call Functioncc719
- ld hl, $9000
- ld de, $a000
- ld bc, $3331
- ret
-.asm_cc709
- ld de, $a160
- call Functioncc719
- ld hl, $9310
- ld de, $a000
- ld bc, $3324
- ret
-
-; known jump sources: cc6fc (33:46fc), cc70c (33:470c)
-Functioncc719: ; cc719 (33:4719)
- ld hl, $4725
- ld bc, $10
- ld a, $33
- call FarCopyBytes
- ret
-; cc725 (33:4725)
-
-INCBIN "baserom.gbc",$cc725,$cc735 - $cc725
-
-; no known jump sources
-Functioncc735: ; cc735 (33:4735)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- xor a
- call GetSRAMBank
- call Functioncc6e7
- ld hl, $8000
- call Request2bpp
- call CloseSRAM
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc750: ; cc750 (33:4750)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc768
- callab Function3f486
- jr .asm_cc76e
-.asm_cc768
- callab Function3f447
-.asm_cc76e
- pop af
- ld [CurPartySpecies], a ; $d108
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc776: ; cc776 (33:4776)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurPartySpecies] ; $d108
- push af
- ld a, [$c689]
- ld [CurPartySpecies], a ; $d108
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cc79e
- ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
- ld a, $2d
- call Predef
- ld de, $9000
- ld a, $3c
- call Predef
- jr .asm_cc7ae
-.asm_cc79e
- ld hl, EnemyMonAtkDefDV ; $d20c (aliases: EnemyMonDVs, EnemyMonMovesEnd)
- ld a, $2d
- call Predef
- ld de, $9310
- ld a, $3d
- call Predef
-.asm_cc7ae
- pop af
- ld [CurPartySpecies], a ; $d108
- ld b, $1
- call GetSGBLayout
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; no known jump sources
-Functioncc7bb: ; cc7bb (33:47bb)
- xor a
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; no known jump sources
-Functioncc7bf: ; cc7bf (33:47bf)
- ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; no known jump sources
-Functioncc7c4: ; cc7c4 (33:47c4)
- ld hl, $d40f
- set 3, [hl]
- ret
-
-; no known jump sources
-Functioncc7ca: ; cc7ca (33:47ca)
- ret
-
-; no known jump sources
-Functioncc7cb: ; cc7cb (33:47cb)
- ret
-
-; no known jump sources
-Functioncc7cc: ; cc7cc (33:47cc)
- ret
-
-; no known jump sources
-Functioncc7cd: ; cc7cd (33:47cd)
- call Function3af0
- ld e, a
- srl a
- srl a
- ld [$c2be], a
- call Functioncc7fc
- and $3
- ld [CryTracks], a ; $c2bd
- ld e, a
- ld d, $0
- ld hl, $47f8
- add hl, de
- ld a, [hl]
- ld [$c2bc], a
- call Function3af0
- ld e, a
- ld d, $0
- callab PlayStereoSFX
- ret
-; cc7f8 (33:47f8)
-
-INCBIN "baserom.gbc",$cc7f8,$cc7fc - $cc7f8
-
-; known jump sources: cc7d8 (33:47d8)
-Functioncc7fc: ; cc7fc (33:47fc)
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_cc803
- ld a, e
- ret
-.asm_cc803
- ld a, e
- xor $1
- ret
-
-; no known jump sources
-Functioncc807: ; cc807 (33:4807)
- call Function3af0
- and $3
- ld e, a
- ld d, $0
- ld hl, $4871
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_cc82c
- ld a, $f0
- ld [CryTracks], a ; $c2bd
- ld a, [BattleMonSpecies] ; $c62c
- jr .asm_cc834
-.asm_cc82c
- ld a, $f
- ld [CryTracks], a ; $c2bd
- ld a, [EnemyMon] ; $d206 (aliases: EnemyMonSpecies)
-.asm_cc834
- push hl
- call Function37f3
- pop hl
- jr c, .asm_cc86d
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- ld hl, CryPitch ; $c2b0
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, l
- ld [CryPitch], a ; $c2b0
- ld a, h
- ld [CryEcho], a ; $c2b1
- pop hl
- ld a, [hli]
- ld c, a
- ld b, [hl]
- ld hl, CryLength ; $c2b2
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, l
- ld [CryLength], a ; $c2b2
- ld a, h
- ld [$c2b3], a
- ld a, $1
- ld [$c2bc], a
- callab PlayCry
-.asm_cc86d
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; cc871 (33:4871)
-
-INCBIN "baserom.gbc",$cc871,$cc881 - $cc871
-
-
-Functioncc881: ; cc881
- ld a, [$cfca]
- cp $1
- jr z, .asm_cc88b
- cp $4
- ret nz
-
-.asm_cc88b
- ld a, [TypeModifier]
- and $7f
- ret z
- cp $a
- ld de, $00ac
- jr z, .asm_cc8a0
- ld de, $00ad
- jr nc, .asm_cc8a0
- ld de, $00ab
-
-.asm_cc8a0
- call PlaySFX
- ret
-; cc8a4
-
-Functioncc8a4: ; cc8a4
- ld a, [hCGB]
- and a
- jr nz, .asm_cc8be
- ld a, [hSGB]
- and a
- ld a, $e0
- jr z, .asm_cc8b2
- ld a, $f0
-
-.asm_cc8b2
- ld [$cfc8], a
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc9], a
- ret
-
-.asm_cc8be
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc8], a
- ld [$cfc9], a
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- ret
-; cc8d3
-
-Functioncc8d3: ; cc8d3
- ld hl, LYOverrides
- ld bc, $0354
-.asm_cc8d9
- ld [hl], $0
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_cc8d9
- ld hl, FXAnimIDLo
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $506f
- add hl, de
- add hl, de
- call Function3ae1
- call Functioncc8a4
- call Functioncc1fb
- ret
-; cc8f6
-
-Functioncc8f6: ; cc8f6
- call WaitTop
- ld a, $e4
- ld [$cfc7], a
- ld [$cfc8], a
- ld [$cfc9], a
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call Functioncc1fb
- ld a, $1
- ld [hBGMapMode], a
- ret
-; cc91a
-
-Functioncc91a: ; cc91a
- ld [rBGP], a
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d080
- ld de, $d000
- ld a, [rBGP]
- ld b, a
- ld c, $7
- call CopyPals
- ld hl, $d0c0
- ld de, MartPointer
- ld a, [rBGP]
- ld b, a
- ld c, $2
- call CopyPals
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; cc94b
-
-Functioncc94b: ; cc94b
- ld [rOBP0], a
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d0d0
- ld de, $d050
- ld a, [rOBP0]
- ld b, a
- ld c, $2
- call CopyPals
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; cc96e
-
-Functioncc96e: ; cc96e
- ld a, $0
- ld [$d418], a
- ld hl, $d30a
- ld e, $a
-.asm_cc978
- ld a, [hl]
- and a
- jr z, .asm_cc98a
- ld c, l
- ld b, h
- push hl
- push de
- call Functionccfbe
- call Functioncca09
- pop de
- pop hl
- jr c, .asm_cc9a0
-
-.asm_cc98a
- ld bc, $0018
- add hl, bc
- dec e
- jr nz, .asm_cc978
- ld a, [$d418]
- ld l, a
- ld h, $c4
-.asm_cc997
- ld a, l
- cp $a0
- jr nc, .asm_cc9a0
- xor a
- ld [hli], a
- jr .asm_cc997
-
-.asm_cc9a0
- ret
-; cc9a1
-
-
-; known jump sources: cc437 (33:4437)
-Functioncc9a1: ; cc9a1 (33:49a1)
- ld hl, $d30a
- ld e, $a
-.asm_cc9a6
- ld a, [hl]
- and a
- jr z, .asm_cc9b3
- ld bc, $18
- add hl, bc
- dec e
- jr nz, .asm_cc9a6
- scf
- ret
-.asm_cc9b3
- ld c, l
- ld b, h
- ld hl, $d40e
- inc [hl]
- call Functioncc9c4
- ret
-
-
-Functioncc9bd: ; cc9bd
- ld hl, $0000
- add hl, bc
- ld [hl], $0
- ret
-; cc9c4
-
-
-; known jump sources: cc9b9 (33:49b9)
-Functioncc9c4: ; cc9c4 (33:49c4)
- ld a, [$d419]
- ld e, a
- ld d, $0
- ld hl, $4b56
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- add hl, de
- ld e, l
- ld d, h
- ld hl, $0
- add hl, bc
- ld a, [$d40e]
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- call Functionccb31
- ld [hli], a
- ld a, [$d41a]
- ld [hli], a
- ld a, [$d41b]
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld a, [$d41c]
- ld [hli], a
- xor a
- ld [hli], a
- dec a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ret
-
-
-Functioncca09: ; cca09
- call Functionccaaa
- call Functionce7d1
- cp EGG
- jp z, .asm_ccaa5
- cp NUM_POKEMON + 1
- jp z, .asm_ccaa2
- push af
- ld hl, $d419
- ld a, [$d420]
- xor [hl]
- and $e0
- ld [hl], a
- pop af
- push bc
- call Functionce83c
- ld a, [$d41b]
- add [hl]
- ld [$d41b], a
- inc hl
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d418]
- ld e, a
- ld d, $c4
-.asm_cca3c
- ld a, [$d41d]
- ld b, a
- ld a, [$d41f]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, $d419
- bit 6, [hl]
- jr z, .asm_cca53
- add $8
- xor $ff
- inc a
-
-.asm_cca53
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [$d41c]
- ld b, a
- ld a, [$d41e]
- add b
- ld b, a
- push hl
- ld a, [hl]
- ld hl, $d419
- bit 5, [hl]
- jr z, .asm_cca6f
- add $8
- xor $ff
- inc a
-
-.asm_cca6f
- pop hl
- add b
- ld [de], a
- inc hl
- inc de
- ld a, [$d41b]
- add $31
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [$d419]
- ld b, a
- ld a, [hl]
- xor b
- and $e0
- ld b, a
- ld a, [hl]
- and $10
- or b
- ld b, a
- ld a, [OTPartyMon6Nickname]
- and $f
- or b
- ld [de], a
- inc hl
- inc de
- ld a, e
- ld [$d418], a
- cp $a0
- jr nc, .asm_ccaa7
- dec c
- jr nz, .asm_cca3c
- pop bc
- jr .asm_ccaa5
-
-.asm_ccaa2
- call Functioncc9bd
-
-.asm_ccaa5
- and a
- ret
-
-.asm_ccaa7
- pop bc
- scf
- ret
-; ccaaa
-
-Functionccaaa: ; ccaaa
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- and $80
- ld [$d419], a
- xor a
- ld [$d420], a
- ld hl, $0005
- add hl, bc
- ld a, [hl]
- ld [OTPartyMon6Nickname], a
- ld hl, $0002
- add hl, bc
- ld a, [hl]
- ld [$d41a], a
- ld hl, $0006
- add hl, bc
- ld a, [hli]
- ld [$d41b], a
- ld a, [hli]
- ld [$d41c], a
- ld a, [hli]
- ld [$d41d], a
- ld a, [hli]
- ld [$d41e], a
- ld a, [hli]
- ld [$d41f], a
- ld a, [hBattleTurn]
- and a
- ret z
- ld hl, $0001
- add hl, bc
- ld a, [hl]
- ld [$d419], a
- bit 0, [hl]
- ret z
- ld hl, $0007
- add hl, bc
- ld a, [hli]
- ld d, a
- ld a, $b4
- sub d
- ld [$d41c], a
- ld a, [hli]
- ld d, a
- ld a, [$d41a]
- cp $ff
- jr nz, .asm_ccb09
- ld a, $28
- add d
- jr .asm_ccb26
-
-.asm_ccb09
- sub d
- push af
- ld a, [FXAnimIDHi]
- or a
- jr nz, .asm_ccb25
- ld a, [FXAnimIDLo]
- cp $86
- jr z, .asm_ccb20
- cp $87
- jr z, .asm_ccb20
- cp $d0
- jr nz, .asm_ccb25
-
-.asm_ccb20
- pop af
- sub $8
- jr .asm_ccb26
-
-.asm_ccb25
- pop af
-
-.asm_ccb26
- ld [$d41d], a
- ld a, [hli]
- xor $ff
- inc a
- ld [$d41e], a
- ret
-; ccb31
-
-
-; known jump sources: cc9ed (33:49ed)
-Functionccb31: ; ccb31 (33:4b31)
- push hl
- push bc
- ld hl, $d300
- ld b, a
- ld c, $5
-.asm_ccb39
- ld a, [hli]
- cp b
- jr z, .asm_ccb44
- inc hl
- dec c
- jr nz, .asm_ccb39
- xor a
- jr .asm_ccb45
-.asm_ccb44
- ld a, [hl]
-.asm_ccb45
- pop bc
- pop hl
- ret
-
-
-Functionccb48: ; ccb48
- callab Functionc8000
- ret
-; ccb4f
-
-
-; known jump sources: cc453 (33:4453)
-Functionccb4f: ; ccb4f (33:4b4f)
- callab Functionc801a
- ret
-; ccb56 (33:4b56)
-
-INCBIN "baserom.gbc",$ccb56,$ccfbe - $ccb56
-
-
-Functionccfbe: ; ccfbe
- ld hl, $0004
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $4fce
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; ccfce
-
-
-; no known jump sources
-Jumptable_ccfce: ; ccfce (33:4fce)
- dw Functioncd06e
- dw Functioncd12a
- dw Functioncd146
- dw Functioncd0e3
- dw Functioncd0a6
- dw Functioncd081
- dw Functioncd079
- dw Functioncd2be
- dw Functioncd306
- dw Functioncd3ae
- dw Functioncd3f2
- dw Functioncd478
- dw Functioncd5e9
- dw Functioncd66a
- dw Functioncd6e3
- dw Functioncd71a
- dw Functioncd284
- dw Functioncd777
- dw Functioncd15c
- dw Functioncd212
- dw Functioncd7a4
- dw Functioncd80c
- dw Functioncd824
- dw Functioncd89a
- dw Functioncd900
- dw Functioncd954
- dw Functioncdafa
- dw Functioncdb06
- dw Functioncda0a
- dw Functioncdb80
- dw Functioncdca6
- dw Functioncda31
- dw Functioncda4d
- dw Functioncdcc3
- dw Functioncdd2a
- dw Functioncdd90
- dw Functioncddf9
- dw Functioncde28
- dw Functioncde54
- dw Functioncde6b
- dw Functioncde89
- dw Functioncdedd
- dw Functioncdf59
- dw Functionce063
- dw Functionce0c5
- dw Functioncdf1b
- dw Functionce10e
- dw Functionce15c
- dw Functionce1e7
- dw Functionce226
- dw Functionce255
- dw Functionce2cc
- dw Functioncdf8c
- dw Functionce00b
- dw Functionce2fd
- dw Functionce35f
- dw Functionce389
- dw Functionce3b4
- dw Functionce3d2
- dw Functionce3ff
- dw Functioncdfcb
- dw Functionce416
- dw Functionce43a
- dw Functioncdad6
- dw Functionce49c
- dw Functionce4dc
- dw Functionce1b0
- dw Functionce508
- dw Functionce532
- dw Functionce55b
- dw Functionce593
- dw Functionce5b4
- dw Functionce5dc
- dw Functionce5ee
- dw Functionce62f
- dw Functionce688
- dw Functionce6b3
- dw Functionce6d2
- dw Functioncd58a
- dw Functionce6bf
-
-
-; no known jump sources
-Functioncd06e: ; cd06e (33:506e)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd071: ; cd071 (33:5071)
- dw Functioncd078
- dw Functioncd075
-
-
-; no known jump sources
-Functioncd075: ; cd075 (33:5075)
- call Functioncc9bd
-
-; no known jump sources
-Functioncd078: ; cd078 (33:5078)
- ret
-
-; no known jump sources
-Functioncd079: ; cd079 (33:5079)
- call Functioncd081
- ret c
- call Functioncc9bd
- ret
-
-; known jump sources: cd079 (33:5079), cd17e (33:517e), cd22b (33:522b)
-Functioncd081: ; cd081 (33:5081)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- scf
- ret
-
-; no known jump sources
-Functioncd0a6: ; cd0a6 (33:50a6)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, .asm_cd0b3
- call Functioncc9bd
- ret
-.asm_cd0b3
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- sra a
- sra a
- sra a
- ld [hl], a
- ret
-
-; known jump sources: cdafa (33:5afa)
-Functioncd0e3: ; cd0e3 (33:50e3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd0e6: ; cd0e6 (33:50e6)
- dw Functioncd0ea
- dw Functioncd106
-
-
-; no known jump sources
-Functioncd0ea: ; cd0ea (33:50ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- ld a, $0
- jr z, .asm_cd0f9
- ld a, $20
-.asm_cd0f9
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd106: ; cd106 (33:5106)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncd12a: ; cd12a (33:512a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd12d: ; cd12d (33:512d)
- dw Functioncd135
- dw Functioncd131
-
-
-; no known jump sources
-Functioncd131: ; cd131 (33:5131)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd135: ; cd135 (33:5135)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functioncd146: ; cd146 (33:5146)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cd158
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd158
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd15c: ; cd15c (33:515c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd15f: ; cd15f (33:515f)
- dw Functioncd177
- dw Functioncd17e
- dw Functioncd1dc
- dw Functioncd196
- dw Functioncd1a7
- dw Functioncd1dc
- dw Functioncd1d2
- dw Functioncd1dd
- dw Functioncd1ee
- dw Functioncd1dc
- dw Functioncd1ee
- dw Functioncd20e
-
-
-; no known jump sources
-Functioncd177: ; cd177 (33:5177)
- call Functioncd249
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd17e: ; cd17e (33:517e)
- call Functioncd081
- ret c
- ld hl, $a
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- add [hl]
- ld [hl], a
- ld a, $b
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd196: ; cd196 (33:5196)
- call Functionce72c
- ld a, $9
- call Functionce7bf
- ld hl, $f
- add hl, bc
- ld [hl], $0
- inc hl
- ld [hl], $10
-
-; no known jump sources
-Functioncd1a7: ; cd1a7 (33:51a7)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- ret nz
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- ret nz
- ld a, $c
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd1d2: ; cd1d2 (33:51d2)
- ld a, $d
- call Functionce7bf
- ld hl, $e
- add hl, bc
- dec [hl]
-
-; no known jump sources
-Functioncd1dc: ; cd1dc (33:51dc)
- ret
-
-; no known jump sources
-Functioncd1dd: ; cd1dd (33:51dd)
- call Functioncd249
- ld a, $a
- call Functionce7bf
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $20
-
-; no known jump sources
-Functioncd1ee: ; cd1ee (33:51ee)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec a
- ld [hl], a
- and $1f
- jr z, Functioncd20e
- and $f
- ret nz
- call Functionce72c
- ret
-
-; known jump sources: cd205 (33:5205)
-Functioncd20e: ; cd20e (33:520e)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd212: ; cd212 (33:5212)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd215: ; cd215 (33:5215)
- dw Functioncd21b
- dw Functioncd222
- dw Functioncd232
-
-
-; no known jump sources
-Functioncd21b: ; cd21b (33:521b)
- call Functioncd249
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd222: ; cd222 (33:5222)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $70
- jr nc, .asm_cd22f
- call Functioncd081
- ret
-.asm_cd22f
- call Functionce72c
-
-; no known jump sources
-Functioncd232: ; cd232 (33:5232)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd245
- add $4
- ld [hl], a
- ld hl, $7
- add hl, bc
- dec [hl]
- dec [hl]
- ret
-.asm_cd245
- call Functioncc9bd
- ret
-
-; known jump sources: cd177 (33:5177), cd1dd (33:51dd), cd21b (33:521b)
-Functioncd249: ; cd249 (33:5249)
- ld hl, $526c
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [CurItem] ; $d106
- ld e, a
- pop af
- ld [rSVBK], a ; $ff00+$70
-.asm_cd25a
- ld a, [hli]
- cp $ff
- jr z, .asm_cd265
- cp e
- jr z, .asm_cd265
- inc hl
- jr .asm_cd25a
-.asm_cd265
- ld a, [hl]
- ld hl, $5
- add hl, bc
- ld [hl], a
- ret
-; cd26c (33:526c)
-
-INCBIN "baserom.gbc",$cd26c,$cd284 - $cd26c
-
-; no known jump sources
-Functioncd284: ; cd284 (33:5284)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd287: ; cd287 (33:5287)
- dw Functioncd291
- dw Functioncd2a0
- dw Functioncd2b1
- dw Functioncd2b5
- dw Functioncd2bd
-
-
-; no known jump sources
-Functioncd291: ; cd291 (33:5291)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd2a0: ; cd2a0 (33:52a0)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- ret nc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functioncd2b1: ; cd2b1 (33:52b1)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd2b5: ; cd2b5 (33:52b5)
- call Functionce72c
- ld a, $f
- call Functionce7bf
-
-; no known jump sources
-Functioncd2bd: ; cd2bd (33:52bd)
- ret
-
-; no known jump sources
-Functioncd2be: ; cd2be (33:52be)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd2c1: ; cd2c1 (33:52c1)
- dw Functioncd2c5
- dw Functioncd2d1
-
-
-; no known jump sources
-Functioncd2c5: ; cd2c5 (33:52c5)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $30
- inc hl
- ld [hl], $48
-
-; no known jump sources
-Functioncd2d1: ; cd2d1 (33:52d1)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- sub [hl]
- jr z, .asm_cd302
- jr c, .asm_cd302
- ld hl, $10
- add hl, bc
- ld [hl], a
- ret
-.asm_cd302
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd306: ; cd306 (33:5306)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd309: ; cd309 (33:5309)
- dw Functioncd311
- dw Functioncd321
- dw Functioncd32a
- dw Functioncd37d
-
-
-; no known jump sources
-Functioncd311: ; cd311 (33:5311)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_cd31e
- call Functioncd38e
- ret
-.asm_cd31e
- call Functionce72c
-
-; no known jump sources
-Functioncd321: ; cd321 (33:5321)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functioncd32a: ; cd32a (33:532a)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cd363
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce732
- sub $18
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $f
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-.asm_cd363
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- jr z, .asm_cd37a
- sub $10
- ld d, a
- ld a, [hl]
- and $f
- or d
- ld [hl], a
- ld hl, $e
- add hl, bc
- dec [hl]
- ret
-.asm_cd37a
- call Functionce72c
-
-; no known jump sources
-Functioncd37d: ; cd37d (33:537d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b0
- jr c, .asm_cd38a
- call Functioncc9bd
- ret
-.asm_cd38a
- call Functioncd38e
- ret
-
-; known jump sources: cd31a (33:531a), cd38a (33:538a)
-Functioncd38e: ; cd38e (33:538e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cd3a9
- dec [hl]
- dec e
- jr nz, .asm_cd3a9
- ret
-
-; no known jump sources
-Functioncd3ae: ; cd3ae (33:53ae)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd3b1: ; cd3b1 (33:53b1)
- dw Functioncd3b7
- dw Functioncd3cc
- dw Functioncd3ee
-
-
-; no known jump sources
-Functioncd3b7: ; cd3b7 (33:53b7)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $9
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functioncd3cc: ; cd3cc (33:53cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd3d6
- dec [hl]
- ret
-.asm_cd3d6
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- and $f
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd3ee: ; cd3ee (33:53ee)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd3f2: ; cd3f2 (33:53f2)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd3f5: ; cd3f5 (33:53f5)
- dw Functioncd409
- dw Functioncd45c
- dw Functioncd467
- dw Functioncd472
- dw Functioncd462
- dw Functioncd46d
- dw Functioncd477
- dw Functioncd41d
- dw Functioncd437
- dw Functioncd458
-
-
-; no known jump sources
-Functioncd409: ; cd409 (33:5409)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- cp $7
- jr z, Functioncd41d
- ld a, $11
- call Functionce7bf
- ret
-
-; known jump sources: cd415 (33:5415)
-Functioncd41d: ; cd41d (33:541d)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cd42f
- add $2
- ld [hl], a
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cd42f
- call Functionce72c
- ld a, $10
- call Functionce7bf
-
-; no known jump sources
-Functioncd437: ; cd437 (33:5437)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncd458: ; cd458 (33:5458)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd45c: ; cd45c (33:545c)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd462: ; cd462 (33:5462)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd467: ; cd467 (33:5467)
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd46d: ; cd46d (33:546d)
- ld hl, $a
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd472: ; cd472 (33:5472)
- ld hl, $9
- add hl, bc
- inc [hl]
-
-; no known jump sources
-Functioncd477: ; cd477 (33:5477)
- ret
-
-; no known jump sources
-Functioncd478: ; cd478 (33:5478)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd47b: ; cd47b (33:547b)
- dw Functioncd48d
- dw Functioncd496
- dw Functioncd4ee
- dw Functioncd53a
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd545
- dw Functioncd549
-
-
-; no known jump sources
-Functioncd48d: ; cd48d (33:548d)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-; no known jump sources
-Functioncd496: ; cd496 (33:5496)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd4bc
- call Functionce72c
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld a, $17
- call Functionce7bf
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- ret z
- ld hl, $d
- add hl, bc
- ld [hl], $5
- ret
-.asm_cd4bc
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd4ee: ; cd4ee (33:54ee)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr nz, .asm_cd4fb
- call Functioncc9bd
- ret
-.asm_cd4fb
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 6, [hl]
- jr nz, .asm_cd519
- ld hl, $f
- add hl, bc
- inc [hl]
- jr .asm_cd51e
-.asm_cd519
- ld hl, $f
- add hl, bc
- dec [hl]
-.asm_cd51e
- ld de, $80
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd53a: ; cd53a (33:553a)
- ld a, $16
- call Functionce7bf
- ld hl, $1
- add hl, bc
- res 5, [hl]
-
-; no known jump sources
-Functioncd545: ; cd545 (33:5545)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd549: ; cd549 (33:5549)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $c0
- ret nc
- ld a, $8
- call Functionce70a
- ret
-
-; known jump sources: cd4d2 (33:54d2), cd5cd (33:55cd)
-Functioncd557: ; cd557 (33:5557)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- bit 7, a
- jr nz, .asm_cd574
- cp $20
- jr nc, .asm_cd570
- cp $18
- jr nc, .asm_cd56c
- ld de, $200
- ret
-.asm_cd56c
- ld de, $180
- ret
-.asm_cd570
- ld de, $100
- ret
-.asm_cd574
- and $3f
- cp $20
- jr nc, .asm_cd586
- cp $18
- jr nc, .asm_cd582
- ld de, $fe00
- ret
-.asm_cd582
- ld de, $fe80
- ret
-.asm_cd586
- ld de, rJOYP ; $ff00
- ret
-
-; no known jump sources
-Functioncd58a: ; cd58a (33:558a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd58d: ; cd58d (33:558d)
- dw Functioncd591
- dw Functioncd5aa
-
-
-; no known jump sources
-Functioncd591: ; cd591 (33:5591)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $40
- rlca
- rlca
- add $19
- ld hl, $3
- add hl, bc
- ld [hl], a
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
-
-; no known jump sources
-Functioncd5aa: ; cd5aa (33:55aa)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cd5b7
- call Functioncc9bd
- ret
-.asm_cd5b7
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- call Functioncd557
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncd5e9: ; cd5e9 (33:55e9)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd5ec: ; cd5ec (33:55ec)
- dw Functioncd5f2
- dw Functioncd5fb
- dw Functioncd61b
-
-
-; no known jump sources
-Functioncd5f2: ; cd5f2 (33:55f2)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
-
-; no known jump sources
-Functioncd5fb: ; cd5fb (33:55fb)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd60d
- dec [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-.asm_cd60d
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld a, $22
- call Functionce7bf
-
-; no known jump sources
-Functioncd61b: ; cd61b (33:561b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- jr nc, .asm_cd63f
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- ld h, [hl]
- ld l, a
- ld de, $60
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
-.asm_cd63f
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $20
- ret c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld e, a
- ld d, $ff
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld hl, $8
- add hl, bc
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $8
- add hl, bc
- ld [hl], d
- ret
-
-; no known jump sources
-Functioncd66a: ; cd66a (33:566a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd66d: ; cd66d (33:566d)
- dw Functioncd677
- dw Functioncd687
- dw Functioncd6c5
- dw Functioncd6c6
- dw Functioncd6d6
-
-
-; no known jump sources
-Functioncd677: ; cd677 (33:5677)
- call Functionce72c
- ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld a, $58
- ld [$FF00+$c7], a
- ld a, $5e
- ld [$FF00+$c8], a
- ret
-
-; no known jump sources
-Functioncd687: ; cd687 (33:5687)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp e
- jr nc, .asm_cd69b
- call Functionce72c
- xor a
- ld [$FF00+$c7], a
- ret
-.asm_cd69b
- dec a
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- add [hl]
- sub $10
- ret c
- ld [$FF00+$c7], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- inc a
- and $7
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- inc [hl]
-
-; no known jump sources
-Functioncd6c5: ; cd6c5 (33:56c5)
- ret
-
-; no known jump sources
-Functioncd6c6: ; cd6c6 (33:56c6)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $70
- jr c, asm_cd6da
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- ld [$FF00+$c7], a
- ld [$FF00+$c8], a
-
-; no known jump sources
-Functioncd6d6: ; cd6d6 (33:56d6)
- call Functioncc9bd
- ret
-asm_cd6da: ; cd6da (33:56da)
- inc a
- inc a
- ld [hl], a
- sub $10
- ret c
- ld [$FF00+$c7], a
- ret
-
-; no known jump sources
-Functioncd6e3: ; cd6e3 (33:56e3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd6e6: ; cd6e6 (33:56e6)
- dw Functioncd6ea
- dw Functioncd6f7
-
-
-; no known jump sources
-Functioncd6ea: ; cd6ea (33:56ea)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-; no known jump sources
-Functioncd6f7: ; cd6f7 (33:56f7)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, .asm_cd704
- call Functioncc9bd
- ret
-.asm_cd704
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd71a: ; cd71a (33:571a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd71d: ; cd71d (33:571d)
- dw Functioncd725
- dw Functioncd728
- dw Functioncd763
- dw Functioncd776
-
-
-; no known jump sources
-Functioncd725: ; cd725 (33:5725)
- call Functionce72c
-
-; no known jump sources
-Functioncd728: ; cd728 (33:5728)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cd747
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_cd747
- call Functionce72c
- ld a, $28
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $0
- ld hl, $8
- add hl, bc
- ld [hl], $30
- ld hl, $1
- add hl, bc
- ld a, [hl]
- and $1
- ld [hl], a
-
-; no known jump sources
-Functioncd763: ; cd763 (33:5763)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $18
- jr nc, .asm_cd76e
- inc [hl]
- ret
-.asm_cd76e
- call Functionce72c
- ld a, $29
- call Functionce7bf
-
-; no known jump sources
-Functioncd776: ; cd776 (33:5776)
- ret
-
-; no known jump sources
-Functioncd777: ; cd777 (33:5777)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr c, .asm_cd784
- call Functioncc9bd
- ret
-.asm_cd784
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld l, [hl]
- ld h, a
- ld de, $80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $10
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncd7a4: ; cd7a4 (33:57a4)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd7a7: ; cd7a7 (33:57a7)
- dw Functioncd7ab
- dw Functioncd7d2
-
-
-; no known jump sources
-Functioncd7ab: ; cd7ab (33:57ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- sla a
- sla a
- sla a
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], $1
-
-; no known jump sources
-Functioncd7d2: ; cd7d2 (33:57d2)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cd7de
- call Functioncc9bd
- ret
-.asm_cd7de
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $1
- ld [hl], a
- ret z
- ld hl, $10
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncd80c: ; cd80c (33:580c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd80f: ; cd80f (33:580f)
- dw Functioncd81f
- dw Functioncd817
- dw Functioncd81f
- dw Functioncd820
-
-
-; no known jump sources
-Functioncd817: ; cd817 (33:5817)
- call Functionce72c
- ld a, $35
- call Functionce7bf
-
-; no known jump sources
-Functioncd81f: ; cd81f (33:581f)
- ret
-
-; no known jump sources
-Functioncd820: ; cd820 (33:5820)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd824: ; cd824 (33:5824)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd827: ; cd827 (33:5827)
- dw Functioncd835
- dw Functioncd860
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd88f
- dw Functioncd893
-
-
-; no known jump sources
-Functioncd835: ; cd835 (33:5835)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd858
-.asm_cd852
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd858
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd860: ; cd860 (33:5860)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cd883
-.asm_cd87e
- ld hl, $10
- add hl, bc
- ld a, [hl]
-.asm_cd883
- call Functionce7bf
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1f
- ret nz
-
-; no known jump sources
-Functioncd88f: ; cd88f (33:588f)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd893: ; cd893 (33:5893)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functioncd89a: ; cd89a (33:589a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd89d: ; cd89d (33:589d)
- dw Functioncd8ab
- dw Functioncd8cc
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f5
- dw Functioncd8f9
-
-
-; no known jump sources
-Functioncd8ab: ; cd8ab (33:58ab)
- call Functionce72c
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $10
- jr .asm_cd8c4
-.asm_cd8be
- ld hl, $f
- add hl, bc
- ld [hl], $30
-.asm_cd8c4
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncd8cc: ; cd8cc (33:58cc)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- bit 7, a
- jr nz, .asm_cd8e6
- ld a, $3d
- jr .asm_cd8e8
-.asm_cd8e6
- ld a, $3c
-.asm_cd8e8
- call Functionce7bf
- ld hl, $f
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $1f
- ret nz
-
-; no known jump sources
-Functioncd8f5: ; cd8f5 (33:58f5)
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd8f9: ; cd8f9 (33:58f9)
- ld hl, $e
- add hl, bc
- ld [hl], $1
- ret
-
-; no known jump sources
-Functioncd900: ; cd900 (33:5900)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd903: ; cd903 (33:5903)
- dw Functioncd907
- dw Functioncd913
-
-
-; no known jump sources
-Functioncd907: ; cd907 (33:5907)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $0
-
-; no known jump sources
-Functioncd913: ; cd913 (33:5913)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd950
- ld d, a
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $10
- add hl, bc
- ld [hl], e
- ld hl, $f
- add hl, bc
- ld [hl], d
- ret
-.asm_cd950
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncd954: ; cd954 (33:5954)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cd957: ; cd957 (33:5957)
- dw Functioncd961
- dw Functioncd96a
- dw Functioncd96e
- dw Functioncd96a
- dw Functioncd97b
-
-
-; no known jump sources
-Functioncd961: ; cd961 (33:5961)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld [hl], $0
-
-; no known jump sources
-Functioncd96a: ; cd96a (33:596a)
- call Functioncd99a
- ret
-
-; no known jump sources
-Functioncd96e: ; cd96e (33:596e)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr c, asm_cd988
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncd97b: ; cd97b (33:597b)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $b8
- jr c, asm_cd988
- call Functioncc9bd
- ret
-
-; known jump sources: cd975 (33:5975), cd982 (33:5982)
-asm_cd988: ; cd988 (33:5988)
- call Functioncd99a
- ld hl, $7
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; known jump sources: cd96a (33:596a), cd988 (33:5988)
-Functioncd99a: ; cd99a (33:599a)
- call Functioncd9f4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- sra a
- ld hl, $b
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cd9d7
- cp $c2
- jr c, .asm_cd9e2
-.asm_cd9d7
- dec a
- ld [hl], a
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- inc [hl]
- ret
-.asm_cd9e2
- xor a
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld [hli], a
- ld [hl], a
- ret
-
-; known jump sources: cd99a (33:599a)
-Functioncd9f4: ; cd9f4 (33:59f4)
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $5a01
- add hl, de
- ld d, [hl]
- ret
-; cda01 (33:5a01)
-
-INCBIN "baserom.gbc",$cda01,$cda0a - $cda01
-
-; no known jump sources
-Functioncda0a: ; cda0a (33:5a0a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr nc, .asm_cda17
- call Functioncc9bd
- ret
-.asm_cda17
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- sub e
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_cda2c
- inc [hl]
- dec e
- jr nz, .asm_cda2c
- ret
-
-; no known jump sources
-Functioncda31: ; cda31 (33:5a31)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cda34: ; cda34 (33:5a34)
- dw Functioncda4c
- dw Functioncda3a
- dw Functioncda4c
-
-
-; no known jump sources
-Functioncda3a: ; cda3a (33:5a3a)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc a
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
-
-; no known jump sources
-Functioncda4c: ; cda4c (33:5a4c)
- ret
-
-; no known jump sources
-Functioncda4d: ; cda4d (33:5a4d)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cda50: ; cda50 (33:5a50)
- dw Functioncda58
- dw Functioncda62
- dw Functioncda7a
- dw Functioncda8c
-
-
-; no known jump sources
-Functioncda58: ; cda58 (33:5a58)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncda62: ; cda62 (33:5a62)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cda6f
- call Functioncda8d
- ret
-.asm_cda6f
- ld [hl], $40
- ld a, $57
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncda7a: ; cda7a (33:5a7a)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cda84
- dec [hl]
- ret
-.asm_cda84
- call Functionce72c
- ld a, $58
- call Functionce7bf
-
-; no known jump sources
-Functioncda8c: ; cda8c (33:5a8c)
- ret
-
-; known jump sources: cda6b (33:5a6b), cdaf2 (33:5af2)
-Functioncda8d: ; cda8d (33:5a8d)
- dec [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $2
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $b
- add hl, bc
- ld h, [hl]
- ld a, h
- and $f
- swap a
- ld l, a
- ld a, h
- and $f0
- swap a
- ld h, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $f
- add hl, bc
- ld [hl], e
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncdad6: ; cdad6 (33:5ad6)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdad9: ; cdad9 (33:5ad9)
- dw Functioncdadf
- dw Functioncdae9
- dw Functioncdaf9
-
-
-; no known jump sources
-Functioncdadf: ; cdadf (33:5adf)
- call Functionce72c
- ld hl, $10
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncdae9: ; cdae9 (33:5ae9)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_cdaf6
- call Functioncda8d
- ret
-.asm_cdaf6
- call Functionce72c
-
-; no known jump sources
-Functioncdaf9: ; cdaf9 (33:5af9)
- ret
-
-; no known jump sources
-Functioncdafa: ; cdafa (33:5afa)
- call Functioncd0e3
- ld hl, $f
- add hl, bc
- ld a, [hl]
- add $f
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb06: ; cdb06 (33:5b06)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdb09: ; cdb09 (33:5b09)
- dw Functioncdb13
- dw Functioncdb14
- dw Functioncdb28
- dw Functioncdb50
- dw Functioncdb65
-
-
-; no known jump sources
-Functioncdb13: ; cdb13 (33:5b13)
- ret
-
-; no known jump sources
-Functioncdb14: ; cdb14 (33:5b14)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdb24
- ld hl, $e
- add hl, bc
- ld [hl], $0
- ret
-.asm_cdb24
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb28: ; cdb28 (33:5b28)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
- inc [hl]
- inc [hl]
- ld hl, $1
- add hl, bc
- set 0, [hl]
- ld hl, $2
- add hl, bc
- ld [hl], $90
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $2
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functioncdb50: ; cdb50 (33:5b50)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2c
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld hl, $c
- add hl, bc
- ld [hl], $80
-
-; no known jump sources
-Functioncdb65: ; cdb65 (33:5b65)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $98
- ret nc
- inc [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $8
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdb80: ; cdb80 (33:5b80)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdb83: ; cdb83 (33:5b83)
- dw Functioncdb9f
- dw Functioncdbb3
- dw Functioncdbcf
- dw Functioncdbeb
- dw Functioncdc74
- dw Functioncdc1a
- dw Functioncdbc1
- dw Functioncdc1e
- dw Functioncdc27
- dw Functioncdc39
- dw Functioncdc74
- dw Functioncdc48
- dw Functioncdc57
- dw Functioncdc74
-
-
-; no known jump sources
-Functioncdb9f: ; cdb9f (33:5b9f)
- ld hl, $f
- add hl, bc
- ld [hl], $28
- inc hl
- ld [hl], $10
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdbb3: ; cdbb3 (33:5bb3)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $40
- jr nc, .asm_cdbbd
- inc [hl]
-.asm_cdbbd
- call Functioncdc75
- ret
-
-; no known jump sources
-Functioncdbc1: ; cdbc1 (33:5bc1)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $4b
- jr nc, .asm_cdbcb
- inc [hl]
-.asm_cdbcb
- call Functioncdc75
- ret
-
-; no known jump sources
-Functioncdbcf: ; cdbcf (33:5bcf)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $88
- jr nc, .asm_cdbe6
- and $f
- jr nz, asm_cdbfa
- ld hl, $10
- add hl, bc
- ld [hl], $10
- call Functionce72c
- ret
-.asm_cdbe6
- call Functionce72c
- inc [hl]
- ret
-
-; no known jump sources
-Functioncdbeb: ; cdbeb (33:5beb)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdbf5
- dec [hl]
- ret
-.asm_cdbf5
- ld hl, $e
- add hl, bc
- dec [hl]
-asm_cdbfa: ; cdbfa (33:5bfa)
- ld hl, $7
- add hl, bc
- inc [hl]
- ld hl, $8
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $8
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncdc1a: ; cdc1a (33:5c1a)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdc1e: ; cdc1e (33:5c1e)
- ld a, $4e
- call Functionce7bf
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdc27: ; cdc27 (33:5c27)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $2
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdc39: ; cdc39 (33:5c39)
- ld a, $50
- call Functionce7bf
- ld hl, $a
- add hl, bc
- ld [hl], $4
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdc48: ; cdc48 (33:5c48)
- ld a, $4f
- call Functionce7bf
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $40
- ret
-
-; no known jump sources
-Functioncdc57: ; cdc57 (33:5c57)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $20
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_cdc71
- dec [hl]
- ret
-.asm_cdc71
- call Functionce72c
-
-; no known jump sources
-Functioncdc74: ; cdc74 (33:5c74)
- ret
-
-; known jump sources: cdbbd (33:5bbd), cdbcb (33:5bcb)
-Functioncdc75: ; cdc75 (33:5c75)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- ld hl, $10
- add hl, bc
- ld a, [hl]
- sub $8
- ld [hl], a
- ret nz
- xor a
- ld hl, $f
- add hl, bc
- ld [hli], a
- ld [hl], a
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdca6: ; cdca6 (33:5ca6)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcb6
- cp $d8
- jr nc, .asm_cdcb6
- call Functioncc9bd
- ret
-.asm_cdcb6
- ld hl, $b
- add hl, bc
- ld d, [hl]
- ld hl, $a
- add hl, bc
- ld a, [hl]
- sub d
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdcc3: ; cdcc3 (33:5cc3)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdcc6: ; cdcc6 (33:5cc6)
- dw Functioncdcca
- dw Functioncdced
-
-
-; no known jump sources
-Functioncdcca: ; cdcca (33:5cca)
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr z, .asm_cdcd9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- xor $ff
- add $3
- ld [hl], a
-.asm_cdcd9
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $8
- ld hl, $b
- add hl, bc
- ld a, $59
- add [hl]
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdced: ; cdced (33:5ced)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdcfa
- dec [hl]
- call Functioncdcfe
- ret
-.asm_cdcfa
- call Functioncc9bd
- ret
-
-; known jump sources: cdcf6 (33:5cf6)
-Functioncdcfe: ; cdcfe (33:5cfe)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $10
- call Functionce734
- ld d, a
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdd20
- dec a
- ret z
- ld hl, $a
- add hl, bc
- ld [hl], d
- ret
-.asm_cdd20
- ld hl, $a
- add hl, bc
- ld a, d
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdd2a: ; cdd2a (33:5d2a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdd2d: ; cdd2d (33:5d2d)
- dw Functioncdd31
- dw Functioncdd4f
-
-
-; no known jump sources
-Functioncdd31: ; cdd31 (33:5d31)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3f
- ld hl, $10
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld [hl], a
- add $5d
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdd4f: ; cdd4f (33:5d4f)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- swap a
- ld d, a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $80
- ret nc
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_cdd87
- ld hl, $8
- add hl, bc
- dec [hl]
-.asm_cdd87
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncdd90: ; cdd90 (33:5d90)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdd93: ; cdd93 (33:5d93)
- dw Functioncdd97
- dw Functioncddbc
-
-
-; no known jump sources
-Functioncdd97: ; cdd97 (33:5d97)
- call Functionce72c
- ld hl, $3
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $80
- rlca
- ld hl, $f
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- ld [hl], a
-
-; no known jump sources
-Functioncddbc: ; cddbc (33:5dbc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- and $3f
- jr z, .asm_cddf0
- and $1f
- ret nz
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc a
- jr .asm_cddf5
-.asm_cddf0
- ld hl, $f
- add hl, bc
- ld a, [hl]
-.asm_cddf5
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncddf9: ; cddf9 (33:5df9)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cddfc: ; cddfc (33:5dfc)
- dw Functioncde02
- dw Functioncde20
- dw Functioncde21
-
-
-; no known jump sources
-Functioncde02: ; cde02 (33:5e02)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $63
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $5e25
- add hl, de
- ld a, [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functioncde20: ; cde20 (33:5e20)
- ret
-
-; no known jump sources
-Functioncde21: ; cde21 (33:5e21)
- call Functioncc9bd
- ret
-; cde25 (33:5e25)
-
-INCBIN "baserom.gbc",$cde25,$cde28 - $cde25
-
-; no known jump sources
-Functioncde28: ; cde28 (33:5e28)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- ld d, $4
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $a
- add hl, bc
- ld d, [hl]
- ld hl, $10
- add hl, bc
- ld e, [hl]
- ld hl, $ffa0
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $10
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functioncde54: ; cde54 (33:5e54)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- dec [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functioncde6b: ; cde6b (33:5e6b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cde6e: ; cde6e (33:5e6e)
- dw Functioncde72
- dw Functioncde88
-
-
-; no known jump sources
-Functioncde72: ; cde72 (33:5e72)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_cde83
- ld hl, $1
- add hl, bc
- set 6, [hl]
-.asm_cde83
- add $6a
- call Functionce7bf
-
-; no known jump sources
-Functioncde88: ; cde88 (33:5e88)
- ret
+INCLUDE "battle/anim_commands.asm"
-; no known jump sources
-Functioncde89: ; cde89 (33:5e89)
- call Functionce71e ; ; ; call does not return
+INCLUDE "battle/anim_objects.asm"
-; no known jump sources
-Jumptable_cde8c: ; cde8c (33:5e8c)
- dw Functioncde90
- dw Functioncdebf
+SECTION "Pic Animations 1", ROMX, BANK[$34]
-; no known jump sources
-Functioncde90: ; cde90 (33:5e90)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $0
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld a, e
- and $70
- swap a
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, e
- and $80
- jr nz, .asm_cdeb2
- ld a, e
- and $f
- ld [hl], a
- ret
-.asm_cdeb2
- ld a, e
- and $f
- xor $ff
- inc a
- ld [hl], a
- ld a, $6e
- call Functionce7bf
- ret
-
-; no known jump sources
-Functioncdebf: ; cdebf (33:5ebf)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_cdec9
- dec [hl]
- ret
-.asm_cdec9
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ret
-
-; no known jump sources
-Functioncdedd: ; cdedd (33:5edd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf17
- inc [hl]
- ret
-.asm_cdf17
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdf1b: ; cdf1b (33:5f1b)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $28
- jr nc, .asm_cdf55
- inc [hl]
- ret
-.asm_cdf55
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdf59: ; cdf59 (33:5f59)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_cdf5c: ; cdf5c (33:5f5c)
- dw Functioncdf60
- dw Functioncdedd
-
-
-; no known jump sources
-Functioncdf60: ; cdf60 (33:5f60)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_cdf88
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $8
- add hl, bc
- dec [hl]
- ret
-.asm_cdf88
- call Functionce72c
- ret
-
-; no known jump sources
-Functioncdf8c: ; cdf8c (33:5f8c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $7
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $e8
- jr z, .asm_cdfc7
- dec [hl]
- ret
-.asm_cdfc7
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functioncdfcb: ; cdfcb (33:5fcb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- inc [hl]
- ld a, [hl]
- and $3
- ret nz
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce007
- dec [hl]
- dec [hl]
- ret
-.asm_ce007
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce00b: ; ce00b (33:600b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce00e: ; ce00e (33:600e)
- dw Functionce014
- dw Functionce023
- dw Functionce05f
-
-
-; no known jump sources
-Functionce014: ; ce014 (33:6014)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $34
- ld hl, $10
- add hl, bc
- ld [hl], $10
-
-; no known jump sources
-Functionce023: ; ce023 (33:6023)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $6c
- jr c, .asm_ce02d
- ret
-.asm_ce02d
- ld a, $2
- call Functionce70a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld d, [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce046
- xor $ff
- inc a
-.asm_ce046
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
- and $1f
- cp $20
- ret nz
- ld hl, $10
- add hl, bc
- srl [hl]
- ret
-
-; no known jump sources
-Functionce05f: ; ce05f (33:605f)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce063: ; ce063 (33:6063)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce066: ; ce066 (33:6066)
- dw Functionce06e
- dw Functionce083
- dw Functionce091
- dw Functionce09e
-
-
-; no known jump sources
-Functionce06e: ; ce06e (33:606e)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce083: ; ce083 (33:6083)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $58
- ret nc
- ld a, $2
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce091: ; ce091 (33:6091)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, Functionce09e
- call Functioncc9bd
- ret
-
-; known jump sources: ce098 (33:6098)
-Functionce09e: ; ce09e (33:609e)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce734
- ld hl, $9
- add hl, bc
- ld [hl], a
- sra a
- xor $ff
- inc a
- ld hl, $f
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce0c5: ; ce0c5 (33:60c5)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce0c8: ; ce0c8 (33:60c8)
- dw Functionce0ce
- dw Functionce0f8
- dw Functionce0dd
-
-
-; no known jump sources
-Functionce0ce: ; ce0ce (33:60ce)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- swap a
- ld hl, $e
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce0dd: ; ce0dd (33:60dd)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- bit 7, a
- jr z, .asm_ce0f0
- ld [hl], a
-.asm_ce0f0
- ld hl, $f
- add hl, bc
- ld a, [hl]
- sub $4
- ld [hl], a
-
-; no known jump sources
-Functionce0f8: ; ce0f8 (33:60f8)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr c, .asm_ce105
- call Functioncc9bd
- ret
-.asm_ce105
- ld hl, $b
- add hl, bc
- ld a, [hl]
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce10e: ; ce10e (33:610e)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce111: ; ce111 (33:6111)
- dw Functionce115
- dw Functionce12a
-
-
-; no known jump sources
-Functionce115: ; ce115 (33:6115)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $8
- add hl, bc
- ld a, [hl]
- sub $28
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functionce12a: ; ce12a (33:612a)
- ld hl, $f
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- ld hl, $b
- add hl, bc
- and [hl]
- jr nz, .asm_ce149
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce149
- ld hl, $f
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $3f
- ret nz
- ld hl, $f
- add hl, bc
- ld [hl], $20
- inc hl
- srl [hl]
- ret
-
-; no known jump sources
-Functionce15c: ; ce15c (33:615c)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ld a, [hl]
- and $1
- jr nz, .asm_ce189
- ld hl, $7
- add hl, bc
- dec [hl]
-.asm_ce189
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $3
- jr nz, .asm_ce197
- ld hl, $8
- add hl, bc
- inc [hl]
-.asm_ce197
- ld hl, $7
- add hl, bc
- ld a, [hl]
- ld hl, $f
- add hl, bc
- cp $5a
- jr nc, .asm_ce1aa
- ld a, [hl]
- and a
- jr z, .asm_ce1ac
- dec [hl]
- ret
-.asm_ce1aa
- inc [hl]
- ret
-.asm_ce1ac
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce1b0: ; ce1b0 (33:61b0)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld hl, $f
- add hl, bc
- cp $40
- jr nc, .asm_ce1df
- inc [hl]
- ret
-.asm_ce1df
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce1e7: ; ce1e7 (33:61e7)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce1ea: ; ce1ea (33:61ea)
- dw Functionce1ee
- dw Functionce1fb
-
-
-; no known jump sources
-Functionce1ee: ; ce1ee (33:61ee)
- call Functionce72c
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld hl, $10
- add hl, bc
- ld [hl], a
-
-; no known jump sources
-Functionce1fb: ; ce1fb (33:61fb)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $30
- call Functionce734
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $8
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $8
- ld d, $30
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionce226: ; ce226 (33:6226)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce229: ; ce229 (33:6229)
- dw Functionce22d
- dw Functionce254
-
-
-; no known jump sources
-Functionce22d: ; ce22d (33:622d)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $10
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- ld [hl], $f
-
-; no known jump sources
-Functionce254: ; ce254 (33:6254)
- ret
-
-; no known jump sources
-Functionce255: ; ce255 (33:6255)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce258: ; ce258 (33:6258)
- dw Functionce260
- dw Functionce274
- dw Functionce278
- dw Functionce289
-
-
-; no known jump sources
-Functionce260: ; ce260 (33:6260)
- call Functionce72c
- ld a, [hBattleTurn] ; $ff00+$e4
- and a
- jr nz, .asm_ce26c
- ld a, $f0
- jr .asm_ce26e
-.asm_ce26c
- ld a, $cc
-.asm_ce26e
- ld hl, $f
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce274: ; ce274 (33:6274)
- call Functionce29f
- ret
-
-; no known jump sources
-Functionce278: ; ce278 (33:6278)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- ret nc
- ld a, $4
- call Functionce70a
- ret
-
-; no known jump sources
-Functionce289: ; ce289 (33:6289)
- call Functionce29f
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $d0
- jr nc, .asm_ce29b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce29b
- call Functioncc9bd
- ret
-
-; known jump sources: ce274 (33:6274), ce278 (33:6278), ce289 (33:6289)
-Functionce29f: ; ce29f (33:629f)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and $7
- inc [hl]
- srl a
- ld e, a
- ld d, $0
- ld a, [hSGB] ; $ff00+$e7
- and a
- jr nz, .asm_ce2b6
- ld hl, $62c4
- jr .asm_ce2b9
-.asm_ce2b6
- ld hl, $62c8
-.asm_ce2b9
- add hl, de
- ld a, [hl]
- ld hl, $f
- add hl, bc
- and [hl]
- ld [$cfc8], a
- ret
-; ce2c4 (33:62c4)
-
-INCBIN "baserom.gbc",$ce2c4,$ce2cc - $ce2c4
-
-; no known jump sources
-Functionce2cc: ; ce2cc (33:62cc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- call Functionce734
- sra a
- sra a
- sra a
- ld hl, $10
- add hl, bc
- add [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $10
- add hl, bc
- dec [hl]
- dec [hl]
- ret
-
-; no known jump sources
-Functionce2fd: ; ce2fd (33:62fd)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce300: ; ce300 (33:6300)
- dw Functionce306
- dw Functionce330
- dw Functionce34c
-
-
-; no known jump sources
-Functionce306: ; ce306 (33:6306)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $e0
- jr nz, .asm_ce319
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $2
- ret
-.asm_ce319
- ld d, a
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, hPushOAM ; $ff80
- add hl, de
- ld e, l
- ld d, h
- ld hl, $a
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionce330: ; ce330 (33:6330)
- ld hl, $10
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce33a
- dec [hl]
- ret
-.asm_ce33a
- ld [hl], $4
- ld hl, $f
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ld hl, $a
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce34c: ; ce34c (33:634c)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $84
- jr nc, .asm_ce35b
- ld a, $4
- call Functionce70a
- ret
-.asm_ce35b
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce35f: ; ce35f (33:635f)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce362: ; ce362 (33:6362)
- dw Functionce366
- dw Functionce375
-
-
-; no known jump sources
-Functionce366: ; ce366 (33:6366)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $7f
- add $81
- call Functionce7bf
-
-; no known jump sources
-Functionce375: ; ce375 (33:6375)
- ld hl, $b
- add hl, bc
- bit 7, [hl]
- jr nz, .asm_ce383
- ld hl, $9
- add hl, bc
- inc [hl]
- ret
-.asm_ce383
- ld hl, $9
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionce389: ; ce389 (33:6389)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce38c: ; ce38c (33:638c)
- dw Functionce392
- dw Functionce39c
- dw Functionce3ae
-
-
-; no known jump sources
-Functionce392: ; ce392 (33:6392)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $c
- ret
-
-; no known jump sources
-Functionce39c: ; ce39c (33:639c)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce3a6
- dec [hl]
- ret
-.asm_ce3a6
- call Functionce72c
- ld a, $20
- call Functionce7bf
-
-; no known jump sources
-Functionce3ae: ; ce3ae (33:63ae)
- ld hl, $a
- add hl, bc
- dec [hl]
- ret
-
-; no known jump sources
-Functionce3b4: ; ce3b4 (33:63b4)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- push af
- ld d, $2
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop af
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce3d2: ; ce3d2 (33:63d2)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_ce3df
- call Functioncc9bd
- ret
-.asm_ce3df
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $8
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- add $2
- ld [hl], a
- and $7
- ret nz
- ld hl, $a
- add hl, bc
- inc [hl]
- ret
-
-; no known jump sources
-Functionce3ff: ; ce3ff (33:63ff)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce402: ; ce402 (33:6402)
- dw Functionce406
- dw Functionce412
-
-
-; no known jump sources
-Functionce406: ; ce406 (33:6406)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce412: ; ce412 (33:6412)
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce416: ; ce416 (33:6416)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld d, $18
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- sra a
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionce43a: ; ce43a (33:643a)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce43d: ; ce43d (33:643d)
- dw Functionce443
- dw Functionce465
- dw Functionce490
-
-
-; no known jump sources
-Functionce443: ; ce443 (33:6443)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $28
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f
- ld hl, $3
- add hl, bc
- add [hl]
- call Functionce7bf
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and $f0
- or $8
- ld [hl], a
-
-; no known jump sources
-Functionce465: ; ce465 (33:6465)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce48b
- dec [hl]
- add $8
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce48b
- ld [hl], $10
- call Functionce72c
-
-; no known jump sources
-Functionce490: ; ce490 (33:6490)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce49c: ; ce49c (33:649c)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce49f: ; ce49f (33:649f)
- dw Functionce4a3
- dw Functionce4b0
-
-
-; no known jump sources
-Functionce4a3: ; ce4a3 (33:64a3)
- call Functionce72c
- ld hl, $b
- add hl, bc
- ld a, $24
- add [hl]
- call Functionce7bf
-
-; no known jump sources
-Functionce4b0: ; ce4b0 (33:64b0)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $38
- jr nc, .asm_ce4d8
- inc [hl]
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- ld d, $18
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ld hl, $8
- add hl, bc
- ld a, [hl]
- and $1
- ret nz
- ld hl, $7
- add hl, bc
- dec [hl]
- ret
-.asm_ce4d8
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce4dc: ; ce4dc (33:64dc)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld d, a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce734
- bit 7, a
- jr nz, .asm_ce4f4
- xor $ff
- inc a
-.asm_ce4f4
- ld hl, $a
- add hl, bc
- ld [hl], a
- ld hl, $f
- add hl, bc
- ld a, [hl]
- and $1f
- ret nz
- ld hl, $b
- add hl, bc
- srl [hl]
- ret
-
-; no known jump sources
-Functionce508: ; ce508 (33:6508)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $10
- jr nc, .asm_ce52e
- inc [hl]
- inc [hl]
- ld d, a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-.asm_ce52e
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce532: ; ce532 (33:6532)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld hl, $f
- add hl, bc
- ld d, [hl]
- ld a, e
- and $c0
- rlca
- rlca
- add [hl]
- ld [hl], a
- ld a, e
- and $3f
- push af
- push de
- call Functionce734
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce55b: ; ce55b (33:655b)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce55e: ; ce55e (33:655e)
- dw Functionce564
- dw Functionce56e
- dw Functionce577
-
-
-; no known jump sources
-Functionce564: ; ce564 (33:6564)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- jr asm_ce58f
-
-; no known jump sources
-Functionce56e: ; ce56e (33:656e)
- call Functionce72c
- ld hl, $f
- add hl, bc
- ld [hl], $18
-
-; no known jump sources
-Functionce577: ; ce577 (33:6577)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $80
- jr nc, .asm_ce58b
- ld d, a
- add $8
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld a, [hl]
- jr asm_ce58f
-.asm_ce58b
- call Functioncc9bd
- ret
-asm_ce58f: ; ce58f (33:658f)
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce593: ; ce593 (33:6593)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce596: ; ce596 (33:6596)
- dw Functionce5b3
- dw Functionce59a
-
-
-; no known jump sources
-Functionce59a: ; ce59a (33:659a)
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $30
- jr c, .asm_ce5b0
- ld hl, $7
- add hl, bc
- dec [hl]
- dec [hl]
- ld hl, $8
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-.asm_ce5b0
- call Functioncc9bd
-
-; no known jump sources
-Functionce5b3: ; ce5b3 (33:65b3)
- ret
-
-; no known jump sources
-Functionce5b4: ; ce5b4 (33:65b4)
- ld d, $50
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- inc [hl]
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $f
- add hl, bc
- add [hl]
- inc [hl]
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce5dc: ; ce5dc (33:65dc)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d0
- jr z, .asm_ce5ea
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-.asm_ce5ea
- call Functioncc9bd
- ret
-
-; no known jump sources
-Functionce5ee: ; ce5ee (33:65ee)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce5f1: ; ce5f1 (33:65f1)
- dw Functionce5f9
- dw Functionce60a
- dw Functionce622
- dw Functionce618
-
-
-; no known jump sources
-Functionce5f9: ; ce5f9 (33:65f9)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- and a
- jr nz, asm_ce61c
- call Functionce72c
- ld hl, $a
- add hl, bc
- ld [hl], $ec
-
-; no known jump sources
-Functionce60a: ; ce60a (33:660a)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $4
- jr z, Functionce618
- inc [hl]
- inc [hl]
- inc [hl]
- inc [hl]
- ret
-
-; known jump sources: ce611 (33:6611)
-Functionce618: ; ce618 (33:6618)
- call Functioncc9bd
- ret
-asm_ce61c: ; ce61c (33:661c)
- call Functionce72c
- call Functionce72c
-
-; no known jump sources
-Functionce622: ; ce622 (33:6622)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- cp $d8
- ret z
- dec [hl]
- dec [hl]
- dec [hl]
- dec [hl]
- ret
-
-; no known jump sources
-Functionce62f: ; ce62f (33:662f)
- call Functionce71e ; ; ; call does not return
-
-; no known jump sources
-Jumptable_ce632: ; ce632 (33:6632)
- dw Functionce63a
- dw Functionce648
- dw Functionce65c
- dw Functionce672
-
-
-; no known jump sources
-Functionce63a: ; ce63a (33:663a)
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- call Functionce72c
- ret
-
-; no known jump sources
-Functionce648: ; ce648 (33:6648)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce654
- xor a
-.asm_ce654
- ld [hl], a
- ld hl, $9
- add hl, bc
- inc [hl]
- inc [hl]
- ret
-
-; no known jump sources
-Functionce65c: ; ce65c (33:665c)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce668
- xor a
-.asm_ce668
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $8
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce672: ; ce672 (33:6672)
- ld hl, $a
- add hl, bc
- ld a, [hl]
- add $4
- cp $70
- jr c, .asm_ce67e
- xor a
-.asm_ce67e
- ld [hl], a
- ld hl, $9
- add hl, bc
- ld a, [hl]
- add $4
- ld [hl], a
- ret
-
-; no known jump sources
-Functionce688: ; ce688 (33:6688)
- ld hl, $7
- add hl, bc
- ld d, [hl]
- ld hl, $f
- add hl, bc
- ld e, [hl]
- ld hl, $b
- add hl, bc
- ld a, [hl]
- ld l, a
- and $f0
- ld h, a
- swap a
- or h
- ld h, a
- ld a, l
- and $f
- swap a
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- ld hl, $7
- add hl, bc
- ld [hl], d
- ld hl, $f
- add hl, bc
- ld [hl], e
- ret
-
-; no known jump sources
-Functionce6b3: ; ce6b3 (33:66b3)
- ld d, $18
- ld hl, $b
- add hl, bc
- ld a, [hl]
- inc [hl]
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce6bf: ; ce6bf (33:66bf)
- ld d, $18
- ld hl, $10
- add hl, bc
- ld a, [hl]
- inc [hl]
- srl a
- ld hl, $b
- add hl, bc
- add [hl]
- call Functionce6f1
- ret
-
-; no known jump sources
-Functionce6d2: ; ce6d2 (33:66d2)
- ld hl, $f
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_ce6ed
- inc [hl]
- ld hl, $b
- add hl, bc
- ld d, [hl]
- call Functionce734
- xor $ff
- inc a
- ld hl, $a
- add hl, bc
- ld [hl], a
- ret
-.asm_ce6ed
- call Functioncc9bd
- ret
-
-; known jump sources: ce58f (33:658f), ce6bb (33:66bb), ce6ce (33:66ce)
-Functionce6f1: ; ce6f1 (33:66f1)
- push af
- push de
- call Functionce734
- sra a
- sra a
- ld hl, $a
- add hl, bc
- ld [hl], a
- pop de
- pop af
- call Functionce732
- ld hl, $9
- add hl, bc
- ld [hl], a
- ret
-
-; known jump sources: cd142 (33:5142), cd154 (33:5154), cd2ad (33:52ad), cd553 (33:5553), cd609 (33:5609), cd706 (33:5706), cd733 (33:5733), ce02f (33:602f), ce08d (33:608d), ce10a (33:610a), ce285 (33:6285), ce297 (33:6297), ce357 (33:6357)
-Functionce70a: ; ce70a (33:670a)
- and $f
- ld e, a
- ld hl, $7
- add hl, bc
- add [hl]
- ld [hl], a
- srl e
- ld hl, $8
- add hl, bc
-.asm_ce719
- dec [hl]
- dec e
- jr nz, .asm_ce719
- ret
-
-; known jump sources: cd06e (33:506e), cd0e3 (33:50e3), cd12a (33:512a), cd15c (33:515c), cd212 (33:5212), cd284 (33:5284), cd2be (33:52be), cd306 (33:5306), cd3ae (33:53ae), cd3f2 (33:53f2), cd478 (33:5478), cd58a (33:558a), cd5e9 (33:55e9), cd66a (33:566a), cd6e3 (33:56e3), cd71a (33:571a), cd7a4 (33:57a4), cd80c (33:580c), cd824 (33:5824), cd89a (33:589a), cd900 (33:5900), cd954 (33:5954), cda31 (33:5a31), cda4d (33:5a4d), cdad6 (33:5ad6), cdb06 (33:5b06), cdb80 (33:5b80), cdcc3 (33:5cc3), cdd2a (33:5d2a), cdd90 (33:5d90), cddf9 (33:5df9), cde6b (33:5e6b), cde89 (33:5e89), cdf59 (33:5f59), ce00b (33:600b), ce063 (33:6063), ce0c5 (33:60c5), ce10e (33:610e), ce1e7 (33:61e7), ce226 (33:6226), ce255 (33:6255), ce2fd (33:62fd), ce35f (33:635f), ce389 (33:6389), ce3ff (33:63ff), ce43a (33:643a), ce49c (33:649c), ce55b (33:655b), ce593 (33:6593), ce5ee (33:65ee), ce62f (33:662f)
-Functionce71e: ; ce71e (33:671e)
- pop de
- ld hl, $e
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-; known jump sources: cd0ea (33:50ea), cd17a (33:517a), cd192 (33:5192), cd196 (33:5196), cd1ce (33:51ce), cd1e5 (33:51e5), cd20a (33:520a), cd21e (33:521e), cd22f (33:522f), cd2b5 (33:52b5), cd2c5 (33:52c5), cd31e (33:531e), cd321 (33:5321), cd37a (33:537a), cd3b7 (33:53b7), cd42f (33:542f), cd48d (33:548d), cd49f (33:549f), cd545 (33:5545), cd5a1 (33:55a1), cd5f2 (33:55f2), cd60d (33:560d), cd677 (33:5677), cd694 (33:5694), cd6ea (33:56ea), cd725 (33:5725), cd747 (33:5747), cd76e (33:576e), cd7ab (33:57ab), cd817 (33:5817), cd835 (33:5835), cd88f (33:588f), cd8ab (33:58ab), cd8f5 (33:58f5), cd907 (33:5907), cd961 (33:5961), cd977 (33:5977), cda43 (33:5a43), cda58 (33:5a58), cda76 (33:5a76), cda84 (33:5a84), cdadf (33:5adf), cdaf6 (33:5af6), cdb50 (33:5b50), cdbe2 (33:5be2), cdbe6 (33:5be6), cdc23 (33:5c23), cdc44 (33:5c44), cdc4d (33:5c4d), cdc71 (33:5c71), cdca2 (33:5ca2), cdcd9 (33:5cd9), cdd31 (33:5d31), cdd97 (33:5d97), cde02 (33:5e02), cde72 (33:5e72), cde90 (33:5e90), cdf88 (33:5f88), ce014 (33:6014), ce115 (33:6115), ce1ee (33:61ee), ce22d (33:622d), ce260 (33:6260), ce30f (33:630f), ce366 (33:6366), ce392 (33:6392), ce3a6 (33:63a6), ce443 (33:6443), ce48d (33:648d), ce4a3 (33:64a3), ce56e (33:656e), ce601 (33:6601), ce61c (33:661c), ce61f (33:661f), ce644 (33:6644)
-Functionce72c: ; ce72c (33:672c)
- ld hl, $e
- add hl, bc
- inc [hl]
- ret
-
-; known jump sources: cd0d2 (33:50d2), cd11c (33:511c), cd33a (33:533a), cd44a (33:544a), cd7f5 (33:57f5), cd929 (33:5929), cd9bb (33:59bb), cdd69 (33:5d69), cddd3 (33:5dd3), cdefb (33:5efb), cdf39 (33:5f39), cdf72 (33:5f72), cdfaa (33:5faa), cdfe9 (33:5fe9), ce172 (33:6172), ce1c7 (33:61c7), ce218 (33:6218), ce246 (33:6246), ce2ee (33:62ee), ce3c9 (33:63c9), ce3e6 (33:63e6), ce429 (33:6429), ce482 (33:6482), ce4c2 (33:64c2), ce525 (33:6525), ce552 (33:6552), ce5d3 (33:65d3), ce701 (33:6701), ce76c (33:676c)
-Functionce732: ; ce732 (33:6732)
- add $10
-
-; known jump sources: cd09c (33:509c), cd0c8 (33:50c8), cd112 (33:5112), cd1ad (33:51ad), cd1f4 (33:51f4), cd2d7 (33:52d7), cd34d (33:534d), cd440 (33:5440), cd4ca (33:54ca), cd502 (33:5502), cd5c5 (33:55c5), cd6a4 (33:56a4), cd711 (33:5711), cd73e (33:573e), cd7eb (33:57eb), cd86a (33:586a), cd8d6 (33:58d6), cd91f (33:591f), cd9a4 (33:59a4), cda90 (33:5a90), cdb77 (33:5b77), cdc30 (33:5c30), cdc5e (33:5c5e), cdc7b (33:5c7b), cdd07 (33:5d07), cdd5f (33:5d5f), cddc5 (33:5dc5), cde31 (33:5e31), cde5d (33:5e5d), cdee6 (33:5ee6), cdf24 (33:5f24), cdf95 (33:5f95), cdfd4 (33:5fd4), ce03c (33:603c), ce0a5 (33:60a5), ce0e4 (33:60e4), ce130 (33:6130), ce168 (33:6168), ce1bd (33:61bd), ce202 (33:6202), ce237 (33:6237), ce2d3 (33:62d3), ce3be (33:63be), ce41f (33:641f), ce478 (33:6478), ce4ea (33:64ea), ce51b (33:651b), ce548 (33:6548), ce5bf (33:65bf), ce6e1 (33:66e1), ce6f3 (33:66f3), ce766 (33:6766)
-Functionce734: ; ce734 (33:6734)
- and $3f
- cp $20
- jr nc, .asm_ce73f
- call Functionce749
- ld a, h
- ret
-.asm_ce73f
- and $1f
- call Functionce749
- ld a, h
- xor $ff
- inc a
- ret
-
-; known jump sources: ce73a (33:673a), ce741 (33:6741)
-Functionce749: ; ce749 (33:6749)
- ld e, a
- ld a, d
- ld d, $0
- ld hl, $677f
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $0
-.asm_ce758
- srl a
- jr nc, .asm_ce75d
- add hl, de
-.asm_ce75d
- sla e
- rl d
- and a
- jr nz, .asm_ce758
- ret
-
-; no known jump sources
-Functionce765: ; ce765 (33:6765)
- ld a, e
- call Functionce734
- ld e, a
- ret
-
-; no known jump sources
-Functionce76b: ; ce76b (33:676b)
- ld a, e
- call Functionce732
- ld e, a
- ret
-; ce771 (33:6771)
-
-INCBIN "baserom.gbc",$ce771,$ce7bf - $ce771
-
-; known jump sources: cd18f (33:518f), cd19b (33:519b), cd1cb (33:51cb), cd1d4 (33:51d4), cd1e2 (33:51e2), cd2ba (33:52ba), cd419 (33:5419), cd434 (33:5434), cd4ab (33:54ab), cd53c (33:553c), cd618 (33:5618), cd6f4 (33:56f4), cd74c (33:574c), cd773 (33:5773), cd81c (33:581c), cd883 (33:5883), cd8e8 (33:58e8), cda40 (33:5a40), cda73 (33:5a73), cda89 (33:5a89), cdc20 (33:5c20), cdc3b (33:5c3b), cdc4a (33:5c4a), cdce9 (33:5ce9), cdd4b (33:5d4b), cddb1 (33:5db1), cddf5 (33:5df5), cde0c (33:5e0c), cde85 (33:5e85), cdebb (33:5ebb), ce372 (33:6372), ce3ab (33:63ab), ce458 (33:6458), ce4ad (33:64ad)
-Functionce7bf: ; ce7bf (33:67bf)
- ld hl, $3
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld [hl], $0
- ld hl, $d
- add hl, bc
- ld [hl], $ff
- ret
-
-
-Functionce7d1: ; ce7d1
-.asm_ce7d1
- ld hl, $000c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_ce7e1
- dec [hl]
- call Functionce823
- ld a, [hli]
- push af
- jr .asm_ce7fd
-
-.asm_ce7e1
- ld hl, $000d
- add hl, bc
- inc [hl]
- call Functionce823
- ld a, [hli]
- cp $fe
- jr z, .asm_ce815
- cp $ff
- jr z, .asm_ce807
- push af
- ld a, [hl]
- push hl
- and $3f
- ld hl, $000c
- add hl, bc
- ld [hl], a
- pop hl
-
-.asm_ce7fd
- ld a, [hl]
- and $c0
- srl a
- ld [$d420], a
- pop af
- ret
-
-.asm_ce807
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- ld hl, $000d
- add hl, bc
- dec [hl]
- dec [hl]
- jr .asm_ce7d1
-
-.asm_ce815
- xor a
- ld hl, $000c
- add hl, bc
- ld [hl], a
- dec a
- ld hl, $000d
- add hl, bc
- ld [hl], a
- jr .asm_ce7d1
-; ce823
-
-Functionce823: ; ce823
- ld hl, $0003
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $685e
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $000d
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, hl
- add hl, de
- ret
-; ce83c
-
-Functionce83c: ; ce83c
- ld l, a
- ld h, $0
- ld de, $6eae
- add hl, hl
- add hl, hl
- add hl, de
- ret
-; ce846
-
-
-; known jump sources: cc4b0 (33:44b0)
-Functionce846: ; ce846 (33:6846)
- push hl
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld de, $7cf6
- add hl, de
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- push bc
- call Functione73
- pop bc
- ret
-; ce85e (33:685e)
-
-INCBIN "baserom.gbc",$ce85e,$cfd9e - $ce85e
-
-; Songs iii
-
-INCLUDE "audio/music/postcredits.asm"
-
-
-
-; Pic animations I
-
-SECTION "bank34",ROMX,BANK[$34]
-
-; Pic animations asm
-Functiond0000: ; d0000
- ld hl, $c4ac
- ld a, [IsInBattle]
- cp $1
- jr z, .asm_d0012
- ld e, $0
- ld d, $0
- call Functiond008e
- ret
-
-.asm_d0012
- ld e, $1
- ld d, $0
- call Functiond008e
- ret
-; d001a
-
-INCBIN "baserom.gbc",$d001a,$d008e - $d001a
-
-Functiond008e: ; d008e
- call Functiond01c6
- ret c
- call Functiond00a3
-.asm_d0095
- call Functiond00b4
- push af
- callba Function10402d
- pop af
- jr nc, .asm_d0095
- ret
-; d00a3
-
-Functiond00a3: ; d00a3
- push hl
- ld c, e
- ld b, $0
- ld hl, $4042
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld b, [hl]
- ld c, a
- pop hl
- call Functiond01d6
- ret
-; d00b4
-
-Functiond00b4: ; d00b4
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- ld a, [$d168]
- ld c, a
- ld b, $0
- ld hl, $d169
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, [hl]
- ld hl, $40da
- rst JumpTable
- ld a, [$d168]
- ld c, a
- pop af
- ld [rSVBK], a
- ld a, c
- and $80
- ret z
- scf
- ret
-; d00da
-
-Tabled00da: ; d00da
- dw Functiond0171
- dw Functiond0166
- dw Functiond00f2
- dw Functiond00fe
- dw Functiond010b
- dw Functiond011d
- dw Functiond012f
- dw Functiond0141
- dw Functiond0155
- dw Functiond017a
- dw Functiond0188
- dw Functiond0196
-; d00f2
-
-Functiond00f2: ; d00f2
- ld a, $12
- ld [$d181], a
- ld a, [$d168]
- inc a
- ld [$d168], a
-
-Functiond00fe: ; d00fe
- ld hl, $d181
- dec [hl]
- ret nz
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d010b
-
-Functiond010b: ; d010b
- ld c, $0
- ld b, $0
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d011d
-
-Functiond011d: ; d011d
- ld c, $0
- ld b, $4
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d012f
-
-Functiond012f: ; d012f
- ld c, $1
- ld b, $0
- call Functiond0228
- call Functiond0504
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0141
-
-Functiond0141: ; d0141
- call Functiond0250
- ld a, [$d17e]
- bit 7, a
- ret z
- call Functiond04bd
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0155
-
-Functiond0155: ; d0155
- call Functiond0250
- ld a, [$d17e]
- bit 7, a
- ret z
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0166
-
-Functiond0166: ; d0166
- call Functiond01a9
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0171
-
-Functiond0171: ; d0171
- call Functiond01a9
- ld hl, $d168
- set 7, [hl]
- ret
-; d017a
-
-Functiond017a: ; d017a
- ld a, [$d16b]
- call Function37e2
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0188
-
-Functiond0188: ; d0188
- ld a, [$d16b]
- call Function37d5
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d0196
-
-Functiond0196: ; d0196
- ld a, $f
- ld [CryTracks], a
- ld a, [$d16b]
- call Function37c4
- ld a, [$d168]
- inc a
- ld [$d168], a
- ret
-; d01a9
-
-Functiond01a9: ; d01a9
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- call Functiond04bd
- callba Function10402d
- call Functiond0536
- callba Function104047
- pop af
- ld [rSVBK], a
- ret
-; d01c6
-
-Functiond01c6: ; d01c6
- ld a, [CurPartySpecies]
- cp $fd
- jr z, .asm_d01d4
- call IsAPokemon
- jr c, .asm_d01d4
- and a
- ret
-
-.asm_d01d4
- scf
- ret
-; d01d6
-
-Functiond01d6: ; d01d6
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- push bc
- push de
- push hl
- ld hl, $d168
- ld bc, $0029
- xor a
- call ByteFill
- pop hl
- pop de
- pop bc
- ld a, c
- ld [$d169], a
- ld a, b
- ld [$d16a], a
- ld a, l
- ld [$d16f], a
- ld a, h
- ld [$d170], a
- ld a, d
- ld [$d16e], a
- ld a, $1
- ld hl, CurPartySpecies
- call GetFarWRAMByte
- ld [$d16b], a
- ld a, $1
- ld hl, UnownLetter
- call GetFarWRAMByte
- ld [$d16c], a
- call Functiond065c
- ld [$d16d], a
- call Functiond05b4
- ld a, c
- ld [$d171], a
- pop af
- ld [rSVBK], a
- ret
-; d0228
-
-Functiond0228: ; d0228
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- push bc
- ld hl, $d172
- ld bc, $001f
- xor a
- call ByteFill
- pop bc
- ld a, b
- ld [$d173], a
- ld a, c
- ld [$d172], a
- call Functiond055c
- call Functiond05ce
- call Functiond061b
- pop af
- ld [rSVBK], a
- ret
-; d0250
-
-Functiond0250: ; d0250
- xor a
- ld [hBGMapMode], a
-
-Functiond0253: ; d0253
- ld a, [$d17e]
- and $7f
- ld hl, Tabled025d
- rst JumpTable
- ret
-; d025d
-
-Tabled025d: ; d025d
- dw Functiond0261
- dw Functiond0282
-; d0261
-
-Functiond0261: ; d0261
- call Functiond02f8
- ld a, [$d182]
- cp $ff
- jr z, Functiond02a8
- cp $fe
- jr z, Functiond028e
- cp $fd
- jr z, Functiond0296
- call Functiond02c8
- ld a, [$d183]
- call Functiond02ae
- ld [$d181], a
- call Functiond02dc
-
-Functiond0282: ; d0282
- ld a, [$d181]
- dec a
- ld [$d181], a
- ret nz
- call Functiond02e4
- ret
-; d028e
-
-Functiond028e: ; d028e
- ld a, [$d183]
- ld [$d17f], a
- jr Functiond0253
-; d0296
-
-Functiond0296: ; d0296
- ld a, [$d17f]
- and a
- ret z
- dec a
- ld [$d17f], a
- ret z
- ld a, [$d183]
- ld [$d17d], a
- jr Functiond0253
-; d02a8
-
-Functiond02a8: ; d02a8
- ld hl, $d17e
- set 7, [hl]
- ret
-; d02ae
-
-Functiond02ae: ; d02ae
- ld c, a
- ld b, $0
- ld hl, $0000
- ld a, [$d173]
- call AddNTimes
- ld a, h
- swap a
- and $f0
- ld h, a
- ld a, l
- swap a
- and $f
- or h
- add c
- ret
-; d02c8
-
-Functiond02c8: ; d02c8
- call Functiond04bd
- ld a, [$d182]
- and a
- ret z
- call Functiond031b
- push hl
- call Functiond033b
- pop hl
- call Functiond036b
- ret
-; d02dc
-
-Functiond02dc: ; d02dc
- ld a, [$d17e]
- inc a
- ld [$d17e], a
- ret
-; d02e4
-
-Functiond02e4: ; d02e4
- ld a, [$d17e]
- dec a
- ld [$d17e], a
- ret
-; d02ec
-
-Functiond02ec: ; d02ec
- ld a, [$d16b]
- cp $c9
- ret
-; d02f2
-
-Functiond02f2: ; d02f2
- ld a, [$d16b]
- cp $fd
- ret
-; d02f8
-
-Functiond02f8: ; d02f8
- push hl
- ld a, [$d17d]
- ld e, a
- ld d, $0
- ld hl, $d175
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- add hl, de
- ld a, [$d174]
- call GetFarHalfword
- ld a, l
- ld [$d182], a
- ld a, h
- ld [$d183], a
- ld hl, $d17d
- inc [hl]
- pop hl
- ret
-; d031b
-
-Functiond031b: ; d031b
- ld a, [$d182]
- dec a
- ld c, a
- ld b, $0
- ld hl, $d178
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- add hl, bc
- ld a, [$d177]
- call GetFarHalfword
- ld a, [$d177]
- call GetFarByte
- ld [$d180], a
- inc hl
- ret
-; d033b
-
-Functiond033b: ; d033b
- call Functiond0356
- push bc
- ld hl, $d17b
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d180]
- call AddNTimes
- pop bc
- ld de, $d188
- ld a, [$d17a]
- call FarCopyBytes
- ret
-; d0356
-
-Functiond0356: ; d0356
- push hl
- ld a, [$d171]
- sub $5
- ld c, a
- ld b, $0
- ld hl, $4368
- add hl, bc
- ld c, [hl]
- ld b, $0
- pop hl
- ret
-; d0368
-
-INCBIN "baserom.gbc",$d0368,$d036b - $d0368
-
-Functiond036b: ; d036b
- xor a
- ld [$d187], a
- ld [$d186], a
- ld [$d185], a
-.asm_d0375
- push hl
- call Functiond0392
- pop hl
- ld a, b
- and a
- jr z, .asm_d038a
- ld a, [$d177]
- call GetFarByte
- inc hl
- push hl
- call Functiond03bd
- pop hl
-
-.asm_d038a
- push hl
- call Functiond0499
- pop hl
- jr nc, .asm_d0375
- ret
-; d0392
-
-Functiond0392: ; d0392
- ld a, [$d187]
- and $f8
- rrca
- rrca
- rrca
- ld e, a
- ld d, $0
- ld hl, $d188
- add hl, de
- ld b, [hl]
- ld a, [$d187]
- and $7
- jr z, .asm_d03b0
- ld c, a
- ld a, b
-.asm_d03ab
- rrca
- dec c
- jr nz, .asm_d03ab
- ld b, a
-
-.asm_d03b0
- xor a
- bit 0, b
- jr z, .asm_d03b7
- ld a, $1
-
-.asm_d03b7
- ld b, a
- ld hl, $d187
- inc [hl]
- ret
-; d03bd
-
-Functiond03bd: ; d03bd
- push af
- call Functiond03cd
- pop af
- push hl
- call Functiond03f7
- ld hl, $d16e
- add [hl]
- pop hl
- ld [hl], a
- ret
-; d03cd
-
-Functiond03cd: ; d03cd
- call Functiond046c
- ld a, [$d186]
- ld bc, $0014
- call AddNTimes
- ld a, [$c2c6]
- and a
- jr nz, .asm_d03e8
- ld a, [$d185]
- ld e, a
- ld d, $0
- add hl, de
- jr .asm_d03f3
-
-.asm_d03e8
- ld a, [$d185]
- ld e, a
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc $0
- ld h, a
-
-.asm_d03f3
- ret
-; d03f4
-
-INCBIN "baserom.gbc",$d03f4,$d03f7 - $d03f4
-
-Functiond03f7: ; d03f7
- push af
- ld a, [$d171]
- cp $5
- jr z, .asm_d0405
- cp $6
- jr z, .asm_d041a
- pop af
- ret
-
-.asm_d0405
- pop af
- cp $19
- jr nc, .asm_d0417
- push hl
- push de
- ld hl, $442f
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.asm_d0417
- add $18
- ret
-
-.asm_d041a
- pop af
- cp $24
- jr nc, .asm_d042c
- push hl
- push de
- ld hl, $4448
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.asm_d042c
- add $d
- ret
-; d042f
-
-INCBIN "baserom.gbc",$d042f,$d046c - $d042f
-
-Functiond046c: ; d046c
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$d171]
- ld de, $0000
- ld bc, $0006
- cp $7
- jr z, .asm_d048f
- ld de, $0015
- ld bc, $0019
- cp $6
- jr z, .asm_d048f
- ld de, $0029
- ld bc, $002d
-
-.asm_d048f
- ld a, [$c2c6]
- and a
- jr nz, .asm_d0497
- add hl, de
- ret
-
-.asm_d0497
- add hl, bc
- ret
-; d0499
-
-Functiond0499: ; d0499
- ld a, [$d186]
- inc a
- ld [$d186], a
- ld c, a
- ld a, [$d171]
- cp c
- jr nz, .asm_d04bb
- xor a
- ld [$d186], a
- ld a, [$d185]
- inc a
- ld [$d185], a
- ld c, a
- ld a, [$d171]
- cp c
- jr nz, .asm_d04bb
- scf
- ret
-
-.asm_d04bb
- xor a
- ret
-; d04bd
-
-Functiond04bd: ; d04bd
- call Functiond04f6
- ld a, [$c2c6]
- and a
- jr nz, .asm_d04ce
- ld de, $0001
- ld bc, $0000
- jr .asm_d04d4
-
-.asm_d04ce
- ld de, rIE
- ld bc, $0006
-
-.asm_d04d4
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld c, $7
- ld b, $7
- ld a, [$d16e]
-.asm_d04e2
- push bc
- push hl
- push de
- ld de, $0014
-.asm_d04e8
- ld [hl], a
- inc a
- add hl, de
- dec b
- jr nz, .asm_d04e8
- pop de
- pop hl
- add hl, de
- pop bc
- dec c
- jr nz, .asm_d04e2
- ret
-; d04f6
-
-Functiond04f6: ; d04f6
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld b, $7
- ld c, $7
- call ClearBox
- ret
-; d0504
-
-Functiond0504: ; d0504
- ld a, [rSVBK]
- push af
- ld a, $2
- ld [rSVBK], a
- xor a
- ld [hBGMapMode], a
- call Functiond051b
- callba Function104047
- pop af
- ld [rSVBK], a
- ret
-; d051b
-
-Functiond051b: ; d051b
- call Functiond0551
- ld b, $7
- ld c, $7
- ld de, $0014
-.asm_d0525
- push bc
- push hl
-.asm_d0527
- ld a, [hl]
- or $8
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_d0527
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .asm_d0525
- ret
-; d0536
-
-Functiond0536: ; d0536
- call Functiond0551
- ld b, $7
- ld c, $7
- ld de, $0014
-.asm_d0540
- push bc
- push hl
-.asm_d0542
- ld a, [hl]
- and $f7
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_d0542
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .asm_d0540
- ret
-; d0551
-
-Functiond0551: ; d0551
- ld hl, $d16f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, $0939
- add hl, de
- ret
-; d055c
-
-Functiond055c: ; d055c
- call Functiond02f2
- jr z, .asm_d0597
- ld c, $34
- ld hl, UnownAnimationPointers
- ld de, UnownAnimationExtraPointers
- call Functiond02ec
- jr z, .asm_d0576
- ld c, $34
- ld hl, AnimationPointers
- ld de, AnimationExtraPointers
-
-.asm_d0576
- ld a, [$d172]
- and a
- jr z, .asm_d057e
- ld h, d
- ld l, e
-
-.asm_d057e
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, c
- ld [$d174], a
- call GetFarHalfword
- ld a, l
- ld [$d175], a
- ld a, h
- ld [$d176], a
- ret
-
-.asm_d0597
- ld hl, EggAnimation
- ld c, $34
- ld a, [$d172]
- and a
- jr z, .asm_d05a7
- ld hl, EggAnimationExtra
- ld c, $34
-
-.asm_d05a7
- ld a, c
- ld [$d174], a
- ld a, l
- ld [$d175], a
- ld a, h
- ld [$d176], a
- ret
-; d05b4
-
-Functiond05b4: ; d05b4
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BasePicSize]
- and $f
- ld c, a
- pop af
- ld [rSVBK], a
- ret
-; d05ce
-
-Functiond05ce: ; d05ce
- call Functiond02f2
- jr z, .asm_d0609
- call Functiond02ec
- ld b, $36
- ld c, $36
- ld hl, PikachuAnimationExtra
- jr z, .asm_d05ef
- ld a, [$d16b]
- cp $98
- ld b, $35
- ld c, $35
- ld hl, $4000
- jr c, .asm_d05ef
- ld c, $36
-
-.asm_d05ef
- ld a, c
- ld [$d177], a
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, b
- call GetFarHalfword
- ld a, l
- ld [$d178], a
- ld a, h
- ld [$d179], a
- ret
-
-.asm_d0609
- ld hl, $598b
- ld c, $36
- ld a, c
- ld [$d177], a
- ld a, l
- ld [$d178], a
- ld a, h
- ld [$d179], a
- ret
-; d061b
-
-Functiond061b: ; d061b
- call Functiond02f2
- jr z, .asm_d064a
- call Functiond02ec
- ld a, $34
- ld hl, UnownBitmasksPointers
- jr z, .asm_d062f
- ld a, $34
- ld hl, BitmasksPointers
-
-.asm_d062f
- ld [$d17a], a
- ld a, [$d16d]
- dec a
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [$d17a]
- call GetFarHalfword
- ld a, l
- ld [$d17b], a
- ld a, h
- ld [$d17c], a
- ret
-
-.asm_d064a
- ld c, $34
- ld hl, EggBitmasks
- ld a, c
- ld [$d17a], a
- ld a, l
- ld [$d17b], a
- ld a, h
- ld [$d17c], a
- ret
-; d065c
-
-Functiond065c: ; d065c
- call Functiond02ec
- jr z, .asm_d0665
- ld a, [$d16b]
- ret
-
-.asm_d0665
- ld a, [$d16c]
- ret
-; d0669
-
-Functiond0669: ; d0669
- ld a, $1
- ld [$c2c6], a
-
-Functiond066e: ; d066e
- call Functiond01c6
- jr c, .asm_d068c
- ld h, d
- ld l, e
- push bc
- push hl
- ld de, VTiles2
- ld a, $3e
- call Predef
- pop hl
- pop bc
- ld d, $0
- ld e, c
- call Functiond008e
- xor a
- ld [$c2c6], a
- ret
-
-.asm_d068c
- xor a
- ld [$c2c6], a
- inc a
- ld [CurPartySpecies], a
- ret
-; d0695
+INCLUDE "gfx/pics/animation.asm"
; Pic animations are assembled in 3 parts:
@@ -98552,57 +74065,51 @@ Functiond066e: ; d066e
; following bytes are tile ids mapped to each bit in the mask
; Main animations (played everywhere)
-AnimationPointers: INCLUDE "gfx/pics/anim_pointers.asm"
+INCLUDE "gfx/pics/anim_pointers.asm"
INCLUDE "gfx/pics/anims.asm"
; Extra animations, appended to the main animation
; Used in the status screen (blinking, tail wags etc.)
-AnimationExtraPointers: INCLUDE "gfx/pics/extra_pointers.asm"
+INCLUDE "gfx/pics/extra_pointers.asm"
INCLUDE "gfx/pics/extras.asm"
; Unown has its own animation data despite having an entry in the main tables
-UnownAnimationPointers: INCLUDE "gfx/pics/unown_anim_pointers.asm"
+INCLUDE "gfx/pics/unown_anim_pointers.asm"
INCLUDE "gfx/pics/unown_anims.asm"
-UnownAnimationExtraPointers: INCLUDE "gfx/pics/unown_extra_pointers.asm"
+INCLUDE "gfx/pics/unown_extra_pointers.asm"
INCLUDE "gfx/pics/unown_extras.asm"
; Bitmasks
-BitmasksPointers: INCLUDE "gfx/pics/bitmask_pointers.asm"
+INCLUDE "gfx/pics/bitmask_pointers.asm"
INCLUDE "gfx/pics/bitmasks.asm"
-UnownBitmasksPointers: INCLUDE "gfx/pics/unown_bitmask_pointers.asm"
+INCLUDE "gfx/pics/unown_bitmask_pointers.asm"
INCLUDE "gfx/pics/unown_bitmasks.asm"
-; Pic animations II
-
-SECTION "bank35",ROMX,BANK[$35]
+SECTION "Pic Animations 2", ROMX, BANK[$35]
-; Frame definitions
-FramesPointers: INCLUDE "gfx/pics/frame_pointers.asm"
-; Inexplicably, Kanto frames are split off from Johto
+INCLUDE "gfx/pics/frame_pointers.asm"
INCLUDE "gfx/pics/kanto_frames.asm"
-; Pic animations III
-
-SECTION "bank36",ROMX,BANK[$36]
+SECTION "bank36", ROMX, BANK[$36]
FontInversed: INCBIN "gfx/misc/font_inversed.1bpp"
-; Johto frame definitions
-INCLUDE "gfx/pics/johto_frames.asm"
-; Unown frame definitions
-UnownFramesPointers: INCLUDE "gfx/pics/unown_frame_pointers.asm"
+SECTION "Pic Animations 3", ROMX, BANK[$36]
+
+INCLUDE "gfx/pics/johto_frames.asm"
+INCLUDE "gfx/pics/unown_frame_pointers.asm"
INCLUDE "gfx/pics/unown_frames.asm"
-SECTION "bank37",ROMX,BANK[$37]
+SECTION "Tileset Data 6", ROMX, BANK[TILESETS_6]
INCLUDE "tilesets/data_6.asm"
-SECTION "bank38",ROMX,BANK[$38]
+SECTION "bank38", ROMX, BANK[$38]
Functione0000: ; e0000
push de
@@ -98786,7 +74293,422 @@ Functione0191: ; e0191 (38:4191)
jp [hl]
; e01a0 (38:41a0)
-INCBIN "baserom.gbc",$e01a0,$e04c1 - $e01a0
+Tablee01a0: ; e01a0
+ dw Functione01b5
+ dw Functione01d2
+ dw Functione0217
+ dw Functione02b7
+ dw Functione02da
+ dw Functione0314
+ dw Functione031e
+ dw Functione0360
+; e01b0
+
+Functione01b0: ; e01b0
+ ld hl, $cf63
+ inc [hl]
+ ret
+; e01b5
+
+Functione01b5: ; e01b5
+ ld hl, UnknownText_0xe01cd
+ call Functione0489
+ call YesNoBox
+ jr c, .asm_e01c7
+ call Functione0366
+ call Functione01b0
+ ret
+
+.asm_e01c7
+ ld a, $7
+ ld [$cf63], a
+ ret
+; e01cd
+
+UnknownText_0xe01cd: ; 0xe01cd
+ ; Play with three coins?
+ text_jump UnknownText_0x1c5793
+ db "@"
+; 0xe01d2
+
+Functione01d2: ; e01d2
+ ld a, [Coins]
+ ld h, a
+ ld a, [Coins + 1]
+ ld l, a
+ ld a, h
+ and a
+ jr nz, .asm_e01ef
+ ld a, l
+ cp 3
+ jr nc, .asm_e01ef
+ ld hl, UnknownText_0xe0212
+ call Functione0489
+ ld a, $7
+ ld [$cf63], a
+ ret
+
+.asm_e01ef
+ ld de, -3
+ add hl, de
+ ld a, h
+ ld [Coins], a
+ ld a, l
+ ld [$d856], a
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ xor a
+ ld [hBGMapMode], a
+ call Functione049c
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitSFX
+ call Functione01b0
+ ret
+; e0212
+
+UnknownText_0xe0212: ; 0xe0212
+ ; Not enough coins…
+ text_jump UnknownText_0x1c57ab
+ db "@"
+; 0xe0217
+
+Functione0217: ; e0217
+ xor a
+ ld [hBGMapMode], a
+ ld hl, TileMap
+ ld bc, $0c09
+ call Functione04e5
+ ld hl, $c4a9
+ ld bc, $0014
+ ld a, [$c6e8]
+ call AddNTimes
+ ld [hl], $f5
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $14
+ call DelayFrames
+ ld hl, $c4a2
+ call Functione03c1
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, $14
+ call DelayFrames
+ ld hl, $c51a
+ call Functione03c1
+ call WaitBGMap
+ ld hl, UnknownText_0xe02b2
+ call Functione0489
+ xor a
+ ld [$cf66], a
+.asm_e025c
+ call Functiona57
+ ld a, [$ffa9]
+ and $1
+ jr nz, .asm_e027c
+ ld de, $002f
+ call PlaySFX
+ call Functione0849
+ ld c, $4
+ call DelayFrames
+ ld hl, $cf66
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ jr .asm_e025c
+
+.asm_e027c
+ ld de, $002c
+ call PlaySFX
+ ld a, $3
+.asm_e0284
+ push af
+ call Functione0849
+ ld c, $4
+ call DelayFrames
+ call ClearSprites
+ ld c, $4
+ call DelayFrames
+ pop af
+ dec a
+ jr nz, .asm_e0284
+ ld hl, $cf66
+ ld a, [hl]
+ push af
+ xor $1
+ ld [hl], a
+ call Functione03ac
+ ld bc, $0605
+ call Functione04e5
+ pop af
+ ld [$cf66], a
+ call Functione01b0
+ ret
+; e02b2
+
+UnknownText_0xe02b2: ; 0xe02b2
+ ; Choose a card.
+ text_jump UnknownText_0x1c57be
+ db "@"
+; 0xe02b7
+
+Functione02b7: ; e02b7
+ ld hl, UnknownText_0xe02d5
+ call Functione0489
+.asm_e02bd
+ call Functiona57
+ ld a, [$ffa9]
+ and $1
+ jr nz, .asm_e02d1
+ call Functione089c
+ call Functione0960
+ call DelayFrame
+ jr .asm_e02bd
+
+.asm_e02d1
+ call Functione01b0
+ ret
+; e02d5
+
+UnknownText_0xe02d5: ; 0xe02d5
+ ; Place your bet.
+ text_jump UnknownText_0x1c57ce
+ db "@"
+; 0xe02da
+
+Functione02da: ; e02da
+ xor a
+ ld [$ff9b], a
+ call Functione0960
+ call WaitSFX
+ ld de, $009a
+ call PlaySFX
+ call WaitSFX
+ ld a, [$c6e8]
+ ld e, a
+ ld d, $0
+ ld hl, PlayerSDefLevel
+ add hl, de
+ add hl, de
+ ld a, [$cf66]
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurEnemyMoveNum], a
+ ld e, a
+ ld hl, $c6ea
+ add hl, de
+ ld [hl], $1
+ call Functione03ac
+ call Functione03ec
+ call Function3200
+ call Functione01b0
+ ret
+; e0314
+
+Functione0314: ; e0314
+ call Functione0637
+ call Functiona80
+ call Functione01b0
+ ret
+; e031e
+
+Functione031e: ; e031e
+ call ClearSprites
+ ld hl, UnknownText_0xe0356
+ call Functione0489
+ call YesNoBox
+ jr nc, .asm_e0330
+ call Functione01b0
+ ret
+
+.asm_e0330
+ ld a, [$c6e8]
+ inc a
+ ld [$c6e8], a
+ cp $c
+ jr c, .asm_e034d
+ call Functione04c1
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functione0366
+ ld hl, $435b
+ call PrintText
+ jr .asm_e0350
+
+.asm_e034d
+ call Functione0534
+
+.asm_e0350
+ ld a, $1
+ ld [$cf63], a
+ ret
+; e0356
+
+UnknownText_0xe0356: ; 0xe0356
+ ; Want to play again?
+ text_jump UnknownText_0x1c57df
+ db "@"
+; 0xe035b
+
+INCBIN "baserom.gbc", $e035b, $e0360 - $e035b
+
+Functione0360: ; e0360
+ ld hl, $cf63
+ set 7, [hl]
+ ret
+; e0366
+
+Functione0366: ; e0366
+ ld hl, PlayerSDefLevel
+ ld bc, $0018
+ xor a
+ call ByteFill
+ ld de, PlayerSDefLevel
+ ld c, $17
+.asm_e0375
+ call Random
+ and $1f
+ cp $18
+ jr nc, .asm_e0375
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0375
+ ld [hl], c
+ dec c
+ jr nz, .asm_e0375
+ xor a
+ ld [$c6e8], a
+ ld hl, $c6ea
+ ld bc, $0018
+ call ByteFill
+ ret
+; e0398
+
+Functione0398: ; e0398
+ ld hl, $0000
+ ld bc, $0006
+ ld a, [$cf64]
+ call AddNTimes
+ ld b, $0
+ ld a, [$cf65]
+ ld c, a
+ add hl, bc
+ ret
+; e03ac
+
+Functione03ac: ; e03ac
+ ld a, [$cf66]
+ and a
+ jr nz, .asm_e03ba
+ ld hl, $c4a2
+ ld bc, $1018
+ jr .asm_e03c0
+
+.asm_e03ba
+ ld hl, $c51a
+ ld bc, $4018
+
+.asm_e03c0
+ ret
+; e03c1
+
+Functione03c1: ; e03c1
+ xor a
+ ld [hBGMapMode], a
+ ld de, $43ce
+ ld bc, $0605
+ call Functione04f7
+ ret
+; e03ce
+
+INCBIN "baserom.gbc", $e03ce, $e03ec - $e03ce
+
+Functione03ec: ; e03ec
+ xor a
+ ld [hBGMapMode], a
+ push hl
+ push hl
+ ld de, $443b
+ ld bc, $0605
+ call Functione04f7
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, $0
+ ld hl, $4459
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
+ ld bc, $0017
+ add hl, bc
+ ld [hl], e
+ ld bc, $0012
+ add hl, bc
+ ld a, d
+ ld de, $0014
+ ld b, $3
+.asm_e0418
+ push hl
+ ld c, $3
+.asm_e041b
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e041b
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e0418
+ pop hl
+ ld a, [hCGB]
+ and a
+ ret z
+ ld de, $0939
+ add hl, de
+ ld a, [CurEnemyMoveNum]
+ and $3
+ inc a
+ ld bc, $0605
+ call Functione04e7
+ ret
+; e043b
+
+INCBIN "baserom.gbc", $e043b, $e0489 - $e043b
+
+Functione0489: ; e0489
+ push hl
+ ld hl, $c590
+ ld b, $4
+ ld c, $12
+ call TextBox
+ pop hl
+ call PrintTextBoxText
+ call Functione049c
+ ret
+; e049c
+
+Functione049c: ; e049c
+ ld hl, $c5d5
+ ld b, $1
+ ld c, $9
+ call TextBox
+ ld hl, $c5ea
+ ld de, $44bc
+ call PlaceString
+ ld hl, $c5ef
+ ld de, Coins
+ ld bc, $8204
+ call PrintNum
+ ret
+; e04bc
+
+INCBIN "baserom.gbc", $e04bc, $e04c1 - $e04bc
; known jump sources: e0144 (38:4144)
Functione04c1: ; e04c1 (38:44c1)
@@ -98806,7 +74728,8 @@ Functione04c1: ; e04c1 (38:44c1)
ret
; e04e5 (38:44e5)
-INCBIN "baserom.gbc",$e04e5,$e04e7 - $e04e5
+Functione04e5: ; e04e5
+ ld a, $29
; known jump sources: e04f4 (38:44f4), e0c4d (38:4c4d), e0c58 (38:4c58), e0c63 (38:4c63), e0c6e (38:4c6e), e0c79 (38:4c79)
Functione04e7: ; e04e7 (38:44e7)
@@ -98843,7 +74766,30 @@ Functione04f7: ; e04f7 (38:44f7)
ret
; e0509 (38:4509)
-INCBIN "baserom.gbc",$e0509,$e0521 - $e0509
+Functione0509: ; e0509
+ ld de, Sprites
+ ld a, [hli]
+.asm_e050d
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_e050d
+ ret
+; e0521
; known jump sources: e0141 (38:4141)
Functione0521: ; e0521 (38:4521)
@@ -98858,7 +74804,220 @@ Functione0521: ; e0521 (38:4521)
ret
; e0534 (38:4534)
-INCBIN "baserom.gbc",$e0534,$e0c37 - $e0534
+Functione0534: ; e0534
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, $0
+ and $3
+ ld c, a
+ ld b, $0
+ ld a, e
+ and $1c
+ srl a
+ add $53
+ ld l, a
+ ld a, $0
+ adc $45
+ ld h, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0553
+
+INCBIN "baserom.gbc", $e0553, $e0637 - $e0553
+
+Functione0637: ; e0637
+ call Functione0398
+ add hl, hl
+ ld de, $4643
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0643
+
+INCBIN "baserom.gbc", $e0643, $e0849 - $e0643
+
+Functione0849: ; e0849
+ call Functione03ac
+ ld hl, $4853
+ call Functione0509
+ ret
+; e0853
+
+INCBIN "baserom.gbc", $e0853, $e089c - $e0853
+
+Functione089c: ; e089c
+ ld hl, $ffa9
+ ld a, [hl]
+ and $20
+ jp nz, Functione08b8
+ ld a, [hl]
+ and $10
+ jp nz, Functione08ef
+ ld a, [hl]
+ and $40
+ jp nz, Functione090a
+ ld a, [hl]
+ and $80
+ jp nz, Functione093d
+ ret
+; e08b8
+
+Functione08b8: ; e08b8
+ ld hl, $cf65
+ ld a, [$cf64]
+ and a
+ jr z, .asm_e08d5
+ cp $1
+ jr z, .asm_e08cc
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jp Functione0959
+
+.asm_e08cc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e08e2
+ dec [hl]
+ jp Functione0959
+
+.asm_e08d5
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e08e2
+ dec [hl]
+ dec [hl]
+ jp Functione0959
+
+.asm_e08e2
+ ld a, $2
+ ld [$cf64], a
+ ld a, $1
+ ld [$cf65], a
+ jp Functione0959
+; e08ef
+
+Functione08ef: ; e08ef
+ ld hl, $cf65
+ ld a, [$cf64]
+ and a
+ jr z, .asm_e08ff
+ ld a, [hl]
+ cp $5
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e08ff
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $4
+ ret nc
+ inc [hl]
+ inc [hl]
+ jr Functione0959
+
+Functione090a: ; e090a
+ ld hl, $cf64
+ ld a, [$cf65]
+ and a
+ jr z, .asm_e0925
+ cp $1
+ jr z, .asm_e091d
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jr Functione0959
+
+.asm_e091d
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e0931
+ dec [hl]
+ jr Functione0959
+
+.asm_e0925
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e0931
+ dec [hl]
+ dec [hl]
+ jr Functione0959
+
+.asm_e0931
+ ld a, $1
+ ld [$cf64], a
+ ld a, $2
+ ld [$cf65], a
+ jr Functione0959
+
+Functione093d: ; e093d
+ ld hl, $cf64
+ ld a, [$cf65]
+ and a
+ jr z, .asm_e0950
+ ld hl, $cf64
+ ld a, [hl]
+ cp $7
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e0950
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $6
+ ret nc
+ inc [hl]
+ inc [hl]
+
+Functione0959: ; e0959
+ ld de, $0003
+ call PlaySFX
+ ret
+; e0960
+
+Functione0960: ; e0960
+ call ClearSprites
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_e096d
+ ld a, [$ff9b]
+ and $4
+ ret nz
+
+.asm_e096d
+ call Functione0398
+ add hl, hl
+ add hl, hl
+ ld de, $4981
+ add hl, de
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione0509
+ ret
+; e0981
+
+INCBIN "baserom.gbc", $e0981, $e0c37 - $e0981
; known jump sources: e0147 (38:4147)
Functione0c37: ; e0c37 (38:4c37)
@@ -99810,8 +75969,8 @@ Functione24e0: ; e24e0 (38:64e0)
ld de, $74f4
call Functione2a6e
call Function1d6e
- ld bc, $e0b
- call Function1dd2
+ lb bc, 14, 11
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c07
@@ -100048,8 +76207,8 @@ Functione26d8: ; e26d8 (38:66d8)
ld de, $74f4
call Functione2a6e
call Function1d6e
- ld bc, $e0b
- call Function1dd2
+ lb bc, 14, 11
+ call PlaceYesNoBox
ld a, [$cfa9]
dec a
call Function1c07
@@ -101405,7 +77564,7 @@ Functione37e3: ; e37e3 (38:77e3)
ret
-SECTION "bank39",ROMX,BANK[$39]
+SECTION "bank39", ROMX, BANK[$39]
CopyrightGFX: ; e4000
INCBIN "gfx/misc/copyright.2bpp"
@@ -102017,7 +78176,7 @@ Functione4579: ; e4579
ld c, $64
call DelayFrames
call ClearTileMap
- callba Function4ea82
+ callba GBCOnlyScreen
call Functione45e8
.asm_e45c0
call Functiona57
@@ -104035,148 +80194,8 @@ INCBIN "gfx/intro/unown_back.lz"
INCBIN "baserom.gbc", $e799d, $e7a70 - $e799d
-; ================================================================
-; Sound engine and music/sound effect pointers
-SECTION "bank3A",ROMX,BANK[$3A]
-
-; The sound engine. Interfaces are in bank 0
-INCLUDE "audio/engine.asm"
-
-; What music plays when a trainer notices you
-INCLUDE "audio/trainer_encounters.asm"
-
-; Pointer table for all 103 songs
-Music: INCLUDE "audio/music_pointers.asm"
-
-; Empty song
-INCLUDE "audio/music/nothing.asm"
-
-; Pointer table for all 68 base cries
-Cries: INCLUDE "audio/cry_pointers.asm"
-
-; Pointer table for all 207 sfx
-SFX: INCLUDE "audio/sfx_pointers.asm"
-
-
-; Songs I
-
-INCLUDE "audio/music/route36.asm"
-INCLUDE "audio/music/rivalbattle.asm"
-INCLUDE "audio/music/rocketbattle.asm"
-INCLUDE "audio/music/elmslab.asm"
-INCLUDE "audio/music/darkcave.asm"
-INCLUDE "audio/music/johtogymbattle.asm"
-INCLUDE "audio/music/championbattle.asm"
-INCLUDE "audio/music/ssaqua.asm"
-INCLUDE "audio/music/newbarktown.asm"
-INCLUDE "audio/music/goldenrodcity.asm"
-INCLUDE "audio/music/vermilioncity.asm"
-INCLUDE "audio/music/titlescreen.asm"
-INCLUDE "audio/music/ruinsofalphinterior.asm"
-INCLUDE "audio/music/lookpokemaniac.asm"
-INCLUDE "audio/music/trainervictory.asm"
-
-
-SECTION "bank3B",ROMX,BANK[$3B]
-
-; Songs II
-
-INCLUDE "audio/music/route1.asm"
-INCLUDE "audio/music/route3.asm"
-INCLUDE "audio/music/route12.asm"
-INCLUDE "audio/music/kantogymbattle.asm"
-INCLUDE "audio/music/kantotrainerbattle.asm"
-INCLUDE "audio/music/kantowildbattle.asm"
-INCLUDE "audio/music/pokemoncenter.asm"
-INCLUDE "audio/music/looklass.asm"
-INCLUDE "audio/music/lookofficer.asm"
-INCLUDE "audio/music/route2.asm"
-INCLUDE "audio/music/mtmoon.asm"
-INCLUDE "audio/music/showmearound.asm"
-INCLUDE "audio/music/gamecorner.asm"
-INCLUDE "audio/music/bicycle.asm"
-INCLUDE "audio/music/looksage.asm"
-INCLUDE "audio/music/pokemonchannel.asm"
-INCLUDE "audio/music/lighthouse.asm"
-INCLUDE "audio/music/lakeofrage.asm"
-INCLUDE "audio/music/indigoplateau.asm"
-INCLUDE "audio/music/route37.asm"
-INCLUDE "audio/music/rockethideout.asm"
-INCLUDE "audio/music/dragonsden.asm"
-INCLUDE "audio/music/ruinsofalphradio.asm"
-INCLUDE "audio/music/lookbeauty.asm"
-INCLUDE "audio/music/route26.asm"
-INCLUDE "audio/music/ecruteakcity.asm"
-INCLUDE "audio/music/lakeofragerocketradio.asm"
-INCLUDE "audio/music/magnettrain.asm"
-INCLUDE "audio/music/lavendertown.asm"
-INCLUDE "audio/music/dancinghall.asm"
-INCLUDE "audio/music/contestresults.asm"
-INCLUDE "audio/music/route30.asm"
-
-SECTION "bank3C",ROMX,BANK[$3C]
-
-; Songs III
-
-INCLUDE "audio/music/violetcity.asm"
-INCLUDE "audio/music/route29.asm"
-INCLUDE "audio/music/halloffame.asm"
-INCLUDE "audio/music/healpokemon.asm"
-INCLUDE "audio/music/evolution.asm"
-INCLUDE "audio/music/printer.asm"
-
-INCBIN "baserom.gbc",$f0941,$f2787 - $f0941
-
-CryHeaders:
-INCLUDE "audio/cry_headers.asm"
-
-INCBIN "baserom.gbc",$f2d69,$f3fb6 - $f2d69
-
-
-SECTION "bank3D",ROMX,BANK[$3D]
-
-; Songs IV
-
-INCLUDE "audio/music/viridiancity.asm"
-INCLUDE "audio/music/celadoncity.asm"
-INCLUDE "audio/music/wildpokemonvictory.asm"
-INCLUDE "audio/music/successfulcapture.asm"
-INCLUDE "audio/music/gymleadervictory.asm"
-INCLUDE "audio/music/mtmoonsquare.asm"
-INCLUDE "audio/music/gym.asm"
-INCLUDE "audio/music/pallettown.asm"
-INCLUDE "audio/music/profoakspokemontalk.asm"
-INCLUDE "audio/music/profoak.asm"
-INCLUDE "audio/music/lookrival.asm"
-INCLUDE "audio/music/aftertherivalfight.asm"
-INCLUDE "audio/music/surf.asm"
-INCLUDE "audio/music/nationalpark.asm"
-INCLUDE "audio/music/azaleatown.asm"
-INCLUDE "audio/music/cherrygrovecity.asm"
-INCLUDE "audio/music/unioncave.asm"
-INCLUDE "audio/music/johtowildbattle.asm"
-INCLUDE "audio/music/johtowildbattlenight.asm"
-INCLUDE "audio/music/johtotrainerbattle.asm"
-INCLUDE "audio/music/lookyoungster.asm"
-INCLUDE "audio/music/tintower.asm"
-INCLUDE "audio/music/sprouttower.asm"
-INCLUDE "audio/music/burnedtower.asm"
-INCLUDE "audio/music/mom.asm"
-INCLUDE "audio/music/victoryroad.asm"
-INCLUDE "audio/music/pokemonlullaby.asm"
-INCLUDE "audio/music/pokemonmarch.asm"
-INCLUDE "audio/music/goldsilveropening.asm"
-INCLUDE "audio/music/goldsilveropening2.asm"
-INCLUDE "audio/music/lookhiker.asm"
-INCLUDE "audio/music/lookrocket.asm"
-INCLUDE "audio/music/rockettheme.asm"
-INCLUDE "audio/music/mainmenu.asm"
-INCLUDE "audio/music/lookkimonogirl.asm"
-INCLUDE "audio/music/pokeflutechannel.asm"
-INCLUDE "audio/music/bugcatchingcontest.asm"
-
-SECTION "bank3E",ROMX,BANK[$3E]
+SECTION "bank3E", ROMX, BANK[$3E]
FontExtra:
INCBIN "gfx/misc/font_extra.2bpp"
@@ -104199,13 +80218,18 @@ INCBIN "gfx/frames/8.1bpp"
INCBIN "gfx/frames/9.1bpp"
; f89b0
-INCBIN "baserom.gbc",$f89b0,$f8ba0 - $f89b0
+INCBIN "baserom.gbc", $f89b0, $f8a90 - $f89b0
+
+ShinyIcon: ; f8a90
+INCBIN "gfx/stats/shiny.2bpp"
+
+INCBIN "baserom.gbc", $f8aa0, $f8ba0 - $f8aa0
TownMapGFX: ; f8ba0
INCBIN "gfx/misc/town_map.lz"
; f8ea3
-INCBIN "baserom.gbc",$f8ea3,$fb449 - $f8ea3
+INCBIN "baserom.gbc", $f8ea3, $fb449 - $f8ea3
Functionfb449: ; fb449
@@ -105043,7 +81067,7 @@ DoBadgeTypeBoosts: ; fbe24
; fbe91
-SECTION "bank3F",ROMX,BANK[$3F]
+SECTION "bank3F", ROMX, BANK[$3F]
_AnimateTileset: ; fc000
; Iterate over a given pointer array of
@@ -106083,7 +82107,7 @@ Functionfcba8: ; fcba8
jr nz, .asm_fcc03
ld a, $0
call Functionfcf38
- call Function1dcf
+ call YesNoBox
ld a, $1
jr c, .asm_fcc03
ld b, $6
@@ -106218,7 +82242,7 @@ Functionfcc63: ; fcc63
call Functionfcdd7
ld b, h
ld c, l
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c701], a
ld e, $0
@@ -106673,7 +82697,7 @@ Functionfd1d0: ; fd1d0
INCBIN "baserom.gbc",$fd1d1,$fd1d2 - $fd1d1
-SECTION "bank40",ROMX,BANK[$40]
+SECTION "bank40", ROMX, BANK[$40]
Function100000: ; 100000
ld a, [rSVBK]
@@ -108025,7 +84049,7 @@ Function100a87: ; 100a87
ld [$cd27], a
.asm_100a92
call DelayFrame
- call GetJoypadPublic
+ call GetJoypad
callba Function100382
ld c, $1
ld b, $3
@@ -108904,7 +84928,7 @@ Function102142: ; 102142
call Function10219f
ld hl, $61d6
call Function1d4f
- call Function1dcf
+ call YesNoBox
call Function1c07
jr c, .asm_10217c
call Function1021b8
@@ -109007,7 +85031,7 @@ Function10366e: ; 10366e
jr z, .asm_10369b
ld hl, $775d
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_103696
callba Function8b1e1
jr nc, .asm_103690
@@ -109031,7 +85055,7 @@ Function10366e: ; 10366e
jr nz, .asm_1036b5
ld hl, $7762
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1036b5
call Function1036f9
call Functiona36
@@ -109178,7 +85202,7 @@ Function1037c2: ; 1037c2
jr z, .asm_1037de
ld hl, $77e6
call PrintText
- call Function1dcf
+ call YesNoBox
jr c, .asm_1037de
ld a, $1
ld [ScriptVar], a
@@ -109286,7 +85310,7 @@ Function10387b: ; 10387b
INCBIN "baserom.gbc",$103898,$10389d - $103898
-SECTION "bank41",ROMX,BANK[$41]
+SECTION "bank41", ROMX, BANK[$41]
Function104000: ; 104000
ld hl, $4006
@@ -109893,7 +85917,7 @@ Function1046df: ; 1046df (41:46df)
ld b, a
ld a, [$d148]
ld c, a
- call Function2c99
+ call GetAnyMapPermission
call CheckIndoorMap
ret nz
ld a, [$d14a]
@@ -109922,14 +85946,14 @@ Function104718: ; 104718 (41:4718)
ld b, a
ld a, [$d148]
ld c, a
- call Function2c99
+ call GetAnyMapPermission
call CheckIndoorMap
ret nz
ld a, [$d147]
ld b, a
ld a, [$d148]
ld c, a
- call Function2ca7
+ call GetAnyMapTileset
ld a, c
cp $7
jr z, .asm_104743
@@ -110010,7 +86034,7 @@ Function1047b4: ; 1047b4 (41:47b4)
ld a, $0
ld [rVBK], a ; $ff00+$4f
ret
- call Function2d27
+ call LoadTilesetHeader
call Function2821
xor a
ld [$FF00+$de], a
@@ -111864,7 +87888,7 @@ UsedMoveText: ; 105db9
; this is a stream of text and asm from 105db9 to 105ef6
; print actor name
- text_jump _ActorNameText, BANK(_ActorNameText)
+ text_jump _ActorNameText
start_asm
; ????
@@ -111926,13 +87950,13 @@ UsedMoveText: ; 105db9
; 105e04
UsedMove1Text: ; 105e04
- text_jump _UsedMove1Text, BANK(_UsedMove1Text)
+ text_jump _UsedMove1Text
start_asm
jr Function105e10
; 105e0b
UsedMove2Text: ; 105e0b
- text_jump _UsedMove2Text, BANK(_UsedMove2Text)
+ text_jump _UsedMove2Text
start_asm
; 105e10
@@ -111947,7 +87971,7 @@ Function105e10: ; 105e10
; 105e1a
UsedInsteadText: ; 105e1a
- text_jump _UsedInsteadText, BANK(_UsedInsteadText)
+ text_jump _UsedInsteadText
start_asm
; 105e1f
@@ -111957,7 +87981,7 @@ GetMoveNameText: ; 105e1f
; 105e23
MoveNameText: ; 105e23
- text_jump _MoveNameText, BANK(_MoveNameText)
+ text_jump _MoveNameText
start_asm
; 105e28
@@ -111994,23 +88018,23 @@ GetUsedMoveTextEnder: ; 105e28
; 105e43
EndUsedMove1Text: ; 105e43
- text_jump _EndUsedMove1Text, BANK(_EndUsedMove1Text)
+ text_jump _EndUsedMove1Text
db "@"
; 105e48
EndUsedMove2Text: ; 105e48
- text_jump _EndUsedMove2Text, BANK(_EndUsedMove2Text)
+ text_jump _EndUsedMove2Text
db "@"
; 105e4d
EndUsedMove3Text: ; 105e4d
- text_jump _EndUsedMove3Text, BANK(_EndUsedMove3Text)
+ text_jump _EndUsedMove3Text
db "@"
; 105e52
EndUsedMove4Text: ; 105e52
- text_jump _EndUsedMove4Text, BANK(_EndUsedMove4Text)
+ text_jump _EndUsedMove4Text
db "@"
; 105e57
EndUsedMove5Text: ; 105e57
- text_jump _EndUsedMove5Text, BANK(_EndUsedMove5Text)
+ text_jump _EndUsedMove5Text
db "@"
; 105e5c
@@ -112635,7 +88659,13 @@ Function1060e5: ; 1060e5
ret
; 1060e6 (41:60e6)
-INCBIN "baserom.gbc",$1060e6,$1060fb - $1060e6
+INCBIN "baserom.gbc", $1060e6, $1060ef - $1060e6
+
+Function1060ef: ; 1060ef
+ ret
+; 1060f0
+
+INCBIN "baserom.gbc", $1060f0, $1060fb - $1060f0
Function1060fb: ; 1060fb
@@ -113066,7 +89096,7 @@ Function106594: ; 106594
INCBIN "baserom.gbc",$1065ad,$106dbc - $1065ad
-SECTION "bank42",ROMX,BANK[$42]
+SECTION "bank42", ROMX, BANK[$42]
INCBIN "baserom.gbc",$108000,$108016 - $108000
@@ -113337,242 +89367,19 @@ INCBIN "gfx/intro/logo.lz"
; 109847
-Function109847: ; 109847
- bit 6, b
- ld a, $0
- jr z, .asm_10984f
- ld a, $40
-
-.asm_10984f
- ld [$cf63], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld hl, $ca00
- ld c, $80
- ld de, rJOYP
-.asm_10986a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- dec c
- jr nz, .asm_10986a
- ld de, $5c24
- ld hl, $9200
- ld bc, $4209
- call Request2bpp
- ld de, $4000
- ld hl, $9600
- ld bc, $391d
- call Request2bpp
- ld de, $7d2e
- ld hl, $9400
- ld bc, $3210
- call Request2bpp
- ld a, $ff
- ld [$cf64], a
- xor a
- ld [$cf65], a
- call Function109bca
- ld e, l
- ld d, h
- ld hl, VTiles2
- ld bc, $4210
- call Request2bpp
- call Function109a95
- xor a
- ld [$cf66], a
- ld hl, LYOverrides
- ld bc, Start
- xor a
- call ByteFill
- ld a, $43
- ld [hLCDStatCustom], a
- call GetCreditsPalette
- call Function32f9
- ld a, [$ff9e]
- push af
- ld a, $5
- ld [$ff9e], a
- ld a, $1
- ld [$ffaa], a
- xor a
- ld [hBGMapMode], a
- ld [CreditsPos], a
- ld [$cd21], a
- ld [CreditsTimer], a
-.asm_1098de
- call Function109908
- call Function1098fd
- jr nz, .asm_1098ee
- call Function109926
- call DelayFrame
- jr .asm_1098de
-
-.asm_1098ee
- call WhiteBGMap
- xor a
- ld [hLCDStatCustom], a
- ld [hBGMapAddress], a
- pop af
- ld [$ff9e], a
- pop af
- ld [rSVBK], a
- ret
-; 1098fd
-
-Function1098fd: ; 1098fd
- ld a, [hJoypadDown]
- and $1
- ret z
- ld a, [$cf63]
- bit 7, a
- ret
-; 109908
-
-Function109908: ; 109908
- ld a, [hJoypadDown]
- and $2
- ret z
- ld a, [$cf63]
- bit 6, a
- ret z
- ld hl, CreditsPos
- ld a, [hli]
- cp $d
- jr nc, .asm_10991e
- ld a, [hli]
- and a
- ret z
-
-.asm_10991e
- ld hl, CreditsTimer
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-; 109926
-
-Function109926: ; 109926
- ld a, [$cf63]
- and $f
- ld e, a
- ld d, $0
- ld hl, $5937
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 109937
-
-
-; no known jump sources
-Jumptable_109937: ; 109937 (42:5937)
- dw ParseCredits
- dw Function109951
- dw Function109951
- dw Function10995e
- dw Function109964
- dw Function10997b
- dw Function109986
- dw Function109951
- dw Function109951
- dw Function109951
- dw Function109964
- dw Function10997b
- dw Function109956
-
-
-; known jump sources: 109961 (42:5961), 109983 (42:5983), 1099a0 (42:59a0), 109a62 (42:5a62)
-Function109951: ; 109951 (42:5951)
- ld hl, $cf63
- inc [hl]
- ret
-
-; no known jump sources
-Function109956: ; 109956 (42:5956)
- ld hl, $cf63
- ld a, [hl]
- and $f0
- ld [hl], a
- ret
-
-; no known jump sources
-Function10995e: ; 10995e (42:595e)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- jp Function109951
-
-; no known jump sources
-Function109964: ; 109964 (42:5964)
- call Function109bca
- ld a, l
- ld [$cf68], a
- ld a, h
- ld [$cf69], a
- ld a, $0
- ld [$cf6a], a
- ld a, $90
- ld [$cf6b], a
- jr Function10997b
-
-; known jump sources: 109979 (42:5979)
-Function10997b: ; 10997b (42:597b)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, $8
- ld [$cf67], a
- jp Function109951
-
-; known jump sources: 10998a (42:598a)
-Function109986: ; 109986 (42:5986)
- ld a, [rLY] ; $ff00+$44
- cp $30
- jr c, Function109986
- ld a, [$cf66]
- dec a
- dec a
- ld [$cf66], a
- ld hl, $d11f
- call Function1099a3
- ld hl, $d187
- call Function1099a3
- jp Function109951
-
-; known jump sources: 109997 (42:5997), 10999d (42:599d)
-Function1099a3: ; 1099a3 (42:59a3)
- ld c, $8
-.asm_1099a5
- ld [hli], a
- dec c
- jr nz, .asm_1099a5
- ret
-
-; Credits
-INCLUDE "engine/credits.asm"
-
-
-SECTION "bank43",ROMX,BANK[$43]
+SECTION "bank43", ROMX, BANK[$43]
INCBIN "baserom.gbc",$10c000,$10ed67 - $10c000
INCLUDE "engine/title.asm"
-SECTION "bank44",ROMX,BANK[$44]
+SECTION "bank44", ROMX, BANK[$44]
INCLUDE "lib/mobile/main.asm"
-SECTION "bank45",ROMX,BANK[$45]
+SECTION "bank45", ROMX, BANK[$45]
INCBIN "baserom.gbc",$114000,$114243 - $114000
@@ -114575,7 +90382,7 @@ Function117cdd: ; 0x117cdd
ret
-SECTION "bank46",ROMX,BANK[$46]
+SECTION "bank46", ROMX, BANK[$46]
Function118000: ; 118000
ld a, $1
@@ -116554,7 +92361,7 @@ Function11b7e5: ; 11b7e5
ld a, [hl]
ld [$c730], a
ld bc, EnemyMovePP
- callba Function4f301
+ callba GetCaughtGender
ld a, c
ld [$c733], a
call SpeechTextBox
@@ -116841,7 +92648,7 @@ Function11ba38: ; 11ba38
INCBIN "baserom.gbc",$11ba44,$11bc9e - $11ba44
-SECTION "bank47",ROMX,BANK[$47]
+SECTION "bank47", ROMX, BANK[$47]
Function11c000: ; 11c000
ld a, [rSVBK]
@@ -117630,33 +93437,44 @@ Function11c52c: ; 11c52c (47:452c)
Function11c53d: ; 11c53d (47:453d)
ld hl, $cd21
ld de, hJoypadPressed ; $ffa3
+
ld a, [de]
- and $8
- jr nz, .asm_11c57f
+ and START
+ jr nz, .start
+
ld a, [de]
- and $4
- jr nz, .asm_11c58d
+ and SELECT
+ jr nz, .select
+
ld a, [de]
- and $2
- jr nz, .asm_11c589
+ and B_BUTTON
+ jr nz, .b
+
ld a, [de]
- and $1
- jr nz, .asm_11c56f
+ and A_BUTTON
+ jr nz, .a
+
ld de, $ffa9
+
ld a, [de]
- and $40
- jr nz, .asm_11c5b5
+ and D_UP
+ jr nz, .up
+
ld a, [de]
- and $80
- jr nz, .asm_11c5bd
+ and D_DOWN
+ jr nz, .down
+
ld a, [de]
- and $20
- jr nz, .asm_11c5c5
+ and D_LEFT
+ jr nz, .left
+
ld a, [de]
- and $10
- jr nz, .asm_11c5da
+ and D_RIGHT
+ jr nz, .right
+
ret
-.asm_11c56f
+
+.a
ld a, [$cd21]
cp $f
jr c, .asm_11c59d
@@ -117664,50 +93482,60 @@ Function11c53d: ; 11c53d (47:453d)
jr z, .asm_11c5ab
dec a
jr z, .asm_11c599
- jr .asm_11c589
-.asm_11c57f
+ jr .b
+
+.start
ld hl, $cd24
set 0, [hl]
ld a, $8
ld [BGMapBuffer], a ; $cd20 (aliases: CreditsPos)
-.asm_11c589
+
+.b
ld a, $4
jr .asm_11c59f
-.asm_11c58d
+
+.select
ld a, [$cd2b]
xor $1
ld [$cd2b], a
ld a, $15
jr .asm_11c59f
+
.asm_11c599
ld a, $13
jr .asm_11c59f
+
.asm_11c59d
ld a, $8
+
.asm_11c59f
ld hl, $cd24
set 1, [hl]
ld [$cf63], a
call PlayClickSFX
ret
+
.asm_11c5ab
ld a, [BGMapBuffer] ; $cd20 (aliases: CreditsPos)
call Function11ca6a
call PlayClickSFX
ret
-.asm_11c5b5
+
+.up
ld a, [hl]
cp $3
ret c
sub $3
jr .asm_11c5ee
-.asm_11c5bd
+
+.down
ld a, [hl]
cp $f
ret nc
add $3
jr .asm_11c5ee
-.asm_11c5c5
+
+.left
ld a, [hl]
and a
ret z
@@ -117723,7 +93551,8 @@ Function11c53d: ; 11c53d (47:453d)
ret z
dec a
jr .asm_11c5ee
-.asm_11c5da
+
+.right
ld a, [hl]
cp $2
ret z
@@ -117738,6 +93567,7 @@ Function11c53d: ; 11c53d (47:453d)
cp $11
ret z
inc a
+
.asm_11c5ee
ld [hl], a
ret
@@ -119584,829 +95414,8 @@ Function11d4aa: ; 11d4aa
INCBIN "baserom.gbc",$11d4fe,$11f686 - $11d4fe
-SECTION "bank48",ROMX,BANK[$48]
-
-PicPointers:
-INCLUDE "gfx/pics/pic_pointers.asm"
-
-; Pics I
-
-HoOhFrontpic: INCBIN "gfx/pics/250/front.lz"
-MachampFrontpic: INCBIN "gfx/pics/068/front.lz"
-NinetalesFrontpic: INCBIN "gfx/pics/038/front.lz"
-FeraligatrFrontpic: INCBIN "gfx/pics/160/front.lz"
-NidokingFrontpic: INCBIN "gfx/pics/034/front.lz"
-RaikouFrontpic: INCBIN "gfx/pics/243/front.lz"
-LugiaFrontpic: INCBIN "gfx/pics/249/front.lz"
-ArticunoFrontpic: INCBIN "gfx/pics/144/front.lz"
-TaurosFrontpic: INCBIN "gfx/pics/128/front.lz"
-VenusaurFrontpic: INCBIN "gfx/pics/003/front.lz"
-EnteiFrontpic: INCBIN "gfx/pics/244/front.lz"
-SuicuneFrontpic: INCBIN "gfx/pics/245/front.lz"
-TyphlosionFrontpic: INCBIN "gfx/pics/157/front.lz"
-; 123ffa
-
-
-SECTION "bank49",ROMX,BANK[$49]
-
-UnownPicPointers:
-INCLUDE "gfx/pics/unown_pic_pointers.asm"
-
-; Pics II
-
-BlastoiseFrontpic: INCBIN "gfx/pics/009/front.lz"
-RapidashFrontpic: INCBIN "gfx/pics/078/front.lz"
-MeganiumFrontpic: INCBIN "gfx/pics/154/front.lz"
-NidoqueenFrontpic: INCBIN "gfx/pics/031/front.lz"
-HitmonleeFrontpic: INCBIN "gfx/pics/106/front.lz"
-ScizorFrontpic: INCBIN "gfx/pics/212/front.lz"
-BeedrillFrontpic: INCBIN "gfx/pics/015/front.lz"
-ArcanineFrontpic: INCBIN "gfx/pics/059/front.lz"
-TyranitarFrontpic: INCBIN "gfx/pics/248/front.lz"
-MoltresFrontpic: INCBIN "gfx/pics/146/front.lz"
-ZapdosFrontpic: INCBIN "gfx/pics/145/front.lz"
-ArbokFrontpic: INCBIN "gfx/pics/024/front.lz"
-MewtwoFrontpic: INCBIN "gfx/pics/150/front.lz"
-FearowFrontpic: INCBIN "gfx/pics/022/front.lz"
-CharizardFrontpic: INCBIN "gfx/pics/006/front.lz"
-QuilavaFrontpic: INCBIN "gfx/pics/156/front.lz"
-; 127ffe
-
-
-SECTION "bank4a",ROMX,BANK[$4a]
-
-TrainerPicPointers:
-INCLUDE "gfx/pics/trainer_pic_pointers.asm"
-
-; Pics III
-
-SteelixFrontpic: INCBIN "gfx/pics/208/front.lz"
-AlakazamFrontpic: INCBIN "gfx/pics/065/front.lz"
-GyaradosFrontpic: INCBIN "gfx/pics/130/front.lz"
-KangaskhanFrontpic: INCBIN "gfx/pics/115/front.lz"
-RhydonFrontpic: INCBIN "gfx/pics/112/front.lz"
-GolduckFrontpic: INCBIN "gfx/pics/055/front.lz"
-RhyhornFrontpic: INCBIN "gfx/pics/111/front.lz"
-PidgeotFrontpic: INCBIN "gfx/pics/018/front.lz"
-SlowbroFrontpic: INCBIN "gfx/pics/080/front.lz"
-ButterfreeFrontpic: INCBIN "gfx/pics/012/front.lz"
-WeezingFrontpic: INCBIN "gfx/pics/110/front.lz"
-CloysterFrontpic: INCBIN "gfx/pics/091/front.lz"
-SkarmoryFrontpic: INCBIN "gfx/pics/227/front.lz"
-DewgongFrontpic: INCBIN "gfx/pics/087/front.lz"
-VictreebelFrontpic: INCBIN "gfx/pics/071/front.lz"
-RaichuFrontpic: INCBIN "gfx/pics/026/front.lz"
-PrimeapeFrontpic: INCBIN "gfx/pics/057/front.lz"
-OmastarBackpic: INCBIN "gfx/pics/139/back.lz"
-; 12bffe
-
-
-SECTION "bank4b",ROMX,BANK[$4b]
-
-; Pics IV
-
-DodrioFrontpic: INCBIN "gfx/pics/085/front.lz"
-SlowkingFrontpic: INCBIN "gfx/pics/199/front.lz"
-HitmontopFrontpic: INCBIN "gfx/pics/237/front.lz"
-OnixFrontpic: INCBIN "gfx/pics/095/front.lz"
-BlisseyFrontpic: INCBIN "gfx/pics/242/front.lz"
-MachokeFrontpic: INCBIN "gfx/pics/067/front.lz"
-DragoniteFrontpic: INCBIN "gfx/pics/149/front.lz"
-PoliwrathFrontpic: INCBIN "gfx/pics/062/front.lz"
-ScytherFrontpic: INCBIN "gfx/pics/123/front.lz"
-AerodactylFrontpic: INCBIN "gfx/pics/142/front.lz"
-SeakingFrontpic: INCBIN "gfx/pics/119/front.lz"
-MukFrontpic: INCBIN "gfx/pics/089/front.lz"
-CroconawFrontpic: INCBIN "gfx/pics/159/front.lz"
-HypnoFrontpic: INCBIN "gfx/pics/097/front.lz"
-NidorinoFrontpic: INCBIN "gfx/pics/033/front.lz"
-SandslashFrontpic: INCBIN "gfx/pics/028/front.lz"
-JolteonFrontpic: INCBIN "gfx/pics/135/front.lz"
-DonphanFrontpic: INCBIN "gfx/pics/232/front.lz"
-PinsirFrontpic: INCBIN "gfx/pics/127/front.lz"
-UnownEFrontpic: INCBIN "gfx/pics/201e/front.lz"
-; 130000
-
-
-SECTION "bank4C",ROMX,BANK[$4C]
-
-; Pics V
-
-GolbatFrontpic: INCBIN "gfx/pics/042/front.lz"
-KinglerFrontpic: INCBIN "gfx/pics/099/front.lz"
-ExeggcuteFrontpic: INCBIN "gfx/pics/102/front.lz"
-MagcargoFrontpic: INCBIN "gfx/pics/219/front.lz"
-PersianFrontpic: INCBIN "gfx/pics/053/front.lz"
-StantlerFrontpic: INCBIN "gfx/pics/234/front.lz"
-RaticateFrontpic: INCBIN "gfx/pics/020/front.lz"
-VenomothFrontpic: INCBIN "gfx/pics/049/front.lz"
-PolitoedFrontpic: INCBIN "gfx/pics/186/front.lz"
-ElectabuzzFrontpic: INCBIN "gfx/pics/125/front.lz"
-MantineFrontpic: INCBIN "gfx/pics/226/front.lz"
-LickitungFrontpic: INCBIN "gfx/pics/108/front.lz"
-KingdraFrontpic: INCBIN "gfx/pics/230/front.lz"
-CharmeleonFrontpic: INCBIN "gfx/pics/005/front.lz"
-KadabraFrontpic: INCBIN "gfx/pics/064/front.lz"
-ExeggutorFrontpic: INCBIN "gfx/pics/103/front.lz"
-GastlyFrontpic: INCBIN "gfx/pics/092/front.lz"
-AzumarillFrontpic: INCBIN "gfx/pics/184/front.lz"
-ParasectFrontpic: INCBIN "gfx/pics/047/front.lz"
-MrMimeFrontpic: INCBIN "gfx/pics/122/front.lz"
-HeracrossFrontpic: INCBIN "gfx/pics/214/front.lz"
-; 133fff
-
-
-SECTION "bank4d",ROMX,BANK[$4d]
-
-; Pics VI
-
-AriadosFrontpic: INCBIN "gfx/pics/168/front.lz"
-NoctowlFrontpic: INCBIN "gfx/pics/164/front.lz"
-WartortleFrontpic: INCBIN "gfx/pics/008/front.lz"
-LaprasFrontpic: INCBIN "gfx/pics/131/front.lz"
-GolemFrontpic: INCBIN "gfx/pics/076/front.lz"
-PoliwhirlFrontpic: INCBIN "gfx/pics/061/front.lz"
-UrsaringFrontpic: INCBIN "gfx/pics/217/front.lz"
-HoundoomFrontpic: INCBIN "gfx/pics/229/front.lz"
-KabutopsFrontpic: INCBIN "gfx/pics/141/front.lz"
-AmpharosFrontpic: INCBIN "gfx/pics/181/front.lz"
-NidorinaFrontpic: INCBIN "gfx/pics/030/front.lz"
-FlareonFrontpic: INCBIN "gfx/pics/136/front.lz"
-FarfetchDFrontpic: INCBIN "gfx/pics/083/front.lz"
-VileplumeFrontpic: INCBIN "gfx/pics/045/front.lz"
-BayleefFrontpic: INCBIN "gfx/pics/153/front.lz"
-MagmarFrontpic: INCBIN "gfx/pics/126/front.lz"
-TentacruelFrontpic: INCBIN "gfx/pics/073/front.lz"
-ElekidFrontpic: INCBIN "gfx/pics/239/front.lz"
-JumpluffFrontpic: INCBIN "gfx/pics/189/front.lz"
-MarowakFrontpic: INCBIN "gfx/pics/105/front.lz"
-VulpixFrontpic: INCBIN "gfx/pics/037/front.lz"
-GligarFrontpic: INCBIN "gfx/pics/207/front.lz"
-DunsparceFrontpic: INCBIN "gfx/pics/206/front.lz"
-; 137fff
-
-
-SECTION "bank4E",ROMX,BANK[$4E]
-
-; Pics VII
-
-VaporeonFrontpic: INCBIN "gfx/pics/134/front.lz"
-GirafarigFrontpic: INCBIN "gfx/pics/203/front.lz"
-DrowzeeFrontpic: INCBIN "gfx/pics/096/front.lz"
-SneaselFrontpic: INCBIN "gfx/pics/215/front.lz"
-BellossomFrontpic: INCBIN "gfx/pics/182/front.lz"
-SnorlaxFrontpic: INCBIN "gfx/pics/143/front.lz"
-WigglytuffFrontpic: INCBIN "gfx/pics/040/front.lz"
-YanmaFrontpic: INCBIN "gfx/pics/193/front.lz"
-SmeargleFrontpic: INCBIN "gfx/pics/235/front.lz"
-ClefableFrontpic: INCBIN "gfx/pics/036/front.lz"
-PonytaFrontpic: INCBIN "gfx/pics/077/front.lz"
-MurkrowFrontpic: INCBIN "gfx/pics/198/front.lz"
-GravelerFrontpic: INCBIN "gfx/pics/075/front.lz"
-StarmieFrontpic: INCBIN "gfx/pics/121/front.lz"
-PidgeottoFrontpic: INCBIN "gfx/pics/017/front.lz"
-LedybaFrontpic: INCBIN "gfx/pics/165/front.lz"
-GengarFrontpic: INCBIN "gfx/pics/094/front.lz"
-OmastarFrontpic: INCBIN "gfx/pics/139/front.lz"
-PiloswineFrontpic: INCBIN "gfx/pics/221/front.lz"
-DugtrioFrontpic: INCBIN "gfx/pics/051/front.lz"
-MagnetonFrontpic: INCBIN "gfx/pics/082/front.lz"
-DragonairFrontpic: INCBIN "gfx/pics/148/front.lz"
-ForretressFrontpic: INCBIN "gfx/pics/205/front.lz"
-TogeticFrontpic: INCBIN "gfx/pics/176/front.lz"
-KangaskhanBackpic: INCBIN "gfx/pics/115/back.lz"
-; 13c000
-
-
-SECTION "bank4f",ROMX,BANK[$4f]
-
-; Pics VIII
-
-SeelFrontpic: INCBIN "gfx/pics/086/front.lz"
-CrobatFrontpic: INCBIN "gfx/pics/169/front.lz"
-ChanseyFrontpic: INCBIN "gfx/pics/113/front.lz"
-TangelaFrontpic: INCBIN "gfx/pics/114/front.lz"
-SnubbullFrontpic: INCBIN "gfx/pics/209/front.lz"
-GranbullFrontpic: INCBIN "gfx/pics/210/front.lz"
-MiltankFrontpic: INCBIN "gfx/pics/241/front.lz"
-HaunterFrontpic: INCBIN "gfx/pics/093/front.lz"
-SunfloraFrontpic: INCBIN "gfx/pics/192/front.lz"
-UmbreonFrontpic: INCBIN "gfx/pics/197/front.lz"
-ChikoritaFrontpic: INCBIN "gfx/pics/152/front.lz"
-GoldeenFrontpic: INCBIN "gfx/pics/118/front.lz"
-EspeonFrontpic: INCBIN "gfx/pics/196/front.lz"
-XatuFrontpic: INCBIN "gfx/pics/178/front.lz"
-MewFrontpic: INCBIN "gfx/pics/151/front.lz"
-OctilleryFrontpic: INCBIN "gfx/pics/224/front.lz"
-JynxFrontpic: INCBIN "gfx/pics/124/front.lz"
-WobbuffetFrontpic: INCBIN "gfx/pics/202/front.lz"
-DelibirdFrontpic: INCBIN "gfx/pics/225/front.lz"
-LedianFrontpic: INCBIN "gfx/pics/166/front.lz"
-GloomFrontpic: INCBIN "gfx/pics/044/front.lz"
-FlaaffyFrontpic: INCBIN "gfx/pics/180/front.lz"
-IvysaurFrontpic: INCBIN "gfx/pics/002/front.lz"
-FurretFrontpic: INCBIN "gfx/pics/162/front.lz"
-CyndaquilFrontpic: INCBIN "gfx/pics/155/front.lz"
-HitmonchanFrontpic: INCBIN "gfx/pics/107/front.lz"
-QuagsireFrontpic: INCBIN "gfx/pics/195/front.lz"
-; 13fff7
-
-
-SECTION "bank50",ROMX,BANK[$50]
-
-; Pics IX
-
-EkansFrontpic: INCBIN "gfx/pics/023/front.lz"
-SudowoodoFrontpic: INCBIN "gfx/pics/185/front.lz"
-PikachuFrontpic: INCBIN "gfx/pics/025/front.lz"
-SeadraFrontpic: INCBIN "gfx/pics/117/front.lz"
-MagbyFrontpic: INCBIN "gfx/pics/240/front.lz"
-WeepinbellFrontpic: INCBIN "gfx/pics/070/front.lz"
-TotodileFrontpic: INCBIN "gfx/pics/158/front.lz"
-CorsolaFrontpic: INCBIN "gfx/pics/222/front.lz"
-FirebreatherPic: INCBIN "gfx/trainers/047.lz"
-MachopFrontpic: INCBIN "gfx/pics/066/front.lz"
-ChinchouFrontpic: INCBIN "gfx/pics/170/front.lz"
-RattataFrontpic: INCBIN "gfx/pics/019/front.lz"
-ChampionPic: INCBIN "gfx/trainers/015.lz"
-SpearowFrontpic: INCBIN "gfx/pics/021/front.lz"
-MagikarpFrontpic: INCBIN "gfx/pics/129/front.lz"
-CharmanderFrontpic: INCBIN "gfx/pics/004/front.lz"
-CuboneFrontpic: INCBIN "gfx/pics/104/front.lz"
-BlackbeltTPic: INCBIN "gfx/trainers/049.lz"
-BikerPic: INCBIN "gfx/trainers/044.lz"
-NidoranMFrontpic: INCBIN "gfx/pics/032/front.lz"
-PorygonFrontpic: INCBIN "gfx/pics/137/front.lz"
-BrunoPic: INCBIN "gfx/trainers/012.lz"
-GrimerFrontpic: INCBIN "gfx/pics/088/front.lz"
-StaryuFrontpic: INCBIN "gfx/pics/120/front.lz"
-HikerPic: INCBIN "gfx/trainers/043.lz"
-MeowthFrontpic: INCBIN "gfx/pics/052/front.lz"
-Porygon2Frontpic: INCBIN "gfx/pics/233/front.lz"
-SandshrewFrontpic: INCBIN "gfx/pics/027/front.lz"
-NidoranFFrontpic: INCBIN "gfx/pics/029/front.lz"
-PidgeyFrontpic: INCBIN "gfx/pics/016/front.lz"
-ParasectBackpic: INCBIN "gfx/pics/047/back.lz"
-; 144000
-
-
-SECTION "bank51",ROMX,BANK[$51]
-
-; Pics X
-
-MisdreavusFrontpic: INCBIN "gfx/pics/200/front.lz"
-HoundourFrontpic: INCBIN "gfx/pics/228/front.lz"
-MankeyFrontpic: INCBIN "gfx/pics/056/front.lz"
-CelebiFrontpic: INCBIN "gfx/pics/251/front.lz"
-MediumPic: INCBIN "gfx/trainers/056.lz"
-PinecoFrontpic: INCBIN "gfx/pics/204/front.lz"
-KrabbyFrontpic: INCBIN "gfx/pics/098/front.lz"
-FisherPic: INCBIN "gfx/trainers/036.lz"
-JigglypuffFrontpic: INCBIN "gfx/pics/039/front.lz"
-ParasFrontpic: INCBIN "gfx/pics/046/front.lz"
-NidokingBackpic: INCBIN "gfx/pics/034/back.lz"
-PokefanmPic: INCBIN "gfx/trainers/058.lz"
-BoarderPic: INCBIN "gfx/trainers/057.lz"
-PsyduckFrontpic: INCBIN "gfx/pics/054/front.lz"
-SquirtleFrontpic: INCBIN "gfx/pics/007/front.lz"
-MachampBackpic: INCBIN "gfx/pics/068/back.lz"
-KoffingFrontpic: INCBIN "gfx/pics/109/front.lz"
-VenonatFrontpic: INCBIN "gfx/pics/048/front.lz"
-ExeggutorBackpic: INCBIN "gfx/pics/103/back.lz"
-LanturnFrontpic: INCBIN "gfx/pics/171/front.lz"
-TyrogueFrontpic: INCBIN "gfx/pics/236/front.lz"
-SkiploomFrontpic: INCBIN "gfx/pics/188/front.lz"
-MareepFrontpic: INCBIN "gfx/pics/179/front.lz"
-ChuckPic: INCBIN "gfx/trainers/006.lz"
-EeveeFrontpic: INCBIN "gfx/pics/133/front.lz"
-ButterfreeBackpic: INCBIN "gfx/pics/012/back.lz"
-ZubatFrontpic: INCBIN "gfx/pics/041/front.lz"
-KimonoGirlPic: INCBIN "gfx/trainers/059.lz"
-AlakazamBackpic: INCBIN "gfx/pics/065/back.lz"
-AipomFrontpic: INCBIN "gfx/pics/190/front.lz"
-AbraFrontpic: INCBIN "gfx/pics/063/front.lz"
-HitmontopBackpic: INCBIN "gfx/pics/237/back.lz"
-CloysterBackpic: INCBIN "gfx/pics/091/back.lz"
-HoothootFrontpic: INCBIN "gfx/pics/163/front.lz"
-UnownFBackpic: INCBIN "gfx/pics/201f/back.lz"
-; 148000
-
-
-SECTION "bank52",ROMX,BANK[$52]
-
-; Pics XI
-
-DodrioBackpic: INCBIN "gfx/pics/085/back.lz"
-ClefairyFrontpic: INCBIN "gfx/pics/035/front.lz"
-SlugmaFrontpic: INCBIN "gfx/pics/218/front.lz"
-GrowlitheFrontpic: INCBIN "gfx/pics/058/front.lz"
-SlowpokeFrontpic: INCBIN "gfx/pics/079/front.lz"
-SmoochumFrontpic: INCBIN "gfx/pics/238/front.lz"
-JugglerPic: INCBIN "gfx/trainers/048.lz"
-MarillFrontpic: INCBIN "gfx/pics/183/front.lz"
-GuitaristPic: INCBIN "gfx/trainers/042.lz"
-PokefanfPic: INCBIN "gfx/trainers/061.lz"
-VenomothBackpic: INCBIN "gfx/pics/049/back.lz"
-ClairPic: INCBIN "gfx/trainers/007.lz"
-PokemaniacPic: INCBIN "gfx/trainers/029.lz"
-OmanyteFrontpic: INCBIN "gfx/pics/138/front.lz"
-SkierPic: INCBIN "gfx/trainers/032.lz"
-PupitarFrontpic: INCBIN "gfx/pics/247/front.lz"
-BellsproutFrontpic: INCBIN "gfx/pics/069/front.lz"
-ShellderFrontpic: INCBIN "gfx/pics/090/front.lz"
-TentacoolFrontpic: INCBIN "gfx/pics/072/front.lz"
-CleffaFrontpic: INCBIN "gfx/pics/173/front.lz"
-GyaradosBackpic: INCBIN "gfx/pics/130/back.lz"
-NinetalesBackpic: INCBIN "gfx/pics/038/back.lz"
-YanmaBackpic: INCBIN "gfx/pics/193/back.lz"
-PinsirBackpic: INCBIN "gfx/pics/127/back.lz"
-LassPic: INCBIN "gfx/trainers/024.lz"
-ClefableBackpic: INCBIN "gfx/pics/036/back.lz"
-DoduoFrontpic: INCBIN "gfx/pics/084/front.lz"
-FeraligatrBackpic: INCBIN "gfx/pics/160/back.lz"
-DratiniFrontpic: INCBIN "gfx/pics/147/front.lz"
-MagnetonBackpic: INCBIN "gfx/pics/082/back.lz"
-QwilfishFrontpic: INCBIN "gfx/pics/211/front.lz"
-SuicuneBackpic: INCBIN "gfx/pics/245/back.lz"
-SlowkingBackpic: INCBIN "gfx/pics/199/back.lz"
-ElekidBackpic: INCBIN "gfx/pics/239/back.lz"
-CelebiBackpic: INCBIN "gfx/pics/251/back.lz"
-KrabbyBackpic: INCBIN "gfx/pics/098/back.lz"
-BugCatcherPic: INCBIN "gfx/trainers/035.lz"
-SnorlaxBackpic: INCBIN "gfx/pics/143/back.lz"
-; 14bffb
-
-
-SECTION "bank53",ROMX,BANK[$53]
-
-; Pics XII
-
-VenusaurBackpic: INCBIN "gfx/pics/003/back.lz"
-MoltresBackpic: INCBIN "gfx/pics/146/back.lz"
-SunfloraBackpic: INCBIN "gfx/pics/192/back.lz"
-PhanpyFrontpic: INCBIN "gfx/pics/231/front.lz"
-RhydonBackpic: INCBIN "gfx/pics/112/back.lz"
-LarvitarFrontpic: INCBIN "gfx/pics/246/front.lz"
-TyranitarBackpic: INCBIN "gfx/pics/248/back.lz"
-SandslashBackpic: INCBIN "gfx/pics/028/back.lz"
-SeadraBackpic: INCBIN "gfx/pics/117/back.lz"
-TwinsPic: INCBIN "gfx/trainers/060.lz"
-FarfetchDBackpic: INCBIN "gfx/pics/083/back.lz"
-NidoranMBackpic: INCBIN "gfx/pics/032/back.lz"
-LedybaBackpic: INCBIN "gfx/pics/165/back.lz"
-CyndaquilBackpic: INCBIN "gfx/pics/155/back.lz"
-BayleefBackpic: INCBIN "gfx/pics/153/back.lz"
-OddishFrontpic: INCBIN "gfx/pics/043/front.lz"
-RapidashBackpic: INCBIN "gfx/pics/078/back.lz"
-DoduoBackpic: INCBIN "gfx/pics/084/back.lz"
-HoppipFrontpic: INCBIN "gfx/pics/187/front.lz"
-MankeyBackpic: INCBIN "gfx/pics/056/back.lz"
-MagmarBackpic: INCBIN "gfx/pics/126/back.lz"
-HypnoBackpic: INCBIN "gfx/pics/097/back.lz"
-QuilavaBackpic: INCBIN "gfx/pics/156/back.lz"
-CroconawBackpic: INCBIN "gfx/pics/159/back.lz"
-SandshrewBackpic: INCBIN "gfx/pics/027/back.lz"
-SailorPic: INCBIN "gfx/trainers/039.lz"
-BeautyPic: INCBIN "gfx/trainers/028.lz"
-ShellderBackpic: INCBIN "gfx/pics/090/back.lz"
-ZubatBackpic: INCBIN "gfx/pics/041/back.lz"
-TeddiursaFrontpic: INCBIN "gfx/pics/216/front.lz"
-CuboneBackpic: INCBIN "gfx/pics/104/back.lz"
-GruntmPic: INCBIN "gfx/trainers/030.lz"
-GloomBackpic: INCBIN "gfx/pics/044/back.lz"
-MagcargoBackpic: INCBIN "gfx/pics/219/back.lz"
-KabutopsBackpic: INCBIN "gfx/pics/141/back.lz"
-BeedrillBackpic: INCBIN "gfx/pics/015/back.lz"
-ArcanineBackpic: INCBIN "gfx/pics/059/back.lz"
-FlareonBackpic: INCBIN "gfx/pics/136/back.lz"
-GoldeenBackpic: INCBIN "gfx/pics/118/back.lz"
-BulbasaurFrontpic: INCBIN "gfx/pics/001/front.lz"
-StarmieBackpic: INCBIN "gfx/pics/121/back.lz"
-; 150000
-
-
-SECTION "bank54",ROMX,BANK[$54]
-
-; Pics XIII
-
-OmanyteBackpic: INCBIN "gfx/pics/138/back.lz"
-PidgeyBackpic: INCBIN "gfx/pics/016/back.lz"
-ScientistPic: INCBIN "gfx/trainers/019.lz"
-QwilfishBackpic: INCBIN "gfx/pics/211/back.lz"
-GligarBackpic: INCBIN "gfx/pics/207/back.lz"
-TyphlosionBackpic: INCBIN "gfx/pics/157/back.lz"
-CharmeleonBackpic: INCBIN "gfx/pics/005/back.lz"
-NidoqueenBackpic: INCBIN "gfx/pics/031/back.lz"
-PichuFrontpic: INCBIN "gfx/pics/172/front.lz"
-ElectabuzzBackpic: INCBIN "gfx/pics/125/back.lz"
-LedianBackpic: INCBIN "gfx/pics/166/back.lz"
-PupitarBackpic: INCBIN "gfx/pics/247/back.lz"
-HeracrossBackpic: INCBIN "gfx/pics/214/back.lz"
-UnownDFrontpic: INCBIN "gfx/pics/201d/front.lz"
-MiltankBackpic: INCBIN "gfx/pics/241/back.lz"
-SteelixBackpic: INCBIN "gfx/pics/208/back.lz"
-PersianBackpic: INCBIN "gfx/pics/053/back.lz"
-LtSurgePic: INCBIN "gfx/trainers/018.lz"
-TeacherPic: INCBIN "gfx/trainers/033.lz"
-EggPic: INCBIN "gfx/pics/egg/front.lz"
-EeveeBackpic: INCBIN "gfx/pics/133/back.lz"
-ShuckleFrontpic: INCBIN "gfx/pics/213/front.lz"
-PonytaBackpic: INCBIN "gfx/pics/077/back.lz"
-RemoraidFrontpic: INCBIN "gfx/pics/223/front.lz"
-PoliwagFrontpic: INCBIN "gfx/pics/060/front.lz"
-OnixBackpic: INCBIN "gfx/pics/095/back.lz"
-KoffingBackpic: INCBIN "gfx/pics/109/back.lz"
-BirdKeeperPic: INCBIN "gfx/trainers/023.lz"
-FalknerPic: INCBIN "gfx/trainers/000.lz"
-KarenPic: INCBIN "gfx/trainers/013.lz"
-NidorinaBackpic: INCBIN "gfx/pics/030/back.lz"
-TentacruelBackpic: INCBIN "gfx/pics/073/back.lz"
-GrowlitheBackpic: INCBIN "gfx/pics/058/back.lz"
-KogaPic: INCBIN "gfx/trainers/014.lz"
-MachokeBackpic: INCBIN "gfx/pics/067/back.lz"
-RaichuBackpic: INCBIN "gfx/pics/026/back.lz"
-PoliwrathBackpic: INCBIN "gfx/pics/062/back.lz"
-SwimmermPic: INCBIN "gfx/trainers/037.lz"
-SunkernFrontpic: INCBIN "gfx/pics/191/front.lz"
-NidorinoBackpic: INCBIN "gfx/pics/033/back.lz"
-MysticalmanPic: INCBIN "gfx/trainers/066.lz"
-CooltrainerfPic: INCBIN "gfx/trainers/027.lz"
-ElectrodeFrontpic: INCBIN "gfx/pics/101/front.lz"
-; 153fe3
-
-
-SECTION "bank55",ROMX,BANK[$55]
-
-; Pics XIV
-
-SudowoodoBackpic: INCBIN "gfx/pics/185/back.lz"
-FlaaffyBackpic: INCBIN "gfx/pics/180/back.lz"
-SentretFrontpic: INCBIN "gfx/pics/161/front.lz"
-TogeticBackpic: INCBIN "gfx/pics/176/back.lz"
-BugsyPic: INCBIN "gfx/trainers/002.lz"
-MarowakBackpic: INCBIN "gfx/pics/105/back.lz"
-GeodudeBackpic: INCBIN "gfx/pics/074/back.lz"
-ScytherBackpic: INCBIN "gfx/pics/123/back.lz"
-VileplumeBackpic: INCBIN "gfx/pics/045/back.lz"
-HitmonchanBackpic: INCBIN "gfx/pics/107/back.lz"
-JumpluffBackpic: INCBIN "gfx/pics/189/back.lz"
-CooltrainermPic: INCBIN "gfx/trainers/026.lz"
-BlastoiseBackpic: INCBIN "gfx/pics/009/back.lz"
-MisdreavusBackpic: INCBIN "gfx/pics/200/back.lz"
-TyrogueBackpic: INCBIN "gfx/pics/236/back.lz"
-GeodudeFrontpic: INCBIN "gfx/pics/074/front.lz"
-ScizorBackpic: INCBIN "gfx/pics/212/back.lz"
-GirafarigBackpic: INCBIN "gfx/pics/203/back.lz"
-StantlerBackpic: INCBIN "gfx/pics/234/back.lz"
-SmeargleBackpic: INCBIN "gfx/pics/235/back.lz"
-CharizardBackpic: INCBIN "gfx/pics/006/back.lz"
-KadabraBackpic: INCBIN "gfx/pics/064/back.lz"
-PrimeapeBackpic: INCBIN "gfx/pics/057/back.lz"
-FurretBackpic: INCBIN "gfx/pics/162/back.lz"
-WartortleBackpic: INCBIN "gfx/pics/008/back.lz"
-ExeggcuteBackpic: INCBIN "gfx/pics/102/back.lz"
-IgglybuffFrontpic: INCBIN "gfx/pics/174/front.lz"
-RaticateBackpic: INCBIN "gfx/pics/020/back.lz"
-VulpixBackpic: INCBIN "gfx/pics/037/back.lz"
-EkansBackpic: INCBIN "gfx/pics/023/back.lz"
-SeakingBackpic: INCBIN "gfx/pics/119/back.lz"
-BurglarPic: INCBIN "gfx/trainers/046.lz"
-PsyduckBackpic: INCBIN "gfx/pics/054/back.lz"
-PikachuBackpic: INCBIN "gfx/pics/025/back.lz"
-KabutoFrontpic: INCBIN "gfx/pics/140/front.lz"
-MareepBackpic: INCBIN "gfx/pics/179/back.lz"
-RemoraidBackpic: INCBIN "gfx/pics/223/back.lz"
-DittoFrontpic: INCBIN "gfx/pics/132/front.lz"
-KingdraBackpic: INCBIN "gfx/pics/230/back.lz"
-CamperPic: INCBIN "gfx/trainers/053.lz"
-WooperFrontpic: INCBIN "gfx/pics/194/front.lz"
-ClefairyBackpic: INCBIN "gfx/pics/035/back.lz"
-VenonatBackpic: INCBIN "gfx/pics/048/back.lz"
-BellossomBackpic: INCBIN "gfx/pics/182/back.lz"
-Rival1Pic: INCBIN "gfx/trainers/008.lz"
-SwinubBackpic: INCBIN "gfx/pics/220/back.lz"
-; 158000
-
-
-SECTION "bank56",ROMX,BANK[$56]
-
-; Pics XV
-
-MewtwoBackpic: INCBIN "gfx/pics/150/back.lz"
-PokemonProfPic: INCBIN "gfx/trainers/009.lz"
-CalPic: INCBIN "gfx/trainers/011.lz"
-SwimmerfPic: INCBIN "gfx/trainers/038.lz"
-DiglettFrontpic: INCBIN "gfx/pics/050/front.lz"
-OfficerPic: INCBIN "gfx/trainers/064.lz"
-MukBackpic: INCBIN "gfx/pics/089/back.lz"
-DelibirdBackpic: INCBIN "gfx/pics/225/back.lz"
-SabrinaPic: INCBIN "gfx/trainers/034.lz"
-MagikarpBackpic: INCBIN "gfx/pics/129/back.lz"
-AriadosBackpic: INCBIN "gfx/pics/168/back.lz"
-SneaselBackpic: INCBIN "gfx/pics/215/back.lz"
-UmbreonBackpic: INCBIN "gfx/pics/197/back.lz"
-MurkrowBackpic: INCBIN "gfx/pics/198/back.lz"
-IvysaurBackpic: INCBIN "gfx/pics/002/back.lz"
-SlowbroBackpic: INCBIN "gfx/pics/080/back.lz"
-PsychicTPic: INCBIN "gfx/trainers/051.lz"
-GolduckBackpic: INCBIN "gfx/pics/055/back.lz"
-WeezingBackpic: INCBIN "gfx/pics/110/back.lz"
-EnteiBackpic: INCBIN "gfx/pics/244/back.lz"
-GruntfPic: INCBIN "gfx/trainers/065.lz"
-HorseaFrontpic: INCBIN "gfx/pics/116/front.lz"
-PidgeotBackpic: INCBIN "gfx/pics/018/back.lz"
-HoOhBackpic: INCBIN "gfx/pics/250/back.lz"
-PoliwhirlBackpic: INCBIN "gfx/pics/061/back.lz"
-MewBackpic: INCBIN "gfx/pics/151/back.lz"
-MachopBackpic: INCBIN "gfx/pics/066/back.lz"
-AbraBackpic: INCBIN "gfx/pics/063/back.lz"
-AerodactylBackpic: INCBIN "gfx/pics/142/back.lz"
-KakunaFrontpic: INCBIN "gfx/pics/014/front.lz"
-DugtrioBackpic: INCBIN "gfx/pics/051/back.lz"
-WeepinbellBackpic: INCBIN "gfx/pics/070/back.lz"
-NidoranFBackpic: INCBIN "gfx/pics/029/back.lz"
-GravelerBackpic: INCBIN "gfx/pics/075/back.lz"
-AipomBackpic: INCBIN "gfx/pics/190/back.lz"
-EspeonBackpic: INCBIN "gfx/pics/196/back.lz"
-WeedleFrontpic: INCBIN "gfx/pics/013/front.lz"
-TotodileBackpic: INCBIN "gfx/pics/158/back.lz"
-SnubbullBackpic: INCBIN "gfx/pics/209/back.lz"
-KinglerBackpic: INCBIN "gfx/pics/099/back.lz"
-GengarBackpic: INCBIN "gfx/pics/094/back.lz"
-RattataBackpic: INCBIN "gfx/pics/019/back.lz"
-YoungsterPic: INCBIN "gfx/trainers/021.lz"
-WillPic: INCBIN "gfx/trainers/010.lz"
-SchoolboyPic: INCBIN "gfx/trainers/022.lz"
-MagnemiteFrontpic: INCBIN "gfx/pics/081/front.lz"
-ErikaPic: INCBIN "gfx/trainers/020.lz"
-JaninePic: INCBIN "gfx/trainers/025.lz"
-MagnemiteBackpic: INCBIN "gfx/pics/081/back.lz"
-; 15bffa
-
-
-SECTION "bank57",ROMX,BANK[$57]
-
-; Pics XVI
-
-HoothootBackpic: INCBIN "gfx/pics/163/back.lz"
-NoctowlBackpic: INCBIN "gfx/pics/164/back.lz"
-MortyPic: INCBIN "gfx/trainers/003.lz"
-SlugmaBackpic: INCBIN "gfx/pics/218/back.lz"
-KabutoBackpic: INCBIN "gfx/pics/140/back.lz"
-VictreebelBackpic: INCBIN "gfx/pics/071/back.lz"
-MeowthBackpic: INCBIN "gfx/pics/052/back.lz"
-MeganiumBackpic: INCBIN "gfx/pics/154/back.lz"
-PicnickerPic: INCBIN "gfx/trainers/052.lz"
-LickitungBackpic: INCBIN "gfx/pics/108/back.lz"
-TogepiFrontpic: INCBIN "gfx/pics/175/front.lz"
-SuperNerdPic: INCBIN "gfx/trainers/040.lz"
-HaunterBackpic: INCBIN "gfx/pics/093/back.lz"
-XatuBackpic: INCBIN "gfx/pics/178/back.lz"
-RedPic: INCBIN "gfx/trainers/062.lz"
-Porygon2Backpic: INCBIN "gfx/pics/233/back.lz"
-JasminePic: INCBIN "gfx/trainers/005.lz"
-PinecoBackpic: INCBIN "gfx/pics/204/back.lz"
-MetapodFrontpic: INCBIN "gfx/pics/011/front.lz"
-SeelBackpic: INCBIN "gfx/pics/086/back.lz"
-QuagsireBackpic: INCBIN "gfx/pics/195/back.lz"
-WhitneyPic: INCBIN "gfx/trainers/001.lz"
-JolteonBackpic: INCBIN "gfx/pics/135/back.lz"
-CaterpieFrontpic: INCBIN "gfx/pics/010/front.lz"
-HoppipBackpic: INCBIN "gfx/pics/187/back.lz"
-BluePic: INCBIN "gfx/trainers/063.lz"
-GranbullBackpic: INCBIN "gfx/pics/210/back.lz"
-GentlemanPic: INCBIN "gfx/trainers/031.lz"
-ExecutivemPic: INCBIN "gfx/trainers/050.lz"
-SpearowBackpic: INCBIN "gfx/pics/021/back.lz"
-SunkernBackpic: INCBIN "gfx/pics/191/back.lz"
-LaprasBackpic: INCBIN "gfx/pics/131/back.lz"
-MagbyBackpic: INCBIN "gfx/pics/240/back.lz"
-DragonairBackpic: INCBIN "gfx/pics/148/back.lz"
-ZapdosBackpic: INCBIN "gfx/pics/145/back.lz"
-ChikoritaBackpic: INCBIN "gfx/pics/152/back.lz"
-CorsolaBackpic: INCBIN "gfx/pics/222/back.lz"
-ChinchouBackpic: INCBIN "gfx/pics/170/back.lz"
-ChanseyBackpic: INCBIN "gfx/pics/113/back.lz"
-SkiploomBackpic: INCBIN "gfx/pics/188/back.lz"
-SpinarakFrontpic: INCBIN "gfx/pics/167/front.lz"
-Rival2Pic: INCBIN "gfx/trainers/041.lz"
-UnownWFrontpic: INCBIN "gfx/pics/201w/front.lz"
-CharmanderBackpic: INCBIN "gfx/pics/004/back.lz"
-RhyhornBackpic: INCBIN "gfx/pics/111/back.lz"
-UnownCFrontpic: INCBIN "gfx/pics/201c/front.lz"
-MistyPic: INCBIN "gfx/trainers/017.lz"
-BlainePic: INCBIN "gfx/trainers/045.lz"
-UnownZFrontpic: INCBIN "gfx/pics/201z/front.lz"
-SwinubFrontpic: INCBIN "gfx/pics/220/front.lz"
-LarvitarBackpic: INCBIN "gfx/pics/246/back.lz"
-PorygonBackpic: INCBIN "gfx/pics/137/back.lz"
-UnownHBackpic: INCBIN "gfx/pics/201h/back.lz"
-; 15ffff
-
-
-SECTION "bank58",ROMX,BANK[$58]
-
-; Pics XVII
-
-ParasBackpic: INCBIN "gfx/pics/046/back.lz"
-VaporeonBackpic: INCBIN "gfx/pics/134/back.lz"
-TentacoolBackpic: INCBIN "gfx/pics/072/back.lz"
-ExecutivefPic: INCBIN "gfx/trainers/054.lz"
-BulbasaurBackpic: INCBIN "gfx/pics/001/back.lz"
-SmoochumBackpic: INCBIN "gfx/pics/238/back.lz"
-PichuBackpic: INCBIN "gfx/pics/172/back.lz"
-HoundoomBackpic: INCBIN "gfx/pics/229/back.lz"
-BellsproutBackpic: INCBIN "gfx/pics/069/back.lz"
-GrimerBackpic: INCBIN "gfx/pics/088/back.lz"
-LanturnBackpic: INCBIN "gfx/pics/171/back.lz"
-PidgeottoBackpic: INCBIN "gfx/pics/017/back.lz"
-StaryuBackpic: INCBIN "gfx/pics/120/back.lz"
-MrMimeBackpic: INCBIN "gfx/pics/122/back.lz"
-CaterpieBackpic: INCBIN "gfx/pics/010/back.lz"
-VoltorbFrontpic: INCBIN "gfx/pics/100/front.lz"
-LugiaBackpic: INCBIN "gfx/pics/249/back.lz"
-PrycePic: INCBIN "gfx/trainers/004.lz"
-BrockPic: INCBIN "gfx/trainers/016.lz"
-UnownGFrontpic: INCBIN "gfx/pics/201g/front.lz"
-ArbokBackpic: INCBIN "gfx/pics/024/back.lz"
-PolitoedBackpic: INCBIN "gfx/pics/186/back.lz"
-DragoniteBackpic: INCBIN "gfx/pics/149/back.lz"
-HitmonleeBackpic: INCBIN "gfx/pics/106/back.lz"
-NatuFrontpic: INCBIN "gfx/pics/177/front.lz"
-UrsaringBackpic: INCBIN "gfx/pics/217/back.lz"
-SagePic: INCBIN "gfx/trainers/055.lz"
-TeddiursaBackpic: INCBIN "gfx/pics/216/back.lz"
-PhanpyBackpic: INCBIN "gfx/pics/231/back.lz"
-UnownVFrontpic: INCBIN "gfx/pics/201v/front.lz"
-KakunaBackpic: INCBIN "gfx/pics/014/back.lz"
-WobbuffetBackpic: INCBIN "gfx/pics/202/back.lz"
-TogepiBackpic: INCBIN "gfx/pics/175/back.lz"
-CrobatBackpic: INCBIN "gfx/pics/169/back.lz"
-BlisseyBackpic: INCBIN "gfx/pics/242/back.lz"
-AmpharosBackpic: INCBIN "gfx/pics/181/back.lz"
-IgglybuffBackpic: INCBIN "gfx/pics/174/back.lz"
-AzumarillBackpic: INCBIN "gfx/pics/184/back.lz"
-OctilleryBackpic: INCBIN "gfx/pics/224/back.lz"
-UnownSFrontpic: INCBIN "gfx/pics/201s/front.lz"
-HorseaBackpic: INCBIN "gfx/pics/116/back.lz"
-SentretBackpic: INCBIN "gfx/pics/161/back.lz"
-UnownOFrontpic: INCBIN "gfx/pics/201o/front.lz"
-UnownTFrontpic: INCBIN "gfx/pics/201t/front.lz"
-WigglytuffBackpic: INCBIN "gfx/pics/040/back.lz"
-ArticunoBackpic: INCBIN "gfx/pics/144/back.lz"
-DittoBackpic: INCBIN "gfx/pics/132/back.lz"
-WeedleBackpic: INCBIN "gfx/pics/013/back.lz"
-UnownHFrontpic: INCBIN "gfx/pics/201h/front.lz"
-CleffaBackpic: INCBIN "gfx/pics/173/back.lz"
-DrowzeeBackpic: INCBIN "gfx/pics/096/back.lz"
-GastlyBackpic: INCBIN "gfx/pics/092/back.lz"
-FearowBackpic: INCBIN "gfx/pics/022/back.lz"
-MarillBackpic: INCBIN "gfx/pics/183/back.lz"
-DratiniBackpic: INCBIN "gfx/pics/147/back.lz"
-ElectrodeBackpic: INCBIN "gfx/pics/101/back.lz"
-SkarmoryBackpic: INCBIN "gfx/pics/227/back.lz"
-MetapodBackpic: INCBIN "gfx/pics/011/back.lz"
-JigglypuffBackpic: INCBIN "gfx/pics/039/back.lz"
-OddishBackpic: INCBIN "gfx/pics/043/back.lz"
-UnownDBackpic: INCBIN "gfx/pics/201d/back.lz"
-; 163ffc
-
-
-SECTION "bank59",ROMX,BANK[$59]
-
-; Pics XVIII
-
-SpinarakBackpic: INCBIN "gfx/pics/167/back.lz"
-RaikouBackpic: INCBIN "gfx/pics/243/back.lz"
-UnownKFrontpic: INCBIN "gfx/pics/201k/front.lz"
-HoundourBackpic: INCBIN "gfx/pics/228/back.lz"
-PoliwagBackpic: INCBIN "gfx/pics/060/back.lz"
-SquirtleBackpic: INCBIN "gfx/pics/007/back.lz"
-ShuckleBackpic: INCBIN "gfx/pics/213/back.lz"
-DewgongBackpic: INCBIN "gfx/pics/087/back.lz"
-UnownBFrontpic: INCBIN "gfx/pics/201b/front.lz"
-SlowpokeBackpic: INCBIN "gfx/pics/079/back.lz"
-DunsparceBackpic: INCBIN "gfx/pics/206/back.lz"
-DonphanBackpic: INCBIN "gfx/pics/232/back.lz"
-WooperBackpic: INCBIN "gfx/pics/194/back.lz"
-TaurosBackpic: INCBIN "gfx/pics/128/back.lz"
-UnownXFrontpic: INCBIN "gfx/pics/201x/front.lz"
-UnownNFrontpic: INCBIN "gfx/pics/201n/front.lz"
-TangelaBackpic: INCBIN "gfx/pics/114/back.lz"
-VoltorbBackpic: INCBIN "gfx/pics/100/back.lz"
-UnownJFrontpic: INCBIN "gfx/pics/201j/front.lz"
-MantineBackpic: INCBIN "gfx/pics/226/back.lz"
-UnownLFrontpic: INCBIN "gfx/pics/201l/front.lz"
-PiloswineBackpic: INCBIN "gfx/pics/221/back.lz"
-UnownMFrontpic: INCBIN "gfx/pics/201m/front.lz"
-UnownFFrontpic: INCBIN "gfx/pics/201f/front.lz"
-NatuBackpic: INCBIN "gfx/pics/177/back.lz"
-UnownAFrontpic: INCBIN "gfx/pics/201a/front.lz"
-GolemBackpic: INCBIN "gfx/pics/076/back.lz"
-UnownUFrontpic: INCBIN "gfx/pics/201u/front.lz"
-DiglettBackpic: INCBIN "gfx/pics/050/back.lz"
-UnownQFrontpic: INCBIN "gfx/pics/201q/front.lz"
-UnownPFrontpic: INCBIN "gfx/pics/201p/front.lz"
-UnownCBackpic: INCBIN "gfx/pics/201c/back.lz"
-JynxBackpic: INCBIN "gfx/pics/124/back.lz"
-GolbatBackpic: INCBIN "gfx/pics/042/back.lz"
-UnownYFrontpic: INCBIN "gfx/pics/201y/front.lz"
-UnownGBackpic: INCBIN "gfx/pics/201g/back.lz"
-UnownIFrontpic: INCBIN "gfx/pics/201i/front.lz"
-UnownVBackpic: INCBIN "gfx/pics/201v/back.lz"
-ForretressBackpic: INCBIN "gfx/pics/205/back.lz"
-UnownSBackpic: INCBIN "gfx/pics/201s/back.lz"
-UnownRFrontpic: INCBIN "gfx/pics/201r/front.lz"
-UnownEBackpic: INCBIN "gfx/pics/201e/back.lz"
-UnownJBackpic: INCBIN "gfx/pics/201j/back.lz"
-UnownBBackpic: INCBIN "gfx/pics/201b/back.lz"
-UnownOBackpic: INCBIN "gfx/pics/201o/back.lz"
-UnownZBackpic: INCBIN "gfx/pics/201z/back.lz"
-UnownWBackpic: INCBIN "gfx/pics/201w/back.lz"
-UnownNBackpic: INCBIN "gfx/pics/201n/back.lz"
-UnownABackpic: INCBIN "gfx/pics/201a/back.lz"
-UnownMBackpic: INCBIN "gfx/pics/201m/back.lz"
-UnownKBackpic: INCBIN "gfx/pics/201k/back.lz"
-UnownTBackpic: INCBIN "gfx/pics/201t/back.lz"
-UnownXBackpic: INCBIN "gfx/pics/201x/back.lz"
-UnownLBackpic: INCBIN "gfx/pics/201l/back.lz"
-UnownUBackpic: INCBIN "gfx/pics/201u/back.lz"
-UnownQBackpic: INCBIN "gfx/pics/201q/back.lz"
-UnownYBackpic: INCBIN "gfx/pics/201y/back.lz"
-UnownPBackpic: INCBIN "gfx/pics/201p/back.lz"
-UnownIBackpic: INCBIN "gfx/pics/201i/back.lz"
-UnownRBackpic: INCBIN "gfx/pics/201r/back.lz"
-; 1669d3
-
-
-SECTION "bank5A",ROMX,BANK[$5A]
-
-; This bank is identical to bank 59!
-; It's also unreferenced, so it's a free bank
-
-INCBIN "gfx/pics/167/back.lz"
-INCBIN "gfx/pics/243/back.lz"
-INCBIN "gfx/pics/201k/front.lz"
-INCBIN "gfx/pics/228/back.lz"
-INCBIN "gfx/pics/060/back.lz"
-INCBIN "gfx/pics/007/back.lz"
-INCBIN "gfx/pics/213/back.lz"
-INCBIN "gfx/pics/087/back.lz"
-INCBIN "gfx/pics/201b/front.lz"
-INCBIN "gfx/pics/079/back.lz"
-INCBIN "gfx/pics/206/back.lz"
-INCBIN "gfx/pics/232/back.lz"
-INCBIN "gfx/pics/194/back.lz"
-INCBIN "gfx/pics/128/back.lz"
-INCBIN "gfx/pics/201x/front.lz"
-INCBIN "gfx/pics/201n/front.lz"
-INCBIN "gfx/pics/114/back.lz"
-INCBIN "gfx/pics/100/back.lz"
-INCBIN "gfx/pics/201j/front.lz"
-INCBIN "gfx/pics/226/back.lz"
-INCBIN "gfx/pics/201l/front.lz"
-INCBIN "gfx/pics/221/back.lz"
-INCBIN "gfx/pics/201m/front.lz"
-INCBIN "gfx/pics/201f/front.lz"
-INCBIN "gfx/pics/177/back.lz"
-INCBIN "gfx/pics/201a/front.lz"
-INCBIN "gfx/pics/076/back.lz"
-INCBIN "gfx/pics/201u/front.lz"
-INCBIN "gfx/pics/050/back.lz"
-INCBIN "gfx/pics/201q/front.lz"
-INCBIN "gfx/pics/201p/front.lz"
-INCBIN "gfx/pics/201c/back.lz"
-INCBIN "gfx/pics/124/back.lz"
-INCBIN "gfx/pics/042/back.lz"
-INCBIN "gfx/pics/201y/front.lz"
-INCBIN "gfx/pics/201g/back.lz"
-INCBIN "gfx/pics/201i/front.lz"
-INCBIN "gfx/pics/201v/back.lz"
-INCBIN "gfx/pics/205/back.lz"
-INCBIN "gfx/pics/201s/back.lz"
-INCBIN "gfx/pics/201r/front.lz"
-INCBIN "gfx/pics/201e/back.lz"
-INCBIN "gfx/pics/201j/back.lz"
-INCBIN "gfx/pics/201b/back.lz"
-INCBIN "gfx/pics/201o/back.lz"
-INCBIN "gfx/pics/201z/back.lz"
-INCBIN "gfx/pics/201w/back.lz"
-INCBIN "gfx/pics/201n/back.lz"
-INCBIN "gfx/pics/201a/back.lz"
-INCBIN "gfx/pics/201m/back.lz"
-INCBIN "gfx/pics/201k/back.lz"
-INCBIN "gfx/pics/201t/back.lz"
-INCBIN "gfx/pics/201x/back.lz"
-INCBIN "gfx/pics/201l/back.lz"
-INCBIN "gfx/pics/201u/back.lz"
-INCBIN "gfx/pics/201q/back.lz"
-INCBIN "gfx/pics/201y/back.lz"
-INCBIN "gfx/pics/201p/back.lz"
-INCBIN "gfx/pics/201i/back.lz"
-INCBIN "gfx/pics/201r/back.lz"
-
-
-SECTION "bank5B",ROMX,BANK[$5B]
+
+SECTION "bank5B", ROMX, BANK[$5B]
INCBIN "baserom.gbc",$16c000,$16d421 - $16c000
@@ -120749,7 +95758,7 @@ Function16d7e7: ; 16d7e7
; 16d7fe
-SECTION "bank5C",ROMX,BANK[$5C]
+SECTION "bank5C", ROMX, BANK[$5C]
INCBIN "baserom.gbc",$170000,$1700b0 - $170000
@@ -122097,12 +97106,12 @@ Function172eb9:
INCBIN "baserom.gbc",$172edf,$17367f - $172edf
-SECTION "bank5D",ROMX,BANK[$5D]
+SECTION "bank5D", ROMX, BANK[$5D]
INCLUDE "text/phone/extra3.asm"
-SECTION "bank5E",ROMX,BANK[$5E]
+SECTION "bank5E", ROMX, BANK[$5E]
Function178000:
callba DrawPlayerHUD
@@ -122115,857 +97124,32 @@ Function178000:
ret
; 17801f (5e:401f)
-; Songs V
-
-INCLUDE "audio/music/mobileadaptermenu.asm"
-INCLUDE "audio/music/buenaspassword.asm"
-INCLUDE "audio/music/lookmysticalman.asm"
-INCLUDE "audio/music/crystalopening.asm"
-INCLUDE "audio/music/battletowertheme.asm"
-INCLUDE "audio/music/suicunebattle.asm"
-INCLUDE "audio/music/battletowerlobby.asm"
-INCLUDE "audio/music/mobilecenter.asm"
-
-INCBIN "baserom.gbc",$17982d,$1799ef - $17982d
-
-MobileAdapterGFX:
-INCBIN "gfx/misc/mobile_adapter.2bpp"
-
-
-; no known jump sources
-Function17a68f: ; 17a68f (5e:668f)
- call Function17a6a8
- call Function17a751
- ld hl, $d088
- bit 5, [hl]
- jr z, .asm_17a6a6
- ld de, StringBuffer1 ; $d073
- push de
- call Function17a721
- pop de
- xor a
- ret
-.asm_17a6a6
- scf
- ret
-
-; known jump sources: 17a68f (5e:668f)
-Function17a6a8: ; 17a6a8 (5e:66a8)
- push de
- push bc
- ld hl, StringBuffer2 ; $d086
- ld bc, $a
- xor a
- call ByteFill
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld bc, $10
- ld a, $ff
- call ByteFill
- pop bc
- ld a, c
- and a
- jr z, .asm_17a6c9
- ld hl, $d088
- set 4, [hl]
-.asm_17a6c9
- pop de
- call Function17a6f5
- call Function17aba0
- callba Function106464
- call Function17ac0c
- callba Function104000
- call Function17abcf
- callba Function49409
- callba Function49420
- call Function32f9
- call DelayFrame
- ret
-
-; known jump sources: 17a6ca (5e:66ca)
-Function17a6f5: ; 17a6f5 (5e:66f5)
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld c, $0
- ld b, $8
-.asm_17a6fc
- ld a, [de]
- call Function17a713
- jr c, .asm_17a70e
- ld a, [de]
- swap a
- call Function17a713
- jr c, .asm_17a70e
- inc de
- dec b
- jr nz, .asm_17a6fc
-.asm_17a70e
- ld a, c
- ld [$d08c], a
- ret
-
-; known jump sources: 17a6fd (5e:66fd), 17a705 (5e:6705)
-Function17a713: ; 17a713 (5e:6713)
- and $f
- cp $a
- jr nc, .asm_17a71d
- ld [hli], a
- inc c
- and a
- ret
-.asm_17a71d
- ld [hl], $ff
- scf
- ret
-
-; known jump sources: 17a6a0 (5e:66a0)
-Function17a721: ; 17a721 (5e:6721)
- push de
- ld h, d
- ld l, e
- ld bc, $8
- ld a, $ff
- call ByteFill
- pop de
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld b, $8
-.asm_17a732
- ld c, $0
- ld a, [hli]
- cp $a
- jr nc, .asm_17a748
- ld c, a
- ld a, [hli]
- cp $a
- jr nc, .asm_17a74c
- swap a
- or c
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17a732
- ret
-.asm_17a748
- ld a, $ff
- ld [de], a
- ret
-.asm_17a74c
- ld a, $f0
- or c
- ld [de], a
- ret
-
-; known jump sources: 17a692 (5e:6692)
-Function17a751: ; 17a751 (5e:6751)
- xor a
- ld [$d087], a
-.asm_17a755
- call Function17a781
- call Function17a7ae
- call Function17a97b
- call Function17a770
- call Function17a78f
- ld hl, $d08f
- inc [hl]
- ld a, [$d087]
- bit 7, a
- jr z, .asm_17a755
- ret
-
-; known jump sources: 17a75e (5e:675e)
-Function17a770: ; 17a770 (5e:6770)
- ld a, [hOAMUpdate] ; $ff00+$d8
- push af
- ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
- call HideSprites
- call Function17a9cb
- pop af
- ld [hOAMUpdate], a ; $ff00+$d8
- ret
-
-; known jump sources: 17a755 (5e:6755)
-Function17a781: ; 17a781 (5e:6781)
- ld a, [$FF00+$aa]
- push af
- ld a, $1
- ld [$FF00+$aa], a
- call Functiona57
- pop af
- ld [$FF00+$aa], a
- ret
-
-; known jump sources: 17a761 (5e:6761)
-Function17a78f: ; 17a78f (5e:678f)
- ld hl, $d088
- bit 7, [hl]
- res 7, [hl]
- jr nz, .asm_17a79f
- callba Function10402d
- ret
-.asm_17a79f
- callba Function104061
- ret
-; 17a7a6 (5e:67a6)
-
-INCBIN "baserom.gbc",$17a7a6,$17a7ae - $17a7a6
-
-; known jump sources: 17a758 (5e:6758)
-Function17a7ae: ; 17a7ae (5e:67ae)
- ld a, [$d087]
- ld hl, $67b6
- rst $28
- ret
-
-; no known jump sources
-Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
- dw Function17a7c2
- dw Function17a7cd
- dw Function17a7d8
- dw Function17a7ff
- dw Function17a81a
- dw Function17a7f4
-
-
-; no known jump sources
-Function17a7c2: ; 17a7c2 (5e:67c2)
- ld a, $4
- call Function17aad3
- ld a, $1
- ld [$d087], a
- ret
-
-; no known jump sources
-Function17a7cd: ; 17a7cd (5e:67cd)
- call Function17a83c
- call Function17a8ae
- ret c
- call Function17a848
- ret
-
-; no known jump sources
-Function17a7d8: ; 17a7d8 (5e:67d8)
- call Function17a83c
- call Function17a848
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-; no known jump sources
-Function17a7f4: ; 17a7f4 (5e:67f4)
- ld hl, $d08b
- dec [hl]
- ret nz
- ld hl, $d087
- set 7, [hl]
- ret
-
-; no known jump sources
-Function17a7ff: ; 17a7ff (5e:67ff)
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 5, [hl]
- ld hl, $d087
- set 7, [hl]
- ret
-
-; no known jump sources
-Function17a81a: ; 17a81a (5e:681a)
- call Function3c74
- ret nc
- ld a, [hJoyPressed] ; $ff00+$a7
- and $3
- ret z
- call Function1c07
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- res 6, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-; known jump sources: 17a7cd (5e:67cd), 17a7d8 (5e:67d8)
-Function17a83c: ; 17a83c (5e:683c)
- ld a, [$FF00+$a9]
- and $f0
- ld c, a
- ld a, [hJoyPressed] ; $ff00+$a7
- and $b
- or c
- ld c, a
- ret
-
-; known jump sources: 17a7d4 (5e:67d4), 17a7db (5e:67db)
-Function17a848: ; 17a848 (5e:6848)
- ld a, c
- and $60
- cp $60
- jr z, .asm_17a876
- ld a, c
- and $50
- cp $50
- jr z, .asm_17a87d
- ld a, c
- and $a0
- cp $a0
- jr z, .asm_17a884
- ld a, c
- and $90
- cp $90
- jr z, .asm_17a88b
- bit 6, c
- jr nz, .asm_17a892
- bit 7, c
- jr nz, .asm_17a899
- bit 5, c
- jr nz, .asm_17a8a0
- bit 4, c
- jr nz, .asm_17a8a7
- xor a
- ret
-.asm_17a876
- ld a, $9
- call Function17aad0
- scf
- ret
-.asm_17a87d
- ld a, $a
- call Function17aad0
- scf
- ret
-.asm_17a884
- ld a, $b
- call Function17aad0
- scf
- ret
-.asm_17a88b
- ld a, $c
- call Function17aad0
- scf
- ret
-.asm_17a892
- ld a, $5
- call Function17aad0
- scf
- ret
-.asm_17a899
- ld a, $6
- call Function17aad0
- scf
- ret
-.asm_17a8a0
- ld a, $7
- call Function17aad0
- scf
- ret
-.asm_17a8a7
- ld a, $8
- call Function17aad0
- scf
- ret
-
-; known jump sources: 17a7d0 (5e:67d0)
-Function17a8ae: ; 17a8ae (5e:68ae)
- bit 1, c
- jr nz, .asm_17a8bc
- bit 0, c
- jr nz, .asm_17a8cc
- bit 3, c
- jr nz, .asm_17a8d7
- xor a
- ret
-.asm_17a8bc
- ld a, $b
- ld [$d08a], a
- call Function17aa98
- call Function17a943
- call Function17aa88
- scf
- ret
-.asm_17a8cc
- call Function17aad7
- call Function17aa98
- call Function17a8de
- scf
- ret
-.asm_17a8d7
- ld a, $c
- call Function17aad3
- scf
- ret
-
-; known jump sources: 17a8d2 (5e:68d2)
-Function17a8de: ; 17a8de (5e:68de)
- ld a, $2
- call Function17aae0
- ld a, [hl]
- cp $f1
- jr z, .asm_17a8fd
- cp $f0
- jr z, .asm_17a904
- cp $f2
- jr z, .asm_17a911
- ld e, a
- call Function17a964
- ld a, $2
- ld [$d087], a
- call Function17aa88
- ret
-.asm_17a8fd
- call Function17a943
- call Function17aa88
- ret
-.asm_17a904
- call Function17aad7
- call Function17aa98
- call Function17a91e
- call Function17aa88
- ret
-.asm_17a911
- call Function17aa98
- ld a, $5
- ld [$d087], a
- xor a
- call Function17aa88
- ret
-
-; known jump sources: 17a90a (5e:690a)
-Function17a91e: ; 17a91e (5e:691e)
- ld a, [$d08c]
- cp $7
- jr c, .asm_17a92c
- ld a, $3
- ld [$d087], a
- xor a
- ret
-.asm_17a92c
- call Function1d6e
- call Function17a99e
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 6, [hl]
- ld a, $4
- ld [$d087], a
- scf
- ret
-
-; known jump sources: 17a8c4 (5e:68c4), 17a8fd (5e:68fd)
-Function17a943: ; 17a943 (5e:6943)
- ld a, [$d08c]
- and a
- jr z, .asm_17a95d
- dec a
- ld [$d08c], a
- ld c, a
- ld b, $0
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- add hl, bc
- ld [hl], $ff
- ld a, $2
- ld [$d087], a
- and a
- ret
-.asm_17a95d
- ld a, $5
- ld [$d087], a
- xor a
- ret
-
-; known jump sources: 17a8f1 (5e:68f1)
-Function17a964: ; 17a964 (5e:6964)
- ld a, [$d08c]
- cp $10
- jr nc, .asm_17a979
- ld c, a
- ld b, $0
- inc a
- ld [$d08c], a
- ld hl, Buffer1 ; $d1ea (aliases: MagikarpLength)
- add hl, bc
- ld [hl], e
- and a
- ret
-.asm_17a979
- scf
- ret
-
-; known jump sources: 17a75b (5e:675b)
-Function17a97b: ; 17a97b (5e:697b)
- ld hl, $c4b5
- ld bc, $212
- call ClearBox
- ld hl, $c4cb
- ld de, Buffer1 ; $d1ea (aliases: MagikarpLength)
- ld a, [$d08c]
- and a
- ret z
- ld c, a
-.asm_17a990
- ld a, [de]
- inc de
- cp $a
- jr nc, .asm_17a99d
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_17a990
- ret
-.asm_17a99d
- ret
-
-; known jump sources: 17a92f (5e:692f)
-Function17a99e: ; 17a99e (5e:699e)
- ld hl, $c590
- ld b, $4
- ld c, $12
- call Function17ac46
- ld hl, $c5ba
- ld de, $69b2
- call PlaceString
- ret
-; 17a9b2 (5e:69b2)
-
-INCBIN "baserom.gbc",$17a9b2,$17a9cb - $17a9b2
-
-; known jump sources: 17a77a (5e:677a)
-Function17a9cb: ; 17a9cb (5e:69cb)
- ld de, Sprites ; $c400
- ld hl, $d088
- bit 6, [hl]
- jr nz, .asm_17a9df
- call Function17a9e3
- call Function17aa22
- call Function17a9f5
- ret
-.asm_17a9df
- call Function17a9e3
- ret
-
-; known jump sources: 17a9d5 (5e:69d5), 17a9df (5e:69df)
-Function17a9e3: ; 17a9e3 (5e:69e3)
- ld a, $3
- ld [$d08e], a
- ld hl, $6a77
- ld b, $8
- ld c, $8
- ld a, $5
- call Function17aa4a
- ret
-
-; known jump sources: 17a9db (5e:69db)
-Function17a9f5: ; 17a9f5 (5e:69f5)
- ld a, [$d08c]
- cp $10
- ret nc
- ld a, [$d08f]
- swap a
- and $1
- add $1
- ld [$d08e], a
- ld a, [$d08c]
- cp $10
- jr c, .asm_17aa0f
- dec a
-.asm_17aa0f
- ld c, $8
- call SimpleMultiply
- add $18
- ld b, a
- ld c, $11
- ld hl, $6a72
- ld a, $4
- call Function17aa4a
- ret
-
-; known jump sources: 17a9d8 (5e:69d8)
-Function17aa22: ; 17aa22 (5e:6a22)
- ld a, $0
- ld [$d08e], a
- push de
- ld a, $3
- call Function17aae0
- add a
- add a
- add a
- add $0
- push af
- ld a, $4
- call Function17aae0
- add a
- add a
- add a
- add $8
- ld c, a
- pop af
- ld b, a
- pop de
- ld a, $0
- ld hl, $6a77
- call Function17aa4a
- ret
-
-; known jump sources: 17a9f1 (5e:69f1), 17aa1e (5e:6a1e), 17aa46 (5e:6a46)
-Function17aa4a: ; 17aa4a (5e:6a4a)
- ld [$d08d], a
- ld a, b
- add $8
- ld b, a
- ld a, c
- add $10
- ld c, a
- ld a, [hli]
-.asm_17aa56
- push af
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [$d08d]
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [$d08e]
- or [hl]
- inc hl
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_17aa56
- ret
-; 17aa72 (5e:6a72)
-
-INCBIN "baserom.gbc",$17aa72,$17aa88 - $17aa72
-
-; known jump sources: 17a8c7 (5e:68c7), 17a8f9 (5e:68f9), 17a900 (5e:6900), 17a90d (5e:690d), 17a91a (5e:691a)
-Function17aa88: ; 17aa88 (5e:6a88)
- jr c, asm_17aa91
- ld de, $20
- call PlaySFX
- ret
-
-; known jump sources: 17aa88 (5e:6a88)
-asm_17aa91: ; 17aa91 (5e:6a91)
- ld de, $19
- call PlaySFX
- ret
-
-; known jump sources: 17a8c1 (5e:68c1), 17a8cf (5e:68cf), 17a907 (5e:6907), 17a911 (5e:6911)
-Function17aa98: ; 17aa98 (5e:6a98)
- ld a, $5
- ld [$d08b], a
- call Function17aaa9
- call Function17aac3
- ld hl, $d088
- set 7, [hl]
- ret
-
-; known jump sources: 17aa9d (5e:6a9d)
-Function17aaa9: ; 17aaa9 (5e:6aa9)
- ld a, $3
- call Function17aae3
- ld c, a
- ld b, $0
- ld hl, AttrMap ; $cdd9
- add hl, bc
- push hl
- ld a, $4
- call Function17aae3
- ld bc, $14
- pop hl
- call AddNTimes
- ret
-
-; known jump sources: 17aaa0 (5e:6aa0)
-Function17aac3: ; 17aac3 (5e:6ac3)
- ld a, $b
- push hl
- ld [hli], a
- ld [hli], a
- pop hl
- ld de, $14
- add hl, de
- ld [hli], a
- ld [hli], a
- ret
-
-; known jump sources: 17a878 (5e:6878), 17a87f (5e:687f), 17a886 (5e:6886), 17a88d (5e:688d), 17a894 (5e:6894), 17a89b (5e:689b), 17a8a2 (5e:68a2), 17a8a9 (5e:68a9)
-Function17aad0: ; 17aad0 (5e:6ad0)
- call Function17aae0
-
-; known jump sources: 17a7c4 (5e:67c4), 17a8d9 (5e:68d9)
-Function17aad3: ; 17aad3 (5e:6ad3)
- ld [$d089], a
- ret
-
-; known jump sources: 17a8cc (5e:68cc), 17a904 (5e:6904), 17aae0 (5e:6ae0)
-Function17aad7: ; 17aad7 (5e:6ad7)
- push af
- ld a, [$d089]
- ld [$d08a], a
- pop af
- ret
-
-; known jump sources: 17a8e0 (5e:68e0), 17aa2a (5e:6a2a), 17aa35 (5e:6a35), 17aad0 (5e:6ad0)
-Function17aae0: ; 17aae0 (5e:6ae0)
- call Function17aad7
-
-; known jump sources: 17aaab (5e:6aab), 17aab8 (5e:6ab8)
-Function17aae3: ; 17aae3 (5e:6ae3)
- push af
- ld a, [$d08a]
- ld bc, $d
- ld hl, $6af7
- call AddNTimes
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 17aaf7 (5e:6af7)
-
-INCBIN "baserom.gbc",$17aaf7,$17aba0 - $17aaf7
-
-; known jump sources: 17a6cd (5e:66cd)
-Function17aba0: ; 17aba0 (5e:6ba0)
- ld a, [rVBK] ; $ff00+$4f
- push af
- ld a, $1
- ld [rVBK], a ; $ff00+$4f
- ld hl, $9000
- ld de, $6fa5
- ld bc, $5e80
- call Get2bpp
- pop af
- ld [rVBK], a ; $ff00+$4f
- ld hl, $8000
- ld de, $7465
- ld bc, $5e05
- call Get2bpp
- ld hl, $8050
- ld de, $601a
- ld bc, $4504
- call Get2bpp
- ret
-
-; known jump sources: 17a6df (5e:66df)
-Function17abcf: ; 17abcf (5e:6bcf)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, $6c55
- ld de, Unkn1Pals ; $d000
- ld bc, $30
- call CopyBytes
- ld hl, $6c95
- ld de, MartPointer ; $d040 (aliases: Unkn2Pals)
- ld bc, $40
- call CopyBytes
- ld hl, $74b5
- ld de, $d048
- ld bc, $10
- call CopyBytes
- ld hl, $7471
- ld de, $d058
- ld bc, $8
- ld a, $2
- call FarCopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-; known jump sources: 17a6d6 (5e:66d6)
-Function17ac0c: ; 17ac0c (5e:6c0c)
- call Function17ac1d
- call Function17ac2a
- ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
- ld b, $2
- ld c, $12
- call Function17ac46
- ret
-
-; known jump sources: 17a7e3 (5e:67e3), 17a804 (5e:6804), 17a826 (5e:6826), 17ac0c (5e:6c0c)
-Function17ac1d: ; 17ac1d (5e:6c1d)
- ld hl, $6cd5
- ld de, $c4f0
- ld bc, $118
- call CopyBytes
- ret
-
-; known jump sources: 17a7e6 (5e:67e6), 17a807 (5e:6807), 17a829 (5e:6829), 17ac0f (5e:6c0f)
-Function17ac2a: ; 17ac2a (5e:6c2a)
- ld hl, $6e3d
- ld de, $ce29
- ld bc, $118
- call CopyBytes
- ld hl, $ce29
- ld bc, $118
-.asm_17ac3c
- ld a, [hl]
- or $8
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_17ac3c
- ret
-
-; known jump sources: 17a9a5 (5e:69a5), 17ac19 (5e:6c19)
-Function17ac46: ; 17ac46 (5e:6c46)
- ld a, [$d088]
- bit 4, a
- jr nz, .asm_17ac51
- call TextBox
- ret
-.asm_17ac51
- call Function3eea
- ret
-; 17ac55 (5e:6c55)
-
-INCBIN "baserom.gbc",$17ac55,$17b629 - $17ac55
-
-SECTION "bank5F",ROMX,BANK[$5F]
+SECTION "bank5F", ROMX, BANK[$5F]
Function17c000: ; 17c000
+
call DisableLCD
+
ld hl, VTiles2
- ld bc, $0310
+ ld bc, $310
xor a
call ByteFill
+
call Functione51
call Functione5f
- ld hl, $4b83
+
+ ld hl, HaveWantMap
ld de, TileMap
ld bc, AttrMap
- ld a, $12
-.asm_17c01e
+
+ ld a, SCREEN_HEIGHT
+.y
push af
- ld a, $14
+ ld a, SCREEN_WIDTH
+
push hl
-.asm_17c022
+.x
push af
ld a, [hli]
ld [de], a
@@ -122975,47 +97159,118 @@ Function17c000: ; 17c000
inc bc
pop af
dec a
- jr nz, .asm_17c022
+ jr nz, .x
pop hl
+
push bc
- ld bc, $0040
+ ld bc, BG_MAP_WIDTH * 2
add hl, bc
pop bc
+
pop af
dec a
- jr nz, .asm_17c01e
+ jr nz, .y
+
ld a, [rSVBK]
push af
- ld a, $5
+
+ ld a, 5 ; BANK(Unkn1Pals)
ld [rSVBK], a
- ld hl, $4ff3
- ld de, $d000
- ld bc, $0080
+
+ ld hl, HaveWantPals
+ ld de, Unkn1Pals
+ ld bc, $80
call CopyBytes
+
pop af
ld [rSVBK], a
- ld hl, $4983
+
+ ld hl, MobileSelectGFX
ld de, $8300
- ld bc, $0200
+ ld bc, $200
call CopyBytes
- ld a, $1
+
+ ld a, 1
ld [rVBK], a
- ld hl, $4083
+
+ ld hl, HaveWantGFX
ld de, VTiles2
- ld bc, $0800
+ ld bc, $800
call CopyBytes
- ld hl, $4883
+
+ ld hl, HaveWantGFX + $800
ld de, VTiles1
- ld bc, Start
+ ld bc, $100
call CopyBytes
+
xor a
ld [rVBK], a
+
call EnableLCD
callba Function104061
ret
; 17c083
-INCBIN "baserom.gbc",$17c083,$17d0b3 - $17c083
+HaveWantGFX: ; 17c083
+INCBIN "gfx/mobile/havewant.2bpp"
+
+MobileSelectGFX: ; 17c983
+INCBIN "gfx/mobile/select.2bpp"
+
+HaveWantMap: ; 17cb83
+; Interleaved tile/palette map.
+INCBIN "baserom.gbc", $17cb83, $17cff3 - $17cb83
+
+HaveWantPals: ; 17cff3
+; BG and OBJ palettes.
+INCBIN "baserom.gbc", $17cff3, $17d073 - $17cff3
+
+
+Function17d073: ; 17d073
+.asm_17d073
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_17d0ae
+ cp $60
+ jr nc, .asm_17d0ae
+ cp $4e
+ jr z, .asm_17d0ae
+ cp $50
+ jr z, .asm_17d0b1
+ cp $5
+ jr c, .asm_17d0ac
+ cp $14
+ jr c, .asm_17d0ae
+ cp $19
+ jr c, .asm_17d0ac
+ cp $1d
+ jr c, .asm_17d0ae
+ cp $26
+ jr c, .asm_17d0ac
+ cp $35
+ jr c, .asm_17d0ae
+ cp $3a
+ jr c, .asm_17d0ac
+ cp $3f
+ jr c, .asm_17d0ae
+ cp $40
+ jr c, .asm_17d0ac
+ cp $49
+ jr c, .asm_17d0ae
+
+.asm_17d0ac
+ scf
+ ret
+
+.asm_17d0ae
+ dec c
+ jr nz, .asm_17d073
+
+.asm_17d0b1
+ and a
+ ret
+; 17d0b3
Function17d0b3: ; 17d0b3
.asm_17d0b3
@@ -123087,13 +97342,15 @@ Function17d1f1: ; 17d1f1
ld a, [CurPartySpecies]
dec a
call SetSeenAndCaughtMon
+
ld a, [CurPartySpecies]
- cp $c9
+ cp UNOWN
jr nz, .asm_17d223
+
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
- ld bc, $0030
+ ld bc, PartyMon2 - PartyMon1
call AddNTimes
ld a, $2d
call Predef
@@ -123101,6 +97358,7 @@ Function17d1f1: ; 17d1f1
ld a, [$def4]
and a
jr nz, .asm_17d223
+
ld a, [UnownLetter]
ld [$def4], a
@@ -123196,7 +97454,7 @@ Function17d2ce: ; 17d2ce
call Function17d45a
pop af
ld [rSVBK], a
- ld de, $0066
+ ld de, MUSIC_MOBILE_CENTER
ld a, e
ld [CurMusic], a
ld [MusicFadeIDLo], a
@@ -123279,7 +97537,7 @@ Function17d370: ; 17d370
call CopyBytes
ld a, $1
ld [rVBK], a
- ld hl, $66fe
+ ld hl, PokemonNewsGFX
ld de, VTiles1
ld bc, $0480
call CopyBytes
@@ -123435,7 +97693,15 @@ Function17d60b: ; 17d60b
ret
; 17d6a1
-INCBIN "baserom.gbc",$17d6a1,$17f036 - $17d6a1
+
+INCBIN "baserom.gbc", $17d6a1, $17e6fe - $17d6a1
+
+
+PokemonNewsGFX: ; 17e6fe
+INCBIN "gfx/mobile/pokemon_news.2bpp"
+
+
+INCBIN "baserom.gbc", $17eb7e, $17f036 - $17eb7e
Function17f036: ; 17f036
@@ -124636,290 +98902,14 @@ Function17ff3c: ; 17ff3c
INCBIN "baserom.gbc",$17ff68,$17ff6c - $17ff68
-SECTION "bank60",ROMX,BANK[$60]
-
-; Map Scripts XIII
-
-INCLUDE "maps/IndigoPlateauPokeCenter1F.asm"
-INCLUDE "maps/WillsRoom.asm"
-INCLUDE "maps/KogasRoom.asm"
-INCLUDE "maps/BrunosRoom.asm"
-INCLUDE "maps/KarensRoom.asm"
-INCLUDE "maps/LancesRoom.asm"
-INCLUDE "maps/HallOfFame.asm"
-
-
-; Pokedex entries I
-; 001-064
-PokedexEntries1:
-INCLUDE "stats/pokedex/entries_1.asm"
-
-
-SECTION "bank61",ROMX,BANK[$61]
-
-; Map Scripts XIV
-
-INCLUDE "maps/CeruleanCity.asm"
-INCLUDE "maps/SproutTower1F.asm"
-INCLUDE "maps/SproutTower2F.asm"
-INCLUDE "maps/SproutTower3F.asm"
-INCLUDE "maps/TinTower1F.asm"
-INCLUDE "maps/TinTower2F.asm"
-INCLUDE "maps/TinTower3F.asm"
-INCLUDE "maps/TinTower4F.asm"
-INCLUDE "maps/TinTower5F.asm"
-INCLUDE "maps/TinTower6F.asm"
-INCLUDE "maps/TinTower7F.asm"
-INCLUDE "maps/TinTower8F.asm"
-INCLUDE "maps/TinTower9F.asm"
-INCLUDE "maps/BurnedTower1F.asm"
-INCLUDE "maps/BurnedTowerB1F.asm"
-
-
-SECTION "bank62",ROMX,BANK[$62]
-
-; Map Scripts XV
-
-INCLUDE "maps/CeruleanGymBadgeSpeechHouse.asm"
-INCLUDE "maps/CeruleanPoliceStation.asm"
-INCLUDE "maps/CeruleanTradeSpeechHouse.asm"
-INCLUDE "maps/CeruleanPokeCenter1F.asm"
-INCLUDE "maps/CeruleanPokeCenter2FBeta.asm"
-INCLUDE "maps/CeruleanGym.asm"
-INCLUDE "maps/CeruleanMart.asm"
-INCLUDE "maps/Route10PokeCenter1F.asm"
-INCLUDE "maps/Route10PokeCenter2FBeta.asm"
-INCLUDE "maps/PowerPlant.asm"
-INCLUDE "maps/BillsHouse.asm"
-INCLUDE "maps/FightingDojo.asm"
-INCLUDE "maps/SaffronGym.asm"
-INCLUDE "maps/SaffronMart.asm"
-INCLUDE "maps/SaffronPokeCenter1F.asm"
-INCLUDE "maps/SaffronPokeCenter2FBeta.asm"
-INCLUDE "maps/MrPsychicsHouse.asm"
-INCLUDE "maps/SaffronTrainStation.asm"
-INCLUDE "maps/SilphCo1F.asm"
-INCLUDE "maps/CopycatsHouse1F.asm"
-INCLUDE "maps/CopycatsHouse2F.asm"
-INCLUDE "maps/Route5UndergroundEntrance.asm"
-INCLUDE "maps/Route5SaffronCityGate.asm"
-INCLUDE "maps/Route5CleanseTagSpeechHouse.asm"
-
-
-SECTION "bank63",ROMX,BANK[$63]
-
-; Map Scripts XVI
-
-INCLUDE "maps/PewterCity.asm"
-INCLUDE "maps/WhirlIslandNW.asm"
-INCLUDE "maps/WhirlIslandNE.asm"
-INCLUDE "maps/WhirlIslandSW.asm"
-INCLUDE "maps/WhirlIslandCave.asm"
-INCLUDE "maps/WhirlIslandSE.asm"
-INCLUDE "maps/WhirlIslandB1F.asm"
-INCLUDE "maps/WhirlIslandB2F.asm"
-INCLUDE "maps/WhirlIslandLugiaChamber.asm"
-INCLUDE "maps/SilverCaveRoom1.asm"
-INCLUDE "maps/SilverCaveRoom2.asm"
-INCLUDE "maps/SilverCaveRoom3.asm"
-INCLUDE "maps/SilverCaveItemRooms.asm"
-INCLUDE "maps/DarkCaveVioletEntrance.asm"
-INCLUDE "maps/DarkCaveBlackthornEntrance.asm"
-INCLUDE "maps/DragonsDen1F.asm"
-INCLUDE "maps/DragonsDenB1F.asm"
-INCLUDE "maps/DragonShrine.asm"
-INCLUDE "maps/TohjoFalls.asm"
-INCLUDE "maps/AzaleaPokeCenter1F.asm"
-INCLUDE "maps/CharcoalKiln.asm"
-INCLUDE "maps/AzaleaMart.asm"
-INCLUDE "maps/KurtsHouse.asm"
-INCLUDE "maps/AzaleaGym.asm"
-
-
-SECTION "bank64",ROMX,BANK[$64]
-
-; Map Scripts XVII
-
-INCLUDE "maps/MahoganyTown.asm"
-INCLUDE "maps/Route32.asm"
-INCLUDE "maps/VermilionHouseFishingSpeechHouse.asm"
-INCLUDE "maps/VermilionPokeCenter1F.asm"
-INCLUDE "maps/VermilionPokeCenter2FBeta.asm"
-INCLUDE "maps/PokemonFanClub.asm"
-INCLUDE "maps/VermilionMagnetTrainSpeechHouse.asm"
-INCLUDE "maps/VermilionMart.asm"
-INCLUDE "maps/VermilionHouseDiglettsCaveSpeechHouse.asm"
-INCLUDE "maps/VermilionGym.asm"
-INCLUDE "maps/Route6SaffronGate.asm"
-INCLUDE "maps/Route6UndergroundEntrance.asm"
-INCLUDE "maps/PokeCenter2F.asm"
-INCLUDE "maps/TradeCenter.asm"
-INCLUDE "maps/Colosseum.asm"
-INCLUDE "maps/TimeCapsule.asm"
-INCLUDE "maps/MobileTradeRoomMobile.asm"
-INCLUDE "maps/MobileBattleRoom.asm"
-
-
-SECTION "bank65",ROMX,BANK[$65]
-
-; Map Scripts XVIII
-
-INCLUDE "maps/Route36.asm"
-INCLUDE "maps/FuchsiaCity.asm"
-INCLUDE "maps/BlackthornGym1F.asm"
-INCLUDE "maps/BlackthornGym2F.asm"
-INCLUDE "maps/BlackthornDragonSpeechHouse.asm"
-INCLUDE "maps/BlackthornDodrioTradeHouse.asm"
-INCLUDE "maps/BlackthornMart.asm"
-INCLUDE "maps/BlackthornPokeCenter1F.asm"
-INCLUDE "maps/MoveDeletersHouse.asm"
-INCLUDE "maps/FuchsiaMart.asm"
-INCLUDE "maps/SafariZoneMainOffice.asm"
-INCLUDE "maps/FuchsiaGym.asm"
-INCLUDE "maps/FuchsiaBillSpeechHouse.asm"
-INCLUDE "maps/FuchsiaPokeCenter1F.asm"
-INCLUDE "maps/FuchsiaPokeCenter2FBeta.asm"
-INCLUDE "maps/SafariZoneWardensHome.asm"
-INCLUDE "maps/Route15FuchsiaGate.asm"
-INCLUDE "maps/CherrygroveMart.asm"
-INCLUDE "maps/CherrygrovePokeCenter1F.asm"
-INCLUDE "maps/CherrygroveGymSpeechHouse.asm"
-INCLUDE "maps/GuideGentsHouse.asm"
-INCLUDE "maps/CherrygroveEvolutionSpeechHouse.asm"
-INCLUDE "maps/Route30BerrySpeechHouse.asm"
-INCLUDE "maps/MrPokemonsHouse.asm"
-INCLUDE "maps/Route31VioletGate.asm"
-
-
-SECTION "bank66",ROMX,BANK[$66]
-
-; Map Scripts XIX
-
-INCLUDE "maps/AzaleaTown.asm"
-INCLUDE "maps/GoldenrodCity.asm"
-INCLUDE "maps/SaffronCity.asm"
-INCLUDE "maps/MahoganyRedGyaradosSpeechHouse.asm"
-INCLUDE "maps/MahoganyGym.asm"
-INCLUDE "maps/MahoganyPokeCenter1F.asm"
-INCLUDE "maps/Route42EcruteakGate.asm"
-INCLUDE "maps/LakeofRageHiddenPowerHouse.asm"
-INCLUDE "maps/LakeofRageMagikarpHouse.asm"
-INCLUDE "maps/Route43MahoganyGate.asm"
-INCLUDE "maps/Route43Gate.asm"
-INCLUDE "maps/RedsHouse1F.asm"
-INCLUDE "maps/RedsHouse2F.asm"
-INCLUDE "maps/BluesHouse.asm"
-INCLUDE "maps/OaksLab.asm"
-
-
-SECTION "bank67",ROMX,BANK[$67]
-
-; Map Scripts XX
-
-INCLUDE "maps/CherrygroveCity.asm"
-INCLUDE "maps/Route35.asm"
-INCLUDE "maps/Route43.asm"
-INCLUDE "maps/Route44.asm"
-INCLUDE "maps/Route45.asm"
-INCLUDE "maps/Route19.asm"
-INCLUDE "maps/Route25.asm"
-
-
-SECTION "bank68",ROMX,BANK[$68]
-
-; Map Scripts XXI
-
-INCLUDE "maps/CianwoodCity.asm"
-INCLUDE "maps/Route27.asm"
-INCLUDE "maps/Route29.asm"
-INCLUDE "maps/Route30.asm"
-INCLUDE "maps/Route38.asm"
-INCLUDE "maps/Route13.asm"
-INCLUDE "maps/PewterNidoranSpeechHouse.asm"
-INCLUDE "maps/PewterGym.asm"
-INCLUDE "maps/PewterMart.asm"
-INCLUDE "maps/PewterPokeCenter1F.asm"
-INCLUDE "maps/PewterPokeCEnter2FBeta.asm"
-INCLUDE "maps/PewterSnoozeSpeechHouse.asm"
-
-
-SECTION "bank69",ROMX,BANK[$69]
-
-; Map Scripts XXII
-
-INCLUDE "maps/EcruteakCity.asm"
-INCLUDE "maps/BlackthornCity.asm"
-INCLUDE "maps/Route26.asm"
-INCLUDE "maps/Route28.asm"
-INCLUDE "maps/Route31.asm"
-INCLUDE "maps/Route39.asm"
-INCLUDE "maps/Route40.asm"
-INCLUDE "maps/Route41.asm"
-INCLUDE "maps/Route12.asm"
-
-
-SECTION "bank6A",ROMX,BANK[$6A]
-
-; Map Scripts XXIII
-
-INCLUDE "maps/NewBarkTown.asm"
-INCLUDE "maps/VioletCity.asm"
-INCLUDE "maps/OlivineCity.asm"
-INCLUDE "maps/Route37.asm"
-INCLUDE "maps/Route42.asm"
-INCLUDE "maps/Route46.asm"
-INCLUDE "maps/ViridianCity.asm"
-INCLUDE "maps/CeladonCity.asm"
-INCLUDE "maps/Route15.asm"
-INCLUDE "maps/VermilionCity.asm"
-INCLUDE "maps/Route9.asm"
-INCLUDE "maps/CinnabarPokeCenter1F.asm"
-INCLUDE "maps/CinnabarPokeCenter2FBeta.asm"
-INCLUDE "maps/Route19FuchsiaGate.asm"
-INCLUDE "maps/SeafoamGym.asm"
-
-
-SECTION "bank6B",ROMX,BANK[$6B]
-
-; Map Scripts XXIV
-
-INCLUDE "maps/Route33.asm"
-INCLUDE "maps/Route2.asm"
-INCLUDE "maps/Route1.asm"
-INCLUDE "maps/PalletTown.asm"
-INCLUDE "maps/Route21.asm"
-INCLUDE "maps/CinnabarIsland.asm"
-INCLUDE "maps/Route20.asm"
-INCLUDE "maps/Route18.asm"
-INCLUDE "maps/Route17.asm"
-INCLUDE "maps/Route16.asm"
-INCLUDE "maps/Route7.asm"
-INCLUDE "maps/Route14.asm"
-INCLUDE "maps/LavenderTown.asm"
-INCLUDE "maps/Route6.asm"
-INCLUDE "maps/Route5.asm"
-INCLUDE "maps/Route24.asm"
-INCLUDE "maps/Route3.asm"
-INCLUDE "maps/Route4.asm"
-INCLUDE "maps/Route10South.asm"
-INCLUDE "maps/Route23.asm"
-INCLUDE "maps/SilverCavePokeCenter1F.asm"
-INCLUDE "maps/Route28FamousSpeechHouse.asm"
-
-
-SECTION "bank6C",ROMX,BANK[$6C]
-
-; Common text I
-INCLUDE "text/common.asm"
+SECTION "Common Text 1", ROMX, BANK[$6C]
-; Map Scripts XXV
+INCLUDE "text/common.asm"
-INCLUDE "maps/SilverCaveOutside.asm"
-INCLUDE "maps/Route10North.asm"
-SECTION "bank6D",ROMX,BANK[$6D]
+SECTION "bank6D", ROMX, BANK[$6D]
INCLUDE "text/phone/mom.asm"
INCLUDE "text/phone/bill.asm"
@@ -124927,36 +98917,23 @@ INCLUDE "text/phone/elm.asm"
INCLUDE "text/phone/trainers1.asm"
-SECTION "bank6E",ROMX,BANK[$6E]
-
-; Pokedex entries II
-; 065-128
-PokedexEntries2:
-INCLUDE "stats/pokedex/entries_2.asm"
-
-SECTION "bank6F",ROMX,BANK[$6F]
-
-; Common text II
+SECTION "Common Text 2", ROMX, BANK[$6F]
INCLUDE "text/common_2.asm"
-SECTION "bank70",ROMX,BANK[$70]
-
-; Common text III
+SECTION "Common Text 3", ROMX, BANK[$70]
INCLUDE "text/common_3.asm"
-SECTION "bank71",ROMX,BANK[$71]
-
-; Common text IV
+SECTION "Common Text 4", ROMX, BANK[$71]
INCLUDE "text/common_4.asm"
-SECTION "bank72",ROMX,BANK[$72]
+SECTION "bank72", ROMX, BANK[$72]
; Item names & descriptions
@@ -125006,29 +98983,14 @@ RegionCheck: ; 0x1caea1
ret
-SECTION "bank73",ROMX,BANK[$73]
-
-; Pokedex entries III
- ; 129-192
-PokedexEntries3:
-INCLUDE "stats/pokedex/entries_3.asm"
-
-
-SECTION "bank74",ROMX,BANK[$74]
-; Pokedex entries IV
- ; 193-251
-PokedexEntries4:
-INCLUDE "stats/pokedex/entries_4.asm"
+SECTION "bank75", ROMX, BANK[$75]
-SECTION "bank75",ROMX,BANK[$75]
+SECTION "bank76", ROMX, BANK[$76]
-SECTION "bank76",ROMX,BANK[$76]
-
-
-SECTION "bank77",ROMX,BANK[$77]
+SECTION "bank77", ROMX, BANK[$77]
UnownFont: ; 1dc000
INCBIN "gfx/misc/unown_font.2bpp"
@@ -125043,18 +99005,22 @@ Function1dc381: ; 1dc381
xor a
ld [hBGMapMode], a
call Functione58
- ld de, $4591
+
+ ld de, MobileHPIcon
ld hl, $9710
- ld bc, $7701
+ lb bc, BANK(MobileHPIcon), 1
call Request1bpp
- ld de, $4599
+
+ ld de, MobileLvIcon
ld hl, $96e0
- ld bc, $7701
+ lb bc, BANK(MobileLvIcon), 1
call Request1bpp
- ld de, $4a90
+
+ ld de, ShinyIcon
ld hl, $93f0
- ld bc, $3e01
+ lb bc, BANK(ShinyIcon), 1
call Get2bpp
+
xor a
ld [MonType], a
callba Function5084a
@@ -125092,21 +99058,21 @@ Function1dc381: ; 1dc381
ld bc, $8103
call PrintNum
ld hl, $c555
- ld de, $4550
+ ld de, String1dc550
call PlaceString
ld hl, PartyMon1OT
call Function1dc50e
ld hl, $c558
call PlaceString
ld hl, $c57d
- ld de, $4559
+ ld de, String1dc559
call PlaceString
ld hl, $c580
ld de, TempMonID
ld bc, $8205
call PrintNum
ld hl, $c5b9
- ld de, $4554
+ ld de, String1dc554
call PlaceString
ld hl, $c5bf
ld a, [TempMonMove1]
@@ -125144,10 +99110,10 @@ Function1dc47b: ; 1dc47b
ld [MonType], a
callba Function5084a
ld hl, TileMap
- ld b, $f
- ld c, $12
+ ld b, 15
+ ld c, 18
call TextBox
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
ld de, TileMap
ld hl, $c4b4
call CopyBytes
@@ -125161,7 +99127,7 @@ Function1dc47b: ; 1dc47b
ld a, [TempMonMove4]
call Function1dc51a
ld hl, $c533
- ld de, $455d
+ ld de, String1dc55d
call PlaceString
ld hl, $c53c
ld de, TempMonAtk
@@ -125203,12 +99169,13 @@ Function1dc50e: ; 1dc50e
Function1dc51a: ; 1dc51a
and a
jr z, .asm_1dc525
+
ld [$d265], a
call GetMoveName
jr .asm_1dc528
.asm_1dc525
- ld de, $4584
+ ld de, String1dc584
.asm_1dc528
call PlaceString
@@ -125234,10 +99201,36 @@ Function1dc52c: ; 1dc52c
ret
; 1dc550
-INCBIN "baserom.gbc",$1dc550,$1dc5a1 - $1dc550
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db $73, "№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK", $4e
+ db "DEFENSE", $4e
+ db "SPCL.ATK", $4e
+ db "SPCL.DEF", $4e
+ db "SPEED@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591
+
+MobileHPIcon: ; 1dc591
+INCBIN "gfx/mobile/hp.1bpp"
+
+MobileLvIcon: ; 1dc599
+INCBIN "gfx/mobile/lv.1bpp"
+
INCLUDE "tilesets/data_7.asm"
+
INCBIN "baserom.gbc",$1dd6a9,$1dd6bb - $1dd6a9
; no known jump sources
@@ -125542,12 +99535,14 @@ Function1de294: ; 1de294
; 1de299
Function1de299: ; 1de299
- ld a, $77
+ ld a, BANK(DudeAutoInputs)
call StartAutoInput
ret
; 1de29f
+DudeAutoInputs:
+
DudeAutoInput_A: ; 1de29f
db NO_INPUT, $50
db A_BUTTON, $00
@@ -125711,28 +99706,28 @@ Function1df220: ; 1df220
; 1df238
-SECTION "bank78",ROMX,BANK[$78]
+SECTION "Tileset Data 8", ROMX, BANK[TILESETS_8]
INCLUDE "tilesets/data_8.asm"
-SECTION "bank79",ROMX,BANK[$79]
+SECTION "bank79", ROMX, BANK[$79]
-SECTION "bank7A",ROMX,BANK[$7A]
+SECTION "bank7A", ROMX, BANK[$7A]
-SECTION "bank7B",ROMX,BANK[$7B]
+SECTION "bank7B", ROMX, BANK[$7B]
INCLUDE "text/battle_tower.asm"
-SECTION "bank7C",ROMX,BANK[$7C]
+SECTION "bank7C", ROMX, BANK[$7C]
INCBIN "baserom.gbc",$1f0000,$1f09d8 - $1f0000
-SECTION "bank7D",ROMX,BANK[$7D]
+SECTION "bank7D", ROMX, BANK[$7D]
INCBIN "baserom.gbc",$1f4000,$1f4003 - $1f4000
@@ -125750,13 +99745,13 @@ Function1f4003: ; 1f4003
INCBIN "baserom.gbc",$1f4018,$1f636a - $1f4018
-SECTION "bank7E",ROMX,BANK[$7E]
+SECTION "bank7E", ROMX, BANK[$7E]
INCLUDE "stats/battle_tower.asm"
INCLUDE "stats/odd_eggs.asm"
-SECTION "bank7F",ROMX,BANK[$7F]
+SECTION "bank7F", ROMX, BANK[$7F]
SECTION "stadium2",ROMX[$8000-$220],BANK[$7F]
INCBIN "baserom.gbc",$1ffde0,$200000 - $1ffde0