summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-09-24 08:38:12 -0700
committerBryan Bishop <kanzure@gmail.com>2013-09-24 08:38:12 -0700
commit3dedf4c109b6883c8731918a8e59cb21b2bbec26 (patch)
tree0e7a8167c809e1c97162c0fd250029d386039085
parentd536990828adee8a47e71f24ec45900ea783cd7a (diff)
parentf6a5d7b2f2bce987ae7d5e291e80e830516c2965 (diff)
Merge pull request #204 from yenatch/master
Some uncommented code.
-rw-r--r--engine/color.asm1371
-rw-r--r--engine/scripting.asm6
-rw-r--r--engine/title.asm475
-rw-r--r--event/dratini.asm112
-rw-r--r--gfx/fx/000.lzbin231 -> 240 bytes
-rw-r--r--gfx/fx/001.lzbin231 -> 240 bytes
-rw-r--r--gfx/fx/002.lzbin92 -> 96 bytes
-rw-r--r--gfx/fx/003.lzbin82 -> 96 bytes
-rw-r--r--gfx/fx/004.lzbin199 -> 208 bytes
-rw-r--r--gfx/fx/005.lzbin308 -> 320 bytes
-rw-r--r--gfx/fx/006.lzbin222 -> 224 bytes
-rw-r--r--gfx/fx/007.lzbin130 -> 144 bytes
-rw-r--r--gfx/fx/008.lzbin86 -> 96 bytes
-rw-r--r--gfx/fx/009.lzbin235 -> 240 bytes
-rw-r--r--gfx/fx/010.lzbin53 -> 64 bytes
-rw-r--r--gfx/fx/011.lzbin79 -> 80 bytes
-rw-r--r--gfx/fx/012.lzbin97 -> 112 bytes
-rw-r--r--gfx/fx/013.lzbin149 -> 160 bytes
-rw-r--r--gfx/fx/014.lzbin177 -> 192 bytes
-rw-r--r--gfx/fx/015.lzbin28 -> 32 bytes
-rw-r--r--gfx/fx/016.lzbin143 -> 144 bytes
-rw-r--r--gfx/fx/017.lzbin73 -> 80 bytes
-rw-r--r--gfx/fx/018.lzbin109 -> 112 bytes
-rw-r--r--gfx/fx/019.lzbin187 -> 192 bytes
-rw-r--r--gfx/fx/020.lzbin121 -> 128 bytes
-rw-r--r--gfx/fx/021.lzbin121 -> 128 bytes
-rw-r--r--gfx/fx/022.lzbin190 -> 192 bytes
-rw-r--r--gfx/fx/023.lzbin98 -> 112 bytes
-rw-r--r--gfx/fx/024.lzbin110 -> 112 bytes
-rw-r--r--gfx/fx/025.lzbin282 -> 288 bytes
-rw-r--r--gfx/fx/026.lzbin90 -> 96 bytes
-rw-r--r--gfx/fx/027.lzbin114 -> 128 bytes
-rw-r--r--gfx/fx/028.lzbin138 -> 144 bytes
-rw-r--r--gfx/fx/029.lzbin90 -> 96 bytes
-rw-r--r--gfx/fx/030.lzbin81 -> 96 bytes
-rw-r--r--gfx/fx/031.lzbin403 -> 416 bytes
-rw-r--r--gfx/fx/032.lzbin347 -> 352 bytes
-rw-r--r--gfx/fx/033.lzbin225 -> 240 bytes
-rw-r--r--gfx/fx/034.lzbin152 -> 160 bytes
-rw-r--r--gfx/fx/035.lzbin219 -> 224 bytes
-rw-r--r--gfx/fx/036.lzbin214 -> 224 bytes
-rw-r--r--gfx/fx/037.lzbin365 -> 368 bytes
-rw-r--r--gfx/fx/038.lzbin145 -> 160 bytes
-rw-r--r--gfx/fx/039.lzbin125 -> 128 bytes
-rw-r--r--home/pokedex_flags.asm40
-rw-r--r--home/window.asm96
-rw-r--r--lib/mobile/main.asm17
-rw-r--r--main.asm3074
-rw-r--r--menu/mon_icons.asm349
-rw-r--r--predef/cgb.asm65
50 files changed, 3253 insertions, 2352 deletions
diff --git a/engine/color.asm b/engine/color.asm
new file mode 100644
index 000000000..da99cd4bf
--- /dev/null
+++ b/engine/color.asm
@@ -0,0 +1,1371 @@
+
+INCLUDE "predef/sgb.asm"
+
+
+CheckShininess: ; 8a68
+; Check if a mon is shiny by DVs at bc.
+; Return carry if shiny.
+
+ ld l, c
+ ld h, b
+
+; Attack
+ ld a, [hl]
+ and %0010 << 4
+ jr z, .NotShiny
+
+; Defense
+ ld a, [hli]
+ and %1111
+ cp %1010
+ jr nz, .NotShiny
+
+; Speed
+ ld a, [hl]
+ and %1111 << 4
+ cp %1010 << 4
+ jr nz, .NotShiny
+
+; Special
+ ld a, [hl]
+ and %1111
+ cp %1010
+ jr nz, .NotShiny
+
+.Shiny
+ scf
+ ret
+
+.NotShiny
+ and a
+ ret
+; 8a88
+
+
+CheckContestMon: ; 8a88
+; Check a mon's DVs at hl in the bug catching contest.
+; Return carry if its DVs are good enough to place in the contest.
+
+; Attack
+ ld a, [hl]
+ cp 10 << 4
+ jr c, .Bad
+
+; Defense
+ ld a, [hli]
+ and $f
+ cp 10
+ jr c, .Bad
+
+; Speed
+ ld a, [hl]
+ cp 10 << 4
+ jr c, .Bad
+
+; Special
+ ld a, [hl]
+ and $f
+ cp 10
+ jr c, .Bad
+
+.Good
+ scf
+ ret
+
+.Bad
+ and a
+ ret
+; 8aa4
+
+
+Function8aa4: ; 8aa4
+ push de
+ push bc
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop bc
+ pop de
+ ld a, c
+ ld [$cdac], a
+ ld a, b
+ ld [$cdad], a
+ ld a, e
+ ld [$cdae], a
+ ld a, d
+ ld [$cdaf], a
+ ld hl, $cda9
+ call Function9809
+ ld hl, $5a86
+ call Function9809
+ ret
+; 8ad1
+
+
+Function8ad1: ; 8ad1
+ ld hl, $5c57
+ call Function9610
+ call Function971a
+ call Function9699
+ ret
+; 8ade
+
+Function8ade: ; 8ade
+ ld hl, $cd9b
+ ld a, [$cda9]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [de]
+ and a
+ ld e, $5
+ jr z, .asm_8af7
+ dec a
+ ld e, $a
+ jr z, .asm_8af7
+ ld e, $f
+
+.asm_8af7
+ push de
+ ld hl, $cdb3
+ ld bc, $0006
+ ld a, [$cda9]
+ call AddNTimes
+ pop de
+ ld [hl], e
+ ret
+; 8b07
+
+Function8b07: ; 8b07
+ call CheckCGB
+ ret z
+ ld hl, Palette8b2f
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+
+ ld hl, Palette8b37
+ ld de, MartPointer
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+
+ call Function96a4
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8b2f
+
+Palette8b2f: ; 8b2f
+ RGB 31, 31, 31
+ RGB 18, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+; 8b37
+
+Palette8b37: ; 8b37
+ RGB 31, 31, 31
+ RGB 31, 31, 12
+ RGB 08, 16, 28
+ RGB 00, 00, 00
+; 8b3f
+
+Function8b3f: ; 8b3f
+ call CheckCGB
+ ret nz
+ ld a, [hSGB]
+ and a
+ ret z
+ ld hl, $5a86
+ jp Function9809
+; 8b4d
+
+Function8b4d: ; 8b4d
+ call CheckCGB
+ jr nz, .asm_8b5c
+ ld a, [hSGB]
+ and a
+ ret z
+ ld hl, $5c26
+ jp Function9809
+
+.asm_8b5c
+ ld de, Unkn2Pals
+ ld a, $3b
+ call Function9625
+ jp Function9630
+; 8b67
+
+Function8b67: ; 8b67
+ call CheckCGB
+ jr nz, .asm_8b76
+ ld a, [hSGB]
+ and a
+ ret z
+ ld hl, $5c36
+ jp Function9809
+
+.asm_8b76
+ ld de, Unkn2Pals
+ ld a, $3c
+ call Function9625
+ jp Function9630
+; 8b81
+
+Function8b81: ; 8b81
+ call CheckCGB
+ jr nz, .asm_8bb2
+ ld a, [hSGB]
+ and a
+ ret z
+ ld a, c
+ push af
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop af
+ call Function9775
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hl]
+ ld [$cdaf], a
+ ld hl, $cda9
+ jp Function9809
+
+.asm_8bb2
+ ld de, Unkn2Pals
+ ld a, c
+ call Function9775
+ call Function9643
+ ret
+; 8bbd
+
+Function8bbd: ; 8bbd
+ ld a, [TrainerClass]
+ call Function976b
+ ld a, e
+ jr .asm_8bd7
+
+ ld a, [CurPartySpecies]
+ call Function97ee
+ ld a, e
+ bit 7, a
+ jr z, .asm_8bd7
+ and $7f
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+
+.asm_8bd7
+ push hl
+ ld hl, Unkn1Pals
+ ld de, $0008
+.asm_8bde
+ and a
+ jr z, .asm_8be5
+ add hl, de
+ dec a
+ jr .asm_8bde
+
+.asm_8be5
+ ld e, l
+ ld d, h
+ pop hl
+ call Function9643
+ ret
+; 8bec
+
+Function8bec: ; 8bec
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_8bf7
+ ld hl, PlayerLightScreenCount
+ jp Function9809
+
+.asm_8bf7
+ ld a, [EnemyLightScreenCount]
+ ld c, a
+ ld a, [EnemyReflectCount]
+ ld hl, AttrMap
+ ld de, $0014
+.asm_8c04
+ and a
+ jr z, .asm_8c0b
+ add hl, de
+ dec a
+ jr .asm_8c04
+
+.asm_8c0b
+ ld b, $0
+ add hl, bc
+ ld bc, $0604
+ ld a, [$c705]
+ and $3
+ call Function9663
+ call Function323d
+ ret
+; 8c1d
+
+Function8c1d: ; 8c1d
+ call CheckCGB
+ ret z
+ ld a, e
+ and a
+ jr z, .asm_8c2d
+ ld a, [CurPartySpecies]
+ call Function9775
+ jr .asm_8c33
+
+.asm_8c2d
+ ld a, [TrainerClass]
+ call Function976b
+
+.asm_8c33
+ ld de, Unkn1Pals
+ call Function9643
+ call Function9699
+ call Function96b3
+ call Function96a4
+ ret
+; 8c43
+
+Function8c43: ; 8c43
+ ld a, [$d10a]
+ and a
+ jr z, .asm_8c52
+ cp $1
+ jr z, .asm_8c57
+ cp $2
+ jr z, .asm_8c70
+ ret
+
+.asm_8c52
+ ld de, $d092
+ jr .asm_8c5a
+
+.asm_8c57
+ ld de, $d09a
+
+.asm_8c5a
+ ld l, c
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $68be
+ add hl, bc
+ ld bc, $0004
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+
+.asm_8c70
+ ld e, c
+ inc e
+ ld hl, $cdf8
+ ld bc, $0028
+ ld a, [CurPartyMon]
+.asm_8c7b
+ and a
+ jr z, .asm_8c82
+ add hl, bc
+ dec a
+ jr .asm_8c7b
+
+.asm_8c82
+ ld bc, $0208
+ ld a, e
+ call Function9663
+ ret
+; 8c8a
+
+Function8c8a: ; 8c8a
+ call CheckCGB
+ ret z
+ ld hl, $4f6a
+ ld b, $0
+ dec c
+ add hl, bc
+ add hl, bc
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [hli]
+ ld [Unkn1Pals], a
+ ld [$d010], a
+ ld a, [hl]
+ ld [$d001], a
+ ld [$d011], a
+ pop af
+ ld [rSVBK], a
+ call Function96a4
+ ld a, $1
+ ret
+; 8cb4
+
+Function8cb4: ; 8cb4
+ ld l, e
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, Data8d05
+ add hl, de
+ call CheckCGB
+ jr nz, .asm_8cf0
+ push hl
+ ld hl, $5ce6
+ ld de, $cda9
+ ld bc, $0010
+ call CopyBytes
+ pop hl
+ inc hl
+ inc hl
+ ld a, [hli]
+ ld [$cdac], a
+ ld a, [hli]
+ ld [$cdad], a
+ ld a, [hli]
+ ld [$cdae], a
+ ld a, [hli]
+ ld [$cdaf], a
+ ld hl, $cda9
+ call Function9809
+ ld hl, $5a86
+ call Function9809
+ ret
+
+.asm_8cf0
+ ld de, $d000
+ ld bc, $0008
+ ld a, $5
+ call FarCopyWRAM
+ call Function96a4
+ call Function9699
+ call Function96b3
+ ret
+; 8d05
+
+Data8d05: ; 8d05
+INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
+; 8d55
+
+INCLUDE "predef/cgb.asm"
+
+
+INCBIN "baserom.gbc", $95f0, $9610 - $95f0
+
+
+Function9610: ; 9610
+ ld de, $d000
+ ld c, $4
+.asm_9615
+ push bc
+ ld a, [hli]
+ push hl
+ call Function9625
+ call Function9630
+ pop hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_9615
+ ret
+; 9625
+
+Function9625: ; 9625
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, $5df6
+ add hl, bc
+ ret
+; 9630
+
+Function9630: ; 9630
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld c, $8
+.asm_9639
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_9639
+ pop af
+ ld [rSVBK], a
+ ret
+; 9643
+
+Function9643: ; 9643
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, $ff
+ ld [de], a
+ inc de
+ ld a, $7f
+ ld [de], a
+ inc de
+ ld c, $4
+.asm_9654
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_9654
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ pop af
+ ld [rSVBK], a
+ ret
+; 9663
+
+Function9663: ; 9663
+.asm_9663
+ push bc
+ push hl
+.asm_9665
+ ld [hli], a
+ dec c
+ jr nz, .asm_9665
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_9663
+ ret
+; 9673
+
+Function9673: ; 9673
+ push af
+ push bc
+ push de
+ push hl
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d000
+ ld c, $8
+.asm_9683
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ dec c
+ jr nz, .asm_9683
+ pop af
+ ld [rSVBK], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 9699
+
+
+Function9699: ; 9699
+ ld hl, AttrMap
+ ld bc, $0168
+ xor a
+ call ByteFill
+ ret
+; 96a4
+
+Function96a4: ; 96a4
+ ld hl, $d000
+ ld de, $d080
+ ld bc, $0080
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; 96b3
+
+Function96b3: ; 96b3
+ ld a, [rLCDC]
+ bit 7, a
+ jr z, .asm_96d0
+ ld a, [hBGMapMode]
+ push af
+ ld a, $2
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ pop af
+ ld [hBGMapMode], a
+ ret
+
+.asm_96d0
+ ld hl, AttrMap
+ ld de, VBGMap0
+ ld b, $12
+ ld a, $1
+ ld [rVBK], a
+.asm_96dc
+ ld c, $14
+.asm_96de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_96de
+ ld a, $c
+ add e
+ jr nc, .asm_96ea
+ inc d
+
+.asm_96ea
+ ld e, a
+ dec b
+ jr nz, .asm_96dc
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 96f3
+
+Function96f3: ; 96f3
+ ld hl, $cd9b
+ ld a, [$cda9]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [de]
+ inc a
+ ld e, a
+ ld hl, $ce0c
+ ld bc, $0028
+ ld a, [$cda9]
+.asm_970b
+ and a
+ jr z, .asm_9712
+ add hl, bc
+ dec a
+ jr .asm_970b
+
+.asm_9712
+ ld bc, $0208
+ ld a, e
+ call Function9663
+ ret
+; 971a
+
+
+Function971a: ; 971a
+ ld hl, $7681
+ ld de, MartPointer
+ ld bc, $0010
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; 9729
+
+Function9729: ; 9729
+ push de
+ callba Function3da85
+ ld c, l
+ ld b, h
+ ld a, [TempBattleMonSpecies]
+ call Function974b
+ pop de
+ ret
+; 973a
+
+Function973a: ; 973a
+ push de
+ callba Function3da97
+ ld c, l
+ ld b, h
+ ld a, [TempEnemyMonSpecies]
+ call Function9764
+ pop de
+ ret
+; 974b
+
+Function974b: ; 974b
+ and a
+ jp nz, Function97f9
+ ld a, [$d45b]
+ bit 2, a
+ jr nz, .asm_9760
+ ld a, [PlayerGender]
+ and a
+ jr z, .asm_9760
+ ld hl, FalknerPalette
+ ret
+
+.asm_9760
+ ld hl, $70ce
+ ret
+; 9764
+
+Function9764: ; 9764
+ and a
+ jp nz, Function97f9
+ ld a, [TrainerClass]
+
+Function976b: ; 976b
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, $70ce
+ add hl, bc
+ ret
+; 9775
+
+Function9775: ; 9775
+ call Function97ee
+ ret
+; 9779
+
+INCBIN "baserom.gbc", $9779, $97ee - $9779
+
+Function97ee: ; 97ee
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, $68ce
+ add hl, bc
+ ret
+; 97f9
+
+Function97f9: ; 97f9
+ push bc
+ call Function97ee
+ pop bc
+ push hl
+ call CheckShininess
+ pop hl
+ ret nc
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+ ret
+; 9809
+
+Function9809: ; 9809
+ ld a, [$cfbe]
+ push af
+ set 7, a
+ ld [$cfbe], a
+ call Function981a
+ pop af
+ ld [$cfbe], a
+ ret
+; 981a
+
+Function981a: ; 981a
+ ld a, [hl]
+ and $7
+ ret z
+ ld b, a
+.asm_981f
+ push bc
+ xor a
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ ld b, $10
+.asm_9829
+ ld e, $8
+ ld a, [hli]
+ ld d, a
+.asm_982d
+ bit 0, d
+ ld a, $10
+ jr nz, .asm_9835
+ ld a, $20
+
+.asm_9835
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ rr d
+ dec e
+ jr nz, .asm_982d
+ dec b
+ jr nz, .asm_9829
+ ld a, $20
+ ld [rJOYP], a
+ ld a, $30
+ ld [rJOYP], a
+ call Function9a7a
+ pop bc
+ dec b
+ jr nz, .asm_981f
+ ret
+; 9853
+
+Function9853: ; 9853
+ call CheckCGB
+ ret nz
+ di
+ ld a, [$cfbe]
+ push af
+ set 7, a
+ ld [$cfbe], a
+ xor a
+ ld [rJOYP], a
+ ld [hSGB], a
+ call Function994a
+ jr nc, .asm_988a
+ ld a, $1
+ ld [hSGB], a
+ call Function98eb
+ call Function99b4
+ call Function9a7a
+ call Function993f
+ call Function992c
+ call Function9a7a
+ call Function993f
+ ld hl, $5d66
+ call Function981a
+
+.asm_988a
+ pop af
+ ld [$cfbe], a
+ ei
+ ret
+; 9890
+
+
+Function9890: ; 9890
+ call CheckCGB
+ ret z
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld a, $80
+ ld [rBGPI], a
+ ld c, $20
+.asm_98ac
+ ld a, $ff
+ ld [rBGPD], a
+ ld a, $7f
+ ld [rBGPD], a
+ dec c
+ jr nz, .asm_98ac
+ ld a, $80
+ ld [rOBPI], a
+ ld c, $20
+.asm_98bd
+ ld a, $ff
+ ld [rOBPD], a
+ ld a, $7f
+ ld [rOBPD], a
+ dec c
+ jr nz, .asm_98bd
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $d000
+ call Function98df
+ ld hl, $d080
+ call Function98df
+ pop af
+ ld [rSVBK], a
+ ret
+; 98df
+
+Function98df: ; 98df
+ ld c, $40
+.asm_98e1
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ dec c
+ jr nz, .asm_98e1
+ ret
+; 98eb
+
+Function98eb: ; 98eb
+ ld hl, $58ff
+ ld c, $9
+.asm_98f0
+ push bc
+ ld a, [hli]
+ push hl
+ ld h, [hl]
+ ld l, a
+ call Function981a
+ pop hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .asm_98f0
+ ret
+; 98ff
+
+INCBIN "baserom.gbc", $98ff, $992c - $98ff
+
+Function992c: ; 992c
+ call Function9938
+ push de
+ call Function9a24
+ pop hl
+ call Function99d8
+ ret
+; 9938
+
+Function9938: ; 9938
+ ld hl, $651e
+ ld de, $606e
+ ret
+; 993f
+
+Function993f: ; 993f
+ ld hl, VTiles0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ret
+; 994a
+
+Function994a: ; 994a
+ ld hl, $5d26
+ call Function981a
+ call Function9a7a
+ ld a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .asm_99a6
+ ld a, $20
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, $30
+ ld [rJOYP], a
+ call Function9a7a
+ call Function9a7a
+ ld a, $10
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, $30
+ ld [rJOYP], a
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ ld a, [rJOYP]
+ call Function9a7a
+ call Function9a7a
+ ld a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .asm_99a6
+ call Function99ab
+ and a
+ ret
+
+.asm_99a6
+ call Function99ab
+ scf
+ ret
+; 99ab
+
+Function99ab: ; 99ab
+ ld hl, $5d16
+ call Function981a
+ jp Function9a7a
+; 99b4
+
+Function99b4: ; 99b4
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld hl, $5df6
+ ld de, VTiles1
+ ld bc, $1000
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d06
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 99d8
+
+Function99d8: ; 99d8
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld de, VTiles1
+ ld bc, $0140
+ call CopyData
+ ld b, $12
+.asm_99ea
+ push bc
+ ld bc, $000c
+ call CopyData
+ ld bc, $0028
+ call ClearBytes
+ ld bc, $000c
+ call CopyData
+ pop bc
+ dec b
+ jr nz, .asm_99ea
+ ld bc, $0140
+ call CopyData
+ ld bc, Start
+ call ClearBytes
+ ld bc, $0080
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d46
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 9a24
+
+Function9a24: ; 9a24
+ call DisableLCD
+ ld a, $e4
+ ld [rBGP], a
+ ld de, VTiles1
+ ld b, $80
+.asm_9a30
+ push bc
+ ld bc, $0010
+ call CopyData
+ ld bc, $0010
+ call ClearBytes
+ pop bc
+ dec b
+ jr nz, .asm_9a30
+ call DrawDefaultTiles
+ ld a, $e3
+ ld [rLCDC], a
+ ld hl, $5d36
+ call Function981a
+ xor a
+ ld [rBGP], a
+ ret
+; 9a52
+
+CopyData: ; 0x9a52
+; copy bc bytes of data from hl to de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, CopyData
+ ret
+; 0x9a5b
+
+ClearBytes: ; 0x9a5b
+; clear bc bytes of data starting from de
+ xor a
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, ClearBytes
+ ret
+; 0x9a64
+
+DrawDefaultTiles: ; 0x9a64
+; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
+ ld hl, VBGMap0 ; BG Map 0
+ ld de, 32 - 20
+ ld a, $80 ; starting tile
+ ld c, 12 + 1
+.line
+ ld b, 20
+.tile
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .tile
+; next line
+ add hl, de
+ dec c
+ jr nz, .line
+ ret
+; 0x9a7a
+
+Function9a7a: ; 9a7a
+ ld de, $1b58
+.asm_9a7d
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .asm_9a7d
+ ret
+; 9a86
+
+INCBIN "baserom.gbc", $9a86, $a51e - $9a86
+
+SGBBorder:
+INCBIN "gfx/misc/sgb_border.2bpp"
+
+INCBIN "baserom.gbc", $a8be, $a8d6 - $a8be
+
+PokemonPalettes:
+INCLUDE "gfx/pics/palette_pointers.asm"
+
+INCBIN "baserom.gbc", $b0ae, $b0d2 - $b0ae
+
+TrainerPalettes:
+INCLUDE "gfx/trainers/palette_pointers.asm"
+
+Functionb1de: ; b1de
+ callba Function494ac
+ jr c, .asm_b230
+ ld a, [$d19a]
+ and $7
+ ld e, a
+ ld d, $0
+ ld hl, $7279
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [TimeOfDayPal]
+ and $3
+ add a
+ add a
+ add a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Unkn1Pals
+ ld b, $8
+.asm_b210
+ ld a, [de]
+ push de
+ push hl
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, MornPal
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ ld c, $8
+.asm_b222
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_b222
+ pop de
+ inc de
+ dec b
+ jr nz, .asm_b210
+ pop af
+ ld [rSVBK], a
+
+.asm_b230
+ ld a, [TimeOfDayPal]
+ and $3
+ ld bc, $0040
+ ld hl, $7469
+ call AddNTimes
+ ld de, Unkn2Pals
+ ld bc, $0040
+ ld a, $5
+ call FarCopyWRAM
+ ld a, [$d19a]
+ cp $1
+ jr z, .asm_b253
+ cp $2
+ ret nz
+
+.asm_b253
+ ld a, [MapGroup]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, $7569
+ add hl, de
+ ld a, [TimeOfDayPal]
+ and $3
+ cp $2
+ jr c, .asm_b26d
+ inc hl
+ inc hl
+ inc hl
+ inc hl
+
+.asm_b26d
+ ld de, $d032
+ ld bc, $0004
+ ld a, $5
+ call FarCopyWRAM
+ ret
+; b279
+
+INCBIN "baserom.gbc", $b279, $b319 - $b279
+
+MornPal: ; 0xb319
+INCBIN "tilesets/morn.pal"
+; 0xb359
+
+DayPal: ; 0xb359
+INCBIN "tilesets/day.pal"
+; 0xb399
+
+NitePal: ; 0xb399
+INCBIN "tilesets/nite.pal"
+; 0xb3d9
+
+DarkPal: ; 0xb3d9
+INCBIN "tilesets/dark.pal"
+; 0xb419
+
+INCBIN "baserom.gbc", $b419, $b7a9 - $b419
+
+Paletteb7a9: ; b7a9
+ RGB 31, 31, 31
+ RGB 24, 25, 28
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 31, 00
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 15, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 21, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 11
+ RGB 31, 31, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 19, 29
+ RGB 25, 22, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 30, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 15, 21, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 24, 21
+ RGB 31, 13, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; b829
+
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 12fd14283..597f25693 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -3187,9 +3187,9 @@ Script_halloffame: ; 0x97bd5
ld hl, $cfbc
res 0, [hl]
- callba HallOfFame1
- callba HallOfFame2
- callba HallOfFame3
+ callba Mobile_HallOfFame
+ callba Mobile_HallOfFame2
+ callba HallOfFame
ld hl, $cfbc
set 0, [hl]
jr DisplayCredits
diff --git a/engine/title.asm b/engine/title.asm
new file mode 100644
index 000000000..3772b052f
--- /dev/null
+++ b/engine/title.asm
@@ -0,0 +1,475 @@
+_TitleScreen: ; 10ed67
+
+ call WhiteBGMap
+ call ClearSprites
+ call ClearTileMap
+
+; Turn BG Map update off
+ xor a
+ ld [hBGMapMode], a
+
+; Reset timing variables
+ ld hl, $cf63
+ ld [hli], a ; cf63 ; Scene?
+ ld [hli], a ; cf64
+ ld [hli], a ; cf65 ; Timer lo
+ ld [hl], a ; cf66 ; Timer hi
+
+; Turn LCD off
+ call DisableLCD
+
+
+; VRAM bank 1
+ ld a, 1
+ ld [rVBK], a
+
+
+; Decompress running Suicune gfx
+ ld hl, TitleSuicuneGFX
+ ld de, VTiles1
+ call Decompress
+
+
+; Clear screen palettes
+ ld hl, VBGMap0
+ ld bc, $0280
+ xor a
+ call ByteFill
+
+
+; Fill tile palettes:
+
+; BG Map 1:
+
+; line 0 (copyright)
+ ld hl, VBGMap1
+ ld bc, $0020 ; one row
+ ld a, 7 ; palette
+ call ByteFill
+
+
+; BG Map 0:
+
+; Apply logo gradient:
+
+; lines 3-4
+ ld hl, $9860 ; (0,3)
+ ld bc, $0040 ; 2 rows
+ ld a, 2
+ call ByteFill
+; line 5
+ ld hl, $98a0 ; (0,5)
+ ld bc, $0020 ; 1 row
+ ld a, 3
+ call ByteFill
+; line 6
+ ld hl, $98c0 ; (0,6)
+ ld bc, $0020 ; 1 row
+ ld a, 4
+ call ByteFill
+; line 7
+ ld hl, $98e0 ; (0,7)
+ ld bc, $0020 ; 1 row
+ ld a, 5
+ call ByteFill
+; lines 8-9
+ ld hl, $9900 ; (0,8)
+ ld bc, $0040 ; 2 rows
+ ld a, 6
+ call ByteFill
+
+
+; 'CRYSTAL VERSION'
+ ld hl, $9925 ; (5,9)
+ ld bc, $000b ; length of version text
+ ld a, 1
+ call ByteFill
+
+; Suicune gfx
+ ld hl, $9980 ; (0,12)
+ ld bc, $00c0 ; the rest of the screen
+ ld a, 8
+ call ByteFill
+
+
+; Back to VRAM bank 0
+ ld a, $0
+ ld [rVBK], a
+
+
+; Decompress logo
+ ld hl, TitleLogoGFX
+ ld de, VTiles1
+ call Decompress
+
+; Decompress background crystal
+ ld hl, TitleCrystalGFX
+ ld de, VTiles0
+ call Decompress
+
+
+; Clear screen tiles
+ ld hl, VBGMap0
+ ld bc, $0800
+ ld a, $7f
+ call ByteFill
+
+; Draw Pokemon logo
+ ld hl, $c4dc ; TileMap(0,3)
+ ld bc, $0714 ; 20x7
+ ld d, $80
+ ld e, $14
+ call DrawGraphic
+
+; Draw copyright text
+ ld hl, $9c03 ; BGMap1(3,0)
+ ld bc, $010d ; 13x1
+ ld d, $c
+ ld e, $10
+ call DrawGraphic
+
+; Initialize running Suicune?
+ ld d, $0
+ call Function10eed2
+
+; Initialize background crystal
+ call Function10ef06
+
+; Save WRAM bank
+ ld a, [rSVBK]
+ push af
+; WRAM bank 5
+ ld a, 5
+ ld [rSVBK], a
+
+; Update palette colors
+ ld hl, TitleScreenPalettes
+ ld de, $d000
+ ld bc, $0080
+ call CopyBytes
+
+ ld hl, TitleScreenPalettes
+ ld de, $d080
+ ld bc, $0080
+ call CopyBytes
+
+; Restore WRAM bank
+ pop af
+ ld [rSVBK], a
+
+
+; LY/SCX trickery starts here
+
+ ld a, [rSVBK]
+ push af
+ ld a, 5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+
+; Make alternating lines come in from opposite sides
+
+; ( This part is actually totally pointless, you can't
+; see anything until these values are overwritten! )
+
+ ld b, 80 / 2 ; alternate for 80 lines
+ ld hl, LYOverrides
+.loop
+; $00 is the middle position
+ ld [hl], +112 ; coming from the left
+ inc hl
+ ld [hl], -112 ; coming from the right
+ inc hl
+ dec b
+ jr nz, .loop
+
+; Make sure the rest of the buffer is empty
+ ld hl, LYOverrides + 80
+ xor a
+ ld bc, LYOverridesEnd - (LYOverrides + 80)
+ call ByteFill
+
+; Let LCD Stat know we're messing around with SCX
+ ld a, rSCX - rJOYP
+ ld [hLCDStatCustom], a
+
+ pop af
+ ld [rSVBK], a
+
+
+; Reset audio
+ call ChannelsOff
+ call EnableLCD
+
+; Set sprite size to 8x16
+ ld a, [rLCDC]
+ set 2, a
+ ld [rLCDC], a
+
+ ld a, +112
+ ld [hSCX], a
+ ld a, 8
+ ld [hSCY], a
+ ld a, 7
+ ld [hWX], a
+ ld a, -112
+ ld [hWY], a
+
+ ld a, $1
+ ld [hCGBPalUpdate], a
+
+; Update BG Map 0 (bank 0)
+ ld [hBGMapMode], a
+
+ xor a
+ ld [DefaultFlypoint], a
+
+; Play starting sound effect
+ call SFXChannelsOff
+ ld de, SFX_TITLE_SCREEN_ENTRANCE
+ call StartSFX
+
+ ret
+; 10eea7
+
+Function10eea7: ; 10eea7
+ ld hl, DefaultFlypoint
+ ld a, [hl]
+ ld c, a
+ inc [hl]
+ and $7
+ ret nz
+ ld a, c
+ and $18
+ sla a
+ swap a
+ ld e, a
+ ld d, $0
+ ld hl, $6ece
+ add hl, de
+ ld d, [hl]
+ xor a
+ ld [hBGMapMode], a
+ call Function10eed2
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $3
+ ld [hBGMapThird], a
+ ret
+; 10eece
+
+INCBIN "baserom.gbc", $10eece, $10eed2 - $10eece
+
+
+Function10eed2: ; 10eed2
+ ld hl, $c596
+ ld b, $6
+.asm_10eed7
+ ld c, $8
+.asm_10eed9
+ ld a, d
+ ld [hli], a
+ inc d
+ dec c
+ jr nz, .asm_10eed9
+ ld a, $c
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, $8
+ add d
+ ld d, a
+ dec b
+ jr nz, .asm_10eed7
+ ret
+; 10eeef
+
+Function10eeef: ; 10eeef
+.asm_10eeef
+ push de
+ push bc
+ push hl
+.asm_10eef2
+ ld a, d
+ ld [hli], a
+ inc d
+ dec c
+ jr nz, .asm_10eef2
+ pop hl
+ ld bc, $0014
+ add hl, bc
+ pop bc
+ pop de
+ ld a, e
+ add d
+ ld d, a
+ dec b
+ jr nz, .asm_10eeef
+ ret
+; 10ef06
+
+Function10ef06: ; 10ef06
+ ld hl, Sprites
+ ld d, $de
+ ld e, $0
+ ld c, $5
+.asm_10ef0f
+ push bc
+ call Function10ef1c
+ pop bc
+ ld a, $10
+ add d
+ ld d, a
+ dec c
+ jr nz, .asm_10ef0f
+ ret
+; 10ef1c
+
+Function10ef1c: ; 10ef1c
+ ld c, $6
+ ld b, $40
+.asm_10ef20
+ ld a, d
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ add $8
+ ld b, a
+ ld a, e
+ ld [hli], a
+ inc e
+ inc e
+ ld a, $80
+ ld [hli], a
+ dec c
+ jr nz, .asm_10ef20
+ ret
+; 10ef32
+
+
+AnimateTitleCrystal: ; 10ef32
+; Move the title screen crystal downward until it's fully visible
+
+; Stop at y=6
+; y is really from the bottom of the sprite, which is two tiles high
+ ld hl, Sprites
+ ld a, [hl]
+ cp 6 + 16
+ ret z
+
+; Move all 30 parts of the crystal down by 2
+ ld c, 30
+.loop
+ ld a, [hl]
+ add 2
+ ld [hli], a
+ inc hl
+ inc hl
+ inc hl
+ dec c
+ jr nz, .loop
+
+ ret
+; 10ef46
+
+TitleSuicuneGFX: ; 10ef46
+INCBIN "gfx/title/suicune.lz"
+; 10f31b
+
+INCBIN "baserom.gbc", $10f31b, $10f326 - $10f31b
+
+TitleLogoGFX: ; 10f326
+INCBIN "gfx/title/logo.lz"
+; 10fced
+
+INCBIN "baserom.gbc", $10fced, $10fcee - $10fced
+
+TitleCrystalGFX: ; 10fcee
+INCBIN "gfx/title/crystal.lz"
+; 10fed7
+
+INCBIN "baserom.gbc", $10fed7, $10fede - $10fed7
+
+TitleScreenPalettes:
+; BG
+ RGB 00, 00, 00
+ RGB 19, 00, 00
+ RGB 15, 08, 31
+ RGB 15, 08, 31
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 15, 16, 31
+ RGB 31, 01, 13
+
+ RGB 00, 00, 00
+ RGB 07, 07, 07
+ RGB 31, 31, 31
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 13, 13, 13
+ RGB 31, 31, 18
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 19, 19, 19
+ RGB 29, 28, 12
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 25, 25, 25
+ RGB 28, 25, 06
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 26, 21, 00
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 11, 11, 19
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+; OBJ
+ RGB 00, 00, 00
+ RGB 10, 00, 15
+ RGB 17, 05, 22
+ RGB 19, 09, 31
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
diff --git a/event/dratini.asm b/event/dratini.asm
new file mode 100644
index 000000000..bf8ae2d57
--- /dev/null
+++ b/event/dratini.asm
@@ -0,0 +1,112 @@
+SpecialDratini: ; 0x8b170
+; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
+; 0: give it a special moveset with Extremespeed.
+; 1: give it the normal moveset of a level 15 Dratini.
+
+ ld a, [ScriptVar]
+ cp $2
+ ret nc
+ ld bc, PartyCount
+ ld a, [bc]
+ ld hl, 0
+ call GetNthPartyMon
+ ld a, [bc]
+ ld c, a
+ ld de, PartyMon2 - PartyMon1
+.CheckForDratini
+; start at the end of the party and search backwards for a Dratini
+ ld a, [hl]
+ cp DRATINI
+ jr z, .GiveMoveset
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ dec c
+ jr nz, .CheckForDratini
+ ret
+
+.GiveMoveset
+ push hl
+ ld a, [ScriptVar]
+ ld hl, .Movesets
+ ld bc, .Moveset1 - .Moveset0
+ call AddNTimes
+
+ ; get address of mon's first move
+ pop de
+ inc de
+ inc de
+
+.GiveMoves
+ ld a, [hl]
+ and a ; is the move 00?
+ ret z ; if so, we're done here
+
+ push hl
+ push de
+ ld [de], a ; give the Pokémon the new move
+
+ ; get the PP of the new move
+ dec a
+ ld hl, Moves + PlayerMovePP - PlayerMoveStruct
+ ld bc, Move2 - Move1
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+
+ ; get the address of the move's PP and update the PP
+ ld hl, PartyMon1PP - PartyMon1Moves
+ add hl, de
+ ld [hl], a
+
+ pop de
+ pop hl
+ inc de
+ inc hl
+ jr .GiveMoves
+
+.Movesets
+.Moveset0
+; Dratini does not normally learn Extremespeed. This is a special gift.
+ db WRAP
+ db THUNDER_WAVE
+ db TWISTER
+ db EXTREMESPEED
+ db 0
+.Moveset1
+; This is the normal moveset of a level 15 Dratini
+ db WRAP
+ db LEER
+ db THUNDER_WAVE
+ db TWISTER
+ db 0
+
+GetNthPartyMon: ; 0x8b1ce
+; inputs:
+; hl must be set to 0 before calling this function.
+; a must be set to the number of Pokémon in the party.
+
+; outputs:
+; returns the address of the last Pokémon in the party in hl.
+; sets carry if a is 0.
+
+ ld de, PartyMon1
+ add hl, de
+ and a
+ jr z, .EmptyParty
+ dec a
+ ret z
+ ld de, PartyMon2 - PartyMon1
+.loop
+ add hl, de
+ dec a
+ jr nz, .loop
+ ret
+.EmptyParty
+ scf
+ ret
+; 8b1e1
+
diff --git a/gfx/fx/000.lz b/gfx/fx/000.lz
index 55aac9909..5d9ffbe5d 100644
--- a/gfx/fx/000.lz
+++ b/gfx/fx/000.lz
Binary files differ
diff --git a/gfx/fx/001.lz b/gfx/fx/001.lz
index 55aac9909..5d9ffbe5d 100644
--- a/gfx/fx/001.lz
+++ b/gfx/fx/001.lz
Binary files differ
diff --git a/gfx/fx/002.lz b/gfx/fx/002.lz
index 228008426..740a48799 100644
--- a/gfx/fx/002.lz
+++ b/gfx/fx/002.lz
Binary files differ
diff --git a/gfx/fx/003.lz b/gfx/fx/003.lz
index 85fedf741..e15e9f9bb 100644
--- a/gfx/fx/003.lz
+++ b/gfx/fx/003.lz
Binary files differ
diff --git a/gfx/fx/004.lz b/gfx/fx/004.lz
index be5245a3c..6a81bbb65 100644
--- a/gfx/fx/004.lz
+++ b/gfx/fx/004.lz
Binary files differ
diff --git a/gfx/fx/005.lz b/gfx/fx/005.lz
index 77843898b..81de5850f 100644
--- a/gfx/fx/005.lz
+++ b/gfx/fx/005.lz
Binary files differ
diff --git a/gfx/fx/006.lz b/gfx/fx/006.lz
index 8712f70d6..589fc48b6 100644
--- a/gfx/fx/006.lz
+++ b/gfx/fx/006.lz
Binary files differ
diff --git a/gfx/fx/007.lz b/gfx/fx/007.lz
index ca84efefd..bf26fed2b 100644
--- a/gfx/fx/007.lz
+++ b/gfx/fx/007.lz
Binary files differ
diff --git a/gfx/fx/008.lz b/gfx/fx/008.lz
index 20a184595..4303302a1 100644
--- a/gfx/fx/008.lz
+++ b/gfx/fx/008.lz
Binary files differ
diff --git a/gfx/fx/009.lz b/gfx/fx/009.lz
index e32b7f6d9..d5481ea6e 100644
--- a/gfx/fx/009.lz
+++ b/gfx/fx/009.lz
Binary files differ
diff --git a/gfx/fx/010.lz b/gfx/fx/010.lz
index bd76b904f..3d059700b 100644
--- a/gfx/fx/010.lz
+++ b/gfx/fx/010.lz
Binary files differ
diff --git a/gfx/fx/011.lz b/gfx/fx/011.lz
index 7964d7256..e09b082db 100644
--- a/gfx/fx/011.lz
+++ b/gfx/fx/011.lz
Binary files differ
diff --git a/gfx/fx/012.lz b/gfx/fx/012.lz
index 04f8d695c..df2cbe604 100644
--- a/gfx/fx/012.lz
+++ b/gfx/fx/012.lz
Binary files differ
diff --git a/gfx/fx/013.lz b/gfx/fx/013.lz
index b8b8c1c0b..3d546191a 100644
--- a/gfx/fx/013.lz
+++ b/gfx/fx/013.lz
Binary files differ
diff --git a/gfx/fx/014.lz b/gfx/fx/014.lz
index 877c1ffd6..e195da453 100644
--- a/gfx/fx/014.lz
+++ b/gfx/fx/014.lz
Binary files differ
diff --git a/gfx/fx/015.lz b/gfx/fx/015.lz
index 50deefe19..375d0bf9c 100644
--- a/gfx/fx/015.lz
+++ b/gfx/fx/015.lz
Binary files differ
diff --git a/gfx/fx/016.lz b/gfx/fx/016.lz
index a04b7f0e5..1ce9ab82c 100644
--- a/gfx/fx/016.lz
+++ b/gfx/fx/016.lz
Binary files differ
diff --git a/gfx/fx/017.lz b/gfx/fx/017.lz
index d1771567d..5d09f9a6a 100644
--- a/gfx/fx/017.lz
+++ b/gfx/fx/017.lz
Binary files differ
diff --git a/gfx/fx/018.lz b/gfx/fx/018.lz
index 65cf5d34d..32c82243c 100644
--- a/gfx/fx/018.lz
+++ b/gfx/fx/018.lz
Binary files differ
diff --git a/gfx/fx/019.lz b/gfx/fx/019.lz
index 28d733cac..9c2769b83 100644
--- a/gfx/fx/019.lz
+++ b/gfx/fx/019.lz
Binary files differ
diff --git a/gfx/fx/020.lz b/gfx/fx/020.lz
index 6093cbeb5..da62ba918 100644
--- a/gfx/fx/020.lz
+++ b/gfx/fx/020.lz
Binary files differ
diff --git a/gfx/fx/021.lz b/gfx/fx/021.lz
index 5bb06c6f5..fb55f2edc 100644
--- a/gfx/fx/021.lz
+++ b/gfx/fx/021.lz
Binary files differ
diff --git a/gfx/fx/022.lz b/gfx/fx/022.lz
index c54453263..f7d6a480f 100644
--- a/gfx/fx/022.lz
+++ b/gfx/fx/022.lz
Binary files differ
diff --git a/gfx/fx/023.lz b/gfx/fx/023.lz
index 6ce94f0e2..d6402dd3d 100644
--- a/gfx/fx/023.lz
+++ b/gfx/fx/023.lz
Binary files differ
diff --git a/gfx/fx/024.lz b/gfx/fx/024.lz
index 890303edb..a563de1a8 100644
--- a/gfx/fx/024.lz
+++ b/gfx/fx/024.lz
Binary files differ
diff --git a/gfx/fx/025.lz b/gfx/fx/025.lz
index 0274acb7a..e5ce7df8a 100644
--- a/gfx/fx/025.lz
+++ b/gfx/fx/025.lz
Binary files differ
diff --git a/gfx/fx/026.lz b/gfx/fx/026.lz
index 8052d1717..3508a1f58 100644
--- a/gfx/fx/026.lz
+++ b/gfx/fx/026.lz
Binary files differ
diff --git a/gfx/fx/027.lz b/gfx/fx/027.lz
index 67fe88b78..84b4018e5 100644
--- a/gfx/fx/027.lz
+++ b/gfx/fx/027.lz
Binary files differ
diff --git a/gfx/fx/028.lz b/gfx/fx/028.lz
index 006ada64a..e0cdc644c 100644
--- a/gfx/fx/028.lz
+++ b/gfx/fx/028.lz
Binary files differ
diff --git a/gfx/fx/029.lz b/gfx/fx/029.lz
index 88dc33c3c..a92f74796 100644
--- a/gfx/fx/029.lz
+++ b/gfx/fx/029.lz
Binary files differ
diff --git a/gfx/fx/030.lz b/gfx/fx/030.lz
index 0494eef74..ef628afb4 100644
--- a/gfx/fx/030.lz
+++ b/gfx/fx/030.lz
Binary files differ
diff --git a/gfx/fx/031.lz b/gfx/fx/031.lz
index 88752e23f..d0c5f0dfc 100644
--- a/gfx/fx/031.lz
+++ b/gfx/fx/031.lz
Binary files differ
diff --git a/gfx/fx/032.lz b/gfx/fx/032.lz
index d11ceb277..e0412dd81 100644
--- a/gfx/fx/032.lz
+++ b/gfx/fx/032.lz
Binary files differ
diff --git a/gfx/fx/033.lz b/gfx/fx/033.lz
index a0cc350f7..99fa15c6f 100644
--- a/gfx/fx/033.lz
+++ b/gfx/fx/033.lz
Binary files differ
diff --git a/gfx/fx/034.lz b/gfx/fx/034.lz
index 58b30a0e1..d7d48020f 100644
--- a/gfx/fx/034.lz
+++ b/gfx/fx/034.lz
Binary files differ
diff --git a/gfx/fx/035.lz b/gfx/fx/035.lz
index 9b1adb23d..1a52d6350 100644
--- a/gfx/fx/035.lz
+++ b/gfx/fx/035.lz
Binary files differ
diff --git a/gfx/fx/036.lz b/gfx/fx/036.lz
index 66eb67572..3e47170b1 100644
--- a/gfx/fx/036.lz
+++ b/gfx/fx/036.lz
Binary files differ
diff --git a/gfx/fx/037.lz b/gfx/fx/037.lz
index 3d2da8e1f..61d89d224 100644
--- a/gfx/fx/037.lz
+++ b/gfx/fx/037.lz
Binary files differ
diff --git a/gfx/fx/038.lz b/gfx/fx/038.lz
index ef37872c6..d94a5cb35 100644
--- a/gfx/fx/038.lz
+++ b/gfx/fx/038.lz
Binary files differ
diff --git a/gfx/fx/039.lz b/gfx/fx/039.lz
index b1c4c6a1c..5e203cb63 100644
--- a/gfx/fx/039.lz
+++ b/gfx/fx/039.lz
Binary files differ
diff --git a/home/pokedex_flags.asm b/home/pokedex_flags.asm
new file mode 100644
index 000000000..bcd0f2afa
--- /dev/null
+++ b/home/pokedex_flags.asm
@@ -0,0 +1,40 @@
+SetSeenAndCaughtMon: ; 3380
+ push af
+ ld c, a
+ ld hl, PokedexCaught
+ ld b, SET_FLAG
+ call PokedexFlagAction
+ pop af
+ ; fallthrough
+; 338b
+
+SetSeenMon: ; 338b
+ ld c, a
+ ld hl, PokedexSeen
+ ld b, SET_FLAG
+ jr PokedexFlagAction
+; 3393
+
+CheckCaughtMon: ; 3393
+ ld c, a
+ ld hl, PokedexCaught
+ ld b, CHECK_FLAG
+ jr PokedexFlagAction
+; 339b
+
+CheckSeenMon: ; 339b
+ ld c, a
+ ld hl, PokedexSeen
+ ld b, CHECK_FLAG
+ ; fallthrough
+; 33a1
+
+PokedexFlagAction: ; 33a1
+ ld d, 0
+ ld a, PREDEF_FLAG
+ call Predef
+ ld a, c
+ and a
+ ret
+; 33ab
+
diff --git a/home/window.asm b/home/window.asm
new file mode 100644
index 000000000..b5b08e147
--- /dev/null
+++ b/home/window.asm
@@ -0,0 +1,96 @@
+ResetWindow: ; 2dba
+
+ call Function1fbf
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function6454) ; and BANK(Function64bf)
+ rst Bankswitch
+
+ call Function6454
+ call Function2e20
+ call Function64bf
+
+ pop af
+ rst Bankswitch
+ ret
+; 2dcf
+
+
+Function2dcf: ; 2dcf
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function2de2
+ pop af
+ ld [hOAMUpdate], a
+ ld hl, VramState
+ res 6, [hl]
+ ret
+; 2de2
+
+Function2de2: ; 2de2
+ call Function1fbf
+ xor a
+ ld [hBGMapMode], a
+ call Function2173
+ call Function2e20
+ xor a
+ ld [hBGMapMode], a
+ call Function2e31
+ ld a, $90
+ ld [hWY], a
+ call Functione4a
+ callba Functionb8000
+ callba Function106594
+ ret
+; 2e08
+
+Function2e08: ; 2e08
+ call Function1fbf
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(Function6454) ; and BANK(Function64bf)
+ rst Bankswitch
+
+ call Function6454
+ call SpeechTextBox
+ call Function2e20
+ call Function64bf
+ pop af
+ rst Bankswitch
+
+ ret
+; 2e20
+
+Function2e20: ; 2e20
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ callba Function104110
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 2e31
+
+Function2e31: ; 2e31
+ ld a, [hOAMUpdate]
+ push af
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [hOAMUpdate], a
+ call Function1ad2
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ pop af
+ ld [hBGMapMode], a
+ pop af
+ ld [hOAMUpdate], a
+ ret
+; 2e4e
+
diff --git a/lib/mobile/main.asm b/lib/mobile/main.asm
new file mode 100644
index 000000000..584f5bd37
--- /dev/null
+++ b/lib/mobile/main.asm
@@ -0,0 +1,17 @@
+; A library included as part of the Mobile Adapter GB SDK.
+
+INCBIN "baserom.gbc", $110000, $110fad - $110000
+
+URIPrefix: ; 0x110fad
+ ascii "http://"
+HTTPDownloadURL: ; 0x110fb4
+ ascii "gameboy.datacenter.ne.jp/cgb/download"
+HTTPUploadURL: ; 0x110fd9
+ ascii "gameboy.datacenter.ne.jp/cgb/upload"
+HTTPUtilityURL: ; 0x110ffc
+ ascii "gameboy.datacenter.ne.jp/cgb/utility"
+HTTPRankingURL: ; 0x111020
+ ascii "gameboy.datacenter.ne.jp/cgb/ranking"
+
+INCBIN "baserom.gbc", $111044, $113f84 - $111044
+
diff --git a/main.asm b/main.asm
index 3961dcba0..bfda61d2e 100644
--- a/main.asm
+++ b/main.asm
@@ -504,110 +504,9 @@ Function2d43: ; 2d43
INCLUDE "home/farcall.asm"
INCLUDE "home/predef.asm"
+INCLUDE "home/window.asm"
-ResetWindow: ; 2dba
-
- call Function1fbf
- ld a, [hROMBank]
- push af
- ld a, $1
- rst Bankswitch
-
- call $6454
- call Function2e20
- call $64bf
-
- pop af
- rst Bankswitch
- ret
-; 2dcf
-
-
-Function2dcf: ; 2dcf
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call Function2de2
- pop af
- ld [hOAMUpdate], a
- ld hl, VramState
- res 6, [hl]
- ret
-; 2de2
-
-Function2de2: ; 2de2
- call Function1fbf
- xor a
- ld [hBGMapMode], a
- call Function2173
- call Function2e20
- xor a
- ld [hBGMapMode], a
- call Function2e31
- ld a, $90
- ld [hWY], a
- call Functione4a
- ld a, $2e
- ld hl, $4000
- rst FarCall
- ld a, $41
- ld hl, $6594
- rst FarCall
- ret
-; 2e08
-
-Function2e08: ; 2e08
- call Function1fbf
- ld a, [hROMBank]
- push af
- ld a, $1
- rst Bankswitch
-
- call $6454
- call SpeechTextBox
- call Function2e20
- call $64bf
- pop af
- rst Bankswitch
-
- ret
-; 2e20
-
-Function2e20: ; 2e20
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- ld a, $41
- ld hl, $4110
- rst FarCall
- pop af
- ld [hOAMUpdate], a
- ret
-; 2e31
-
-Function2e31: ; 2e31
- ld a, [hOAMUpdate]
- push af
- ld a, [hBGMapMode]
- push af
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [hOAMUpdate], a
- call Function1ad2
- xor a
- ld [hOAMUpdate], a
- call DelayFrame
- pop af
- ld [hBGMapMode], a
- pop af
- ld [hOAMUpdate], a
- ret
-; 2e4e
-
Function2e4e: ; 2e4e
scf
ret
@@ -815,27 +714,29 @@ CopyName2: ; 30d9
; 30e1
IsInArray: ; 30e1
-; searches an array at hl for the value in a.
-; skips (de - 1) bytes between reads, so to check every byte, de should be 1.
-; if found, returns count in b and sets carry.
- ld b,0
- ld c,a
+; 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 a, $FF
- jr z,.NotInArray
+ ld a, [hl]
+ cp $ff
+ jr z, .NotInArray
cp c
- jr z,.InArray
+ jr z, .InArray
inc b
- add hl,de
+ add hl, de
jr .loop
+
.NotInArray
and a
ret
+
.InArray
scf
ret
-; 0x30f4
+; 30f4
SkipNames: ; 0x30f4
; skips n names where n = a
@@ -1380,45 +1281,7 @@ GetWeekday: ; 3376
; 3380
-SetSeenAndCaughtMon: ; 3380
- push af
- ld c, a
- ld hl, PokedexCaught
- ld b, SET_FLAG
- call PokedexFlagAction
- pop af
- ; fallthrough
-; 338b
-
-SetSeenMon: ; 338b
- ld c, a
- ld hl, PokedexSeen
- ld b, SET_FLAG
- jr PokedexFlagAction
-; 3393
-
-CheckCaughtMon: ; 3393
- ld c, a
- ld hl, PokedexCaught
- ld b, CHECK_FLAG
- jr PokedexFlagAction
-; 339b
-
-CheckSeenMon: ; 339b
- ld c, a
- ld hl, PokedexSeen
- ld b, CHECK_FLAG
- ; fallthrough
-; 33a1
-
-PokedexFlagAction: ; 33a1
- ld d, 0
- ld a, PREDEF_FLAG
- call Predef
- ld a, c
- and a
- ret
-; 33ab
+INCLUDE "home/pokedex_flags.asm"
NamesPointerTable: ; 33ab
@@ -11086,7 +10949,7 @@ Function8029: ; 8029
ld [$d4cd], a
ld [$d4ce], a
ld a, $0
- ld hl, $4071
+ ld hl, Data8071
call Function19a6
ld b, $0
call Function808f
@@ -11117,8 +10980,9 @@ Function8029: ; 8029
ret
; 8071
+Data8071: ; 8071
INCBIN "baserom.gbc", $8071, $807e - $8071
-
+; 807e
Function807e: ; 807e
push de
@@ -12063,1109 +11927,32 @@ PredefPointers: ; 856b
; 864c
-INCLUDE "predef/sgb.asm"
-
-
-CheckShininess: ; 8a68
-; Check if a mon is shiny by DVs at bc.
-; Return carry if shiny.
-
- ld l, c
- ld h, b
-
-; Attack
- ld a, [hl]
- and %0010 << 4
- jr z, .NotShiny
-
-; Defense
- ld a, [hli]
- and %1111
- cp %1010
- jr nz, .NotShiny
-
-; Speed
- ld a, [hl]
- and %1111 << 4
- cp %1010 << 4
- jr nz, .NotShiny
-
-; Special
- ld a, [hl]
- and %1111
- cp %1010
- jr nz, .NotShiny
-
-.Shiny
- scf
- ret
-
-.NotShiny
- and a
- ret
-; 8a88
-
-
-CheckContestMon: ; 8a88
-; Check a mon's DVs at hl in the bug catching contest.
-; Return carry if its DVs are good enough to place in the contest.
-
-; Attack
- ld a, [hl]
- cp 10 << 4
- jr c, .Bad
-
-; Defense
- ld a, [hli]
- and $f
- cp 10
- jr c, .Bad
-
-; Speed
- ld a, [hl]
- cp 10 << 4
- jr c, .Bad
-
-; Special
- ld a, [hl]
- and $f
- cp 10
- jr c, .Bad
-
-.Good
- scf
- ret
-
-.Bad
- and a
- ret
-; 8aa4
-
-
-Function8aa4: ; 8aa4
- push de
- push bc
- ld hl, $5ce6
- ld de, $cda9
- ld bc, $0010
- call CopyBytes
- pop bc
- pop de
- ld a, c
- ld [$cdac], a
- ld a, b
- ld [$cdad], a
- ld a, e
- ld [$cdae], a
- ld a, d
- ld [$cdaf], a
- ld hl, $cda9
- call Function9809
- ld hl, $5a86
- call Function9809
- ret
-; 8ad1
-
-
-Function8ad1: ; 8ad1
- ld hl, $5c57
- call Function9610
- call Function971a
- call Function9699
- ret
-; 8ade
-
-Function8ade: ; 8ade
- ld hl, $cd9b
- ld a, [$cda9]
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld a, [de]
- and a
- ld e, $5
- jr z, .asm_8af7
- dec a
- ld e, $a
- jr z, .asm_8af7
- ld e, $f
-
-.asm_8af7
- push de
- ld hl, $cdb3
- ld bc, $0006
- ld a, [$cda9]
- call AddNTimes
- pop de
- ld [hl], e
- ret
-; 8b07
-
-Function8b07: ; 8b07
- call CheckCGB
- ret z
- ld hl, $4b2f
- ld de, $d000
- ld bc, $0008
- ld a, $5
- call FarCopyWRAM
- ld hl, $4b37
- ld de, MartPointer
- ld bc, $0008
- ld a, $5
- call FarCopyWRAM
- call Function96a4
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8b2f
-
-INCBIN "baserom.gbc", $8b2f, $8c43 - $8b2f
-
-Function8c43: ; 8c43
- ld a, [$d10a]
- and a
- jr z, .asm_8c52
- cp $1
- jr z, .asm_8c57
- cp $2
- jr z, .asm_8c70
- ret
-
-.asm_8c52
- ld de, $d092
- jr .asm_8c5a
-
-.asm_8c57
- ld de, $d09a
-
-.asm_8c5a
- ld l, c
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, $68be
- add hl, bc
- ld bc, $0004
- ld a, $5
- call FarCopyWRAM
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-
-.asm_8c70
- ld e, c
- inc e
- ld hl, $cdf8
- ld bc, $0028
- ld a, [CurPartyMon]
-.asm_8c7b
- and a
- jr z, .asm_8c82
- add hl, bc
- dec a
- jr .asm_8c7b
-
-.asm_8c82
- ld bc, $0208
- ld a, e
- call Function9663
- ret
-; 8c8a
-
-INCBIN "baserom.gbc", $8c8a, $8cb4 - $8c8a
-
-Function8cb4: ; 8cb4
- ld l, e
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, $4d05
- add hl, de
- call CheckCGB
- jr nz, .asm_8cf0
- push hl
- ld hl, $5ce6
- ld de, $cda9
- ld bc, $0010
- call CopyBytes
- pop hl
- inc hl
- inc hl
- ld a, [hli]
- ld [$cdac], a
- ld a, [hli]
- ld [$cdad], a
- ld a, [hli]
- ld [$cdae], a
- ld a, [hli]
- ld [$cdaf], a
- ld hl, $cda9
- call Function9809
- ld hl, $5a86
- call Function9809
- ret
-
-.asm_8cf0
- ld de, $d000
- ld bc, $0008
- ld a, $5
- call FarCopyWRAM
- call Function96a4
- call Function9699
- call Function96b3
- ret
-; 8d05
-
-INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
-
-
-INCLUDE "predef/cgb.asm"
-
-
-INCBIN "baserom.gbc", $95e0, $9610 - $95e0
-
-
-Function9610: ; 9610
- ld de, $d000
- ld c, $4
-.asm_9615
- push bc
- ld a, [hli]
- push hl
- call Function9625
- call Function9630
- pop hl
- inc hl
- pop bc
- dec c
- jr nz, .asm_9615
- ret
-; 9625
-
-Function9625: ; 9625
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld bc, $5df6
- add hl, bc
- ret
-; 9630
-
-Function9630: ; 9630
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld c, $8
-.asm_9639
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_9639
- pop af
- ld [rSVBK], a
- ret
-; 9643
-
-Function9643: ; 9643
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, $ff
- ld [de], a
- inc de
- ld a, $7f
- ld [de], a
- inc de
- ld c, $4
-.asm_9654
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_9654
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
- pop af
- ld [rSVBK], a
- ret
-; 9663
-
-Function9663: ; 9663
-.asm_9663
- push bc
- push hl
-.asm_9665
- ld [hli], a
- dec c
- jr nz, .asm_9665
- pop hl
- ld bc, $0014
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_9663
- ret
-; 9673
-
-Function9673: ; 9673
- push af
- push bc
- push de
- push hl
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d000
- ld c, $8
-.asm_9683
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- dec c
- jr nz, .asm_9683
- pop af
- ld [rSVBK], a
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 9699
-
-
-Function9699: ; 9699
- ld hl, AttrMap
- ld bc, $0168
- xor a
- call ByteFill
- ret
-; 96a4
-
-Function96a4: ; 96a4
- ld hl, $d000
- ld de, $d080
- ld bc, $0080
- ld a, $5
- call FarCopyWRAM
- ret
-; 96b3
-
-Function96b3: ; 96b3
- ld a, [rLCDC]
- bit 7, a
- jr z, .asm_96d0
- ld a, [hBGMapMode]
- push af
- ld a, $2
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- call DelayFrame
- pop af
- ld [hBGMapMode], a
- ret
-
-.asm_96d0
- ld hl, AttrMap
- ld de, VBGMap0
- ld b, $12
- ld a, $1
- ld [rVBK], a
-.asm_96dc
- ld c, $14
-.asm_96de
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_96de
- ld a, $c
- add e
- jr nc, .asm_96ea
- inc d
-
-.asm_96ea
- ld e, a
- dec b
- jr nz, .asm_96dc
- ld a, $0
- ld [rVBK], a
- ret
-; 96f3
-
-Function96f3: ; 96f3
- ld hl, $cd9b
- ld a, [$cda9]
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld a, [de]
- inc a
- ld e, a
- ld hl, $ce0c
- ld bc, $0028
- ld a, [$cda9]
-.asm_970b
- and a
- jr z, .asm_9712
- add hl, bc
- dec a
- jr .asm_970b
-
-.asm_9712
- ld bc, $0208
- ld a, e
- call Function9663
- ret
-; 971a
-
-
-Function971a: ; 971a
- ld hl, $7681
- ld de, MartPointer
- ld bc, $0010
- ld a, $5
- call FarCopyWRAM
- ret
-; 9729
-
-Function9729: ; 9729
- push de
- callba Function3da85
- ld c, l
- ld b, h
- ld a, [TempBattleMonSpecies]
- call Function974b
- pop de
- ret
-; 973a
-
-Function973a: ; 973a
- push de
- callba Function3da97
- ld c, l
- ld b, h
- ld a, [TempEnemyMonSpecies]
- call Function9764
- pop de
- ret
-; 974b
-
-Function974b: ; 974b
- and a
- jp nz, Function97f9
- ld a, [$d45b]
- bit 2, a
- jr nz, .asm_9760
- ld a, [PlayerGender]
- and a
- jr z, .asm_9760
- ld hl, FalknerPalette
- ret
-
-.asm_9760
- ld hl, $70ce
- ret
-; 9764
-
-Function9764: ; 9764
- and a
- jp nz, Function97f9
- ld a, [TrainerClass]
-
-Function976b: ; 976b
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, $70ce
- add hl, bc
- ret
-; 9775
-
-Function9775: ; 9775
- call Function97ee
- ret
-; 9779
-
-INCBIN "baserom.gbc", $9779, $97ee - $9779
-
-Function97ee: ; 97ee
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld bc, $68ce
- add hl, bc
- ret
-; 97f9
-
-Function97f9: ; 97f9
- push bc
- call Function97ee
- pop bc
- push hl
- call CheckShininess
- pop hl
- ret nc
- inc hl
- inc hl
- inc hl
- inc hl
- ret
-; 9809
-
-Function9809: ; 9809
- ld a, [$cfbe]
- push af
- set 7, a
- ld [$cfbe], a
- call Function981a
- pop af
- ld [$cfbe], a
- ret
-; 981a
-
-Function981a: ; 981a
- ld a, [hl]
- and $7
- ret z
- ld b, a
-.asm_981f
- push bc
- xor a
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- ld b, $10
-.asm_9829
- ld e, $8
- ld a, [hli]
- ld d, a
-.asm_982d
- bit 0, d
- ld a, $10
- jr nz, .asm_9835
- ld a, $20
-
-.asm_9835
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- rr d
- dec e
- jr nz, .asm_982d
- dec b
- jr nz, .asm_9829
- ld a, $20
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- call Function9a7a
- pop bc
- dec b
- jr nz, .asm_981f
- ret
-; 9853
-
-Function9853: ; 9853
- call CheckCGB
- ret nz
- di
- ld a, [$cfbe]
- push af
- set 7, a
- ld [$cfbe], a
- xor a
- ld [rJOYP], a
- ld [hSGB], a
- call Function994a
- jr nc, .asm_988a
- ld a, $1
- ld [hSGB], a
- call Function98eb
- call Function99b4
- call Function9a7a
- call Function993f
- call Function992c
- call Function9a7a
- call Function993f
- ld hl, $5d66
- call Function981a
-
-.asm_988a
- pop af
- ld [$cfbe], a
- ei
- ret
-; 9890
-
-
-Function9890: ; 9890
- call CheckCGB
- ret z
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, $2000
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
- ld a, $80
- ld [rBGPI], a
- ld c, $20
-.asm_98ac
- ld a, $ff
- ld [rBGPD], a
- ld a, $7f
- ld [rBGPD], a
- dec c
- jr nz, .asm_98ac
- ld a, $80
- ld [rOBPI], a
- ld c, $20
-.asm_98bd
- ld a, $ff
- ld [rOBPD], a
- ld a, $7f
- ld [rOBPD], a
- dec c
- jr nz, .asm_98bd
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $d000
- call Function98df
- ld hl, $d080
- call Function98df
- pop af
- ld [rSVBK], a
- ret
-; 98df
-
-Function98df: ; 98df
- ld c, $40
-.asm_98e1
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hli], a
- dec c
- jr nz, .asm_98e1
- ret
-; 98eb
-
-Function98eb: ; 98eb
- ld hl, $58ff
- ld c, $9
-.asm_98f0
- push bc
- ld a, [hli]
- push hl
- ld h, [hl]
- ld l, a
- call Function981a
- pop hl
- inc hl
- pop bc
- dec c
- jr nz, .asm_98f0
- ret
-; 98ff
-
-INCBIN "baserom.gbc", $98ff, $992c - $98ff
-
-Function992c: ; 992c
- call Function9938
- push de
- call Function9a24
- pop hl
- call Function99d8
- ret
-; 9938
-
-Function9938: ; 9938
- ld hl, $651e
- ld de, $606e
- ret
-; 993f
-
-Function993f: ; 993f
- ld hl, VTiles0
- ld bc, $2000
- xor a
- call ByteFill
- ret
-; 994a
-
-Function994a: ; 994a
- ld hl, $5d26
- call Function981a
- call Function9a7a
- ld a, [rJOYP]
- and $3
- cp $3
- jr nz, .asm_99a6
- ld a, $20
- ld [rJOYP], a
- ld a, [rJOYP]
- ld a, [rJOYP]
- call Function9a7a
- call Function9a7a
- ld a, $30
- ld [rJOYP], a
- call Function9a7a
- call Function9a7a
- ld a, $10
- ld [rJOYP], a
- ld a, [rJOYP]
- ld a, [rJOYP]
- ld a, [rJOYP]
- ld a, [rJOYP]
- ld a, [rJOYP]
- ld a, [rJOYP]
- call Function9a7a
- call Function9a7a
- ld a, $30
- ld [rJOYP], a
- ld a, [rJOYP]
- ld a, [rJOYP]
- ld a, [rJOYP]
- call Function9a7a
- call Function9a7a
- ld a, [rJOYP]
- and $3
- cp $3
- jr nz, .asm_99a6
- call Function99ab
- and a
- ret
-
-.asm_99a6
- call Function99ab
- scf
- ret
-; 99ab
-
-Function99ab: ; 99ab
- ld hl, $5d16
- call Function981a
- jp Function9a7a
-; 99b4
-
-Function99b4: ; 99b4
- call DisableLCD
- ld a, $e4
- ld [rBGP], a
- ld hl, $5df6
- ld de, VTiles1
- ld bc, $1000
- call CopyData
- call DrawDefaultTiles
- ld a, $e3
- ld [rLCDC], a
- ld hl, $5d06
- call Function981a
- xor a
- ld [rBGP], a
- ret
-; 99d8
-
-Function99d8: ; 99d8
- call DisableLCD
- ld a, $e4
- ld [rBGP], a
- ld de, VTiles1
- ld bc, $0140
- call CopyData
- ld b, $12
-.asm_99ea
- push bc
- ld bc, $000c
- call CopyData
- ld bc, $0028
- call ClearBytes
- ld bc, $000c
- call CopyData
- pop bc
- dec b
- jr nz, .asm_99ea
- ld bc, $0140
- call CopyData
- ld bc, Start
- call ClearBytes
- ld bc, $0080
- call CopyData
- call DrawDefaultTiles
- ld a, $e3
- ld [rLCDC], a
- ld hl, $5d46
- call Function981a
- xor a
- ld [rBGP], a
- ret
-; 9a24
-
-Function9a24: ; 9a24
- call DisableLCD
- ld a, $e4
- ld [rBGP], a
- ld de, VTiles1
- ld b, $80
-.asm_9a30
- push bc
- ld bc, $0010
- call CopyData
- ld bc, $0010
- call ClearBytes
- pop bc
- dec b
- jr nz, .asm_9a30
- call DrawDefaultTiles
- ld a, $e3
- ld [rLCDC], a
- ld hl, $5d36
- call Function981a
- xor a
- ld [rBGP], a
- ret
-; 9a52
-
-CopyData: ; 0x9a52
-; copy bc bytes of data from hl to de
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, CopyData
- ret
-; 0x9a5b
-
-ClearBytes: ; 0x9a5b
-; clear bc bytes of data starting from de
- xor a
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, ClearBytes
- ret
-; 0x9a64
-
-DrawDefaultTiles: ; 0x9a64
-; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
- ld hl, VBGMap0 ; BG Map 0
- ld de, 32 - 20
- ld a, $80 ; starting tile
- ld c, 12 + 1
-.line
- ld b, 20
-.tile
- ld [hli], a
- inc a
- dec b
- jr nz, .tile
-; next line
- add hl, de
- dec c
- jr nz, .line
- ret
-; 0x9a7a
-
-Function9a7a: ; 9a7a
- ld de, $1b58
-.asm_9a7d
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .asm_9a7d
- ret
-; 9a86
-
-INCBIN "baserom.gbc", $9a86, $a51e - $9a86
-
-SGBBorder:
-INCBIN "gfx/misc/sgb_border.2bpp"
-
-INCBIN "baserom.gbc", $a8be, $a8d6 - $a8be
-
-PokemonPalettes:
-INCLUDE "gfx/pics/palette_pointers.asm"
-
-INCBIN "baserom.gbc", $b0ae, $b0d2 - $b0ae
-
-TrainerPalettes:
-INCLUDE "gfx/trainers/palette_pointers.asm"
-
-Functionb1de: ; b1de
- callba Function494ac
- jr c, .asm_b230
- ld a, [$d19a]
- and $7
- ld e, a
- ld d, $0
- ld hl, $7279
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [TimeOfDayPal]
- and $3
- add a
- add a
- add a
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Unkn1Pals
- ld b, $8
-.asm_b210
- ld a, [de]
- push de
- push hl
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, MornPal
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ld c, $8
-.asm_b222
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_b222
- pop de
- inc de
- dec b
- jr nz, .asm_b210
- pop af
- ld [rSVBK], a
-
-.asm_b230
- ld a, [TimeOfDayPal]
- and $3
- ld bc, $0040
- ld hl, $7469
- call AddNTimes
- ld de, Unkn2Pals
- ld bc, $0040
- ld a, $5
- call FarCopyWRAM
- ld a, [$d19a]
- cp $1
- jr z, .asm_b253
- cp $2
- ret nz
-
-.asm_b253
- ld a, [MapGroup]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, $7569
- add hl, de
- ld a, [TimeOfDayPal]
- and $3
- cp $2
- jr c, .asm_b26d
- inc hl
- inc hl
- inc hl
- inc hl
-
-.asm_b26d
- ld de, $d032
- ld bc, $0004
- ld a, $5
- call FarCopyWRAM
- ret
-; b279
-
-INCBIN "baserom.gbc", $b279, $b319 - $b279
-
-MornPal: ; 0xb319
-INCBIN "tilesets/morn.pal"
-; 0xb359
-
-DayPal: ; 0xb359
-INCBIN "tilesets/day.pal"
-; 0xb399
-
-NitePal: ; 0xb399
-INCBIN "tilesets/nite.pal"
-; 0xb3d9
-
-DarkPal: ; 0xb3d9
-INCBIN "tilesets/dark.pal"
-; 0xb419
-
-INCBIN "baserom.gbc", $b419, $b825 - $b419
+INCLUDE "engine/color.asm"
SECTION "bank3",ROMX,BANK[$3]
Functionc000: ; c000
ld a, [TimeOfDay]
- ld hl, $4012
- ld de, $0002
+ ld hl, Datac012
+ ld de, 2
call IsInArray
inc hl
ld c, [hl]
ret c
+
xor a
ld c, a
ret
; c012
-INCBIN "baserom.gbc", $c012, $c01b - $c012
-
+Datac012: ; c012
+ db MORN, 1
+ db DAY, 2
+ db NITE, 4
+ db NITE, 4
+ db $ff
+; c01b
Functionc01b: ; c01b
ld hl, SpecialsPointers
@@ -20330,13 +19117,67 @@ INCBIN "baserom.gbc", $11e5d, $122c1 - $11e5d
UnknownScript_0x122c1: ; 0x122c1
checkbit2 $0011
- iffalse $62cd
+ iffalse .script_122cd
setbit2 $0051
special $0017
+.script_122cd
end
; 0x122ce
-INCBIN "baserom.gbc", $122ce, $12324 - $122ce
+UnknownScript_0x122ce: ; 0x122ce
+ 3callasm BANK(Function122f8), Function122f8
+ iffalse UnknownScript_0x122e3
+ disappear $fe
+ loadfont
+ 2writetext UnknownText_0x122ee
+ playsound SFX_ITEM
+ pause 60
+ itemnotify
+ loadmovesprites
+ end
+; 0x122e3
+
+UnknownScript_0x122e3: ; 0x122e3
+ loadfont
+ 2writetext UnknownText_0x122ee
+ closetext
+ 2writetext UnknownText_0x122f3
+ closetext
+ loadmovesprites
+ end
+; 0x122ee
+
+UnknownText_0x122ee: ; 0x122ee
+ ; found @ !
+ text_jump UnknownText_0x1c0a1c, BANK(UnknownText_0x1c0a1c)
+ db "@"
+; 0x122f3
+
+UnknownText_0x122f3: ; 0x122f3
+ ; But can't carry any more items.
+ text_jump UnknownText_0x1c0a2c, BANK(UnknownText_0x1c0a2c)
+ db "@"
+; 0x122f8
+
+Function122f8: ; 122f8
+ xor a
+ ld [ScriptVar], a
+ ld a, [EngineBuffer1]
+ ld [$d265], a
+ call GetItemName
+ ld hl, StringBuffer3
+ call CopyName2
+ ld a, [EngineBuffer1]
+ ld [CurItem], a
+ ld a, [CurFruit]
+ ld [$d10c], a
+ ld hl, NumItems
+ call ReceiveItem
+ ret nc
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 12324
Function12324: ; 12324
ld a, [PartyCount]
@@ -20668,9 +19509,7 @@ StartMenu: ; 125cd
ld de, SFX_MENU
call StartSFX
- ld a, $1
- ld hl, $6454
- rst FarCall
+ callba Function6454
ld hl, StatusFlags2
bit 2, [hl] ; bug catching contest
@@ -59029,239 +57868,161 @@ INCBIN "baserom.gbc", $847bd, $84a2e - $847bd
FX00GFX:
FX01GFX: ; 84a2e
INCBIN "gfx/fx/001.lz"
-; 84b15
-
-INCBIN "baserom.gbc", $84b15, $84b1e - $84b15
+; 84b1e
FX02GFX: ; 84b1e
INCBIN "gfx/fx/002.lz"
-; 84b7a
-
-INCBIN "baserom.gbc", $84b7a, $84b7e - $84b7a
+; 84b7e
FX03GFX: ; 84b7e
INCBIN "gfx/fx/003.lz"
-; 84bd0
-
-INCBIN "baserom.gbc", $84bd0, $84bde - $84bd0
+; 84bde
FX04GFX: ; 84bde
INCBIN "gfx/fx/004.lz"
-; 84ca5
-
-INCBIN "baserom.gbc", $84ca5, $84cae - $84ca5
+; 84cae
FX05GFX: ; 84cae
INCBIN "gfx/fx/005.lz"
-; 84de2
-
-INCBIN "baserom.gbc", $84de2, $84dee - $84de2
+; 84dee
FX07GFX: ; 84dee
INCBIN "gfx/fx/007.lz"
-; 84e70
-
-INCBIN "baserom.gbc", $84e70, $84e7e - $84e70
+; 84e7e
FX08GFX: ; 84e7e
INCBIN "gfx/fx/008.lz"
-; 84ed4
-
-INCBIN "baserom.gbc", $84ed4, $84ede - $84ed4
+; 84ede
FX10GFX: ; 84ede
INCBIN "gfx/fx/010.lz"
-; 84f13
-
-INCBIN "baserom.gbc", $84f13, $84f1e - $84f13
+; 84f1e
FX09GFX: ; 84f1e
INCBIN "gfx/fx/009.lz"
-; 85009
-
-INCBIN "baserom.gbc", $85009, $8500e - $85009
+; 8500e
FX12GFX: ; 8500e
INCBIN "gfx/fx/012.lz"
-; 8506f
-
-INCBIN "baserom.gbc", $8506f, $8507e - $8506f
+; 8507e
FX06GFX: ; 8507e
INCBIN "gfx/fx/006.lz"
-; 8515c
-
-INCBIN "baserom.gbc", $8515c, $8515e - $8515c
+; 8515e
FX11GFX: ; 8515e
INCBIN "gfx/fx/011.lz"
-; 851ad
-
-INCBIN "baserom.gbc", $851ad, $851ae - $851ad
+; 851ae
FX13GFX: ; 851ae
INCBIN "gfx/fx/013.lz"
-; 85243
-
-INCBIN "baserom.gbc", $85243, $8524e - $85243
+; 8524e
FX14GFX: ; 8524e
INCBIN "gfx/fx/014.lz"
-; 852ff
-
-INCBIN "baserom.gbc", $852ff, $8530e - $852ff
+; 8520e
FX24GFX: ; 8530e
INCBIN "gfx/fx/024.lz"
-; 8537c
-
-INCBIN "baserom.gbc", $8537c, $8537e - $8537c
+; 8537e
FX15GFX: ; 8537e
INCBIN "gfx/fx/015.lz"
-; 8539a
-
-INCBIN "baserom.gbc", $8539a, $8539e - $8539a
+; 8539e
FX16GFX: ; 8539e
INCBIN "gfx/fx/016.lz"
-; 8542d
-
-INCBIN "baserom.gbc", $8542d, $8542e - $8542d
+; 8542e
FX17GFX: ; 8542e
INCBIN "gfx/fx/017.lz"
-; 85477
-
-INCBIN "baserom.gbc", $85477, $8547e - $85477
+; 8547e
FX18GFX: ; 8547e
INCBIN "gfx/fx/018.lz"
-; 854eb
-
-INCBIN "baserom.gbc", $854eb, $854ee - $854eb
+; 854ee
FX19GFX: ; 854ee
INCBIN "gfx/fx/019.lz"
-; 855a9
-
-INCBIN "baserom.gbc", $855a9, $855ae - $855a9
+; 855ae
FX20GFX: ; 855ae
INCBIN "gfx/fx/020.lz"
-; 85627
-
-INCBIN "baserom.gbc", $85627, $8562e - $85627
+; 8562e
FX22GFX: ; 8562e
INCBIN "gfx/fx/022.lz"
-; 856ec
-
-INCBIN "baserom.gbc", $856ec, $856ee - $856ec
+; 856ee
FX21GFX: ; 856ee
INCBIN "gfx/fx/021.lz"
-; 85767
-
-INCBIN "baserom.gbc", $85767, $8576e - $85767
+; 8576e
FX23GFX: ; 8576e
INCBIN "gfx/fx/023.lz"
-; 857d0
-
-INCBIN "baserom.gbc", $857d0, $857de - $857d0
+; 857de
FX26GFX: ; 857de
INCBIN "gfx/fx/026.lz"
-; 85838
-
-INCBIN "baserom.gbc", $85838, $8583e - $85838
+; 8583e
FX27GFX: ; 8583e
INCBIN "gfx/fx/027.lz"
-; 858b0
-
-INCBIN "baserom.gbc", $858b0, $858be - $858b0
+; 858be
FX28GFX: ; 858be
INCBIN "gfx/fx/028.lz"
-; 85948
-
-INCBIN "baserom.gbc", $85948, $8594e - $85948
+; 8594e
FX29GFX: ; 8594e
INCBIN "gfx/fx/029.lz"
-; 859a8
-
-INCBIN "baserom.gbc", $859a8, $859ae - $859a8
+; 859ae
FX30GFX: ; 859ae
INCBIN "gfx/fx/030.lz"
-; 859ff
-
-INCBIN "baserom.gbc", $859ff, $85a0e - $859ff
+; 8590e
FX31GFX: ; 85a0e
INCBIN "gfx/fx/031.lz"
-; 85ba1
-
-INCBIN "baserom.gbc", $85ba1, $85bae - $85ba1
+; 85bae
FX32GFX: ; 85bae
INCBIN "gfx/fx/032.lz"
-; 85d09
-
-INCBIN "baserom.gbc", $85d09, $85d0e - $85d09
+; 85d0e
FX33GFX: ; 85d0e
INCBIN "gfx/fx/033.lz"
-; 85def
-
-INCBIN "baserom.gbc", $85def, $85dfe - $85def
+; 85dfe
FX34GFX: ; 85dfe
INCBIN "gfx/fx/034.lz"
-; 85e96
-
-INCBIN "baserom.gbc", $85e96, $85e9e - $85e96
+; 85e9e
FX25GFX: ; 85e9e
INCBIN "gfx/fx/025.lz"
-; 85fb8
-
-INCBIN "baserom.gbc", $85fb8, $85fbe - $85fb8
+; 85fbe
FX35GFX: ; 85fbe
INCBIN "gfx/fx/035.lz"
-; 86099
-
-INCBIN "baserom.gbc", $86099, $8609e - $86099
+; 8609e
FX36GFX: ; 8609e
INCBIN "gfx/fx/036.lz"
-; 86174
-
-INCBIN "baserom.gbc", $86174, $8617e - $86174
+; 8617e
FX37GFX: ; 8617e
INCBIN "gfx/fx/037.lz"
-; 862eb
-
-INCBIN "baserom.gbc", $862eb, $862ee - $862eb
+; 862ee
FX38GFX: ; 862ee
INCBIN "gfx/fx/038.lz"
-; 8637f
-
-INCBIN "baserom.gbc", $8637f, $8638e - $8637f
+; 8638e
FX39GFX: ; 8638e
INCBIN "gfx/fx/039.lz"
-; 8640b
+; 8640e
-INCBIN "baserom.gbc", $8640b, $8640e - $8640b
-
-HallOfFame3: ; 0x8640e
+HallOfFame: ; 0x8640e
call Function8648e
ld a, [StatusFlags]
push af
@@ -60348,7 +59109,7 @@ DrawIntroPlayerPic: ; 88874
.GotPic
ld hl, VTiles2
ld b, BANK(ChrisPic)
- ld c, $31
+ ld c, 7 * 7 ; dimensions
call Get2bpp
; Draw
@@ -60375,15 +59136,17 @@ GetKrisBackpic: ; 88ec9
; Kris's backpic is uncompressed.
ld de, KrisBackpic
ld hl, $9310
- ld bc, $2231
+ ld bc, BANK(KrisBackpic) << 8 + (7 * 7) ; dimensions
call Get2bpp
ret
; 88ed6
KrisBackpic: ; 88ed6
+INCBIN "baserom.gbc", $88ed6, $89116 - $88ed6
+; 89116
-INCBIN "baserom.gbc", $88ed6, $89160 - $88ed6
+INCBIN "baserom.gbc", $89116, $89160 - $89116
Function89160: ; 89160
push af
@@ -62422,116 +61185,7 @@ Function8b154: ; 8b154
INCBIN "baserom.gbc", $8b15e, $8b170 - $8b15e
-SpecialDratini: ; 0x8b170
-; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party.
-; 0: give it a special moveset with Extremespeed.
-; 1: give it the normal moveset of a level 15 Dratini.
-
- ld a, [ScriptVar]
- cp $2
- ret nc
- ld bc, PartyCount
- ld a, [bc]
- ld hl, 0
- call GetNthPartyMon
- ld a, [bc]
- ld c, a
- ld de, PartyMon2 - PartyMon1
-.CheckForDratini
-; start at the end of the party and search backwards for a Dratini
- ld a, [hl]
- cp DRATINI
- jr z, .GiveMoveset
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- dec c
- jr nz, .CheckForDratini
- ret
-
-.GiveMoveset
- push hl
- ld a, [ScriptVar]
- ld hl, .Movesets
- ld bc, .Moveset1 - .Moveset0
- call AddNTimes
-
- ; get address of mon's first move
- pop de
- inc de
- inc de
-
-.GiveMoves
- ld a, [hl]
- and a ; is the move 00?
- ret z ; if so, we're done here
-
- push hl
- push de
- ld [de], a ; give the Pokémon the new move
-
- ; get the PP of the new move
- dec a
- ld hl, Moves + PlayerMovePP - PlayerMoveStruct
- ld bc, Move2 - Move1
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
-
- ; get the address of the move's PP and update the PP
- ld hl, PartyMon1PP - PartyMon1Moves
- add hl, de
- ld [hl], a
-
- pop de
- pop hl
- inc de
- inc hl
- jr .GiveMoves
-
-.Movesets
-.Moveset0
-; Dratini does not normally learn Extremespeed. This is a special gift.
- db WRAP
- db THUNDER_WAVE
- db TWISTER
- db EXTREMESPEED
- db 0
-.Moveset1
-; This is the normal moveset of a level 15 Dratini
- db WRAP
- db LEER
- db THUNDER_WAVE
- db TWISTER
- db 0
-
-GetNthPartyMon: ; 0x8b1ce
-; inputs:
-; hl must be set to 0 before calling this function.
-; a must be set to the number of Pokémon in the party.
-
-; outputs:
-; returns the address of the last Pokémon in the party in hl.
-; sets carry if a is 0.
-
- ld de, PartyMon1
- add hl, de
- and a
- jr z, .EmptyParty
- dec a
- ret z
- ld de, PartyMon2 - PartyMon1
-.loop
- add hl, de
- dec a
- jr nz, .loop
- ret
-.EmptyParty
- scf
- ret
+INCLUDE "event/dratini.asm"
Function8b1e1: ; 8b1e1
ld de, $71ed
@@ -64838,354 +63492,8 @@ Function8ea4a: ; 8ea4a
INCBIN "baserom.gbc", $8ea71, $8eab3 - $8ea71
-ReadMonMenuIcon: ; 8eab3
- cp EGG
- jr z, .egg
- dec a
- ld hl, MonMenuIcons
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- ret
-.egg
- ld a, ICON_EGG
- ret
-; 8eac4
-
-MonMenuIcons: ; 8eac4
- db ICON_BULBASAUR ; BULBASAUR
- db ICON_BULBASAUR ; IVYSAUR
- db ICON_BULBASAUR ; VENUSAUR
- db ICON_CHARMANDER ; CHARMANDER
- db ICON_CHARMANDER ; CHARMELEON
- db ICON_BIGMON ; CHARIZARD
- db ICON_SQUIRTLE ; SQUIRTLE
- db ICON_SQUIRTLE ; WARTORTLE
- db ICON_SQUIRTLE ; BLASTOISE
- db ICON_CATERPILLAR ; CATERPIE
- db ICON_CATERPILLAR ; METAPOD
- db ICON_MOTH ; BUTTERFREE
- db ICON_CATERPILLAR ; WEEDLE
- db ICON_CATERPILLAR ; KAKUNA
- db ICON_BUG ; BEEDRILL
- db ICON_BIRD ; PIDGEY
- db ICON_BIRD ; PIDGEOTTO
- db ICON_BIRD ; PIDGEOT
- db ICON_FOX ; RATTATA
- db ICON_FOX ; RATICATE
- db ICON_BIRD ; SPEAROW
- db ICON_BIRD ; FEAROW
- db ICON_SERPENT ; EKANS
- db ICON_SERPENT ; ARBOK
- db ICON_PIKACHU ; PIKACHU
- db ICON_PIKACHU ; RAICHU
- db ICON_MONSTER ; SANDSHREW
- db ICON_MONSTER ; SANDSLASH
- db ICON_FOX ; NIDORAN_F
- db ICON_FOX ; NIDORINA
- db ICON_MONSTER ; NIDOQUEEN
- db ICON_FOX ; NIDORAN_M
- db ICON_FOX ; NIDORINO
- db ICON_MONSTER ; NIDOKING
- db ICON_CLEFAIRY ; CLEFAIRY
- db ICON_CLEFAIRY ; CLEFABLE
- db ICON_FOX ; VULPIX
- db ICON_FOX ; NINETALES
- db ICON_JIGGLYPUFF ; JIGGLYPUFF
- db ICON_JIGGLYPUFF ; WIGGLYTUFF
- db ICON_BAT ; ZUBAT
- db ICON_BAT ; GOLBAT
- db ICON_ODDISH ; ODDISH
- db ICON_ODDISH ; GLOOM
- db ICON_ODDISH ; VILEPLUME
- db ICON_BUG ; PARAS
- db ICON_BUG ; PARASECT
- db ICON_CATERPILLAR ; VENONAT
- db ICON_MOTH ; VENOMOTH
- db ICON_DIGLETT ; DIGLETT
- db ICON_DIGLETT ; DUGTRIO
- db ICON_FOX ; MEOWTH
- db ICON_FOX ; PERSIAN
- db ICON_MONSTER ; PSYDUCK
- db ICON_MONSTER ; GOLDUCK
- db ICON_FIGHTER ; MANKEY
- db ICON_FIGHTER ; PRIMEAPE
- db ICON_FOX ; GROWLITHE
- db ICON_FOX ; ARCANINE
- db ICON_POLIWAG ; POLIWAG
- db ICON_POLIWAG ; POLIWHIRL
- db ICON_POLIWAG ; POLIWRATH
- db ICON_HUMANSHAPE ; ABRA
- db ICON_HUMANSHAPE ; KADABRA
- db ICON_HUMANSHAPE ; ALAKAZAM
- db ICON_FIGHTER ; MACHOP
- db ICON_FIGHTER ; MACHOKE
- db ICON_FIGHTER ; MACHAMP
- db ICON_ODDISH ; BELLSPROUT
- db ICON_ODDISH ; WEEPINBELL
- db ICON_ODDISH ; VICTREEBEL
- db ICON_JELLYFISH ; TENTACOOL
- db ICON_JELLYFISH ; TENTACRUEL
- db ICON_GEODUDE ; GEODUDE
- db ICON_GEODUDE ; GRAVELER
- db ICON_GEODUDE ; GOLEM
- db ICON_EQUINE ; PONYTA
- db ICON_EQUINE ; RAPIDASH
- db ICON_SLOWPOKE ; SLOWPOKE
- db ICON_SLOWPOKE ; SLOWBRO
- db ICON_VOLTORB ; MAGNEMITE
- db ICON_VOLTORB ; MAGNETON
- db ICON_BIRD ; FARFETCH_D
- db ICON_BIRD ; DODUO
- db ICON_BIRD ; DODRIO
- db ICON_LAPRAS ; SEEL
- db ICON_LAPRAS ; DEWGONG
- db ICON_BLOB ; GRIMER
- db ICON_BLOB ; MUK
- db ICON_SHELL ; SHELLDER
- db ICON_SHELL ; CLOYSTER
- db ICON_GHOST ; GASTLY
- db ICON_GHOST ; HAUNTER
- db ICON_GHOST ; GENGAR
- db ICON_SERPENT ; ONIX
- db ICON_HUMANSHAPE ; DROWZEE
- db ICON_HUMANSHAPE ; HYPNO
- db ICON_SHELL ; KRABBY
- db ICON_SHELL ; KINGLER
- db ICON_VOLTORB ; VOLTORB
- db ICON_VOLTORB ; ELECTRODE
- db ICON_ODDISH ; EXEGGCUTE
- db ICON_ODDISH ; EXEGGUTOR
- db ICON_MONSTER ; CUBONE
- db ICON_MONSTER ; MAROWAK
- db ICON_FIGHTER ; HITMONLEE
- db ICON_FIGHTER ; HITMONCHAN
- db ICON_MONSTER ; LICKITUNG
- db ICON_BLOB ; KOFFING
- db ICON_BLOB ; WEEZING
- db ICON_EQUINE ; RHYHORN
- db ICON_MONSTER ; RHYDON
- db ICON_CLEFAIRY ; CHANSEY
- db ICON_ODDISH ; TANGELA
- db ICON_MONSTER ; KANGASKHAN
- db ICON_FISH ; HORSEA
- db ICON_FISH ; SEADRA
- db ICON_FISH ; GOLDEEN
- db ICON_FISH ; SEAKING
- db ICON_STARYU ; STARYU
- db ICON_STARYU ; STARMIE
- db ICON_HUMANSHAPE ; MR__MIME
- db ICON_BUG ; SCYTHER
- db ICON_HUMANSHAPE ; JYNX
- db ICON_HUMANSHAPE ; ELECTABUZZ
- db ICON_HUMANSHAPE ; MAGMAR
- db ICON_BUG ; PINSIR
- db ICON_EQUINE ; TAUROS
- db ICON_FISH ; MAGIKARP
- db ICON_GYARADOS ; GYARADOS
- db ICON_LAPRAS ; LAPRAS
- db ICON_BLOB ; DITTO
- db ICON_FOX ; EEVEE
- db ICON_FOX ; VAPOREON
- db ICON_FOX ; JOLTEON
- db ICON_FOX ; FLAREON
- db ICON_VOLTORB ; PORYGON
- db ICON_SHELL ; OMANYTE
- db ICON_SHELL ; OMASTAR
- db ICON_SHELL ; KABUTO
- db ICON_SHELL ; KABUTOPS
- db ICON_BIRD ; AERODACTYL
- db ICON_SNORLAX ; SNORLAX
- db ICON_BIRD ; ARTICUNO
- db ICON_BIRD ; ZAPDOS
- db ICON_BIRD ; MOLTRES
- db ICON_SERPENT ; DRATINI
- db ICON_SERPENT ; DRAGONAIR
- db ICON_BIGMON ; DRAGONITE
- db ICON_HUMANSHAPE ; MEWTWO
- db ICON_HUMANSHAPE ; MEW
- db ICON_ODDISH ; CHIKORITA
- db ICON_ODDISH ; BAYLEEF
- db ICON_ODDISH ; MEGANIUM
- db ICON_FOX ; CYNDAQUIL
- db ICON_FOX ; QUILAVA
- db ICON_FOX ; TYPHLOSION
- db ICON_MONSTER ; TOTODILE
- db ICON_MONSTER ; CROCONAW
- db ICON_MONSTER ; FERALIGATR
- db ICON_FOX ; SENTRET
- db ICON_FOX ; FURRET
- db ICON_BIRD ; HOOTHOOT
- db ICON_BIRD ; NOCTOWL
- db ICON_BUG ; LEDYBA
- db ICON_BUG ; LEDIAN
- db ICON_BUG ; SPINARAK
- db ICON_BUG ; ARIADOS
- db ICON_BAT ; CROBAT
- db ICON_FISH ; CHINCHOU
- db ICON_FISH ; LANTURN
- db ICON_PIKACHU ; PICHU
- db ICON_CLEFAIRY ; CLEFFA
- db ICON_JIGGLYPUFF ; IGGLYBUFF
- db ICON_CLEFAIRY ; TOGEPI
- db ICON_BIRD ; TOGETIC
- db ICON_BIRD ; NATU
- db ICON_BIRD ; XATU
- db ICON_FOX ; MAREEP
- db ICON_MONSTER ; FLAAFFY
- db ICON_MONSTER ; AMPHAROS
- db ICON_ODDISH ; BELLOSSOM
- db ICON_JIGGLYPUFF ; MARILL
- db ICON_JIGGLYPUFF ; AZUMARILL
- db ICON_SUDOWOODO ; SUDOWOODO
- db ICON_POLIWAG ; POLITOED
- db ICON_ODDISH ; HOPPIP
- db ICON_ODDISH ; SKIPLOOM
- db ICON_ODDISH ; JUMPLUFF
- db ICON_MONSTER ; AIPOM
- db ICON_ODDISH ; SUNKERN
- db ICON_ODDISH ; SUNFLORA
- db ICON_BUG ; YANMA
- db ICON_MONSTER ; WOOPER
- db ICON_MONSTER ; QUAGSIRE
- db ICON_FOX ; ESPEON
- db ICON_FOX ; UMBREON
- db ICON_BIRD ; MURKROW
- db ICON_SLOWPOKE ; SLOWKING
- db ICON_GHOST ; MISDREAVUS
- db ICON_UNOWN ; UNOWN
- db ICON_GHOST ; WOBBUFFET
- db ICON_EQUINE ; GIRAFARIG
- db ICON_BUG ; PINECO
- db ICON_BUG ; FORRETRESS
- db ICON_SERPENT ; DUNSPARCE
- db ICON_BUG ; GLIGAR
- db ICON_SERPENT ; STEELIX
- db ICON_MONSTER ; SNUBBULL
- db ICON_MONSTER ; GRANBULL
- db ICON_FISH ; QWILFISH
- db ICON_BUG ; SCIZOR
- db ICON_BUG ; SHUCKLE
- db ICON_BUG ; HERACROSS
- db ICON_FOX ; SNEASEL
- db ICON_MONSTER ; TEDDIURSA
- db ICON_MONSTER ; URSARING
- db ICON_BLOB ; SLUGMA
- db ICON_BLOB ; MAGCARGO
- db ICON_EQUINE ; SWINUB
- db ICON_EQUINE ; PILOSWINE
- db ICON_SHELL ; CORSOLA
- db ICON_FISH ; REMORAID
- db ICON_FISH ; OCTILLERY
- db ICON_MONSTER ; DELIBIRD
- db ICON_FISH ; MANTINE
- db ICON_BIRD ; SKARMORY
- db ICON_FOX ; HOUNDOUR
- db ICON_FOX ; HOUNDOOM
- db ICON_BIGMON ; KINGDRA
- db ICON_EQUINE ; PHANPY
- db ICON_EQUINE ; DONPHAN
- db ICON_VOLTORB ; PORYGON2
- db ICON_EQUINE ; STANTLER
- db ICON_MONSTER ; SMEARGLE
- db ICON_FIGHTER ; TYROGUE
- db ICON_FIGHTER ; HITMONTOP
- db ICON_HUMANSHAPE ; SMOOCHUM
- db ICON_HUMANSHAPE ; ELEKID
- db ICON_HUMANSHAPE ; MAGBY
- db ICON_EQUINE ; MILTANK
- db ICON_CLEFAIRY ; BLISSEY
- db ICON_FOX ; RAIKOU
- db ICON_FOX ; ENTEI
- db ICON_FOX ; SUICUNE
- db ICON_MONSTER ; LARVITAR
- db ICON_MONSTER ; PUPITAR
- db ICON_MONSTER ; TYRANITAR
- db ICON_LUGIA ; LUGIA
- db ICON_HO_OH ; HO_OH
- db ICON_HUMANSHAPE ; CELEBI
-
-IconPointers:
- dw NullIcon
- dw PoliwagIcon
- dw JigglypuffIcon
- dw DiglettIcon
- dw PikachuIcon
- dw StaryuIcon
- dw FishIcon
- dw BirdIcon
- dw MonsterIcon
- dw ClefairyIcon
- dw OddishIcon
- dw BugIcon
- dw GhostIcon
- dw LaprasIcon
- dw HumanshapeIcon
- dw FoxIcon
- dw EquineIcon
- dw ShellIcon
- dw BlobIcon
- dw SerpentIcon
- dw VoltorbIcon
- dw SquirtleIcon
- dw BulbasaurIcon
- dw CharmanderIcon
- dw CaterpillarIcon
- dw UnownIcon
- dw GeodudeIcon
- dw FighterIcon
- dw EggIcon
- dw JellyfishIcon
- dw MothIcon
- dw BatIcon
- dw SnorlaxIcon
- dw HoOhIcon
- dw LugiaIcon
- dw GyaradosIcon
- dw SlowpokeIcon
- dw SudowoodoIcon
- dw BigmonIcon
-
-NullIcon:
-PoliwagIcon: INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d
-JigglypuffIcon: INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d
-DiglettIcon: INCBIN "gfx/icon/diglett.2bpp" ; 0x8ed0d
-PikachuIcon: INCBIN "gfx/icon/pikachu.2bpp" ; 0x8ed8d
-StaryuIcon: INCBIN "gfx/icon/staryu.2bpp" ; 0x8ee0d
-FishIcon: INCBIN "gfx/icon/fish.2bpp" ; 0x8ee8d
-BirdIcon: INCBIN "gfx/icon/bird.2bpp" ; 0x8ef0d
-MonsterIcon: INCBIN "gfx/icon/monster.2bpp" ; 0x8ef8d
-ClefairyIcon: INCBIN "gfx/icon/clefairy.2bpp" ; 0x8f00d
-OddishIcon: INCBIN "gfx/icon/oddish.2bpp" ; 0x8f08d
-BugIcon: INCBIN "gfx/icon/bug.2bpp" ; 0x8f10d
-GhostIcon: INCBIN "gfx/icon/ghost.2bpp" ; 0x8f18d
-LaprasIcon: INCBIN "gfx/icon/lapras.2bpp" ; 0x8f20d
-HumanshapeIcon: INCBIN "gfx/icon/humanshape.2bpp" ; 0x8f28d
-FoxIcon: INCBIN "gfx/icon/fox.2bpp" ; 0x8f30d
-EquineIcon: INCBIN "gfx/icon/equine.2bpp" ; 0x8f38d
-ShellIcon: INCBIN "gfx/icon/shell.2bpp" ; 0x8f40d
-BlobIcon: INCBIN "gfx/icon/blob.2bpp" ; 0x8f48d
-SerpentIcon: INCBIN "gfx/icon/serpent.2bpp" ; 0x8f50d
-VoltorbIcon: INCBIN "gfx/icon/voltorb.2bpp" ; 0x8f58d
-SquirtleIcon: INCBIN "gfx/icon/squirtle.2bpp" ; 0x8f60d
-BulbasaurIcon: INCBIN "gfx/icon/bulbasaur.2bpp" ; 0x8f68d
-CharmanderIcon: INCBIN "gfx/icon/charmander.2bpp" ; 0x8f70d
-CaterpillarIcon: INCBIN "gfx/icon/caterpillar.2bpp" ; 0x8f78d
-UnownIcon: INCBIN "gfx/icon/unown.2bpp" ; 0x8f80d
-GeodudeIcon: INCBIN "gfx/icon/geodude.2bpp" ; 0x8f88d
-FighterIcon: INCBIN "gfx/icon/fighter.2bpp" ; 0x8f90d
-EggIcon: INCBIN "gfx/icon/egg.2bpp" ; 0x8f98d
-JellyfishIcon: INCBIN "gfx/icon/jellyfish.2bpp" ; 0x8fa0d
-MothIcon: INCBIN "gfx/icon/moth.2bpp" ; 0x8fa8d
-BatIcon: INCBIN "gfx/icon/bat.2bpp" ; 0x8fb0d
-SnorlaxIcon: INCBIN "gfx/icon/snorlax.2bpp" ; 0x8fb8d
-HoOhIcon: INCBIN "gfx/icon/ho_oh.2bpp" ; 0x8fc0d
-LugiaIcon: INCBIN "gfx/icon/lugia.2bpp" ; 0x8fc8d
-GyaradosIcon: INCBIN "gfx/icon/gyarados.2bpp" ; 0x8fd0d
-SlowpokeIcon: INCBIN "gfx/icon/slowpoke.2bpp" ; 0x8fd8d
-SudowoodoIcon: INCBIN "gfx/icon/sudowoodo.2bpp" ; 0x8fe0d
-BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d
+
+INCLUDE "menu/mon_icons.asm"
SECTION "bank24",ROMX,BANK[$24]
@@ -68094,9 +66402,9 @@ Function96beb: ; 96beb
ScriptPointers96c0c: ; 96c0c
dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d
- dbw $2f, $6675 ; BANK(UnknownScript_0xbe675), UnknownScript_0xbe675
- dbw $2f, $666a ; BANK(UnknownScript_0xbe66a), UnknownScript_0xbe66a
- dbw $04, $62ce ; BANK(UnknownScript_0x122ce), UnknownScript_0x122ce
+ dbw BANK(UnknownScript_0xbe675), UnknownScript_0xbe675
+ dbw BANK(UnknownScript_0xbe66a), UnknownScript_0xbe66a
+ dbw BANK(UnknownScript_0x122ce), UnknownScript_0x122ce
dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d
dbw BANK(UnknownScript_0x96c34), UnknownScript_0x96c34
dbw BANK(FallIntoMapScript), FallIntoMapScript
@@ -68961,9 +67269,7 @@ SECTION "bank2E",ROMX,BANK[$2E]
Functionb8000: ; b8000
xor a
ld [hBGMapMode], a
- ld a, $2e
- ld hl, $400a
- rst FarCall
+ callba Functionb800a
ret
; b800a
@@ -69482,7 +67788,46 @@ RockMons: ; b83de
db $ff ; end
; b83e5
-INCBIN "baserom.gbc", $b83e5, $b841f - $b83e5
+Functionb83e5: ; b83e5
+ push hl
+ call Functionb8443
+ pop hl
+ and a
+ jr z, .asm_b83f6
+ cp $1
+ jr z, .asm_b8400
+ cp $2
+ jr z, .asm_b840b
+ ret
+
+.asm_b83f6
+ ld a, $a
+ call Function2fb1
+ and a
+ jr nz, Functionb843b
+ jr Functionb841f
+
+.asm_b8400
+ ld a, $a
+ call Function2fb1
+ cp $5
+ jr nc, Functionb843b
+ jr Functionb841f
+
+.asm_b840b
+ ld a, $a
+ call Function2fb1
+ cp $8
+ jr nc, Functionb843b
+ jr .asm_b8416
+
+.asm_b8416
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_b8416
+ call Functionb841f
+ ret
+; b841f
Functionb841f: ; b841f
; Read a TreeMons table.
@@ -69500,7 +67845,8 @@ Functionb841f: ; b841f
.asm_b842c
ld a, [hli]
cp $ff
- jr z, .asm_b843b
+ jr z, Functionb843b
+
ld a, [hli]
ld [$d22e], a
ld a, [hl]
@@ -69508,14 +67854,137 @@ Functionb841f: ; b841f
scf
ret
-.asm_b843b
+Functionb843b: ; b843b
xor a
ld [$d22e], a
ld [CurPartyLevel], a
ret
; b8443
-INCBIN "baserom.gbc", $b8443, $b8f8f - $b8443
+Functionb8443: ; b8443
+ call Functionb8466
+ ld [Buffer1], a
+ call Functionb849d
+ ld [Buffer2], a
+ ld c, a
+ ld a, [Buffer1]
+ sub c
+ jr z, .asm_b8463
+ jr nc, .asm_b845a
+ add $a
+
+.asm_b845a
+ cp $5
+ jr c, .asm_b8460
+ xor a
+ ret
+
+.asm_b8460
+ ld a, $1
+ ret
+
+.asm_b8463
+ ld a, $2
+ ret
+; b8466
+
+Functionb8466: ; b8466
+ call GetFacingTileCoord
+ ld hl, $0000
+ ld c, e
+ ld b, $0
+ ld a, d
+ and a
+ jr z, .asm_b8477
+
+.asm_b8473
+ add hl, bc
+ dec a
+ jr nz, .asm_b8473
+
+.asm_b8477
+ add hl, bc
+ ld c, d
+ add hl, bc
+ ld a, h
+ ld [hProduct], a
+ ld a, l
+ ld [hMultiplicand], a
+ ld a, $5
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [$ffb5]
+ ld [hProduct], a
+ ld a, [$ffb6]
+ ld [hMultiplicand], a
+ ld a, $a
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [hMultiplier]
+ ret
+; b849d
+
+Functionb849d: ; b849d
+ ld a, [PlayerID]
+ ld [hProduct], a
+ ld a, [$d47c]
+ ld [hMultiplicand], a
+ ld a, $a
+ ld [hMultiplier], a
+ ld b, $2
+ call Divide
+ ld a, [hMultiplier]
+ ret
+; b84b3
+
+Functionb84b3: ; b84b3
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld de, FishingGFX
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_b84c7
+ ld de, KrisFishingGFX
+
+.asm_b84c7
+ ld hl, $8020
+ call Functionb84e3
+ ld hl, $8060
+ call Functionb84e3
+ ld hl, $80a0
+ call Functionb84e3
+ ld hl, $8fc0
+ call Functionb84e3
+ pop af
+ ld [rVBK], a
+ ret
+; b84e3
+
+Functionb84e3: ; b84e3
+ ld bc, $2e02
+ push de
+ call Get2bpp
+ pop de
+ ld hl, $0020
+ add hl, de
+ ld d, h
+ ld e, l
+ ret
+; b84f2
+
+FishingGFX: ; b84f2
+INCBIN "baserom.gbc", $b84f2, $b8582 - $b84f2
+; b8582
+
+KrisFishingGFX: ; b8582
+INCBIN "baserom.gbc", $b8582, $b8612 - $b8582
+; b8612
+
+INCBIN "baserom.gbc", $b8612, $b8f8f - $b8612
Functionb8f8f: ; b8f8f
ld a, c
@@ -69701,7 +68170,40 @@ SECTION "bank2F",ROMX,BANK[$2F]
INCLUDE "engine/std_scripts.asm"
-INCBIN "baserom.gbc", $bd0d0, $be699-$bd0d0
+INCBIN "baserom.gbc", $bd0d0, $be66a - $bd0d0
+
+UnknownScript_0xbe66a: ; 0xbe66a
+ faceplayer
+ trainerstatus $2
+ iftrue $6698
+ loadtrainerdata
+ playrammusic
+ 2jump UnknownScript_0xbe68a
+; 0xbe675
+
+UnknownScript_0xbe675: ; 0xbe675
+ loadtrainerdata
+ playrammusic
+ showemote $0, $fe, 30
+ 3callasm BANK(Function831e), Function831e
+ applymovement2 $d007
+ writepersonxy $fe
+ faceperson $0, $fe
+ 2jump UnknownScript_0xbe68a
+; 0xbe68a
+
+UnknownScript_0xbe68a: ; 0xbe68a
+ loadfont
+ trainertext $0
+ closetext
+ loadmovesprites
+ loadtrainerdata
+ startbattle
+ returnafterbattle
+ trainerstatus $1
+ loadvar $d04d, $ff
+ scripttalkafter
+; 0xbe699
SECTION "bank30",ROMX,BANK[$30]
@@ -79400,75 +77902,341 @@ UpdateUsedMoves: ; 105ed0
-HallOfFame2: ; 0x105ef6
+Mobile_HallOfFame2: ; 0x105ef6
ret
+; 105ef7
-INCBIN "baserom.gbc", $105ef7, $105f33 - $105ef7
+Function105ef7: ; 105ef7
+ ld a, $5
+ call GetSRAMBank
+ ld hl, GameTimeHours
+ ld de, $a001
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $a010
+ ld de, $a005
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $a039
+ ld de, $a009
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $a01b
+ ld de, $a00d
+ ld bc, $0003
+ call CopyBytes
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f33
Function105f33: ; 105f33
ret
; 105f34
-INCBIN "baserom.gbc", $105f34, $105f79 - $105f34
+Function105f34: ; 105f34
+ ld a, $5
+ call GetSRAMBank
+ ld de, Buffer1
+ ld hl, $a07b
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_105f47
+ jr nc, .asm_105f4f
+ jr .asm_105f55
+
+.asm_105f47
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ dec hl
+ dec de
+ jr c, .asm_105f55
+
+.asm_105f4f
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ dec de
+ ld [hl], a
+
+.asm_105f55
+ ld hl, $a07d
+ ld a, [hli]
+ or [hl]
+ dec hl
+ jr z, .asm_105f6d
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_105f65
+ jr c, .asm_105f6d
+ jr .asm_105f72
+
+.asm_105f65
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr nc, .asm_105f72
+ dec hl
+ dec de
+
+.asm_105f6d
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+
+.asm_105f72
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f79
Function105f79: ; 105f79
ret
; 105f7a
-INCBIN "baserom.gbc", $105f7a, $106008 - $105f7a
+Function105f7a: ; 105f7a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [hProduct]
+ ld hl, $a07f
+ cp [hl]
+ jr z, .asm_105f8b
+ jr nc, .asm_105f92
+ jr .asm_105f98
+
+.asm_105f8b
+ inc hl
+ ld a, [hMultiplicand]
+ cp [hl]
+ jr c, .asm_105f98
+ dec hl
+
+.asm_105f92
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+
+.asm_105f98
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f9f
+
+Function105f9f: ; 105f9f
+ ret
+; 105fa0
+
+Function105fa0: ; 105fa0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a070
+ inc [hl]
+ jr nz, .asm_105fae
+ dec hl
+ inc [hl]
+ inc hl
+
+.asm_105fae
+ dec hl
+ ld a, [$a071]
+ cp [hl]
+ jr z, .asm_105fb9
+ jr c, .asm_105fc1
+ jr .asm_105fc9
+
+.asm_105fb9
+ inc hl
+ ld a, [$a072]
+ cp [hl]
+ jr nc, .asm_105fc9
+ dec hl
+
+.asm_105fc1
+ ld a, [hli]
+ ld [$a071], a
+ ld a, [hl]
+ ld [$a072], a
+
+.asm_105fc9
+ call Function106162
+ call CloseSRAM
+ ret
+; 105fd0
+
+Function105fd0: ; 105fd0
+ ret
+; 105fd1
+
+Function105fd1: ; 105fd1
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a06f
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call Function106162
+ call CloseSRAM
+ ret
+; 105fe3
+
+Function105fe3: ; 105fe3
+ ret
+; 105fe4
+
+Function105fe4: ; 105fe4
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a076
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hld], a
+ jr nc, .asm_106001
+ inc [hl]
+ jr nz, .asm_106001
+ dec hl
+ inc [hl]
+ jr nz, .asm_106001
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_106001
+ call Function106162
+ call CloseSRAM
+ ret
+; 106008
Function106008: ; 106008
ret
; 106009
-INCBIN "baserom.gbc", $106009, $106050 - $106009
+Function106009: ; 106009
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a07a
+ ld a, [bc]
+ dec bc
+ add [hl]
+ ld [hld], a
+ ld a, [bc]
+ dec bc
+ adc [hl]
+ ld [hld], a
+ ld a, [bc]
+ adc [hl]
+ ld [hld], a
+ jr nc, .asm_106027
+ inc [hl]
+ jr nz, .asm_106027
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.asm_106027
+ call Function106162
+ call CloseSRAM
+ ret
+; 10602e
+
+INCBIN "baserom.gbc", $10602e, $106050 - $10602e
Function106050: ; 106050
ret
; 106051
-INCBIN "baserom.gbc", $106051, $10605d - $106051
+Function106051: ; 106051
+ ld a, [BattleType]
+ cp $3
+ ret z
+ ld hl, $a01b
+ jp Function10611d
+; 10605d
Function10605d: ; 10605d
ret
; 10605e
-INCBIN "baserom.gbc", $10605e, $10606a - $10605e
+Function10605e: ; 10605e
+ ld a, [BattleType]
+ cp $3
+ ret z
+ ld hl, $a01e
+ jp Function10611d
+; 10606a
Function10606a: ; 10606a
ret
; 10606b
-INCBIN "baserom.gbc", $10606b, $106078 - $10606b
+Function10606b: ; 10606b
+ ld hl, $a021
+ jp Function10611d
+; 106071
-HallOfFame1: ; 0x106078
+INCBIN "baserom.gbc", $106071, $106078 - $106071
+
+Mobile_HallOfFame: ; 0x106078
ret
-INCBIN "baserom.gbc", $106079, $106086 - $106079
+Function106079: ; 106079
+ ld hl, $a027
+ jp Function10611d
+; 10607f
+
+INCBIN "baserom.gbc", $10607f, $106086 - $10607f
Function106086: ; 106086
ret
; 106087
-INCBIN "baserom.gbc", $106087, $106094 - $106087
+Function106087: ; 106087
+ ld hl, $a02d
+ jp Function10611d
+; 10608d
+
+INCBIN "baserom.gbc", $10608d, $106094 - $10608d
Function106094: ; 106094
ret
; 106095
-INCBIN "baserom.gbc", $106095, $1060a2 - $106095
+Function106095: ; 106095
+ ld hl, $a033
+ jp Function10611d
+; 10609b
+
+INCBIN "baserom.gbc", $10609b, $1060a2 - $10609b
Function1060a2: ; 1060a2
ret
; 1060a3
-INCBIN "baserom.gbc", $1060a3, $1060af - $1060a3
+Function1060a3: ; 1060a3
+ ld hl, $a039
+ jp Function10611d
+; 1060a9
+
+INCBIN "baserom.gbc", $1060a9, $1060af - $1060a9
Function1060af: ; 1060af
ret
@@ -79483,7 +78251,6 @@ Function1060b5: ; 1060b5
INCBIN "baserom.gbc", $1060b6, $1060bb - $1060b6
Function1060bb: ; 1060bb
-; commented out
ret
; 1060bc
@@ -79527,14 +78294,125 @@ Function106101: ; 106101
ret
; 106102
-INCBIN "baserom.gbc", $106102, $106107 - $106102
-
+Function106102: ; 106102
+ ld hl, $a066
+ jr Function10611d
+; 106107
Function106107: ; 106107
ret
; 106108
-INCBIN "baserom.gbc", $106108, $106187 - $106108
+Function106108: ; 106108
+ ld hl, $a069
+ jr Function10611d
+; 10610d
+
+Function10610d: ; 10610d
+ ret
+; 10610e
+
+Function10610e: ; 10610e
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, $a06c
+ jr Function10611d
+; 106117
+
+Function106117: ; 106117
+ push bc
+ ld bc, 3
+ jr Function10612d
+; 10611d
+
+Function10611d: ; 10611d
+ push bc
+ ld bc, 2
+ jr Function10612d
+; 106123
+
+Function106123: ; 106123
+ push bc
+ ld bc, 1
+ jr Function10612d
+; 106129
+
+Function106129: ; 106129
+ push bc
+ ld bc, 0
+
+Function10612d: ; 10612d
+ ld a, $5
+ call GetSRAMBank
+ push hl
+ push de
+ ld e, c
+ inc e
+.asm_106136
+ ld a, [hli]
+ inc a
+ jr nz, .asm_10613d
+ dec e
+ jr nz, .asm_106136
+
+.asm_10613d
+ pop de
+ pop hl
+ jr z, .asm_10614d
+ add hl, bc
+.asm_106142
+ inc [hl]
+ jr nz, .asm_10614d
+ ld a, c
+ and a
+ jr z, .asm_10614d
+ dec hl
+ dec c
+ jr .asm_106142
+
+.asm_10614d
+ call Function106162
+ call CloseSRAM
+ pop bc
+ ret
+; 106155
+
+INCBIN "baserom.gbc", $106155, $106162 - $106155
+
+Function106162: ; 106162
+ push de
+ call Function10616e
+ ld hl, $a081
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ pop de
+ ret
+; 10616e
+
+Function10616e: ; 10616e
+ push bc
+ ld hl, $a001
+ ld bc, $0080
+ xor a
+ ld de, $0000
+.asm_106179
+ ld a, e
+ add [hl]
+ ld e, a
+ jr nc, .asm_10617f
+ inc d
+
+.asm_10617f
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_106179
+ pop bc
+ ret
+; 106187
Function106187: ; 106187
@@ -80194,497 +79072,13 @@ SECTION "bank43",ROMX,BANK[$43]
INCBIN "baserom.gbc", $10c000, $10ed67 - $10c000
-_TitleScreen: ; 10ed67
-
- call WhiteBGMap
- call ClearSprites
- call ClearTileMap
-
-; Turn BG Map update off
- xor a
- ld [hBGMapMode], a
-
-; Reset timing variables
- ld hl, $cf63
- ld [hli], a ; cf63 ; Scene?
- ld [hli], a ; cf64
- ld [hli], a ; cf65 ; Timer lo
- ld [hl], a ; cf66 ; Timer hi
-
-; Turn LCD off
- call DisableLCD
-
-
-; VRAM bank 1
- ld a, 1
- ld [rVBK], a
-
-
-; Decompress running Suicune gfx
- ld hl, TitleSuicuneGFX
- ld de, VTiles1
- call Decompress
-
-
-; Clear screen palettes
- ld hl, VBGMap0
- ld bc, $0280
- xor a
- call ByteFill
-
-
-; Fill tile palettes:
-
-; BG Map 1:
-
-; line 0 (copyright)
- ld hl, VBGMap1
- ld bc, $0020 ; one row
- ld a, 7 ; palette
- call ByteFill
-
-
-; BG Map 0:
-
-; Apply logo gradient:
-
-; lines 3-4
- ld hl, $9860 ; (0,3)
- ld bc, $0040 ; 2 rows
- ld a, 2
- call ByteFill
-; line 5
- ld hl, $98a0 ; (0,5)
- ld bc, $0020 ; 1 row
- ld a, 3
- call ByteFill
-; line 6
- ld hl, $98c0 ; (0,6)
- ld bc, $0020 ; 1 row
- ld a, 4
- call ByteFill
-; line 7
- ld hl, $98e0 ; (0,7)
- ld bc, $0020 ; 1 row
- ld a, 5
- call ByteFill
-; lines 8-9
- ld hl, $9900 ; (0,8)
- ld bc, $0040 ; 2 rows
- ld a, 6
- call ByteFill
-
-
-; 'CRYSTAL VERSION'
- ld hl, $9925 ; (5,9)
- ld bc, $000b ; length of version text
- ld a, 1
- call ByteFill
-
-; Suicune gfx
- ld hl, $9980 ; (0,12)
- ld bc, $00c0 ; the rest of the screen
- ld a, 8
- call ByteFill
-
-
-; Back to VRAM bank 0
- ld a, $0
- ld [rVBK], a
-
-
-; Decompress logo
- ld hl, TitleLogoGFX
- ld de, VTiles1
- call Decompress
-
-; Decompress background crystal
- ld hl, TitleCrystalGFX
- ld de, VTiles0
- call Decompress
-
-
-; Clear screen tiles
- ld hl, VBGMap0
- ld bc, $0800
- ld a, $7f
- call ByteFill
-
-; Draw Pokemon logo
- ld hl, $c4dc ; TileMap(0,3)
- ld bc, $0714 ; 20x7
- ld d, $80
- ld e, $14
- call DrawGraphic
-
-; Draw copyright text
- ld hl, $9c03 ; BGMap1(3,0)
- ld bc, $010d ; 13x1
- ld d, $c
- ld e, $10
- call DrawGraphic
-
-; Initialize running Suicune?
- ld d, $0
- call Function10eed2
-
-; Initialize background crystal
- call Function10ef06
-
-; Save WRAM bank
- ld a, [rSVBK]
- push af
-; WRAM bank 5
- ld a, 5
- ld [rSVBK], a
-
-; Update palette colors
- ld hl, TitleScreenPalettes
- ld de, $d000
- ld bc, $0080
- call CopyBytes
-
- ld hl, TitleScreenPalettes
- ld de, $d080
- ld bc, $0080
- call CopyBytes
-
-; Restore WRAM bank
- pop af
- ld [rSVBK], a
-
-
-; LY/SCX trickery starts here
-
- ld a, [rSVBK]
- push af
- ld a, 5 ; BANK(LYOverrides)
- ld [rSVBK], a
-
-; Make alternating lines come in from opposite sides
-
-; ( This part is actually totally pointless, you can't
-; see anything until these values are overwritten! )
-
- ld b, 80 / 2 ; alternate for 80 lines
- ld hl, LYOverrides
-.loop
-; $00 is the middle position
- ld [hl], +112 ; coming from the left
- inc hl
- ld [hl], -112 ; coming from the right
- inc hl
- dec b
- jr nz, .loop
-
-; Make sure the rest of the buffer is empty
- ld hl, LYOverrides + 80
- xor a
- ld bc, LYOverridesEnd - (LYOverrides + 80)
- call ByteFill
-
-; Let LCD Stat know we're messing around with SCX
- ld a, rSCX - rJOYP
- ld [hLCDStatCustom], a
-
- pop af
- ld [rSVBK], a
-
-
-; Reset audio
- call ChannelsOff
- call EnableLCD
-
-; Set sprite size to 8x16
- ld a, [rLCDC]
- set 2, a
- ld [rLCDC], a
-
- ld a, +112
- ld [hSCX], a
- ld a, 8
- ld [hSCY], a
- ld a, 7
- ld [hWX], a
- ld a, -112
- ld [hWY], a
-
- ld a, $1
- ld [hCGBPalUpdate], a
-
-; Update BG Map 0 (bank 0)
- ld [hBGMapMode], a
-
- xor a
- ld [DefaultFlypoint], a
-
-; Play starting sound effect
- call SFXChannelsOff
- ld de, SFX_TITLE_SCREEN_ENTRANCE
- call StartSFX
-
- ret
-; 10eea7
-
-Function10eea7: ; 10eea7
- ld hl, DefaultFlypoint
- ld a, [hl]
- ld c, a
- inc [hl]
- and $7
- ret nz
- ld a, c
- and $18
- sla a
- swap a
- ld e, a
- ld d, $0
- ld hl, $6ece
- add hl, de
- ld d, [hl]
- xor a
- ld [hBGMapMode], a
- call Function10eed2
- ld a, $1
- ld [hBGMapMode], a
- ld a, $3
- ld [hBGMapThird], a
- ret
-; 10eece
+INCLUDE "engine/title.asm"
-INCBIN "baserom.gbc", $10eece, $10eed2 - $10eece
-
-
-Function10eed2: ; 10eed2
- ld hl, $c596
- ld b, $6
-.asm_10eed7
- ld c, $8
-.asm_10eed9
- ld a, d
- ld [hli], a
- inc d
- dec c
- jr nz, .asm_10eed9
- ld a, $c
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, $8
- add d
- ld d, a
- dec b
- jr nz, .asm_10eed7
- ret
-; 10eeef
-
-Function10eeef: ; 10eeef
-.asm_10eeef
- push de
- push bc
- push hl
-.asm_10eef2
- ld a, d
- ld [hli], a
- inc d
- dec c
- jr nz, .asm_10eef2
- pop hl
- ld bc, $0014
- add hl, bc
- pop bc
- pop de
- ld a, e
- add d
- ld d, a
- dec b
- jr nz, .asm_10eeef
- ret
-; 10ef06
-
-Function10ef06: ; 10ef06
- ld hl, Sprites
- ld d, $de
- ld e, $0
- ld c, $5
-.asm_10ef0f
- push bc
- call Function10ef1c
- pop bc
- ld a, $10
- add d
- ld d, a
- dec c
- jr nz, .asm_10ef0f
- ret
-; 10ef1c
-
-Function10ef1c: ; 10ef1c
- ld c, $6
- ld b, $40
-.asm_10ef20
- ld a, d
- ld [hli], a
- ld a, b
- ld [hli], a
- add $8
- ld b, a
- ld a, e
- ld [hli], a
- inc e
- inc e
- ld a, $80
- ld [hli], a
- dec c
- jr nz, .asm_10ef20
- ret
-; 10ef32
-
-
-AnimateTitleCrystal: ; 10ef32
-; Move the title screen crystal downward until it's fully visible
-
-; Stop at y=6
-; y is really from the bottom of the sprite, which is two tiles high
- ld hl, Sprites
- ld a, [hl]
- cp 6 + 16
- ret z
-
-; Move all 30 parts of the crystal down by 2
- ld c, 30
-.loop
- ld a, [hl]
- add 2
- ld [hli], a
- inc hl
- inc hl
- inc hl
- dec c
- jr nz, .loop
-
- ret
-; 10ef46
-
-TitleSuicuneGFX: ; 10ef46
-INCBIN "gfx/title/suicune.lz"
-; 10f31b
-
-INCBIN "baserom.gbc", $10f31b, $10f326 - $10f31b
-
-TitleLogoGFX: ; 10f326
-INCBIN "gfx/title/logo.lz"
-; 10fced
-
-INCBIN "baserom.gbc", $10fced, $10fcee - $10fced
-
-TitleCrystalGFX: ; 10fcee
-INCBIN "gfx/title/crystal.lz"
-; 10fed7
-
-INCBIN "baserom.gbc", $10fed7, $10fede - $10fed7
-
-TitleScreenPalettes:
-; BG
- RGB 00, 00, 00
- RGB 19, 00, 00
- RGB 15, 08, 31
- RGB 15, 08, 31
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 15, 16, 31
- RGB 31, 01, 13
-
- RGB 00, 00, 00
- RGB 07, 07, 07
- RGB 31, 31, 31
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 13, 13, 13
- RGB 31, 31, 18
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 19, 19, 19
- RGB 29, 28, 12
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 25, 25, 25
- RGB 28, 25, 06
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 26, 21, 00
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 11, 11, 19
- RGB 31, 31, 31
- RGB 00, 00, 00
-
-; OBJ
- RGB 00, 00, 00
- RGB 10, 00, 15
- RGB 17, 05, 22
- RGB 19, 09, 31
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
SECTION "bank44",ROMX,BANK[$44]
-INCBIN "baserom.gbc", $110000, $110fad - $110000
-
-URIPrefix: ; 0x110fad
- ascii "http://"
-HTTPDownloadURL: ; 0x110fb4
- ascii "gameboy.datacenter.ne.jp/cgb/download"
-HTTPUploadURL: ; 0x110fd9
- ascii "gameboy.datacenter.ne.jp/cgb/upload"
-HTTPUtilityURL: ; 0x110ffc
- ascii "gameboy.datacenter.ne.jp/cgb/utility"
-HTTPRankingURL: ; 0x111020
- ascii "gameboy.datacenter.ne.jp/cgb/ranking"
+INCLUDE "lib/mobile/main.asm"
-INCBIN "baserom.gbc", $111044, $113f84 - $111044
SECTION "bank45",ROMX,BANK[$45]
diff --git a/menu/mon_icons.asm b/menu/mon_icons.asm
new file mode 100644
index 000000000..52e27c0ce
--- /dev/null
+++ b/menu/mon_icons.asm
@@ -0,0 +1,349 @@
+ReadMonMenuIcon: ; 8eab3
+ cp EGG
+ jr z, .egg
+ dec a
+ ld hl, MonMenuIcons
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ ret
+.egg
+ ld a, ICON_EGG
+ ret
+; 8eac4
+
+MonMenuIcons: ; 8eac4
+ db ICON_BULBASAUR ; BULBASAUR
+ db ICON_BULBASAUR ; IVYSAUR
+ db ICON_BULBASAUR ; VENUSAUR
+ db ICON_CHARMANDER ; CHARMANDER
+ db ICON_CHARMANDER ; CHARMELEON
+ db ICON_BIGMON ; CHARIZARD
+ db ICON_SQUIRTLE ; SQUIRTLE
+ db ICON_SQUIRTLE ; WARTORTLE
+ db ICON_SQUIRTLE ; BLASTOISE
+ db ICON_CATERPILLAR ; CATERPIE
+ db ICON_CATERPILLAR ; METAPOD
+ db ICON_MOTH ; BUTTERFREE
+ db ICON_CATERPILLAR ; WEEDLE
+ db ICON_CATERPILLAR ; KAKUNA
+ db ICON_BUG ; BEEDRILL
+ db ICON_BIRD ; PIDGEY
+ db ICON_BIRD ; PIDGEOTTO
+ db ICON_BIRD ; PIDGEOT
+ db ICON_FOX ; RATTATA
+ db ICON_FOX ; RATICATE
+ db ICON_BIRD ; SPEAROW
+ db ICON_BIRD ; FEAROW
+ db ICON_SERPENT ; EKANS
+ db ICON_SERPENT ; ARBOK
+ db ICON_PIKACHU ; PIKACHU
+ db ICON_PIKACHU ; RAICHU
+ db ICON_MONSTER ; SANDSHREW
+ db ICON_MONSTER ; SANDSLASH
+ db ICON_FOX ; NIDORAN_F
+ db ICON_FOX ; NIDORINA
+ db ICON_MONSTER ; NIDOQUEEN
+ db ICON_FOX ; NIDORAN_M
+ db ICON_FOX ; NIDORINO
+ db ICON_MONSTER ; NIDOKING
+ db ICON_CLEFAIRY ; CLEFAIRY
+ db ICON_CLEFAIRY ; CLEFABLE
+ db ICON_FOX ; VULPIX
+ db ICON_FOX ; NINETALES
+ db ICON_JIGGLYPUFF ; JIGGLYPUFF
+ db ICON_JIGGLYPUFF ; WIGGLYTUFF
+ db ICON_BAT ; ZUBAT
+ db ICON_BAT ; GOLBAT
+ db ICON_ODDISH ; ODDISH
+ db ICON_ODDISH ; GLOOM
+ db ICON_ODDISH ; VILEPLUME
+ db ICON_BUG ; PARAS
+ db ICON_BUG ; PARASECT
+ db ICON_CATERPILLAR ; VENONAT
+ db ICON_MOTH ; VENOMOTH
+ db ICON_DIGLETT ; DIGLETT
+ db ICON_DIGLETT ; DUGTRIO
+ db ICON_FOX ; MEOWTH
+ db ICON_FOX ; PERSIAN
+ db ICON_MONSTER ; PSYDUCK
+ db ICON_MONSTER ; GOLDUCK
+ db ICON_FIGHTER ; MANKEY
+ db ICON_FIGHTER ; PRIMEAPE
+ db ICON_FOX ; GROWLITHE
+ db ICON_FOX ; ARCANINE
+ db ICON_POLIWAG ; POLIWAG
+ db ICON_POLIWAG ; POLIWHIRL
+ db ICON_POLIWAG ; POLIWRATH
+ db ICON_HUMANSHAPE ; ABRA
+ db ICON_HUMANSHAPE ; KADABRA
+ db ICON_HUMANSHAPE ; ALAKAZAM
+ db ICON_FIGHTER ; MACHOP
+ db ICON_FIGHTER ; MACHOKE
+ db ICON_FIGHTER ; MACHAMP
+ db ICON_ODDISH ; BELLSPROUT
+ db ICON_ODDISH ; WEEPINBELL
+ db ICON_ODDISH ; VICTREEBEL
+ db ICON_JELLYFISH ; TENTACOOL
+ db ICON_JELLYFISH ; TENTACRUEL
+ db ICON_GEODUDE ; GEODUDE
+ db ICON_GEODUDE ; GRAVELER
+ db ICON_GEODUDE ; GOLEM
+ db ICON_EQUINE ; PONYTA
+ db ICON_EQUINE ; RAPIDASH
+ db ICON_SLOWPOKE ; SLOWPOKE
+ db ICON_SLOWPOKE ; SLOWBRO
+ db ICON_VOLTORB ; MAGNEMITE
+ db ICON_VOLTORB ; MAGNETON
+ db ICON_BIRD ; FARFETCH_D
+ db ICON_BIRD ; DODUO
+ db ICON_BIRD ; DODRIO
+ db ICON_LAPRAS ; SEEL
+ db ICON_LAPRAS ; DEWGONG
+ db ICON_BLOB ; GRIMER
+ db ICON_BLOB ; MUK
+ db ICON_SHELL ; SHELLDER
+ db ICON_SHELL ; CLOYSTER
+ db ICON_GHOST ; GASTLY
+ db ICON_GHOST ; HAUNTER
+ db ICON_GHOST ; GENGAR
+ db ICON_SERPENT ; ONIX
+ db ICON_HUMANSHAPE ; DROWZEE
+ db ICON_HUMANSHAPE ; HYPNO
+ db ICON_SHELL ; KRABBY
+ db ICON_SHELL ; KINGLER
+ db ICON_VOLTORB ; VOLTORB
+ db ICON_VOLTORB ; ELECTRODE
+ db ICON_ODDISH ; EXEGGCUTE
+ db ICON_ODDISH ; EXEGGUTOR
+ db ICON_MONSTER ; CUBONE
+ db ICON_MONSTER ; MAROWAK
+ db ICON_FIGHTER ; HITMONLEE
+ db ICON_FIGHTER ; HITMONCHAN
+ db ICON_MONSTER ; LICKITUNG
+ db ICON_BLOB ; KOFFING
+ db ICON_BLOB ; WEEZING
+ db ICON_EQUINE ; RHYHORN
+ db ICON_MONSTER ; RHYDON
+ db ICON_CLEFAIRY ; CHANSEY
+ db ICON_ODDISH ; TANGELA
+ db ICON_MONSTER ; KANGASKHAN
+ db ICON_FISH ; HORSEA
+ db ICON_FISH ; SEADRA
+ db ICON_FISH ; GOLDEEN
+ db ICON_FISH ; SEAKING
+ db ICON_STARYU ; STARYU
+ db ICON_STARYU ; STARMIE
+ db ICON_HUMANSHAPE ; MR__MIME
+ db ICON_BUG ; SCYTHER
+ db ICON_HUMANSHAPE ; JYNX
+ db ICON_HUMANSHAPE ; ELECTABUZZ
+ db ICON_HUMANSHAPE ; MAGMAR
+ db ICON_BUG ; PINSIR
+ db ICON_EQUINE ; TAUROS
+ db ICON_FISH ; MAGIKARP
+ db ICON_GYARADOS ; GYARADOS
+ db ICON_LAPRAS ; LAPRAS
+ db ICON_BLOB ; DITTO
+ db ICON_FOX ; EEVEE
+ db ICON_FOX ; VAPOREON
+ db ICON_FOX ; JOLTEON
+ db ICON_FOX ; FLAREON
+ db ICON_VOLTORB ; PORYGON
+ db ICON_SHELL ; OMANYTE
+ db ICON_SHELL ; OMASTAR
+ db ICON_SHELL ; KABUTO
+ db ICON_SHELL ; KABUTOPS
+ db ICON_BIRD ; AERODACTYL
+ db ICON_SNORLAX ; SNORLAX
+ db ICON_BIRD ; ARTICUNO
+ db ICON_BIRD ; ZAPDOS
+ db ICON_BIRD ; MOLTRES
+ db ICON_SERPENT ; DRATINI
+ db ICON_SERPENT ; DRAGONAIR
+ db ICON_BIGMON ; DRAGONITE
+ db ICON_HUMANSHAPE ; MEWTWO
+ db ICON_HUMANSHAPE ; MEW
+ db ICON_ODDISH ; CHIKORITA
+ db ICON_ODDISH ; BAYLEEF
+ db ICON_ODDISH ; MEGANIUM
+ db ICON_FOX ; CYNDAQUIL
+ db ICON_FOX ; QUILAVA
+ db ICON_FOX ; TYPHLOSION
+ db ICON_MONSTER ; TOTODILE
+ db ICON_MONSTER ; CROCONAW
+ db ICON_MONSTER ; FERALIGATR
+ db ICON_FOX ; SENTRET
+ db ICON_FOX ; FURRET
+ db ICON_BIRD ; HOOTHOOT
+ db ICON_BIRD ; NOCTOWL
+ db ICON_BUG ; LEDYBA
+ db ICON_BUG ; LEDIAN
+ db ICON_BUG ; SPINARAK
+ db ICON_BUG ; ARIADOS
+ db ICON_BAT ; CROBAT
+ db ICON_FISH ; CHINCHOU
+ db ICON_FISH ; LANTURN
+ db ICON_PIKACHU ; PICHU
+ db ICON_CLEFAIRY ; CLEFFA
+ db ICON_JIGGLYPUFF ; IGGLYBUFF
+ db ICON_CLEFAIRY ; TOGEPI
+ db ICON_BIRD ; TOGETIC
+ db ICON_BIRD ; NATU
+ db ICON_BIRD ; XATU
+ db ICON_FOX ; MAREEP
+ db ICON_MONSTER ; FLAAFFY
+ db ICON_MONSTER ; AMPHAROS
+ db ICON_ODDISH ; BELLOSSOM
+ db ICON_JIGGLYPUFF ; MARILL
+ db ICON_JIGGLYPUFF ; AZUMARILL
+ db ICON_SUDOWOODO ; SUDOWOODO
+ db ICON_POLIWAG ; POLITOED
+ db ICON_ODDISH ; HOPPIP
+ db ICON_ODDISH ; SKIPLOOM
+ db ICON_ODDISH ; JUMPLUFF
+ db ICON_MONSTER ; AIPOM
+ db ICON_ODDISH ; SUNKERN
+ db ICON_ODDISH ; SUNFLORA
+ db ICON_BUG ; YANMA
+ db ICON_MONSTER ; WOOPER
+ db ICON_MONSTER ; QUAGSIRE
+ db ICON_FOX ; ESPEON
+ db ICON_FOX ; UMBREON
+ db ICON_BIRD ; MURKROW
+ db ICON_SLOWPOKE ; SLOWKING
+ db ICON_GHOST ; MISDREAVUS
+ db ICON_UNOWN ; UNOWN
+ db ICON_GHOST ; WOBBUFFET
+ db ICON_EQUINE ; GIRAFARIG
+ db ICON_BUG ; PINECO
+ db ICON_BUG ; FORRETRESS
+ db ICON_SERPENT ; DUNSPARCE
+ db ICON_BUG ; GLIGAR
+ db ICON_SERPENT ; STEELIX
+ db ICON_MONSTER ; SNUBBULL
+ db ICON_MONSTER ; GRANBULL
+ db ICON_FISH ; QWILFISH
+ db ICON_BUG ; SCIZOR
+ db ICON_BUG ; SHUCKLE
+ db ICON_BUG ; HERACROSS
+ db ICON_FOX ; SNEASEL
+ db ICON_MONSTER ; TEDDIURSA
+ db ICON_MONSTER ; URSARING
+ db ICON_BLOB ; SLUGMA
+ db ICON_BLOB ; MAGCARGO
+ db ICON_EQUINE ; SWINUB
+ db ICON_EQUINE ; PILOSWINE
+ db ICON_SHELL ; CORSOLA
+ db ICON_FISH ; REMORAID
+ db ICON_FISH ; OCTILLERY
+ db ICON_MONSTER ; DELIBIRD
+ db ICON_FISH ; MANTINE
+ db ICON_BIRD ; SKARMORY
+ db ICON_FOX ; HOUNDOUR
+ db ICON_FOX ; HOUNDOOM
+ db ICON_BIGMON ; KINGDRA
+ db ICON_EQUINE ; PHANPY
+ db ICON_EQUINE ; DONPHAN
+ db ICON_VOLTORB ; PORYGON2
+ db ICON_EQUINE ; STANTLER
+ db ICON_MONSTER ; SMEARGLE
+ db ICON_FIGHTER ; TYROGUE
+ db ICON_FIGHTER ; HITMONTOP
+ db ICON_HUMANSHAPE ; SMOOCHUM
+ db ICON_HUMANSHAPE ; ELEKID
+ db ICON_HUMANSHAPE ; MAGBY
+ db ICON_EQUINE ; MILTANK
+ db ICON_CLEFAIRY ; BLISSEY
+ db ICON_FOX ; RAIKOU
+ db ICON_FOX ; ENTEI
+ db ICON_FOX ; SUICUNE
+ db ICON_MONSTER ; LARVITAR
+ db ICON_MONSTER ; PUPITAR
+ db ICON_MONSTER ; TYRANITAR
+ db ICON_LUGIA ; LUGIA
+ db ICON_HO_OH ; HO_OH
+ db ICON_HUMANSHAPE ; CELEBI
+
+IconPointers:
+ dw NullIcon
+ dw PoliwagIcon
+ dw JigglypuffIcon
+ dw DiglettIcon
+ dw PikachuIcon
+ dw StaryuIcon
+ dw FishIcon
+ dw BirdIcon
+ dw MonsterIcon
+ dw ClefairyIcon
+ dw OddishIcon
+ dw BugIcon
+ dw GhostIcon
+ dw LaprasIcon
+ dw HumanshapeIcon
+ dw FoxIcon
+ dw EquineIcon
+ dw ShellIcon
+ dw BlobIcon
+ dw SerpentIcon
+ dw VoltorbIcon
+ dw SquirtleIcon
+ dw BulbasaurIcon
+ dw CharmanderIcon
+ dw CaterpillarIcon
+ dw UnownIcon
+ dw GeodudeIcon
+ dw FighterIcon
+ dw EggIcon
+ dw JellyfishIcon
+ dw MothIcon
+ dw BatIcon
+ dw SnorlaxIcon
+ dw HoOhIcon
+ dw LugiaIcon
+ dw GyaradosIcon
+ dw SlowpokeIcon
+ dw SudowoodoIcon
+ dw BigmonIcon
+
+NullIcon:
+PoliwagIcon: INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d
+JigglypuffIcon: INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d
+DiglettIcon: INCBIN "gfx/icon/diglett.2bpp" ; 0x8ed0d
+PikachuIcon: INCBIN "gfx/icon/pikachu.2bpp" ; 0x8ed8d
+StaryuIcon: INCBIN "gfx/icon/staryu.2bpp" ; 0x8ee0d
+FishIcon: INCBIN "gfx/icon/fish.2bpp" ; 0x8ee8d
+BirdIcon: INCBIN "gfx/icon/bird.2bpp" ; 0x8ef0d
+MonsterIcon: INCBIN "gfx/icon/monster.2bpp" ; 0x8ef8d
+ClefairyIcon: INCBIN "gfx/icon/clefairy.2bpp" ; 0x8f00d
+OddishIcon: INCBIN "gfx/icon/oddish.2bpp" ; 0x8f08d
+BugIcon: INCBIN "gfx/icon/bug.2bpp" ; 0x8f10d
+GhostIcon: INCBIN "gfx/icon/ghost.2bpp" ; 0x8f18d
+LaprasIcon: INCBIN "gfx/icon/lapras.2bpp" ; 0x8f20d
+HumanshapeIcon: INCBIN "gfx/icon/humanshape.2bpp" ; 0x8f28d
+FoxIcon: INCBIN "gfx/icon/fox.2bpp" ; 0x8f30d
+EquineIcon: INCBIN "gfx/icon/equine.2bpp" ; 0x8f38d
+ShellIcon: INCBIN "gfx/icon/shell.2bpp" ; 0x8f40d
+BlobIcon: INCBIN "gfx/icon/blob.2bpp" ; 0x8f48d
+SerpentIcon: INCBIN "gfx/icon/serpent.2bpp" ; 0x8f50d
+VoltorbIcon: INCBIN "gfx/icon/voltorb.2bpp" ; 0x8f58d
+SquirtleIcon: INCBIN "gfx/icon/squirtle.2bpp" ; 0x8f60d
+BulbasaurIcon: INCBIN "gfx/icon/bulbasaur.2bpp" ; 0x8f68d
+CharmanderIcon: INCBIN "gfx/icon/charmander.2bpp" ; 0x8f70d
+CaterpillarIcon: INCBIN "gfx/icon/caterpillar.2bpp" ; 0x8f78d
+UnownIcon: INCBIN "gfx/icon/unown.2bpp" ; 0x8f80d
+GeodudeIcon: INCBIN "gfx/icon/geodude.2bpp" ; 0x8f88d
+FighterIcon: INCBIN "gfx/icon/fighter.2bpp" ; 0x8f90d
+EggIcon: INCBIN "gfx/icon/egg.2bpp" ; 0x8f98d
+JellyfishIcon: INCBIN "gfx/icon/jellyfish.2bpp" ; 0x8fa0d
+MothIcon: INCBIN "gfx/icon/moth.2bpp" ; 0x8fa8d
+BatIcon: INCBIN "gfx/icon/bat.2bpp" ; 0x8fb0d
+SnorlaxIcon: INCBIN "gfx/icon/snorlax.2bpp" ; 0x8fb8d
+HoOhIcon: INCBIN "gfx/icon/ho_oh.2bpp" ; 0x8fc0d
+LugiaIcon: INCBIN "gfx/icon/lugia.2bpp" ; 0x8fc8d
+GyaradosIcon: INCBIN "gfx/icon/gyarados.2bpp" ; 0x8fd0d
+SlowpokeIcon: INCBIN "gfx/icon/slowpoke.2bpp" ; 0x8fd8d
+SudowoodoIcon: INCBIN "gfx/icon/sudowoodo.2bpp" ; 0x8fe0d
+BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d
+
diff --git a/predef/cgb.asm b/predef/cgb.asm
index aadc66a3d..78f7d9060 100644
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -224,7 +224,7 @@ Function8edb: ; 8edb
call Function9643
ld hl, $68ca
call Function9643
- ld hl, $4f52
+ ld hl, Palette8f52
ld de, $d018
ld bc, $0018
ld a, $5
@@ -257,7 +257,24 @@ Function8edb: ; 8edb
ret
; 8f52
-INCBIN "baserom.gbc", $8f52, $8f70 - $8f52
+Palette8f52: ; 8f52
+ RGB 31, 31, 31
+ RGB 31, 19, 31
+ RGB 31, 15, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 31, 14
+ RGB 17, 31, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 31, 31
+ RGB 17, 31, 31
+ RGB 00, 00, 00
+; 8f6a
+
+INCBIN "baserom.gbc", $8f6a, $8f70 - $8f6a
Function8f70: ; 8f70
ld de, Unkn1Pals
@@ -267,7 +284,7 @@ Function8f70: ; 8f70
ld a, [CurPartySpecies]
cp $ff
jr nz, .asm_8f8a
- ld hl, $4fba
+ ld hl, Palette8fba
call Function9630
jr .asm_8f90
@@ -282,7 +299,7 @@ Function8f70: ; 8f70
ld a, $1
call Function9663
call Function971a
- ld hl, $4fc2
+ ld hl, Palette8fc2
ld de, $d078
ld bc, $0008
ld a, $5
@@ -294,7 +311,18 @@ Function8f70: ; 8f70
ret
; 8fba
-INCBIN "baserom.gbc", $8fba, $8fca - $8fba
+Palette8fba: ; 8fba
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 06, 16, 03
+ RGB 05, 12, 01
+
+Palette8fc2: ; 8fc2
+ RGB 00, 00, 00
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 00, 00, 00
+; 8fca
Function8fca: ; 8fca
ld de, Unkn1Pals
@@ -304,7 +332,7 @@ Function8fca: ; 8fca
ld a, [CurPartySpecies]
cp $ff
jr nz, .asm_8fe4
- ld hl, $5036
+ ld hl, Palette9036
call Function9630
jr .asm_8fed
@@ -327,7 +355,14 @@ Function8fca: ; 8fca
ret
; 9009
-INCBIN "baserom.gbc", $9009, $903e - $9009
+INCBIN "baserom.gbc", $9009, $9036 - $9009
+
+Palette9036: ; 9036
+ RGB 31, 15, 00
+ RGB 23, 12, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+; 903e
Function903e: ; 903e
ld de, Unkn1Pals
@@ -351,7 +386,7 @@ Function903e: ; 903e
; 906e
Function906e: ; 906e
- ld hl, $77a9
+ ld hl, Paletteb7a9
ld de, Unkn1Pals
ld bc, $0080
ld a, $5
@@ -889,7 +924,7 @@ Function9578: ; 9578
; 9591
Function9591: ; 9591
- ld hl, $55e0
+ ld hl, Palette95e0
ld de, Unkn1Pals
ld bc, $0010
ld a, $5
@@ -920,3 +955,15 @@ Function9591: ; 9591
ret
; 95e0
+Palette95e0: ; 95e0
+ RGB 31, 31, 31
+ RGB 16, 31, 14
+ RGB 05, 14, 21
+ RGB 05, 13, 10
+
+ RGB 31, 31, 31
+ RGB 11, 21, 25
+ RGB 05, 14, 21
+ RGB 00, 03, 19
+; 95f0
+