summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-05-22 15:23:16 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-05-22 15:23:16 -0400
commit82b21453806362c5287b50137584c3734d2dab1b (patch)
treea575911e2bddb8b77f9767e520ba508776f0a53f
parentbd5caf92db057bdf32c77f3415f6411b4d327565 (diff)
Disassemble ea3ea to end of bank 3a
-rwxr-xr-xengine/unknown_ea3ea.asm756
-rwxr-xr-xmain.asm2
2 files changed, 757 insertions, 1 deletions
diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm
index 78a73393..fb16e913 100755
--- a/engine/unknown_ea3ea.asm
+++ b/engine/unknown_ea3ea.asm
@@ -214,3 +214,759 @@ Func_ea573: ; ea573 (3a:6573)
GFX_ea597: ; ea597 (3a:6597)
INCBIN "gfx/zero_one_ea597.2bpp"
GFX_ea597End:
+
+Func_ea5b7: ; ea5b7 (3a:65b7)
+ ld hl, wOAMBuffer + 32 * 4 + 2
+ ld de, 4
+ ld a, [$c971]
+ ld c, 8
+.asm_ea5c2
+ sla a
+ jr c, .asm_ea5ca
+ ld [hl], $fe
+ jr .asm_ea5cc
+
+.asm_ea5ca
+ ld [hl], $ff
+.asm_ea5cc
+ add hl, de
+ dec c
+ jr nz, .asm_ea5c2
+ ret
+
+Functionea5d1: ; ea5d1 (3a:65d1)
+ ld a, [wOverworldMap]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_ea5e0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_ea5e0:
+ dw Functionea623
+ dw Functionea6d2
+ dw Functionea6af
+ dw Functionea645
+ dw Functionea701
+ dw Functionea6bd
+ dw Functionea671
+ dw Functionea701
+ dw Functionea6af
+ dw Functionea68a
+ dw Functionea701
+ dw Functionea6af
+ dw Functionea721
+ dw Functionea610
+ dw Functionea61a
+ dw Functionea6af
+ dw Functionea61e
+ dw Functionea72f
+ dw Functionea732
+
+
+Functionea606: ; ea606 (3a:6606)
+ ld hl, wOverworldMap
+ inc [hl]
+ ret
+
+Functionea60b: ; ea60b (3a:660b)
+ ld hl, wOverworldMap
+ dec [hl]
+ ret
+
+Functionea610: ; ea610 (3a:6610)
+ xor a
+ ld [$c971], a
+ ld hl, wOverworldMap
+ set 7, [hl]
+ ret
+
+Functionea61a: ; ea61a (3a:661a)
+ call Functionea606
+ ret
+
+Functionea61e: ; ea61e (3a:661e)
+ xor a
+ ld [wOverworldMap], a
+ ret
+
+Functionea623: ; ea623 (3a:6623)
+ call Functionea784
+ ld hl, Data_ea9de
+ call Functionea76b
+ xor a
+ ld [$c976], a
+ ld [$c977], a
+ ld a, [$caf4]
+ ld [$c6e9], a
+ call Functionea606
+ call Functionea74c
+ ld a, $01
+ ld [$cae0], a
+ ret
+
+Functionea645: ; ea645 (3a:6645)
+ call Functionea784
+ ld hl, $c6e9
+ ld a, [hl]
+ and a
+ jr z, Functionea671
+ ld hl, Data_ea9ea
+ call Functionea76b
+ call Functionea7e9
+ ld a, $80
+ ld [$c976], a
+ ld a, $02
+ ld [$c977], a
+ call Functionea7a2
+ call Functionea606
+ call Functionea74c
+ ld a, $02
+ ld [$cae0], a
+ ret
+
+Functionea671: ; ea671 (3a:6671)
+ ld a, $06
+ ld [wOverworldMap], a
+ ld hl, Data_ea9f0
+ call Functionea76b
+ xor a
+ ld [$c976], a
+ ld [$c977], a
+ call Functionea606
+ call Functionea74c
+ ret
+
+Functionea68a: ; ea68a (3a:668a)
+ call Functionea784
+ ld hl, Data_ea9e4
+ call Functionea76b
+ call Functionea7d2
+ ld a, $04
+ ld [$c976], a
+ ld a, $00
+ ld [$c977], a
+ call Functionea7a2
+ call Functionea606
+ call Functionea74c
+ ld a, $03
+ ld [$cae0], a
+ ret
+
+Functionea6af: ; ea6af (3a:66af)
+ ld hl, $c973
+ inc [hl]
+ ld a, [hl]
+ cp a, $06
+ ret c
+ xor a
+ ld [hl], a
+ call Functionea606
+ ret
+
+Functionea6bd: ; ea6bd (3a:66bd)
+ ld hl, $c973
+ inc [hl]
+ ld a, [hl]
+ cp 6
+ ret c
+ xor a
+ ld [hl], a
+ ld hl, $c6e9
+ dec [hl]
+ call Functionea60b
+ call Functionea60b
+ ret
+
+Functionea6d2: ; ea6d2 (3a:66d2)
+ call Functionea742
+ ret c
+ ld a, [$c970]
+ cp a, $ff
+ jr nz, .asm_ea6e4
+ ld a, [$c971]
+ cp a, $ff
+ jr z, .asm_ea6fb
+.asm_ea6e4
+ ld a, [$c970]
+ cp a, $81
+ jr nz, .asm_ea6fb
+ ld a, [$c971]
+ cp a, $00
+ jr nz, .asm_ea6fb
+ ld hl, wUnknownSerialFlag_d49a
+ set 1, [hl]
+ call Functionea606
+ ret
+
+.asm_ea6fb
+ ld a, $0e
+ ld [wOverworldMap], a
+ ret
+
+Functionea701: ; ea701 (3a:6701)
+ call Functionea742
+ ret c
+ ld a, [$c971]
+ and $f0
+ jr nz, .asm_ea71b
+ ld a, [$c971]
+ and $01
+ jr nz, .asm_ea717
+ call Functionea606
+ ret
+
+.asm_ea717
+ call Functionea60b
+ ret
+
+.asm_ea71b
+ ld a, $11
+ ld [wOverworldMap], a
+ ret
+
+Functionea721: ; ea721 (3a:6721)
+ call Functionea742
+ ret c
+ ld a, [$c971]
+ and $f3
+ ret nz
+ call Functionea606
+ ret
+
+Functionea72f: ; ea72f (3a:672f)
+ call Functionea606
+Functionea732: ; ea732 (3a:6732)
+ ld a, [wUnknownSerialFlag_d49b]
+ and a
+ ret nz
+ ld a, [$c971]
+ and $f0
+ ret nz
+ xor a
+ ld [wOverworldMap], a
+ ret
+
+Functionea742: ; ea742 (3a:6742)
+ ld a, [wUnknownSerialFlag_d49b]
+ and a
+ jr nz, .asm_ea74a
+ and a
+ ret
+
+.asm_ea74a
+ scf
+ ret
+
+Functionea74c: ; ea74c (3a:674c)
+.asm_ea74c
+ ld a, [wUnknownSerialFlag_d49b]
+ and a
+ jr nz, .asm_ea74c
+ ld a, $01
+ ld [wUnknownSerialFlag_d49b], a
+ xor a
+ ld [$c974], a
+ ld [$c975], a
+ ld a, $88
+ ld [rSB], a
+ ld a, $01
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+
+Functionea76b: ; ea76b (3a:676b)
+ ld a, [hli]
+ ld [$c6ea], a
+ ld a, [hli]
+ ld [$c6eb], a
+ ld a, [hli]
+ ld [$c6ec], a
+ ld a, [hli]
+ ld [$c6ed], a
+ ld a, [hli]
+ ld [$c6ee], a
+ ld a, [hl]
+ ld [$c6ef], a
+ ret
+
+Functionea784: ; ea784 (3a:6784)
+ xor a
+ ld hl, $c6ea
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, $c6ee
+ ld [hli], a
+ ld [hl], a
+ xor a
+ ld [$c976], a
+ ld [$c977], a
+ ld hl, $c6f0
+ ld bc, $280
+ call FillMemory
+ ret
+
+Functionea7a2: ; ea7a2 (3a:67a2)
+ ld hl, $0000
+ ld bc, $0004
+ ld de, $c6ea
+ call Functionea7c5
+ ld a, [$c976]
+ ld c, a
+ ld a, [$c977]
+ ld b, a
+ ld de, $c6f0
+ call Functionea7c5
+ ld a, l
+ ld [$c6ee], a
+ ld a, h
+ ld [$c6ef], a
+ ret
+
+Functionea7c5: ; ea7c5 (3a:67c5)
+.asm_ea7c5
+ ld a, [de]
+ inc de
+ add l
+ jr nc, .asm_ea7cb
+ inc h
+.asm_ea7cb
+ ld l, a
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_ea7c5
+ ret
+
+Functionea7d2: ; ea7d2 (3a:67d2)
+ ld a, $01
+ ld [$c6f0], a
+ ld a, [$cae2]
+ ld [$c6f1], a
+ ld a, $e4
+ ld [$c6f2], a
+ ld a, [$cae3]
+ ld [$c6f3], a
+ ret
+
+Functionea7e9: ; ea7e9 (3a:67e9)
+ ld a, [$c6e9]
+ ld b, a
+ ld a, [$caf4]
+ sub b
+ ld hl, $c978
+ ld de, $0028
+.asm_ea7f7
+ and a
+ jr z, .asm_ea7fe
+ add hl, de
+ dec a
+ jr .asm_ea7f7
+
+.asm_ea7fe
+ ld e, l
+ ld d, h
+ ld hl, $c6f0
+ ld c, $28
+.asm_ea805
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ push hl
+ swap a
+ ld d, a
+ and $f0
+ ld e, a
+ ld a, d
+ and $0f
+ ld d, a
+ and $08
+ ld a, d
+ jr nz, .asm_ea81d
+ or $90
+ jr .asm_ea81f
+
+.asm_ea81d
+ or $80
+.asm_ea81f
+ ld d, a
+ lb bc, $3a, $01
+ call CopyVideoData
+ pop hl
+ ld de, $0010
+ add hl, de
+ pop de
+ pop bc
+ dec c
+ jr nz, .asm_ea805
+ call Functionea834
+ ret
+
+Functionea834: ; ea834 (3a:6834)
+ ld hl, $cbdc
+ ld bc, $0020
+ xor a
+ call FillMemory
+ ld hl, $c300
+ ld c, $28
+.asm_ea843
+ push bc
+ push hl
+ call Functionea860
+ jr nc, .asm_ea856
+ call Functionea886
+ call Functionea8a1
+ call Functionea902
+ call Functionea999
+.asm_ea856
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_ea843
+ ret
+
+Functionea860: ; ea860 (3a:6860)
+ ld a, [$c6e9]
+ ld b, a
+ ld a, [$caf4]
+ sub b
+ ld c, a
+ ld b, $10
+.asm_ea86b
+ ld a, c
+ and a
+ jr z, .asm_ea876
+ ld a, b
+ add $10
+ ld b, a
+ dec c
+ jr .asm_ea86b
+
+.asm_ea876
+ ld a, b
+ ld e, a
+ add $10
+ ld d, a
+ ld a, [hl]
+ cp e
+ jr c, .asm_ea884
+ cp d
+ jr nc, .asm_ea884
+ scf
+ ret
+
+.asm_ea884
+ and a
+ ret
+
+Functionea886: ; ea886 (3a:6886)
+ push hl
+ inc hl
+ inc hl
+ ld a, [hl]
+ swap a
+ ld d, a
+ and $f0
+ ld e, a
+ ld a, d
+ and $0f
+ or $80
+ ld d, a
+ ld hl, $cbdc
+ lb bc, $3a, $01
+ call CopyVideoData
+ pop hl
+ ret
+
+Functionea8a1: ; ea8a1 (3a:68a1)
+ push hl
+ inc hl
+ inc hl
+ inc hl
+ ld a, [hl]
+ call Functionea8ab
+ pop hl
+ ret
+
+Functionea8ab: ; ea8ab (3a:68ab)
+ and $60
+ swap a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_ea8ba
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_ea8ba: ; ea8ba (3a:68ba)
+ dw Functionea8c2
+ dw Functionea8c3
+ dw Functionea8c7
+ dw Functionea8cb
+
+Functionea8c2: ; ea8c2 (3a:68c2)
+ ret
+
+Functionea8c3: ; ea8c3 (3a:68c3)
+ call Functionea8d2
+ ret
+
+Functionea8c7: ; ea8c7 (3a:68c7)
+ call Functionea8e8
+ ret
+
+Functionea8cb: ; ea8cb (3a:68cb)
+ call Functionea8d2
+ call Functionea8e8
+ ret
+
+Functionea8d2: ; ea8d2 (3a:68d2)
+ ld hl, $cbdc
+ ld c, 16
+.asm_ea8d7
+ ld d, [hl]
+ ld a, 0
+ ld b, 8
+.asm_ea8dc
+ sla d
+ rr a
+ dec b
+ jr nz, .asm_ea8dc
+ ld [hli], a
+ dec c
+ jr nz, .asm_ea8d7
+ ret
+
+Functionea8e8: ; ea8e8 (3a:68e8)
+ ld hl, $cbdc
+ ld de, $cbea
+ ld c, $04
+.asm_ea8f0
+ ld b, [hl]
+ ld a, [de]
+ ld [hli], a
+ ld a, b
+ ld [de], a
+ inc de
+ ld b, [hl]
+ ld a, [de]
+ ld [hli], a
+ ld a, b
+ ld [de], a
+ dec de
+ dec de
+ dec de
+ dec c
+ jr nz, .asm_ea8f0
+ ret
+
+Functionea902: ; ea902 (3a:6902)
+ push hl
+ ld hl, $cbdc
+ ld de, $cbec
+ ld a, $08
+.asm_ea90b
+ push af
+ ld bc, $0000
+ ld a, $08
+.asm_ea911
+ push af
+ xor a
+ rlc [hl]
+ rl a
+ inc hl
+ rlc [hl]
+ rl a
+ dec hl
+ push hl
+ push de
+ call Functionea936
+ pop de
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_ea911
+ inc hl
+ inc hl
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_ea90b
+ pop hl
+ ret
+
+Functionea936 ; ea936 (3a:6936)
+ call Functionea93d
+ call Functionea96d
+ ret
+
+Functionea93d: ; ea93d (3a:693d)
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_ea949
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_ea949: ; ea949 (3a:6949)
+ dw Functionea951
+ dw Functionea95f
+ dw Functionea956
+ dw Functionea966
+
+Functionea951: ; ea951 (3a:6951)
+ ld a, [rOBP0]
+ and $03
+ ret
+
+Functionea956: ; ea956 (3a:6956)
+ ld a, [rOBP0]
+ and $0c
+ srl a
+ srl a
+ ret
+
+Functionea95f: ; ea95f (3a:695f)
+ ld a, [rOBP0]
+ and $30
+ swap a
+ ret
+
+Functionea966: ; ea966 (3a:6966)
+ ld a, [rOBP0]
+ and $c0
+ rlca
+ rlca
+ ret
+
+Functionea96d: ; ea96d (3a:696d)
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_ea979
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_ea979: ; ea979 (3a:6979)
+ dw Functionea981
+ dw Functionea986
+ dw Functionea98c
+ dw Functionea992
+
+Functionea981: ; ea981 (3a:6981)
+ sla b
+ sla c
+ ret
+
+Functionea986: ; ea986 (3a:6986)
+ scf
+ rl b
+ sla c
+ ret
+
+Functionea98c: ; ea98c (3a:698c)
+ sla b
+ scf
+ rl c
+ ret
+
+Functionea992: ; ea992 (3a:6992)
+ scf
+ rl b
+ scf
+ rl c
+ ret
+
+Functionea999: ; ea999 (3a:6999)
+ push hl
+ ld a, [hli]
+ ld c, [hl]
+ and $08
+ jr nz, .asm_ea9a5
+ ld hl, $c6f0
+ jr .asm_ea9a8
+
+.asm_ea9a5
+ ld hl, $c830
+.asm_ea9a8
+ ld b, $00
+ ld a, c
+ and $f8
+ sub $08
+ ld c, a
+ sla c
+ rl b
+ add hl, bc
+ ld e, l
+ ld d, h
+ ld hl, $cbec
+ ld c, $08
+.asm_ea9bc
+ call Functionea9d0
+ ld a, [de]
+ and b
+ or [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [de]
+ and b
+ or [hl]
+ ld [de], a
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_ea9bc
+ pop hl
+ ret
+
+Functionea9d0: ; ea9d0 (3a:69d0)
+ push hl
+ push de
+ ld de, $fff0
+ add hl, de
+ ld a, [hli]
+ or [hl]
+ xor $ff
+ ld b, a
+ pop de
+ pop hl
+ ret
+
+Data_ea9de: ; ea9de
+ db $01, $00, $00, $00, $01, $00
+Data_ea9e4: ; ea9e4
+ db $02, $00, $04, $00, $00, $00
+Data_ea9ea: ; ea9ea
+ db $04, $00, $80, $02, $00, $00
+Data_ea9f0: ; ea9f0
+ db $04, $00, $00, $00, $04, $00
+Data_ea9f6: ; ea9f6
+ db $08, $00, $00, $00, $08, $00
+Data_ea9fc: ; ea9fc
+ db $0f, $00, $00, $00, $0f, $00
diff --git a/main.asm b/main.asm
index 98608ba1..f7754dff 100755
--- a/main.asm
+++ b/main.asm
@@ -893,7 +893,7 @@ SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp"
SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.t1.2bpp"
INCLUDE "engine/unknown_ea3ea.asm"
- dr $ea5b7,$eaa02
+
FreezeEnemyTrainerSprite: ; eaa02 (3a:6a02)
ld a, [wCurMap]
cp POKEMONTOWER_7