pokered/pokered.asm

7864 lines
131 KiB
NASM
Raw Normal View History

INCLUDE "constants.asm"
; the rst vectors are unused
SECTION "rst00",HOME[0]
db $FF
SECTION "rst08",HOME[8]
db $FF
SECTION "rst10",HOME[$10]
db $FF
SECTION "rst18",HOME[$18]
db $FF
SECTION "rst20",HOME[$20]
db $FF
SECTION "rst28",HOME[$28]
db $FF
SECTION "rst30",HOME[$30]
db $FF
SECTION "rst38",HOME[$38]
db $FF
; interrupts
SECTION "vblank",HOME[$40]
jp $2024
SECTION "lcdc",HOME[$48]
db $FF
SECTION "timer",HOME[$50]
jp $2306
SECTION "serial",HOME[$58]
jp $2125
SECTION "joypad",HOME[$60]
reti
SECTION "bank0",HOME[$61]
INCBIN "baserom.gbc",$61,$9D-$61
FarCopyData: ; 009D
; copy bc bytes of data from a:hl to de
ld [$CEE9],a ; save future bank # for later
ld a,[$FFB8] ; get current bank #
push af
ld a,[$CEE9] ; get future bank #, switch
ld [$FFB8],a
ld [$2000],a
call CopyData
pop af ; okay, done, time to switch back
ld [$FFB8],a
ld [$2000],a
ret
CopyData: ; 00B5
; 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
SECTION "romheader",HOME[$100]
nop
jp Start
Section "start",HOME[$150]
Start:
INCBIN "baserom.gbc",$150,$1AE - $150
; see also MapHeaderBanks
MapHeaderPointers: ; $01AE
dw $42a1 ; PALLET_TOWN
dw $4357 ; VIRIDIAN_CITY
dw $4554 ; PEWTER_CITY
dw $474e ; CERULEAN_CITY
dw $4000 ; LAVENDER_TOWN
dw $4998 ; VERMILION_CITY
dw $4000 ; CELADON_CITY
dw $4ba7 ; FUCHSIA_CITY
dw $4000 ; CINNABAR_ISLAND
dw $491e ; INDIGO_PLATEAU
dw $49a4 ; SAFFRON_CITY
dw $49a4 ; unused
dw $40c3 ; ROUTE_1
dw $4000 ; ROUTE_2
dw $41e6 ; ROUTE_3
dw $4390 ; ROUTE_4
dw $4581 ; ROUTE_5
dw $4000 ; ROUTE_6
dw $4000 ; ROUTE_7
dw $412d ; ROUTE_8
dw $4686 ; ROUTE_9
dw $42d4 ; ROUTE_10
dw $44be ; ROUTE_11
dw $466d ; ROUTE_12
dw $480c ; ROUTE_13
dw $4999 ; ROUTE_14
dw $492c ; ROUTE_15
dw $4ada ; ROUTE_16
dw $4b20 ; ROUTE_17
dw $4c38 ; ROUTE_18
dw $4e78 ; ROUTE_19
dw $40f1 ; ROUTE_20
dw $4fff ; ROUTE_21
dw $4000 ; ROUTE_22
dw $433f ; ROUTE_23
dw $4682 ; ROUTE_24
dw $479b ; ROUTE_25
dw $415c ; REDS_HOUSE_1F
dw $40a4
dw $5b2f
dw $4b02
dw $4251
dw $5462
dw $5540
dw $557d
dw $4897
dw $5ea4
dw $557b
dw $5ee1
dw $55c8
dw $5650
dw $5101
dw $40eb
dw $430b
dw $437b
dw $55e7
dw $4ca1
dw $563c
dw $457b
dw $59bc
dw $5a36
dw $5cff
dw $5679
dw $56ea
dw $4639
dw $46a7
dw $5730
dw $4889
dw $52c3
dw $5679
dw $5f27
dw $569d
dw $6243
dw $6031
dw $56e3
dw $56e3
dw $60f4
dw $5720
dw $575d
dw $61bb
dw $627d
dw $53ae
dw $44d0
dw $62ba
dw $5400
dw $65ae
dw $5448
dw $54f8
dw $675e
dw $4983
dw $5b64
dw $49d5
dw $4a1a
dw $5af0
dw $5b46
dw $5259
dw $5393
dw $4926
dw $5622
dw $56a2
dw $57a7
dw $5889
dw $596a
dw $5b3f
dw $5d49
dw $62a2
dw $62a2
dw $62a2
dw $59fe
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $62a2
dw $6492
dw $5f1a
dw $5f11
dw $5f3e
dw $4f7a
dw $60e9
dw $4219
dw $434a
dw $43c9
dw $45f4
dw $4688
dw $472e
dw $4784
dw $485f
dw $5d2e
dw $48ac
dw $48fe
dw $4bb1
dw $505d
dw $50e4
dw $5145
dw $5202
dw $525d
dw $48ce
dw $4420
dw $44e6
dw $46c0
dw $47ea
dw $4926
dw $4ae3
dw $4cf9
dw $589c
dw $4920
dw $59a2
dw $5d7c
dw $500c
dw $5057
dw $50a9
dw $51c1
dw $5431
dw $56d7
dw $6309
dw $6445
dw $6581
dw $678d
dw $6064
dw $6170
dw $42a3
dw $573e
dw $5b80
dw $5c15
dw $5c7b
dw $5d25
dw $5e20
dw $5e72
dw $5e72
dw $5c4f
dw $5eb7
dw $4c65
dw $4d51
dw $5001
dw $5dd1
dw $53fd
dw $5442
dw $5529
dw $5e30
dw $55f6
dw $563e
dw $56b2
dw $57ff
dw $65ec
dw $6473
dw $586a
dw $5969
dw $47dd
dw $6677
dw $5791
dw $5554
dw $5c06
dw $5f62
dw $4974
dw $4bbe
dw $4e1b
dw $5219
dw $5451
dw $5704
dw $5704
dw $5704
dw $5704
dw $5ce5
dw $5f4f
dw $5cff
dw $5f2b
dw $619d
dw $5b55
dw $64f8
dw $5fcc
dw $61e2
dw $63ad
dw $585f
dw $599f
dw $61a9
dw $5ba6
dw $5ce1
dw $630b
dw $5d1e
dw $5d69
dw $5db4
dw $5dff
dw $5ee4
dw $4d00
dw $5a06
dw $4dfd
dw $56b2
dw $5fdf
dw $57af
dw $612d
dw $60ee
dw $57b4
dw $5ce5
dw $5ce5
dw $7d04
dw $7d71
dw $5CE5
dw $5CE5
dw $5CE5
dw $5CE5
dw $616F
dw $62CA
dw $6421
incbin "baserom.gbc",$39E,$1627 - $39E
;XXX what does this do
;XXX what points to this
; offset 1627
ld bc,$D0B8
add hl,bc
ld a,[hli]
ld [$D0AB],a
ld a,[hl]
ld [$D0AC],a
; offset 1633
; define (by index number) the bank that a pokemon's image is in
; index = Mew, bank 1
; index = Kabutops fossil, bank $B
; index < $1F, bank 9
; $1F ≤ index < $4A, bank $A
; $4A ≤ index < $74, bank $B
; $74 ≤ index < $99, bank $C
; $99 ≤ index, bank $D
ld a,[$CF91] ; XXX name for this ram location
ld b,a
cp $15
ld a,$01
jr z,.GotBank\@
ld a,b
cp $B6
ld a,$0B
jr z,.GotBank\@
ld a,b
cp $1F
ld a,$09
jr c,.GotBank\@
ld a,b
cp $4A
ld a,$0A
jr c,.GotBank\@
ld a,b
cp $74
ld a,$0B
jr c,.GotBank\@
ld a,b
cp $99
ld a,$0C
jr c,.GotBank\@
ld a,$0D
.GotBank\@
jp $24FD
INCBIN "baserom.gbc",$1665,$172F - $1665
Tset0B_Coll:
INCBIN "baserom.gbc",$172F,$1735-$172F
Tset00_Coll:
INCBIN "baserom.gbc",$1735,$1749-$1735
Tset01_Coll:
INCBIN "baserom.gbc",$1749,$1753-$1749
Tset02_Coll:
INCBIN "baserom.gbc",$1753,$1759-$1753
Tset05_Coll:
INCBIN "baserom.gbc",$1759,$1765-$1759
Tset03_Coll:
INCBIN "baserom.gbc",$1765,$1775-$1765
Tset08_Coll:
INCBIN "baserom.gbc",$1775,$177F-$1775
Tset09_Coll:
INCBIN "baserom.gbc",$177F,$178A-$177F
Tset0D_Coll:
INCBIN "baserom.gbc",$178A,$1795-$178A
Tset0E_Coll:
INCBIN "baserom.gbc",$1795,$179A-$1795
Tset0F_Coll:
INCBIN "baserom.gbc",$179A,$17A2-$179A
Tset10_Coll:
INCBIN "baserom.gbc",$17A2,$17AC-$17A2
Tset11_Coll:
INCBIN "baserom.gbc",$17AC,$17B8-$17AC
Tset12_Coll:
INCBIN "baserom.gbc",$17B8,$17C0-$17B8
Tset13_Coll:
INCBIN "baserom.gbc",$17C0,$17CA-$17C0
Tset14_Coll:
INCBIN "baserom.gbc",$17CA,$17D1-$17CA
Tset15_Coll:
INCBIN "baserom.gbc",$17D1,$17DD-$17D1
Tset16_Coll:
INCBIN "baserom.gbc",$17DD,$17F0-$17DD
Tset17_Coll:
INCBIN "baserom.gbc",$17F0,$190F-$17F0
ClearScreen: ; 190F
; clears all tiles in the tilemap,
; then (writes 1 to $FFD3, waits for it to become 0) three times (XXX why?)
ld bc,$0168 ; tilemap size
inc b
ld hl,$C3A0 ; TILEMAP_START
ld a,$7F ; $7F is blank tile
.loop\@
ld [hli],a
dec c
jr nz,.loop\@
dec b
jr nz,.loop\@
jp Delay3
INCBIN "baserom.gbc",$1922,$20AF - $1922
DelayFrame: ; 20AF
; delay for one frame
ld a,1
ld [$FFD6],a
; wait for the next Vblank, halting to conserve battery
.halt\@
db $76 ; XXX this is a hack--rgbasm adds a nop after this instr
; even when ints are enabled
ld a,[$FFD6]
and a
jr nz,.halt\@
ret
; These routines manage gradual fading
; (e.g., entering a doorway)
LoadGBPal: ; 20BA
ld a,[$d35d] ;tells if cur.map is dark
ld b,a ;(requires HM5_FLASH?)
ld hl,GBPalTable_00 ;16
ld a,l
sub b
ld l,a
jr nc,.jr0\@
dec h
.jr0\@
ld a,[hli]
ld [rBGP],a
ld a,[hli]
ld [rOBP0],a
ld a,[hli]
ld [rOBP1],a
ret
GBFadeOut1: ; 20D1
ld hl,IncGradGBPalTable_01 ;0d
ld b,$04
jr GBFadeOutCommon
GBFadeOut2: ; 20D8
ld hl,IncGradGBPalTable_02 ;1c
ld b,$03
GBFadeOutCommon:
ld a,[hli]
ld [rBGP],a
ld a,[hli]
ld [rOBP0],a
ld a,[hli]
ld [rOBP1],a
ld c,8
call DelayFrames
dec b
jr nz,GBFadeOutCommon
ret
GBFadeIn1: ; 20EF
ld hl,DecGradGBPalTable_01 ;18
ld b,$04
jr GBFadeInCommon
GBFadeIn2: ; 20F6
ld hl,DecGradGBPalTable_02 ;21
ld b,$03
GBFadeInCommon:
ld a,[hld]
ld [rOBP1],a
ld a,[hld]
ld [rOBP0],a
ld a,[hld]
ld [rBGP],a
ld c,8
call DelayFrames
dec b
jr nz,GBFadeInCommon
ret
IncGradGBPalTable_01: ; 210D
db %11111111 ;BG Pal
db %11111111 ;OBJ Pal 1
db %11111111 ;OBJ Pal 2
;and so on...
db %11111110
db %11111110
db %11111000
db %11111001
db %11100100
db %11100100
GBPalTable_00: ;16
db %11100100
db %11010000
DecGradGBPalTable_01: ;18
db %11100000
;19
db %11100100
db %11010000
db %11100000
IncGradGBPalTable_02: ;1c
db %10010000
db %10000000
db %10010000
db %01000000
db %01000000
DecGradGBPalTable_02: ;21
db %01000000
db %00000000
db %00000000
db %00000000
INCBIN "baserom.gbc",$2125,$2442 - $2125
; XXX where is the pointer to this data?
MartInventories: ; 2442
; first byte $FE, next byte # of items, last byte $FF
; Viridian
db $FE,4,POKE_BALL,ANTIDOTE,PARLYZ_HEAL,BURN_HEAL,$FF
; Pewter
db $FE,7,POKE_BALL,POTION,ESCAPE_ROPE,ANTIDOTE,BURN_HEAL,AWAKENING
db PARLYZ_HEAL,$FF
; Cerulean
db $FE,7,POKE_BALL,POTION,REPEL,ANTIDOTE,BURN_HEAL,AWAKENING
db PARLYZ_HEAL,$FF
; Bike shop
db $FE,1,BICYCLE,$FF
; Vermilion
db $FE,6,POKE_BALL,SUPER_POTION,ICE_HEAL,AWAKENING,PARLYZ_HEAL
db REPEL,$FF
; Lavender
db $FE,9,GREAT_BALL,SUPER_POTION,REVIVE,ESCAPE_ROPE,SUPER_REPEL
db ANTIDOTE,BURN_HEAL,ICE_HEAL,PARLYZ_HEAL,$FF
; Celadon Dept. Store 2F (1)
db $FE,9,GREAT_BALL,SUPER_POTION,REVIVE,SUPER_REPEL,ANTIDOTE
db BURN_HEAL,ICE_HEAL,AWAKENING,PARLYZ_HEAL,$FF
; Celadon Dept. Store 2F (2)
db $FE,9,TM_32,TM_33,TM_02,TM_07,TM_37,TM_01,TM_05,TM_09,TM_17,$FF
; Celadon Dept. Store 4F
db $FE,5,POKE_DOLL,FIRE_STONE,THUNDER_STONE,WATER_STONE,LEAF_STONE,$FF
; Celadon Dept. Store 5F (1)
db $FE,7,X_ACCURACY,GUARD_SPEC_,DIRE_HIT,X_ATTACK,X_DEFEND,X_SPEED
db X_SPECIAL,$FF
; Celadon Dept. Store 5F (2)
db $FE,5,HP_UP,PROTEIN,IRON,CARBOS,CALCIUM,$FF
; Fuchsia
db $FE,6,ULTRA_BALL,GREAT_BALL,SUPER_POTION,REVIVE,FULL_HEAL
db SUPER_REPEL,$FF
; unused?
db $FE,5,GREAT_BALL,HYPER_POTION,SUPER_POTION,FULL_HEAL,REVIVE,$FF
; Cinnabar
db $FE,7,ULTRA_BALL,GREAT_BALL,HYPER_POTION,MAX_REPEL,ESCAPE_ROPE
db FULL_HEAL,REVIVE,$FF
; Saffron
db $FE,6,GREAT_BALL,HYPER_POTION,MAX_REPEL,ESCAPE_ROPE,FULL_HEAL
db REVIVE,$FF
; Indigo
db $FE,7,ULTRA_BALL,GREAT_BALL,FULL_RESTORE,MAX_POTION,FULL_HEAL
db REVIVE,MAX_REPEL,$FF
INCBIN "baserom.gbc",$24D6,$2FCF - $24D6
GetItemName: ; 2FCF
; given an item ID at [$D11E], store the name of the item into a string
; starting at $CD6D
push hl
push bc
ld a,[$D11E]
cp HM_01 ; is this a TM/HM?
jr nc,.Machine\@
ld [$D0B5],a
ld a,4
ld [$D0B6],a
ld a,1
ld [$D0B7],a
call $376B
jr .Finish\@
.Machine\@
call GetMachineName
.Finish\@
ld de,$CD6D ; pointer to where item name is stored in RAM
pop bc
pop hl
ret
GetMachineName:
; copies the name of the TM/HM in [$D11E] to $CD6D
push hl
push de
push bc
ld a,[$D11E]
push af
cp TM_01 ; is this a TM? [not HM]
jr nc,.WriteTM\@
; if HM, then write "HM" and add 5 to the item ID, so we can reuse the
; TM printing code
add 5
ld [$D11E],a
ld hl,HiddenPrefix ; points to "HM"
ld bc,2
jr .WriteMachinePrefix\@
.WriteTM\@
ld hl,TechnicalPrefix ; points to "TM"
ld bc,2
.WriteMachinePrefix\@
ld de,$CD6D
call CopyData
; now get the machine number and convert it to text
ld a,[$D11E]
sub TM_01 - 1
ld b,$F6 ; "0"
.FirstDigit\@
sub 10
jr c,.SecondDigit\@
inc b
jr .FirstDigit\@
.SecondDigit\@
add 10
push af
ld a,b
ld [de],a
inc de
pop af
ld b,$F6 ; "0"
add b
ld [de],a
inc de
ld a,$50 ; text null
ld [de],a
pop af
ld [$D11E],a
pop bc
pop de
pop hl
ret
TechnicalPrefix:
db $93,$8C ; "TM"
HiddenPrefix:
db $87,$8C ; "HM"
INCBIN "baserom.gbc",$3040,$35BC - $3040
BankswitchHome: ; 35BC
; switches to bank # in a
; Only use this when in the home bank!
ld [$CF09],a
ld a,[$FFB8]
ld [$CF08],a
ld a,[$CF09]
ld [$FFB8],a
ld [$2000],a
ret
BankswitchBack: ; 35CD
; returns from BankswitchHome
ld a,[$CF08]
ld [$FFB8],a
ld [$2000],a
ret
Bankswitch: ; 35D6
; self-contained bankswitch, use this when not in the home bank
; switches to the bank in b
ld a,[$FFB8]
push af
ld a,b
ld [$FFB8],a
ld [$2000],a
ld bc,.Return\@
push bc
jp [hl]
.Return\@
pop bc
ld a,b
ld [$FFB8],a
ld [$2000],a
ret
INCBIN "baserom.gbc",$35EC,$3739 - $35EC
DelayFrames: ; 3739
; wait n frames, where n is the value in c
call DelayFrame
dec c
jr nz,DelayFrames
ret
INCBIN "baserom.gbc",$3740,$3A87 - $3740
AddNTimes: ; 3A87
; add bc to hl a times
and a
ret z
.loop\@
add hl,bc
dec a
jr nz,.loop\@
ret
INCBIN "baserom.gbc",$3A8E,$3C49 - $3A8E
PrintText: ; 3C49
; given a pointer in hl, print the text there
push hl
ld a,1
ld [$D125],a
call $30E8
call $2429
call $3DD7
pop hl
ld bc,$C4B9
jp $1B40
INCBIN "baserom.gbc",$3C5F,$3DD7 - $3C5F
Delay3: ; 3DD7
; call Delay with a parameter of 3
ld c,3
jp DelayFrames
INCBIN "baserom.gbc",$3DDC,$3E6D - $3DDC
Predef: ; 3E6D
; runs a predefined ASM command, where the command ID is read from $D0B7
ld [$CC4E],a ; save the predef routine's ID for later
ld a,[$FFB8]
ld [$CF12],a
; save bank and call 13:7E49
push af
ld a,BANK(GetPredefPointer)
ld [$FFB8],a
ld [$2000],a
call GetPredefPointer
; call the predef function
; ($D0B7 has the bank of the predef routine)
ld a,[$D0B7]
ld [$FFB8],a
ld [$2000],a
ld de,.Return\@
push de
jp [hl]
; after the predefined function finishes it returns here
.Return\@
pop af
ld [$FFB8],a
ld [$2000],a
ret
INCBIN "baserom.gbc",$3E94,$4000 - $3E94
SECTION "bank1",DATA,BANK[$1]
INCBIN "baserom.gbc",$4000,$2115
OakSpeech: ; 6115
ld a,$FF
call $23B1 ; stop music
ld a,2 ; bank of song
ld c,a
ld a,$EF ; song #
call $23A1 ; plays music
call ClearScreen
call $36A0
call $60CA
ld a,$18
call Predef
ld hl,$D53A
ld a,$14
ld [$CF91],a
ld a,1
ld [$CF96],a
call $2BCF
ld a,[$D07C]
ld [$D71A],a
call Function62CE
xor a
ld [$FFD7],a
ld a,[$D732]
bit 1,a ; XXX when is bit 1 set?
jp nz,Function61BC ; easter egg: skip the intro
ld de,$615F
ld bc,$1300
call IntroPredef3B ; displays Oak pic?
call FadeInIntroPic
ld hl,HelloWelcomeText
call PrintText ; prints text box
call GBFadeOut2
call ClearScreen
ld a,NIDORINO
ld [$D0B5],a ; pic displayed is stored at this location
ld [$CF91],a
call $1537 ; this is also related to the pic
ld hl,$C3F6 ; position on tilemap the pic is displayed
call $1384 ; displays pic?
call MovePicLeft
ld hl,WorldFilledWithText
call PrintText ; Prints text box
call GBFadeOut2
call ClearScreen
ld de,$6EDE
ld bc,$0400 ; affects the position of the player pic
call IntroPredef3B ; displays player pic?
call MovePicLeft
ld hl,FirstWhatIsYourNameText
call PrintText
call $695D ; brings up NewName/Red/etc menu
call GBFadeOut2
call ClearScreen
ld de,$6049
ld bc,$1300
call IntroPredef3B ; displays rival pic
call FadeInIntroPic
ld hl,ThisIsMyGrandsonText
call PrintText
call $69A4
Function61BC:
call GBFadeOut2
call ClearScreen
ld de,$6EDE
ld bc,$0400
call IntroPredef3B
call GBFadeIn2
ld a,[$D72D]
and a
jr nz,.next\@
ld hl,YourOwnLegendText
call PrintText
.next\@ ld a,[$FFB8]
push af
ld a,$9C
call $23B1
pop af
ld [$FFB8],a
ld [$2000],a
ld c,4
call DelayFrames
ld de,$4180
ld hl,$8000
ld bc,$050C
call $1848
ld de,$6FE8
ld bc,$0400
call IntroPredef3B
ld c,4
call DelayFrames
ld de,$7042
ld bc,$0400
call IntroPredef3B
call $28A6
ld a,[$FFB8]
push af
ld a,2
ld [$C0EF],a
ld [$C0F0],a
ld a,$A
ld [$CFC7],a
ld a,$FF
ld [$C0EE],a
call $23B1 ; stop music
pop af
ld [$FFB8],a
ld [$2000],a
ld c,$14
call DelayFrames
ld hl,$C40A
ld b,7
ld c,7
call $18C4
call $36A0
ld a,1
ld [$CFCB],a
ld c,$32
call DelayFrames
call GBFadeOut2
jp ClearScreen
HelloWelcomeText:
db $17,$25,$64,$22,$50 ; "Hello welcome to the world of pokemon ..."
WorldFilledWithText:
db $17,$7F,$64,$22,$14,$17,$B3,$64,$22,$50 ; "This world is filled with creatures ..."
FirstWhatIsYourNameText:
db $17,$19,$65,$22,$50 ; "First, what is your name?"
ThisIsMyGrandsonText:
db $17,$34,$65,$22,$50 ; "This is my grandson ..."
YourOwnLegendText:
db $17,$97,$65,$22,$50 ; "Ninten! Your very own legend ..."
FadeInIntroPic:
ld hl,IntroFadePalettes
ld b,6
.next\@
ld a,[hli]
ld [rBGP],a
ld c,10
call DelayFrames
dec b
jr nz,.next\@
ret
IntroFadePalettes:
db %01010100
db %10101000
db %11111100
db %11111000
db %11110100
db %11100100
MovePicLeft:
ld a,119
ld [$FF4B],a
call DelayFrame
ld a,$E4
ld [rBGP],a
.next\@
call DelayFrame
ld a,[$FF4B]
sub 8
cp $FF
ret z
ld [$FF4B],a
jr .next\@
Predef3B: ; 62A1
call $3E94
IntroPredef3B: ; 62A4
push bc
ld a,b
call $36EB
ld hl,$A188
ld de,$A000
ld bc,$0310
call CopyData
ld de,$9000
call $16EA
pop bc
ld a,c
and a
ld hl,$C3C3
jr nz,.next\@
ld hl,$C3F6
.next\@
xor a
ld [$FFE1],a
ld a,1
jp $3E6D
Function62CE: ; 62CE, XXX called by 4B2 948 989 5BF9 5D15
call $62FF
ld a,$19
call $3E6D
ld hl,$D732
bit 2,[hl]
res 2,[hl]
jr z,.next\@
ld a,[$D71A]
jr .next2\@
.next\@
bit 1,[hl]
jr z,.next3\@
call $64EA
.next3\@
ld a,0
.next2\@
ld b,a
ld a,[$D72D]
and a
jr nz,.next4\@
ld a,b
.next4\@
ld hl,$D732
bit 4,[hl]
ret nz
ld [$D365],a
ret
INCBIN "baserom.gbc",$62FF,$8000 - $62FF
SECTION "bank2",DATA,BANK[$2]
INCBIN "baserom.gbc",$8000,$4000
SECTION "bank3",DATA,BANK[$3]
INCBIN "baserom.gbc",$C000,$C23D - $C000
; see also MapHeaderPointers
MapHeaderBanks: ; 423D
db $06 ; PALLET_TOWN
db $06 ; VIRIDIAN_CITY
db $06 ; PEWTER_CITY
db $06 ; CERULEAN_CITY
db $11 ; LAVENDER_TOWN
db $06 ; VERMILION_CITY
db $06 ; CELADON_CITY
db $06 ; FUCHSIA_CITY
db $07 ; CINNABAR_ISLAND
db $14 ; INDIGO_PLATEAU
db $14 ; SAFFRON_CITY
db $01 ; unused
db $07 ; ROUTE_1
db $15 ; ROUTE_2
db $15 ; ROUTE_3
db $15 ; ROUTE_4
db $15 ; ROUTE_5
db $16 ; ROUTE_6
db $12 ; ROUTE_7
db $16 ; ROUTE_8
db $15 ; ROUTE_9
db $16 ; ROUTE_10
db $16 ; ROUTE_11
db $16 ; ROUTE_12
db $15 ; ROUTE_13
db $15 ; ROUTE_14
db $16 ; ROUTE_15
db $16 ; ROUTE_16
db $15 ; ROUTE_17
db $16 ; ROUTE_18
db $15 ; ROUTE_19
db $14 ; ROUTE_20
db $15 ; ROUTE_21
db $14 ; ROUTE_22
db $14 ; ROUTE_23
db $14 ; ROUTE_24
db $14 ; ROUTE_25
db $12 ; REDS_HOUSE_1F
db $17
db $06
db $07
db $11
db $07
db $07
db $07
db $1D
db $07
db $17
db $07
db $17
db $17
db $18
db $17
db $17
db $17
db $07
db $1D
db $07
db $17
db $12
db $14
db $12
db $07
db $07
db $17
db $17
db $07
db $17
db $12
db $07
db $07
db $17
db $15
db $07
db $17
db $17
db $07
db $17
db $17
db $07
db $07
db $12
db $11
db $07
db $12
db $07
db $12
db $12
db $07
db $17
db $16
db $17
db $17
db $07
db $07
db $18
db $18
db $11
db $18
db $18
db $18
db $18
db $18
db $18
db $18
db $1D
db $1D
db $1D
db $17
db $1D
db $1D
db $1D
db $1D
db $16
db $1D
db $1D
db $1D
db $1D
db $16
db $18
db $1D
db $18
db $18
db $15
db $12
db $12
db $12
db $12
db $12
db $12
db $12
db $12
db $07
db $12
db $12
db $12
db $12
db $12
db $12
db $12
db $12
db $17
db $18
db $18
db $18
db $18
db $18
db $18
db $18
db $07
db $17
db $07
db $07
db $1D
db $1D
db $1D
db $1D
db $1D
db $1D
db $11
db $11
db $11
db $11
db $15
db $15
db $11
db $1D
db $1D
db $1D
db $1D
db $1D
db $1D
db $1D
db $1D
db $06
db $1D
db $17
db $17
db $17
db $07
db $17
db $17
db $17
db $07
db $12
db $12
db $12
db $12
db $07
db $15
db $12
db $12
db $11
db $07
db $14
db $12
db $06
db $18
db $11
db $11
db $11
db $11
db $11
db $11
db $01
db $01
db $01
db $16
db $16
db $06
db $06
db $06
db $14
db $15
db $14
db $14
db $14
db $11
db $11
db $12
db $11
db $11
db $12
db $11
db $11
db $11
db $11
db $11
db $1D
db $07
db $1D
db $01
db $11
db $17
db $16
db $18
db $11
db $11
db $11
db $13
db $13
db $11
db $11
db $11
db $11
db $1D
db $1D
db $1D
INCBIN "baserom.gbc",$C335,$C766-$C335
ld hl,TilesetsHeadPtr
INCBIN "baserom.gbc",$C769,$C7BE-$C769
TilesetsHeadPtr:
TSETHEAD Tset00_Block,Tset00_GFX,Tset00_Coll,$FF,$FF,$FF,$52,2
TSETHEAD Tset01_Block,Tset01_GFX,Tset01_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset02_Block,Tset02_GFX,Tset02_Coll,$18,$19,$1E,$FF,0
TSETHEAD Tset03_Block,Tset03_GFX,Tset03_Coll,$FF,$FF,$FF,$20,1
TSETHEAD Tset01_Block,Tset01_GFX,Tset01_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset05_Block,Tset05_GFX,Tset05_Coll,$3A,$FF,$FF,$FF,2
TSETHEAD Tset02_Block,Tset02_GFX,Tset02_Coll,$18,$19,$1E,$FF,0
TSETHEAD Tset05_Block,Tset05_GFX,Tset05_Coll,$3A,$FF,$FF,$FF,2
TSETHEAD Tset08_Block,Tset08_GFX,Tset08_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset09_Block,Tset09_GFX,Tset09_Coll,$17,$32,$FF,$FF,0
TSETHEAD Tset09_Block,Tset09_GFX,Tset09_Coll,$17,$32,$FF,$FF,0
TSETHEAD Tset0B_Block,Tset0B_GFX,Tset0B_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset09_Block,Tset09_GFX,Tset09_Coll,$17,$32,$FF,$FF,0
TSETHEAD Tset0D_Block,Tset0D_GFX,Tset0D_Coll,$FF,$FF,$FF,$FF,1
TSETHEAD Tset0E_Block,Tset0E_GFX,Tset0E_Coll,$FF,$FF,$FF,$FF,1
TSETHEAD Tset0F_Block,Tset0F_GFX,Tset0F_Coll,$12,$FF,$FF,$FF,0
TSETHEAD Tset10_Block,Tset10_GFX,Tset10_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset11_Block,Tset11_GFX,Tset11_Coll,$FF,$FF,$FF,$FF,1
TSETHEAD Tset12_Block,Tset12_GFX,Tset12_Coll,$15,$36,$FF,$FF,0
TSETHEAD Tset13_Block,Tset13_GFX,Tset13_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset14_Block,Tset14_GFX,Tset14_Coll,$FF,$FF,$FF,$FF,0
TSETHEAD Tset15_Block,Tset15_GFX,Tset15_Coll,$07,$17,$FF,$FF,0
TSETHEAD Tset16_Block,Tset16_GFX,Tset16_Coll,$12,$FF,$FF,$FF,1
TSETHEAD Tset17_Block,Tset17_GFX,Tset17_Coll,$FF,$FF,$FF,$45,1
INCBIN "baserom.gbc",$C8DE,$C8F5-$C8DE
; data for default hidden/shown
; objects for each map ($00-$F8)
; Table of 2-Byte pointers, one pointer per map,
; goes up to Map_F7, ends with $FFFF.
MapHSPointers: ; 48F5
dw MapHS00
dw MapHS01
dw MapHS02
dw MapHS03
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS0A
dw MapHSXX
dw MapHSXX
dw MapHS0D
dw MapHSXX
dw MapHS0F
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS14
dw MapHSXX
dw MapHSXX
dw MapHS17
dw MapHSXX
dw MapHSXX
dw MapHS1A
dw MapHS1B
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS21
dw MapHSXX
dw MapHS23
dw MapHS24
dw MapHSXX
dw MapHSXX
dw MapHS27
dw MapHS28
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS2D
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS33
dw MapHS34
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS3B
dw MapHSXX
dw MapHS3D
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS53
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS58
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS60
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS66
dw MapHS67
dw MapHS68
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS6C
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS78
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS84
dw MapHSXX
dw MapHSXX
dw MapHS87
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS8F
dw MapHS90
dw MapHS91
dw MapHS92
dw MapHS93
dw MapHS94
dw MapHS95
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS9B
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHS9F
dw MapHSA0
dw MapHSA1
dw MapHSA2
dw MapHSXX
dw MapHSXX
dw MapHSA5
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSB1
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSB5
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSC0
dw MapHSXX
dw MapHSC2
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSC6
dw MapHSC7
dw MapHSC8
dw MapHSC9
dw MapHSCA
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSCF
dw MapHSD0
dw MapHSD1
dw MapHSD2
dw MapHSD3
dw MapHSD4
dw MapHSD5
dw MapHSD6
dw MapHSD7
dw MapHSD8
dw MapHSD9
dw MapHSDA
dw MapHSDB
dw MapHSDC
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSE2
dw MapHSE3
dw MapHSE4
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSE9
dw MapHSEA
dw MapHSEB
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw MapHSF4
dw MapHSXX
dw MapHSXX
dw MapHSXX
dw $FFFF
; Structure:
; 3 bytes per object
; [Map_ID][Object_ID][H/S]
;
; Program stops reading when either:
; a) Map_ID = $FF
; b) Map_ID ≠ currentMapID
;
; This Data is loaded into RAM at $D5CE-$D5F?.
; These constants come from the bytes for Predef functions:
Hide equ $11
Show equ $15
MapHSXX:
db $FF,$FF,$FF
MapHS00:
db $00,$01,Hide
MapHS01:
db $01,$05,Show
db $01,$07,Hide
MapHS02:
db $02,$03,Show
db $02,$05,Show
MapHS03:
db $03,$01,Hide
db $03,$02,Show
db $03,$06,Hide
db $03,$0A,Show
db $03,$0B,Show
MapHS0A:
db $0A,$01,Show
db $0A,$02,Show
db $0A,$03,Show
db $0A,$04,Show
db $0A,$05,Show
db $0A,$06,Show
db $0A,$07,Show
db $0A,$08,Hide
db $0A,$09,Hide
db $0A,$0A,Hide
db $0A,$0B,Hide
db $0A,$0C,Hide
db $0A,$0D,Hide
db $0A,$0E,Show
db $0A,$0F,Hide
MapHS0D:
db $0D,$01,Show
db $0D,$02,Show
MapHS0F:
db $0F,$03,Show
MapHS14:
db $14,$0A,Show
MapHS17:
db $17,$01,Show
db $17,$09,Show
db $17,$0A,Show
MapHS1A:
db $1A,$0B,Show
MapHS1B:
db $1B,$07,Show
MapHS21:
db $21,$01,Hide
db $21,$02,Hide
MapHS23:
db $23,$01,Show
db $23,$08,Show
MapHS24:
db $24,$0A,Show
MapHS27:
db $27,$01,Show
db $27,$02,Hide
db $27,$03,Show
MapHS28:
db $28,$01,Show
db $28,$02,Show
db $28,$03,Show
db $28,$04,Show
db $28,$05,Hide
db $28,$06,Show
db $28,$07,Show
db $28,$08,Hide
MapHS2D:
db $2D,$01,Show
db $2D,$0B,Show
MapHS34:
db $34,$05,Show
MapHSE4:
db $E4,$01,Show
db $E4,$02,Show
db $E4,$03,Show
MapHS8F:
db $8F,$01,Show
MapHS90:
db $90,$04,Show
MapHS91:
db $91,$04,Show
db $91,$05,Show
db $91,$06,Show
MapHS92:
db $92,$06,Show
MapHS93:
db $93,$04,Show
db $93,$05,Show
MapHS94:
db $94,$01,Show
db $94,$02,Show
db $94,$03,Show
db $94,$04,Show
MapHS95:
db $95,$05,Hide
MapHS84:
db $84,$02,Show
MapHS87:
db $87,$0B,Show
MapHS9B:
db $9B,$02,Show
MapHSA5:
db $A5,$02,Show
db $A5,$03,Show
MapHSB1:
db $B1,$06,Show
db $B1,$07,Show
MapHSB5:
db $B5,$01,Hide
MapHS53:
db $53,$01,Show
db $53,$02,Show
db $53,$03,Show
db $53,$04,Show
db $53,$05,Show
db $53,$06,Show
db $53,$07,Show
db $53,$08,Show
db $53,$09,Show
db $53,$0A,Show
db $53,$0B,Show
db $53,$0C,Show
db $53,$0D,Show
db $53,$0E,Show
MapHSC2:
db $C2,$06,Show
db $C2,$07,Show
db $C2,$08,Show
db $C2,$09,Show
db $C2,$0A,Show
db $C2,$0D,Show
MapHS58:
db $58,$01,Show
db $58,$02,Hide
db $58,$03,Hide
MapHS33:
db $33,$05,Show
db $33,$06,Show
db $33,$07,Show
MapHS3B:
db $3B,$08,Show
db $3B,$09,Show
db $3B,$0A,Show
db $3B,$0B,Show
db $3B,$0C,Show
db $3B,$0D,Show
MapHS3D:
db $3D,$06,Show
db $3D,$07,Show
db $3D,$08,Show
db $3D,$09,Show
MapHS60:
db $60,$02,Hide
MapHS66:
db $66,$0A,Show
MapHS67:
db $67,$06,Show
db $67,$09,Show
MapHS68:
db $68,$09,Show
db $68,$0A,Show
db $68,$0B,Show
MapHSC6:
db $C6,$05,Show
db $C6,$06,Show
db $C6,$0A,Show
MapHSC7:
db $C7,$06,Show
db $C7,$07,Show
MapHSC8:
db $C8,$02,Show
db $C8,$03,Show
db $C8,$04,Show
db $C8,$05,Show
MapHSC9:
db $C9,$03,Show
db $C9,$04,Show
MapHSCA:
db $CA,$01,Show
db $CA,$05,Show
db $CA,$06,Show
db $CA,$07,Show
db $CA,$08,Hide
db $CA,$09,Hide
MapHSCF:
db $CF,$01,Show
db $CF,$02,Show
db $CF,$03,Show
db $CF,$04,Show
db $CF,$05,Show
MapHSD0:
db $D0,$02,Show
db $D0,$03,Show
db $D0,$04,Show
MapHSD1:
db $D1,$02,Show
db $D1,$03,Show
db $D1,$04,Show
db $D1,$05,Show
db $D1,$06,Show
db $D1,$07,Show
MapHSD2:
db $D2,$02,Show
db $D2,$03,Show
db $D2,$04,Show
db $D2,$05,Show
db $D2,$06,Show
db $D2,$07,Show
db $D2,$08,Show
MapHSD3:
db $D3,$06,Show
db $D3,$07,Show
db $D3,$08,Show
db $D3,$09,Show
db $D3,$0A,Show
MapHSD4:
db $D4,$05,Show
db $D4,$06,Show
db $D4,$07,Show
db $D4,$08,Show
db $D4,$09,Show
db $D4,$0A,Show
db $D4,$0B,Show
db $D4,$0C,Show
MapHSD5:
db $D5,$02,Show
db $D5,$03,Show
db $D5,$04,Show
MapHSE9:
db $E9,$02,Show
db $E9,$03,Show
db $E9,$04,Show
MapHSEA:
db $EA,$01,Show
db $EA,$02,Show
db $EA,$03,Show
db $EA,$04,Show
db $EA,$05,Show
db $EA,$06,Show
MapHSEB:
db $EB,$03,Show
db $EB,$04,Show
db $EB,$05,Show
MapHSF4:
db $F4,$02,Show
MapHSD6:
db $D6,$02,Show
MapHSD7:
db $D7,$03,Show
db $D7,$04,Show
MapHSD8:
db $D8,$03,Show
db $D8,$04,Show
db $D8,$05,Show
db $D8,$06,Show
db $D8,$08,Show
MapHSD9:
db $D9,$01,Show
db $D9,$02,Show
db $D9,$03,Show
db $D9,$04,Show
MapHSDA:
db $DA,$01,Show
db $DA,$02,Show
MapHSDB:
db $DB,$01,Show
db $DB,$02,Show
db $DB,$03,Show
db $DB,$04,Show
MapHSDC:
db $DC,$01,Show
MapHSE2:
db $E2,$01,Show
db $E2,$02,Show
db $E2,$03,Show
MapHSE3:
db $E3,$01,Show
db $E3,$02,Show
db $E3,$03,Show
MapHS6C:
db $6C,$03,Show
db $6C,$04,Show
MapHS78:
db $78,$02,Hide
MapHSC0:
db $C0,$01,Show
db $C0,$02,Show
MapHS9F:
db $9F,$01,Hide
db $9F,$02,Hide
MapHSA0:
db $A0,$01,Hide
db $A0,$02,Hide
MapHSA1:
db $A1,$02,Show
db $A1,$03,Show
db $A1,$05,Hide
db $A1,$06,Hide
MapHSA2:
db $A2,$01,Hide
db $A2,$02,Hide
db $A2,$03,Show
db $FF
INCBIN "baserom.gbc",$CD97,$CEB8-$CD97
; wild pokemon data: from 4EB8 to 55C7
LoadWildData: ; 4EB8
ld hl,WildDataPointers
ld a,[W_CURMAP]
; get wild data for current map
ld c,a
ld b,0
add hl,bc
add hl,bc
ld a,[hli]
ld h,[hl]
ld l,a ; hl now points to wild data for current map
ld a,[hli]
ld [W_GRASSRATE],a
and a
jr z,.NoGrassData\@ ; if no grass data, skip to surfing data
push hl
ld de,W_GRASSMONS ; otherwise, load grass data
ld bc,$0014
call CopyData
pop hl
ld bc,$0014
add hl,bc
.NoGrassData\@
ld a,[hli]
ld [W_WATERRATE],a
and a
ret z ; if no water data, we're done
ld de,W_WATERMONS ; otherwise, load surfing data
ld bc,$0014
jp CopyData
WildDataPointers: ; 4EEB
dw NoMons ; PALLET_TOWN
dw NoMons ; VIRIDIAN_CITY
dw NoMons ; PEWTER_CITY
dw NoMons ; CERULEAN_CITY
dw NoMons ; LAVENDER_TOWN
dw NoMons ; VERMILION_CITY
dw NoMons ; CELADON_CITY
dw NoMons ; FUCHSIA_CITY
dw NoMons ; CINNABAR_ISLAND
dw NoMons ; INDIGO_PLATEAU
dw NoMons ; SAFFRON_CITY
dw NoMons ; unused
dw Route1Mons ; ROUTE_1
dw Route2Mons ; ROUTE_2
dw Route3Mons ; ROUTE_3
dw Route4Mons ; ROUTE_4
dw Route5Mons ; ROUTE_5
dw Route6Mons ; ROUTE_6
dw Route7Mons ; ROUTE_7
dw Route8Mons ; ROUTE_8
dw Route9Mons ; ROUTE_9
dw Route10Mons ; ROUTE_10
dw Route11Mons ; ROUTE_11
dw Route12Mons ; ROUTE_12
dw Route13Mons ; ROUTE_13
dw Route14Mons ; ROUTE_14
dw Route15Mons ; ROUTE_15
dw Route16Mons ; ROUTE_16
dw Route17Mons ; ROUTE_17
dw Route18Mons ; ROUTE_18
dw WaterMons ; ROUTE_19
dw WaterMons ; ROUTE_20
dw Route21Mons ; ROUTE_21
dw Route22Mons ; ROUTE_22
dw Route23Mons ; ROUTE_23
dw Route24Mons ; ROUTE_24
dw Route25Mons ; ROUTE_25
dw NoMons ; REDS_HOUSE_1F
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw ForestMons ; ViridianForest
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw MoonMons1
dw MoonMonsB1
dw MoonMonsB2
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw TunnelMonsB1
dw PowerPlantMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw PlateauMons1
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw TowerMons1
dw TowerMons2
dw TowerMons3
dw TowerMons4
dw TowerMons5
dw TowerMons6
dw TowerMons7
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw IslandMonsB1
dw IslandMonsB2
dw IslandMonsB3
dw IslandMonsB4
dw NoMons
dw NoMons
dw MansionMons1
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw IslandMons1
dw NoMons
dw PlateauMons2
dw NoMons
dw NoMons
dw CaveMons
dw PlateauMons3
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw MansionMons2
dw MansionMons3
dw MansionMonsB1
dw ZoneMons1
dw ZoneMons2
dw ZoneMons3
dw ZoneMonsCenter
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw DungeonMons2
dw DungeonMonsB1
dw DungeonMons1
dw NoMons
dw NoMons
dw NoMons
dw TunnelMonsB2
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw NoMons
dw $FFFF
; wild pokemon data is divided into two parts.
; first part: pokemon found in grass
; second part: pokemon found while surfing
; each part goes as follows:
; if first byte == 00, then
; no wild pokemon on this map
; if first byte != 00, then
; first byte is encounter rate
; followed by 20 bytes:
; level, species (ten times)
NoMons: ; no wild pokemon
db 0
db 0
Route1Mons:
db $19
db 3,PIDGEY
db 3,RATTATA
db 3,RATTATA
db 2,RATTATA
db 2,PIDGEY
db 3,PIDGEY
db 3,PIDGEY
db 4,RATTATA
db 4,PIDGEY
db 5,PIDGEY
db 0
Route2Mons:
db $19
db 3,RATTATA
db 3,PIDGEY
db 4,PIDGEY
db 4,RATTATA
db 5,PIDGEY
db 3,WEEDLE
db 2,RATTATA
db 5,RATTATA
db 4,WEEDLE
db 5,WEEDLE
db 0
Route22Mons:
db $19
db 3,RATTATA
db 3,NIDORAN_M
db 4,RATTATA
db 4,NIDORAN_M
db 2,RATTATA
db 2,NIDORAN_M
db 3,SPEAROW
db 5,SPEAROW
db 3,NIDORAN_F
db 4,NIDORAN_F
db 0
ForestMons:
db $08
db 4,WEEDLE
db 5,KAKUNA
db 3,WEEDLE
db 5,WEEDLE
db 4,KAKUNA
db 6,KAKUNA
db 4,METAPOD
db 3,CATERPIE
db 3,PIKACHU
db 5,PIKACHU
db 0
Route3Mons:
db $14
db 6,PIDGEY
db 5,SPEAROW
db 7,PIDGEY
db 6,SPEAROW
db 7,SPEAROW
db 8,PIDGEY
db 8,SPEAROW
db 3,JIGGLYPUFF
db 5,JIGGLYPUFF
db 7,JIGGLYPUFF
db 0
MoonMons1:
db $0A
db 8,ZUBAT
db 7,ZUBAT
db 9,ZUBAT
db 8,GEODUDE
db 6,ZUBAT
db 10,ZUBAT
db 10,GEODUDE
db 8,PARAS
db 11,ZUBAT
db 8,CLEFAIRY
db 0
MoonMonsB1:
db $0A
db 8,ZUBAT
db 7,ZUBAT
db 7,GEODUDE
db 8,GEODUDE
db 9,ZUBAT
db 10,PARAS
db 10,ZUBAT
db 11,ZUBAT
db 9,CLEFAIRY
db 9,GEODUDE
db 0
MoonMonsB2:
db $0A
db 9,ZUBAT
db 9,GEODUDE
db 10,ZUBAT
db 10,GEODUDE
db 11,ZUBAT
db 10,PARAS
db 12,PARAS
db 10,CLEFAIRY
db 12,ZUBAT
db 12,CLEFAIRY
db 0
Route4Mons:
db $14
db 10,RATTATA
db 10,SPEAROW
db 8,RATTATA
db 6,EKANS
db 8,SPEAROW
db 10,EKANS
db 12,RATTATA
db 12,SPEAROW
db 8,EKANS
db 12,EKANS
db 0
Route24Mons:
db $19
db 7,WEEDLE
db 8,KAKUNA
db 12,PIDGEY
db 12,ODDISH
db 13,ODDISH
db 10,ABRA
db 14,ODDISH
db 13,PIDGEY
db 8,ABRA
db 12,ABRA
db 0
Route25Mons:
db 15
db 8,WEEDLE
db 9,KAKUNA
db 13,PIDGEY
db 12,ODDISH
db 13,ODDISH
db 12,ABRA
db 14,ODDISH
db 10,ABRA
db 7,METAPOD
db 8,CATERPIE
db 0
Route9Mons:
db 15
db 16,RATTATA
db 16,SPEAROW
db 14,RATTATA
db 11,EKANS
db 13,SPEAROW
db 15,EKANS
db 17,RATTATA
db 17,SPEAROW
db 13,EKANS
db 17,EKANS
db 0
Route5Mons:
db 15
db 13,ODDISH
db 13,PIDGEY
db 15,PIDGEY
db 10,MANKEY
db 12,MANKEY
db 15,ODDISH
db 16,ODDISH
db 16,PIDGEY
db 14,MANKEY
db 16,MANKEY
db 0
Route6Mons:
db 15
db 13,ODDISH
db 13,PIDGEY
db 15,PIDGEY
db 10,MANKEY
db 12,MANKEY
db 15,ODDISH
db 16,ODDISH
db 16,PIDGEY
db 14,MANKEY
db 16,MANKEY
db 0
Route11Mons:
db 15
db 14,EKANS
db 15,SPEAROW
db 12,EKANS
db 9,DROWZEE
db 13,SPEAROW
db 13,DROWZEE
db 15,EKANS
db 17,SPEAROW
db 11,DROWZEE
db 15,DROWZEE
db 0
TunnelMonsB1:
db 15
db 16,ZUBAT
db 17,ZUBAT
db 17,GEODUDE
db 15,MACHOP
db 16,GEODUDE
db 18,ZUBAT
db 15,ZUBAT
db 17,MACHOP
db 13,ONIX
db 15,ONIX
db 0
TunnelMonsB2:
db 15
db 16,ZUBAT
db 17,ZUBAT
db 17,GEODUDE
db 15,MACHOP
db 16,GEODUDE
db 18,ZUBAT
db 17,MACHOP
db 17,ONIX
db 13,ONIX
db 18,GEODUDE
db 0
Route10Mons:
db 15
db 16,VOLTORB
db 16,SPEAROW
db 14,VOLTORB
db 11,EKANS
db 13,SPEAROW
db 15,EKANS
db 17,VOLTORB
db 17,SPEAROW
db 13,EKANS
db 17,EKANS
db 0
Route12Mons:
db 15
db 24,ODDISH
db 25,PIDGEY
db 23,PIDGEY
db 24,VENONAT
db 22,ODDISH
db 26,VENONAT
db 26,ODDISH
db 27,PIDGEY
db 28,GLOOM
db 30,GLOOM
db 0
Route8Mons:
db 15
db 18,PIDGEY
db 18,MANKEY
db 17,EKANS
db 16,GROWLITHE
db 20,PIDGEY
db 20,MANKEY
db 19,EKANS
db 17,GROWLITHE
db 15,GROWLITHE
db 18,GROWLITHE
db 0
Route7Mons:
db 15
db 19,PIDGEY
db 19,ODDISH
db 17,MANKEY
db 22,ODDISH
db 22,PIDGEY
db 18,MANKEY
db 18,GROWLITHE
db 20,GROWLITHE
db 19,MANKEY
db 20,MANKEY
db 0
TowerMons1:
db 0
db 0
TowerMons2:
db 0
db 0
TowerMons3:
db $0A
db 20,GASTLY
db 21,GASTLY
db 22,GASTLY
db 23,GASTLY
db 19,GASTLY
db 18,GASTLY
db 24,GASTLY
db 20,CUBONE
db 22,CUBONE
db 25,HAUNTER
db 0
TowerMons4:
db $0A
db 20,GASTLY
db 21,GASTLY
db 22,GASTLY
db 23,GASTLY
db 19,GASTLY
db 18,GASTLY
db 25,HAUNTER
db 20,CUBONE
db 22,CUBONE
db 24,GASTLY
db 0
TowerMons5:
db $0A
db 20,GASTLY
db 21,GASTLY
db 22,GASTLY
db 23,GASTLY
db 19,GASTLY
db 18,GASTLY
db 25,HAUNTER
db 20,CUBONE
db 22,CUBONE
db 24,GASTLY
db 0
TowerMons6:
db 15
db 21,GASTLY
db 22,GASTLY
db 23,GASTLY
db 24,GASTLY
db 20,GASTLY
db 19,GASTLY
db 26,HAUNTER
db 22,CUBONE
db 24,CUBONE
db 28,HAUNTER
db 0
TowerMons7:
db 15
db 21,GASTLY
db 22,GASTLY
db 23,GASTLY
db 24,GASTLY
db 20,GASTLY
db 28,HAUNTER
db 22,CUBONE
db 24,CUBONE
db 28,HAUNTER
db 30,HAUNTER
db 0
Route13Mons:
db $14
db 24,ODDISH
db 25,PIDGEY
db 27,PIDGEY
db 24,VENONAT
db 22,ODDISH
db 26,VENONAT
db 26,ODDISH
db 25,DITTO
db 28,GLOOM
db 30,GLOOM
db 0
Route14Mons:
db 15
db 24,ODDISH
db 26,PIDGEY
db 23,DITTO
db 24,VENONAT
db 22,ODDISH
db 26,VENONAT
db 26,ODDISH
db 30,GLOOM
db 28,PIDGEOTTO
db 30,PIDGEOTTO
db 0
Route15Mons:
db 15
db 24,ODDISH
db 26,DITTO
db 23,PIDGEY
db 26,VENONAT
db 22,ODDISH
db 28,VENONAT
db 26,ODDISH
db 30,GLOOM
db 28,PIDGEOTTO
db 30,PIDGEOTTO
db 0
Route16Mons:
db $19
db 20,SPEAROW
db 22,SPEAROW
db 18,RATTATA
db 20,DODUO
db 20,RATTATA
db 18,DODUO
db 22,DODUO
db 22,RATTATA
db 23,RATICATE
db 25,RATICATE
db 0
Route17Mons:
db $19
db 20,SPEAROW
db 22,SPEAROW
db 25,RATICATE
db 24,DODUO
db 27,RATICATE
db 26,DODUO
db 28,DODUO
db 29,RATICATE
db 25,FEAROW
db 27,FEAROW
db 0
Route18Mons:
db $19
db 20,SPEAROW
db 22,SPEAROW
db 25,RATICATE
db 24,DODUO
db 25,FEAROW
db 26,DODUO
db 28,DODUO
db 29,RATICATE
db 27,FEAROW
db 29,FEAROW
db 0
ZoneMonsCenter:
db $1E
db 22,NIDORAN_M
db 25,RHYHORN
db 22,VENONAT
db 24,EXEGGCUTE
db 31,NIDORINO
db 25,EXEGGCUTE
db 31,NIDORINA
db 30,PARASECT
db 23,SCYTHER
db 23,CHANSEY
db 0
ZoneMons1:
db $1E
db 24,NIDORAN_M
db 26,DODUO
db 22,PARAS
db 25,EXEGGCUTE
db 33,NIDORINO
db 23,EXEGGCUTE
db 24,NIDORAN_F
db 25,PARASECT
db 25,KANGASKHAN
db 28,SCYTHER
db 0
ZoneMons2:
db $1E
db 22,NIDORAN_M
db 26,RHYHORN
db 23,PARAS
db 25,EXEGGCUTE
db 30,NIDORINO
db 27,EXEGGCUTE
db 30,NIDORINA
db 32,VENOMOTH
db 26,CHANSEY
db 28,TAUROS
db 0
ZoneMons3:
db $1E
db 25,NIDORAN_M
db 26,DODUO
db 23,VENONAT
db 24,EXEGGCUTE
db 33,NIDORINO
db 26,EXEGGCUTE
db 25,NIDORAN_F
db 31,VENOMOTH
db 26,TAUROS
db 28,KANGASKHAN
db 0
WaterMons:
db 0
db 5
db 5, TENTACOOL
db 10, TENTACOOL
db 15, TENTACOOL
db 5, TENTACOOL
db 10, TENTACOOL
db 15, TENTACOOL
db 20, TENTACOOL
db 30, TENTACOOL
db 35, TENTACOOL
db 40, TENTACOOL
IslandMons1:
db 15
db 30,SEEL
db 30,SLOWPOKE
db 30,SHELLDER
db 30,HORSEA
db 28,HORSEA
db 21,ZUBAT
db 29,GOLBAT
db 28,PSYDUCK
db 28,SHELLDER
db 38,GOLDUCK
db 0
IslandMonsB1:
db $0A
db 30,STARYU
db 30,HORSEA
db 32,SHELLDER
db 32,HORSEA
db 28,SLOWPOKE
db 30,SEEL
db 30,SLOWPOKE
db 28,SEEL
db 38,DEWGONG
db 37,SEADRA
db 0
IslandMonsB2:
db $0A
db 30,SEEL
db 30,SLOWPOKE
db 32,SEEL
db 32,SLOWPOKE
db 28,HORSEA
db 30,STARYU
db 30,HORSEA
db 28,SHELLDER
db 30,GOLBAT
db 37,SLOWBRO
db 0
IslandMonsB3:
db $0A
db 31,SLOWPOKE
db 31,SEEL
db 33,SLOWPOKE
db 33,SEEL
db 29,HORSEA
db 31,SHELLDER
db 31,HORSEA
db 29,SHELLDER
db 39,SEADRA
db 37,DEWGONG
db 0
IslandMonsB4:
db $0A
db 31,HORSEA
db 31,SHELLDER
db 33,HORSEA
db 33,SHELLDER
db 29,SLOWPOKE
db 31,SEEL
db 31,SLOWPOKE
db 29,SEEL
db 39,SLOWBRO
db 32,GOLBAT
db 0
MansionMons1:
db $0A
db 32,KOFFING
db 30,KOFFING
db 34,PONYTA
db 30,PONYTA
db 34,GROWLITHE
db 32,PONYTA
db 30,GRIMER
db 28,PONYTA
db 37,WEEZING
db 39,MUK
db 0
MansionMons2:
db $0A
db 32,GROWLITHE
db 34,KOFFING
db 34,KOFFING
db 30,PONYTA
db 30,KOFFING
db 32,PONYTA
db 30,GRIMER
db 28,PONYTA
db 39,WEEZING
db 37,MUK
db 0
MansionMons3:
db $0A
db 31,KOFFING
db 33,GROWLITHE
db 35,KOFFING
db 32,PONYTA
db 34,PONYTA
db 40,WEEZING
db 34,GRIMER
db 38,WEEZING
db 36,PONYTA
db 42,MUK
db 0
MansionMonsB1:
db $0A
db 33,KOFFING
db 31,KOFFING
db 35,GROWLITHE
db 32,PONYTA
db 31,KOFFING
db 40,WEEZING
db 34,PONYTA
db 35,GRIMER
db 42,WEEZING
db 42,MUK
db 0
Route21Mons:
db $19
db 21,RATTATA
db 23,PIDGEY
db 30,RATICATE
db 23,RATTATA
db 21,PIDGEY
db 30,PIDGEOTTO
db 32,PIDGEOTTO
db 28,TANGELA
db 30,TANGELA
db 32,TANGELA
db 5
db 5,TENTACOOL
db 10,TENTACOOL
db 15,TENTACOOL
db 5,TENTACOOL
db 10,TENTACOOL
db 15,TENTACOOL
db 20,TENTACOOL
db 30,TENTACOOL
db 35,TENTACOOL
db 40,TENTACOOL
DungeonMons1:
db $0A
db 46,GOLBAT
db 46,HYPNO
db 46,MAGNETON
db 49,DODRIO
db 49,VENOMOTH
db 52,ARBOK
db 49,KADABRA
db 52,PARASECT
db 53,RAICHU
db 53,DITTO
db 0
DungeonMons2:
db 15
db 51,DODRIO
db 51,VENOMOTH
db 51,KADABRA
db 52,RHYDON
db 52,MAROWAK
db 52,ELECTRODE
db 56,CHANSEY
db 54,WIGGLYTUFF
db 55,DITTO
db 60,DITTO
db 0
DungeonMonsB1:
db $19
db 55,RHYDON
db 55,MAROWAK
db 55,ELECTRODE
db 64,CHANSEY
db 64,PARASECT
db 64,RAICHU
db 57,ARBOK
db 65,DITTO
db 63,DITTO
db 67,DITTO
db 0
PowerPlantMons:
db $0A
db 21,VOLTORB
db 21,MAGNEMITE
db 20,PIKACHU
db 24,PIKACHU
db 23,MAGNEMITE
db 23,VOLTORB
db 32,MAGNETON
db 35,MAGNETON
db 33,ELECTABUZZ
db 36,ELECTABUZZ
db 0
Route23Mons:
db $0A
db 26,EKANS
db 33,DITTO
db 26,SPEAROW
db 38,FEAROW
db 38,DITTO
db 38,FEAROW
db 41,ARBOK
db 43,DITTO
db 41,FEAROW
db 43,FEAROW
db 0
PlateauMons2:
db $0A
db 22,MACHOP
db 24,GEODUDE
db 26,ZUBAT
db 36,ONIX
db 39,ONIX
db 42,ONIX
db 41,MACHOKE
db 40,GOLBAT
db 40,MAROWAK
db 43,GRAVELER
db 0
PlateauMons3:
db 15
db 24,MACHOP
db 26,GEODUDE
db 22,ZUBAT
db 42,ONIX
db 40,VENOMOTH
db 45,ONIX
db 43,GRAVELER
db 41,GOLBAT
db 42,MACHOKE
db 45,MACHOKE
db 0
PlateauMons1:
db 15
db 24,MACHOP
db 26,GEODUDE
db 22,ZUBAT
db 36,ONIX
db 39,ONIX
db 42,ONIX
db 41,GRAVELER
db 41,GOLBAT
db 42,MACHOKE
db 43,MAROWAK
db 0
CaveMons:
db $14
db 18,DIGLETT
db 19,DIGLETT
db 17,DIGLETT
db 20,DIGLETT
db 16,DIGLETT
db 15,DIGLETT
db 21,DIGLETT
db 22,DIGLETT
db 29,DUGTRIO
db 31,DUGTRIO
db 0
INCBIN "baserom.gbc",$D5C7,$10000 - $D5C7
SECTION "bank4",DATA,BANK[$4]
INCBIN "baserom.gbc",$10000,$4000
SECTION "bank5",DATA,BANK[$5]
INCBIN "baserom.gbc",$14000,$4000
SECTION "bank6",DATA,BANK[$6]
INCBIN "baserom.gbc",$18000,$4000
SECTION "bank7",DATA,BANK[$7]
INCBIN "baserom.gbc",$1C000,$4000
SECTION "bank8",DATA,BANK[$8]
INCBIN "baserom.gbc",$20000,$4000
SECTION "bank9",DATA,BANK[$9]
INCBIN "baserom.gbc",$24000,$4000
SECTION "bankA",DATA,BANK[$A]
INCBIN "baserom.gbc",$28000,$4000
SECTION "bankB",DATA,BANK[$B]
INCBIN "baserom.gbc",$2C000,$4000
SECTION "bankC",DATA,BANK[$C]
INCBIN "baserom.gbc",$30000,$4000
SECTION "bankD",DATA,BANK[$D]
INCBIN "baserom.gbc",$34000,$4000
SECTION "bankE",DATA,BANK[$E]
Attacks: ; 4000
; characteristics of each attack
db POUND ,$00,$28,NORMAL,$FF,35
db KARATE_CHOP ,$00,$32,NORMAL,$FF,25
db DOUBLESLAP ,$1D,$0F,NORMAL,$D8,10
db COMET_PUNCH ,$1D,$12,NORMAL,$D8,15
db MEGA_PUNCH ,$00,$50,NORMAL,$D8,20
db PAY_DAY ,$10,$28,NORMAL,$FF,20
db FIRE_PUNCH ,$04,$4B,FIRE,$FF,15
db ICE_PUNCH ,$05,$4B,ICE,$FF,15
db THUNDERPUNCH,$06,$4B,ELECTRIC,$FF,15
db SCRATCH ,$00,$28,NORMAL,$FF,35
db VICEGRIP ,$00,$37,NORMAL,$FF,30
db GUILLOTINE ,$26,$01,NORMAL,$4C,5
db RAZOR_WIND ,$27,$50,NORMAL,$BF,10
db SWORDS_DANCE,$32,$00,NORMAL,$FF,30
db CUT ,$00,$32,NORMAL,$F2,30
db GUST ,$00,$28,NORMAL,$FF,35
db WING_ATTACK ,$00,$23,FLYING,$FF,35
db WHIRLWIND ,$1C,$00,NORMAL,$D8,20
db FLY ,$2B,$46,FLYING,$F2,15
db BIND ,$2A,$0F,NORMAL,$BF,20
db SLAM ,$00,$50,NORMAL,$BF,20
db VINE_WHIP ,$00,$23,GRASS,$FF,10
db STOMP ,$25,$41,NORMAL,$FF,20
db DOUBLE_KICK ,$2C,$1E,FIGHTING,$FF,30
db MEGA_KICK ,$00,$78,NORMAL,$BF,5
db JUMP_KICK ,$2D,$46,FIGHTING,$F2,25
db ROLLING_KICK,$25,$3C,FIGHTING,$D8,15
db SAND_ATTACK ,$16,$00,NORMAL,$FF,15
db HEADBUTT ,$25,$46,NORMAL,$FF,15
db HORN_ATTACK ,$00,$41,NORMAL,$FF,25
db FURY_ATTACK ,$1D,$0F,NORMAL,$D8,20
db HORN_DRILL ,$26,$01,NORMAL,$4C,5
db TACKLE ,$00,$23,NORMAL,$F2,35
db BODY_SLAM ,$24,$55,NORMAL,$FF,15
db WRAP ,$2A,$0F,NORMAL,$D8,20
db TAKE_DOWN ,$30,$5A,NORMAL,$D8,20
db THRASH ,$1B,$5A,NORMAL,$FF,20
db DOUBLE_EDGE ,$30,$64,NORMAL,$FF,15
db TAIL_WHIP ,$13,$00,NORMAL,$FF,30
db POISON_STING,$02,$0F,POISON,$FF,35
db TWINEEDLE ,$4D,$19,BUG,$FF,20
db PIN_MISSILE ,$1D,$0E,BUG,$D8,20
db LEER ,$13,$00,NORMAL,$FF,30
db BITE ,$1F,$3C,NORMAL,$FF,25
db GROWL ,$12,$00,NORMAL,$FF,40
db ROAR ,$1C,$00,NORMAL,$FF,20
db SING ,$20,$00,NORMAL,$8C,15
db SUPERSONIC ,$31,$00,NORMAL,$8C,20
db SONICBOOM ,$29,$01,NORMAL,$E5,20
db DISABLE ,$56,$00,NORMAL,$8C,20
db ACID ,$45,$28,POISON,$FF,30
db EMBER ,$04,$28,FIRE,$FF,25
db FLAMETHROWER,$04,$5F,FIRE,$FF,15
db MIST ,$2E,$00,ICE,$FF,30
db WATER_GUN ,$00,$28,WATER,$FF,25
db HYDRO_PUMP ,$00,$78,WATER,$CC,5
db SURF ,$00,$5F,WATER,$FF,15
db ICE_BEAM ,$05,$5F,ICE,$FF,10
db BLIZZARD ,$05,$78,ICE,$E5,5
db PSYBEAM ,$4C,$41,PSYCHIC,$FF,20
db BUBBLEBEAM ,$46,$41,WATER,$FF,20
db AURORA_BEAM ,$44,$41,ICE,$FF,20
db HYPER_BEAM ,$50,$96,NORMAL,$E5,5
db PECK ,$00,$23,FLYING,$FF,35
db DRILL_PECK ,$00,$50,FLYING,$FF,20
db SUBMISSION ,$30,$50,FIGHTING,$CC,25
db LOW_KICK ,$25,$32,FIGHTING,$E5,20
db COUNTER ,$00,$01,FIGHTING,$FF,20
db SEISMIC_TOSS,$29,$01,FIGHTING,$FF,20
db STRENGTH ,$00,$50,NORMAL,$FF,15
db ABSORB ,$03,$14,GRASS,$FF,20
db MEGA_DRAIN ,$03,$28,GRASS,$FF,10
db LEECH_SEED ,$54,$00,GRASS,$E5,10
db GROWTH ,$0D,$00,NORMAL,$FF,40
db RAZOR_LEAF ,$00,$37,GRASS,$F2,25
db SOLARBEAM ,$27,$78,GRASS,$FF,10
db POISONPOWDER,$42,$00,POISON,$BF,35
db STUN_SPORE ,$43,$00,GRASS,$BF,30
db SLEEP_POWDER,$20,$00,GRASS,$BF,15
db PETAL_DANCE ,$1B,$46,GRASS,$FF,20
db STRING_SHOT ,$14,$00,BUG,$F2,40
db DRAGON_RAGE ,$29,$01,DRAGON,$FF,10
db FIRE_SPIN ,$2A,$0F,FIRE,$B2,15
db THUNDERSHOCK,$06,$28,ELECTRIC,$FF,30
db THUNDERBOLT ,$06,$5F,ELECTRIC,$FF,15
db THUNDER_WAVE,$43,$00,ELECTRIC,$FF,20
db THUNDER ,$06,$78,ELECTRIC,$B2,10
db ROCK_THROW ,$00,$32,ROCK,$A5,15
db EARTHQUAKE ,$00,$64,GROUND,$FF,10
db FISSURE ,$26,$01,GROUND,$4C,5
db DIG ,$27,$64,GROUND,$FF,10
db TOXIC ,$42,$00,POISON,$D8,10
db CONFUSION ,$4C,$32,PSYCHIC,$FF,25
db PSYCHIC_M ,$47,$5A,PSYCHIC,$FF,10
db HYPNOSIS ,$20,$00,PSYCHIC,$99,20
db MEDITATE ,$0A,$00,PSYCHIC,$FF,40
db AGILITY ,$34,$00,PSYCHIC,$FF,30
db QUICK_ATTACK,$00,$28,NORMAL,$FF,30
db RAGE ,$51,$14,NORMAL,$FF,20
db TELEPORT ,$1C,$00,PSYCHIC,$FF,20
db NIGHT_SHADE ,$29,$00,GHOST,$FF,15
db MIMIC ,$52,$00,NORMAL,$FF,10
db SCREECH ,$3B,$00,NORMAL,$D8,40
db DOUBLE_TEAM ,$0F,$00,NORMAL,$FF,15
db RECOVER ,$38,$00,NORMAL,$FF,20
db HARDEN ,$0B,$00,NORMAL,$FF,30
db MINIMIZE ,$0F,$00,NORMAL,$FF,20
db SMOKESCREEN ,$16,$00,NORMAL,$FF,20
db CONFUSE_RAY ,$31,$00,GHOST,$FF,10
db WITHDRAW ,$0B,$00,WATER,$FF,40
db DEFENSE_CURL,$0B,$00,NORMAL,$FF,40
db BARRIER ,$33,$00,PSYCHIC,$FF,30
db LIGHT_SCREEN,$40,$00,PSYCHIC,$FF,30
db HAZE ,$19,$00,ICE,$FF,30
db REFLECT ,$41,$00,PSYCHIC,$FF,20
db FOCUS_ENERGY,$2F,$00,NORMAL,$FF,30
db BIDE ,$1A,$00,NORMAL,$FF,10
db METRONOME ,$53,$00,NORMAL,$FF,10
db MIRROR_MOVE ,$09,$00,FLYING,$FF,20
db SELFDESTRUCT,$07,$82,NORMAL,$FF,5
db EGG_BOMB ,$00,$64,NORMAL,$BF,10
db LICK ,$24,$14,GHOST,$FF,30
db SMOG ,$21,$14,POISON,$B2,20
db SLUDGE ,$21,$41,POISON,$FF,20
db BONE_CLUB ,$1F,$41,GROUND,$D8,20
db FIRE_BLAST ,$22,$78,FIRE,$D8,5
db WATERFALL ,$00,$50,WATER,$FF,15
db CLAMP ,$2A,$23,WATER,$BF,10
db SWIFT ,$11,$3C,NORMAL,$FF,20
db SKULL_BASH ,$27,$64,NORMAL,$FF,15
db SPIKE_CANNON,$1D,$14,NORMAL,$FF,15
db CONSTRICT ,$46,$0A,NORMAL,$FF,35
db AMNESIA ,$35,$00,PSYCHIC,$FF,20
db KINESIS ,$16,$00,PSYCHIC,$CC,15
db SOFTBOILED ,$38,$00,NORMAL,$FF,10
db HI_JUMP_KICK,$2D,$55,FIGHTING,$E5,20
db GLARE ,$43,$00,NORMAL,$BF,30
db DREAM_EATER ,$08,$64,PSYCHIC,$FF,15
db POISON_GAS ,$42,$00,POISON,$8C,40
db BARRAGE ,$1D,$0F,NORMAL,$D8,20
db LEECH_LIFE ,$03,$14,BUG,$FF,15
db LOVELY_KISS ,$20,$00,NORMAL,$BF,10
db SKY_ATTACK ,$27,$8C,FLYING,$E5,5
db TRANSFORM ,$39,$00,NORMAL,$FF,10
db BUBBLE ,$46,$14,WATER,$FF,30
db DIZZY_PUNCH ,$00,$46,NORMAL,$FF,10
db SPORE ,$20,$00,GRASS,$FF,15
db FLASH ,$16,$00,NORMAL,$B2,20
db PSYWAVE ,$29,$01,PSYCHIC,$CC,15
db SPLASH ,$55,$00,NORMAL,$FF,40
db ACID_ARMOR ,$33,$00,POISON,$FF,40
db CRABHAMMER ,$00,$5A,WATER,$D8,10
db EXPLOSION ,$07,$AA,NORMAL,$FF,5
db FURY_SWIPES ,$1D,$12,NORMAL,$CC,15
db BONEMERANG ,$2C,$32,GROUND,$E5,10
db REST ,$38,$00,PSYCHIC,$FF,10
db ROCK_SLIDE ,$00,$4B,ROCK,$E5,10
db HYPER_FANG ,$1F,$50,NORMAL,$E5,15
db SHARPEN ,$0A,$00,NORMAL,$FF,30
db CONVERSION ,$18,$00,NORMAL,$FF,30
db TRI_ATTACK ,$00,$50,NORMAL,$FF,10
db SUPER_FANG ,$28,$01,NORMAL,$E5,10
db SLASH ,$00,$46,NORMAL,$FF,20
db SUBSTITUTE ,$4F,$00,NORMAL,$FF,10
db STRUGGLE ,$30,$32,NORMAL,$FF,10
; trainer data: from 5C53 to 652E
INCBIN "baserom.gbc",$383DE,$39884 - $383DE
ReadAttack: ; 5884
push hl
push de
push bc
dec a
ld hl,Attacks
ld bc,6
call AddNTimes
ld de,$CFCC
call CopyData
pop bc
pop de
pop hl
ret
INCBIN "baserom.gbc",$3989B,$39C53 - $3989B
ReadTrainer: ; 5C53
; don't change any moves in a link battle
ld a,[W_ISLINKBATTLE]
and a
ret nz
; set [W_ENEMYMONCOUNT] to 0, [$D89D] to FF
; XXX first is total enemy pokemon?
; XXX second is species of first pokemon?
ld hl,W_ENEMYMONCOUNT
xor a
ld [hli],a
dec a
ld [hl],a
; get the pointer to trainer data for this class
ld a,[W_CUROPPONENT]
sub $C9 ; convert value from pokemon to trainer
add a,a
ld hl,TrainerDataPointers
ld c,a
ld b,0
add hl,bc ; hl points to trainer class
ld a,[hli]
ld h,[hl]
ld l,a
ld a,[W_TRAINERNO]
ld b,a
; At this point b contains the trainer number,
; and hl points to the trainer class.
; Our next task is to iterate through the trainers,
; decrementing b each time, until we get to the right one.
.outer\@
dec b
jr z,.IterateTrainer
.inner\@
ld a,[hli]
and a
jr nz,.inner\@
jr .outer\@
; if the first byte of trainer data is FF,
; - each pokemon has a specific level
; (as opposed to the whole team being of the same level)
; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move
; else the first byte is the level of every pokemon on the team
.IterateTrainer
ld a,[hli]
cp $FF ; is the trainer special?
jr z,.SpecialTrainer\@ ; if so, check for special attacks
ld [W_CURENEMYLVL],a
.LoopTrainerData\@
ld a,[hli]
and a ; have we reached the end of the trainer data?
jr z,.FinishUp\@
ld [$CF91],a ; write species somewhere (XXX why?)
ld a,1
ld [$CC49],a
push hl
call $3927
pop hl
jr .LoopTrainerData\@
.SpecialTrainer\@
; if this code is being run:
; - each pokemon has a specific level
; (as opposed to the whole team being of the same level)
; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move
ld a,[hli]
and a ; have we reached the end of the trainer data?
jr z,.AddLoneAttack\@
ld [W_CURENEMYLVL],a
ld a,[hli]
ld [$CF91],a
ld a,1
ld [$CC49],a
push hl
call $3927
pop hl
jr .SpecialTrainer\@
.AddLoneAttack\@
; does the trainer have a single monster with a different move
ld a,[W_LONEATTACKNO] ; Brock is 01, Misty is 02, Erika is 04, etc
and a
jr z,.AddTeamAttack\@
dec a
add a,a
ld c,a
ld b,0
ld hl,LoneAttacks
add hl,bc
ld a,[hli]
ld d,[hl]
ld hl,W_ENEMYMON1MOVE3
ld bc,W_ENEMYMON2MOVE3 - W_ENEMYMON1MOVE3
call AddNTimes
ld [hl],d
jr .FinishUp\@
.AddTeamAttack\@
; check if our trainer's team has special moves
; get trainer class number
ld a,[$D059]
sub $C8
ld b,a
ld hl,TeamAttacks
; iterate through entries in TeamAttacks, checking each for our trainer class
.IterateTeamAttacks\@
ld a,[hli]
cp b
jr z,.GiveTeamAttacks\@ ; is there a match?
inc hl ; if not, go to the next entry
inc a
jr nz,.IterateTeamAttacks\@
; no matches found. is this trainer champion rival?
ld a,b
cp SONY3
jr z,.ChampionRival\@
jr .FinishUp\@ ; nope
.GiveTeamAttacks\@
ld a,[hl]
ld [$D95E],a
jr .FinishUp\@
.ChampionRival\@ ; give attacks to his team
; pidgeot
ld a,SKY_ATTACK
ld [W_ENEMYMON1MOVE3],a
; starter
ld a,[W_RIVALSTARTER]
cp BULBASAUR
ld b,MEGA_DRAIN
jr z,.GiveStarterMove\@
cp CHARMANDER
ld b,FIRE_BLAST
jr z,.GiveStarterMove\@
ld b,BLIZZARD ; must be squirtle
.GiveStarterMove\@
ld a,b
ld [W_ENEMYMON6MOVE3],a
.FinishUp\@ ; XXX this needs documenting
xor a ; clear D079-D07B
ld de,$D079
ld [de],a
inc de
ld [de],a
inc de
ld [de],a
ld a,[W_CURENEMYLVL]
ld b,a
.LastLoop\@
ld hl,$D047
ld c,2
push bc
ld a,$B
call Predef
pop bc
inc de
inc de
dec b
jr nz,.LastLoop\@
ret
LoneAttacks: ; 5D22
; these are used for gym leaders.
; this is not automatic! you have to write the number you want to W_LONEATTACKNO
; first. e.g., erika's script writes 4 to W_LONEATTACKNO to get mega drain,
; the fourth entry in the list.
; first byte: pokemon in the trainer's party that gets the move
; second byte: move
; unterminated
db 1,BIDE
db 1,BUBBLEBEAM
db 2,THUNDERBOLT
db 2,MEGA_DRAIN
db 3,TOXIC
db 3,PSYWAVE
db 3,FIRE_BLAST
db 4,FISSURE
TeamAttacks: ; 5D32
; these are used for elite four.
; this is automatic, based on trainer class.
; don't be confused by LoneAttacks above, the two data structures are
; _completely_ unrelated.
; first byte: trainer (all trainers in this class have this move)
; second byte: move
; ff-terminated
db LORELEI,BLIZZARD
db BRUNO,FISSURE
db AGATHA,TOXIC
db LANCE,BARRIER
db $FF
TrainerDataPointers: ; 5D3B
dw YoungsterData,BugCatcherData,LassData,SailorData,JrTrainerMData
dw JrTrainerFData,PokemaniacData,SuperNerdData,HikerData,BikerData
dw BurglarData,EngineerData,Juggler1Data,FisherData,SwimmerData
dw CueBallData,GamblerData,BeautyData,PsychicData,RockerData
dw JugglerData,TamerData,BirdKeeperData,BlackbeltData,Green1Data
dw ProfOakData,ChiefData,ScientistData,GiovanniData,RocketData
dw CooltrainerMData,CooltrainerFData,BrunoData,BrockData,MistyData
dw LtSurgeData,ErikaData,KogaData,BlaineData,SabrinaData
dw GentlemanData,Green2Data,Green3Data,LoreleiData,ChannelerData
dw AgathaData,LanceData
; if first byte != FF, then
; first byte is level (of all pokemon on this team)
; all the next bytes are pokemon species
; null-terminated
; if first byte == FF, then
; first byte is FF (obviously)
; every next two bytes are a level and species
; null-terminated
YoungsterData:
db 11,RATTATA,EKANS,0
db 14,SPEAROW,0
db 10,RATTATA,RATTATA,ZUBAT,0
db 14,RATTATA,EKANS,ZUBAT,0
db 15,RATTATA,SPEAROW,0
db 17,SLOWPOKE,0
db 14,EKANS,SANDSHREW,0
db 21,NIDORAN_M,0
db 21,EKANS,0
db 19,SANDSHREW,ZUBAT,0
db 17,RATTATA,RATTATA,RATICATE,0
db 18,NIDORAN_M,NIDORINO,0
db 17,SPEAROW,RATTATA,RATTATA,SPEAROW,0
BugCatcherData:
db 6,WEEDLE,CATERPIE,0
db 7,WEEDLE,KAKUNA,WEEDLE,0
db 9,WEEDLE,0
db 10,CATERPIE,WEEDLE,CATERPIE,0
db 9,WEEDLE,KAKUNA,CATERPIE,METAPOD,0
db 11,CATERPIE,METAPOD,0
db 11,WEEDLE,KAKUNA,0
db 10,CATERPIE,METAPOD,CATERPIE,0
db 14,CATERPIE,WEEDLE,0
db 16,WEEDLE,CATERPIE,WEEDLE,0
db 20,BUTTERFREE,0
db 18,METAPOD,CATERPIE,VENONAT,0
db 19,BEEDRILL,BEEDRILL,0
db 20,CATERPIE,WEEDLE,VENONAT,0
LassData:
db 9,PIDGEY,PIDGEY,0
db 10,RATTATA,NIDORAN_M,0
db 14,JIGGLYPUFF,0
db 31,PARAS,PARAS,PARASECT,0
db 11,ODDISH,BELLSPROUT,0
db 14,CLEFAIRY,0
db 16,PIDGEY,NIDORAN_F,0
db 14,PIDGEY,NIDORAN_F,0
db 15,NIDORAN_M,NIDORAN_F,0
db 13,ODDISH,PIDGEY,ODDISH,0
db 18,PIDGEY,NIDORAN_F,0
db 18,RATTATA,PIKACHU,0
db 23,NIDORAN_F,NIDORINA,0
db 24,MEOWTH,MEOWTH,MEOWTH,0
db 19,PIDGEY,RATTATA,NIDORAN_M,MEOWTH,PIKACHU,0
db 22,CLEFAIRY,CLEFAIRY,0
db 23,BELLSPROUT,WEEPINBELL,0
db 23,ODDISH,GLOOM,0
SailorData:
db 18,MACHOP,SHELLDER,0
db 17,MACHOP,TENTACOOL,0
db 21,SHELLDER,0
db 17,HORSEA,SHELLDER,TENTACOOL,0
db 18,TENTACOOL,STARYU,0
db 17,HORSEA,HORSEA,HORSEA,0
db 20,MACHOP,0
db 21,PIKACHU,PIKACHU,0
JrTrainerMData:
db 11,DIGLETT,SANDSHREW,0
db 14,RATTATA,EKANS,0
db 18,MANKEY,0
db 20,SQUIRTLE,0
db 16,SPEAROW,RATICATE,0
db 18,DIGLETT,DIGLETT,SANDSHREW,0
db 21,GROWLITHE,CHARMANDER,0
db 19,RATTATA,DIGLETT,EKANS,SANDSHREW,0
db 29,NIDORAN_M,NIDORINO,0
JrTrainerFData:
db 19,GOLDEEN,0
db 16,RATTATA,PIKACHU,0
db 16,PIDGEY,PIDGEY,PIDGEY,0
db 22,BULBASAUR,0
db 18,ODDISH,BELLSPROUT,ODDISH,BELLSPROUT,0
db 23,MEOWTH,0
db 20,PIKACHU,CLEFAIRY,0
db 21,PIDGEY,PIDGEOTTO,0
db 21,JIGGLYPUFF,PIDGEY,MEOWTH,0
db 22,ODDISH,BULBASAUR,0
db 24,BULBASAUR,IVYSAUR,0
db 24,PIDGEY,MEOWTH,RATTATA,PIKACHU,MEOWTH,0
db 30,POLIWAG,POLIWAG,0
db 27,PIDGEY,MEOWTH,PIDGEY,PIDGEOTTO,0
db 28,GOLDEEN,POLIWAG,HORSEA,0
db 31,GOLDEEN,SEAKING,0
db 22,BELLSPROUT,CLEFAIRY,0
db 20,MEOWTH,ODDISH,PIDGEY,0
db 19,PIDGEY,RATTATA,RATTATA,BELLSPROUT,0
db 28,GLOOM,ODDISH,ODDISH,0
db 29,PIKACHU,RAICHU,0
db 33,CLEFAIRY,0
db 29,BELLSPROUT,ODDISH,TANGELA,0
db 30,TENTACOOL,HORSEA,SEEL,0
PokemaniacData:
db 30,RHYHORN,LICKITUNG,0
db 20,CUBONE,SLOWPOKE,0
db 20,SLOWPOKE,SLOWPOKE,SLOWPOKE,0
db 22,CHARMANDER,CUBONE,0
db 25,SLOWPOKE,0
db 40,CHARMELEON,LAPRAS,LICKITUNG,0
db 23,CUBONE,SLOWPOKE,0
SuperNerdData:
db 11,MAGNEMITE,VOLTORB,0
db 12,GRIMER,VOLTORB,KOFFING,0
db 20,VOLTORB,KOFFING,VOLTORB,MAGNEMITE,0
db 22,GRIMER,MUK,GRIMER,0
db 26,KOFFING,0
db 22,KOFFING,MAGNEMITE,WEEZING,0
db 20,MAGNEMITE,MAGNEMITE,KOFFING,MAGNEMITE,0
db 24,MAGNEMITE,VOLTORB,0
db 36,VULPIX,VULPIX,NINETALES,0
db 34,PONYTA,CHARMANDER,VULPIX,GROWLITHE,0
db 41,RAPIDASH,0
db 37,GROWLITHE,VULPIX,0
HikerData:
db 10,GEODUDE,GEODUDE,ONIX,0
db 15,MACHOP,GEODUDE,0
db 13,GEODUDE,GEODUDE,MACHOP,GEODUDE,0
db 17,ONIX,0
db 21,GEODUDE,ONIX,0
db 20,GEODUDE,MACHOP,GEODUDE,0
db 21,GEODUDE,ONIX,0
db 19,ONIX,GRAVELER,0
db 21,GEODUDE,GEODUDE,GRAVELER,0
db 25,GEODUDE,0
db 20,MACHOP,ONIX,0
db 19,GEODUDE,MACHOP,GEODUDE,GEODUDE,0
db 20,ONIX,ONIX,GEODUDE,0
db 21,GEODUDE,GRAVELER,0
BikerData:
db 28,KOFFING,KOFFING,KOFFING,0
db 29,KOFFING,GRIMER,0
db 25,KOFFING,KOFFING,WEEZING,KOFFING,GRIMER,0
db 28,KOFFING,GRIMER,WEEZING,0
db 29,GRIMER,KOFFING,0
db 33,WEEZING,0
db 26,GRIMER,GRIMER,GRIMER,GRIMER,0
db 28,WEEZING,KOFFING,WEEZING,0
db 33,MUK,0
db 29,VOLTORB,VOLTORB,0
db 29,WEEZING,MUK,0
db 25,KOFFING,WEEZING,KOFFING,KOFFING,WEEZING,0
db 26,KOFFING,KOFFING,GRIMER,KOFFING,0
db 28,GRIMER,GRIMER,KOFFING,0
db 29,KOFFING,MUK,0
BurglarData:
db 29,GROWLITHE,VULPIX,0
db 33,GROWLITHE,0
db 28,VULPIX,CHARMANDER,PONYTA,0
db 36,GROWLITHE,VULPIX,NINETALES,0
db 41,PONYTA,0
db 37,VULPIX,GROWLITHE,0
db 34,CHARMANDER,CHARMELEON,0
db 38,NINETALES,0
db 34,GROWLITHE,PONYTA,0
EngineerData:
db 21,VOLTORB,MAGNEMITE,0
db 21,MAGNEMITE,0
db 18,MAGNEMITE,MAGNEMITE,MAGNETON,0
Juggler1Data:
; none
FisherData:
db 17,GOLDEEN,TENTACOOL,GOLDEEN,0
db 17,TENTACOOL,STARYU,SHELLDER,0
db 22,GOLDEEN,POLIWAG,GOLDEEN,0
db 24,TENTACOOL,GOLDEEN,0
db 27,GOLDEEN,0
db 21,POLIWAG,SHELLDER,GOLDEEN,HORSEA,0
db 28,SEAKING,GOLDEEN,SEAKING,SEAKING,0
db 31,SHELLDER,CLOYSTER,0
db 27,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,0
db 33,SEAKING,GOLDEEN,0
db 24,MAGIKARP,MAGIKARP,0
SwimmerData:
db 16,HORSEA,SHELLDER,0
db 30,TENTACOOL,SHELLDER,0
db 29,GOLDEEN,HORSEA,STARYU,0
db 30,POLIWAG,POLIWHIRL,0
db 27,HORSEA,TENTACOOL,TENTACOOL,GOLDEEN,0
db 29,GOLDEEN,SHELLDER,SEAKING,0
db 30,HORSEA,HORSEA,0
db 27,TENTACOOL,TENTACOOL,STARYU,HORSEA,TENTACRUEL,0
db 31,SHELLDER,CLOYSTER,0
db 35,STARYU,0
db 28,HORSEA,HORSEA,SEADRA,HORSEA,0
db 33,SEADRA,TENTACRUEL,0
db 37,STARMIE,0
db 33,STARYU,WARTORTLE,0
db 32,POLIWHIRL,TENTACOOL,SEADRA,0
CueBallData:
db 28,MACHOP,MANKEY,MACHOP,0
db 29,MANKEY,MACHOP,0
db 33,MACHOP,0
db 29,MANKEY,PRIMEAPE,0
db 29,MACHOP,MACHOKE,0
db 33,MACHOKE,0
db 26,MANKEY,MANKEY,MACHOKE,MACHOP,0
db 29,PRIMEAPE,MACHOKE,0
db 31,TENTACOOL,TENTACOOL,TENTACRUEL,0
GamblerData:
db 18,POLIWAG,HORSEA,0
db 18,BELLSPROUT,ODDISH,0
db 18,VOLTORB,MAGNEMITE,0
db 18,GROWLITHE,VULPIX,0
db 22,POLIWAG,POLIWAG,POLIWHIRL,0
db 22,ONIX,GEODUDE,GRAVELER,0
db 24,GROWLITHE,VULPIX,0
BeautyData:
db 21,ODDISH,BELLSPROUT,ODDISH,BELLSPROUT,0
db 24,BELLSPROUT,BELLSPROUT,0
db 26,EXEGGCUTE,0
db 27,RATTATA,PIKACHU,RATTATA,0
db 29,CLEFAIRY,MEOWTH,0
db 35,SEAKING,0
db 30,SHELLDER,SHELLDER,CLOYSTER,0
db 31,POLIWAG,SEAKING,0
db 29,PIDGEOTTO,WIGGLYTUFF,0
db 29,BULBASAUR,IVYSAUR,0
db 33,WEEPINBELL,BELLSPROUT,WEEPINBELL,0
db 27,POLIWAG,GOLDEEN,SEAKING,GOLDEEN,POLIWAG,0
db 30,GOLDEEN,SEAKING,0
db 29,STARYU,STARYU,STARYU,0
db 30,SEADRA,HORSEA,SEADRA,0
PsychicData:
db 31,KADABRA,SLOWPOKE,MR__MIME,KADABRA,0
db 34,MR__MIME,KADABRA,0
db 33,SLOWPOKE,SLOWPOKE,SLOWBRO,0
db 38,SLOWBRO,0
RockerData:
db 20,VOLTORB,MAGNEMITE,VOLTORB,0
db 29,VOLTORB,ELECTRODE,0
JugglerData:
db 29,KADABRA,MR__MIME,0
db 41,DROWZEE,HYPNO,KADABRA,KADABRA,0
db 31,DROWZEE,DROWZEE,KADABRA,DROWZEE,0
db 34,DROWZEE,HYPNO,0
db 48,MR__MIME,0
db 33,HYPNO,0
db 38,HYPNO,0
db 34,DROWZEE,KADABRA,0
TamerData:
db 34,SANDSLASH,ARBOK,0
db 33,ARBOK,SANDSLASH,ARBOK,0
db 43,RHYHORN,0
db 39,ARBOK,TAUROS,0
db 44,PERSIAN,GOLDUCK,0
db 42,RHYHORN,PRIMEAPE,ARBOK,TAUROS,0
BirdKeeperData:
db 29,PIDGEY,PIDGEOTTO,0
db 25,SPEAROW,PIDGEY,PIDGEY,SPEAROW,SPEAROW,0
db 26,PIDGEY,PIDGEOTTO,SPEAROW,FEAROW,0
db 33,FARFETCH_D,0
db 29,SPEAROW,FEAROW,0
db 26,PIDGEOTTO,FARFETCH_D,DODUO,PIDGEY,0
db 28,DODRIO,DODUO,DODUO,0
db 29,SPEAROW,FEAROW,0
db 34,DODRIO,0
db 26,SPEAROW,SPEAROW,FEAROW,SPEAROW,0
db 30,FEAROW,FEAROW,PIDGEOTTO,0
db 39,PIDGEOTTO,PIDGEOTTO,PIDGEY,PIDGEOTTO,0
db 42,FARFETCH_D,FEAROW,0
db 28,PIDGEY,DODUO,PIDGEOTTO,0
db 26,PIDGEY,SPEAROW,PIDGEY,FEAROW,0
db 29,PIDGEOTTO,FEAROW,0
db 28,SPEAROW,DODUO,FEAROW,0
BlackbeltData:
db 37,HITMONLEE,HITMONCHAN,0
db 31,MANKEY,MANKEY,PRIMEAPE,0
db 32,MACHOP,MACHOKE,0
db 36,PRIMEAPE,0
db 31,MACHOP,MANKEY,PRIMEAPE,0
db 40,MACHOP,MACHOKE,0
db 43,MACHOKE,0
db 38,MACHOKE,MACHOP,MACHOKE,0
db 43,MACHOKE,MACHOP,MACHOKE,0
Green1Data:
db 5,SQUIRTLE,0
db 5,BULBASAUR,0
db 5,CHARMANDER,0
db $FF,9,PIDGEY,8,SQUIRTLE,0
db $FF,9,PIDGEY,8,BULBASAUR,0
db $FF,9,PIDGEY,8,CHARMANDER,0
db $FF,18,PIDGEOTTO,15,ABRA,15,RATTATA,17,SQUIRTLE,0
db $FF,18,PIDGEOTTO,15,ABRA,15,RATTATA,17,BULBASAUR,0
db $FF,18,PIDGEOTTO,15,ABRA,15,RATTATA,17,CHARMANDER,0
ProfOakData:
db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,BLASTOISE,70,GYARADOS,0
db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,VENUSAUR,70,GYARADOS,0
db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,CHARIZARD,70,GYARADOS,0
ChiefData:
; none
ScientistData:
db 34,KOFFING,VOLTORB,0
db 26,GRIMER,WEEZING,KOFFING,WEEZING,0
db 28,MAGNEMITE,VOLTORB,MAGNETON,0
db 29,ELECTRODE,WEEZING,0
db 33,ELECTRODE,0
db 26,MAGNETON,KOFFING,WEEZING,MAGNEMITE,0
db 25,VOLTORB,KOFFING,MAGNETON,MAGNEMITE,KOFFING,0
db 29,ELECTRODE,MUK,0
db 29,GRIMER,ELECTRODE,0
db 28,VOLTORB,KOFFING,MAGNETON,0
db 29,MAGNEMITE,KOFFING,0
db 33,MAGNEMITE,MAGNETON,VOLTORB,0
db 34,MAGNEMITE,ELECTRODE,0
GiovanniData:
db $FF,25,ONIX,24,RHYHORN,29,KANGASKHAN,0
db $FF,37,NIDORINO,35,KANGASKHAN,37,RHYHORN,41,NIDOQUEEN,0
db $FF,45,RHYHORN,42,DUGTRIO,44,NIDOQUEEN,45,NIDOKING,50,RHYDON,0
RocketData:
db 13,RATTATA,ZUBAT,0
db 11,SANDSHREW,RATTATA,ZUBAT,0
db 12,ZUBAT,EKANS,0
db 16,RATICATE,0
db 17,MACHOP,DROWZEE,0
db 15,EKANS,ZUBAT,0
db 20,RATICATE,ZUBAT,0
db 21,DROWZEE,MACHOP,0
db 21,RATICATE,RATICATE,0
db 20,GRIMER,KOFFING,KOFFING,0
db 19,RATTATA,RATICATE,RATICATE,RATTATA,0
db 22,GRIMER,KOFFING,0
db 17,ZUBAT,KOFFING,GRIMER,ZUBAT,RATICATE,0
db 20,RATTATA,RATICATE,DROWZEE,0
db 21,MACHOP,MACHOP,0
db 23,SANDSHREW,EKANS,SANDSLASH,0
db 23,EKANS,SANDSHREW,ARBOK,0
db 21,KOFFING,ZUBAT,0
db 25,ZUBAT,ZUBAT,GOLBAT,0
db 26,KOFFING,DROWZEE,0
db 23,ZUBAT,RATTATA,RATICATE,ZUBAT,0
db 26,DROWZEE,KOFFING,0
db 29,CUBONE,ZUBAT,0
db 25,GOLBAT,ZUBAT,ZUBAT,RATICATE,ZUBAT,0
db 28,RATICATE,HYPNO,RATICATE,0
db 29,MACHOP,DROWZEE,0
db 28,EKANS,ZUBAT,CUBONE,0
db 33,ARBOK,0
db 33,HYPNO,0
db 29,MACHOP,MACHOKE,0
db 28,ZUBAT,ZUBAT,GOLBAT,0
db 26,RATICATE,ARBOK,KOFFING,GOLBAT,0
db 29,CUBONE,CUBONE,0
db 29,SANDSHREW,SANDSLASH,0
db 26,RATICATE,ZUBAT,GOLBAT,RATTATA,0
db 28,WEEZING,GOLBAT,KOFFING,0
db 28,DROWZEE,GRIMER,MACHOP,0
db 28,GOLBAT,DROWZEE,HYPNO,0
db 33,MACHOKE,0
db 25,RATTATA,RATTATA,ZUBAT,RATTATA,EKANS,0
db 32,CUBONE,DROWZEE,MAROWAK,0
CooltrainerMData:
db 39,NIDORINO,NIDOKING,0
db 43,EXEGGUTOR,CLOYSTER,ARCANINE,0
db 43,KINGLER,TENTACRUEL,BLASTOISE,0
db 45,KINGLER,STARMIE,0
db 42,IVYSAUR,WARTORTLE,CHARMELEON,CHARIZARD,0
db 44,IVYSAUR,WARTORTLE,CHARMELEON,0
db 49,NIDOKING,0
db 44,KINGLER,CLOYSTER,0
db 39,SANDSLASH,DUGTRIO,0
db 43,RHYHORN,0
CooltrainerFData:
db 24,WEEPINBELL,GLOOM,IVYSAUR,0
db 43,BELLSPROUT,WEEPINBELL,VICTREEBEL,0
db 43,PARASECT,DEWGONG,CHANSEY,0
db 46,VILEPLUME,BUTTERFREE,0
db 44,PERSIAN,NINETALES,0
db 45,IVYSAUR,VENUSAUR,0
db 45,NIDORINA,NIDOQUEEN,0
db 43,PERSIAN,NINETALES,RAICHU,0
BrunoData:
db $FF,53,ONIX,55,HITMONCHAN,55,HITMONLEE,56,ONIX,58,MACHAMP,0
BrockData:
db $FF,12,GEODUDE,14,ONIX,0
MistyData:
db $FF,18,STARYU,21,STARMIE,0
LtSurgeData:
db $FF,21,VOLTORB,18,PIKACHU,24,RAICHU,0
ErikaData:
db $FF,29,VICTREEBEL,24,TANGELA,29,VILEPLUME,0
KogaData:
db $FF,37,KOFFING,39,MUK,37,KOFFING,43,WEEZING,0
BlaineData:
db $FF,42,GROWLITHE,40,PONYTA,42,RAPIDASH,47,ARCANINE,0
SabrinaData:
db $FF,38,KADABRA,37,MR__MIME,38,VENOMOTH,43,ALAKAZAM,0
GentlemanData:
db 18,GROWLITHE,GROWLITHE,0
db 19,NIDORAN_M,NIDORAN_F,0
db 23,PIKACHU,0
db 48,PRIMEAPE,0
db 17,GROWLITHE,PONYTA,0
Green2Data:
db $FF,19,PIDGEOTTO,16,RATICATE,18,KADABRA,20,WARTORTLE,0
db $FF,19,PIDGEOTTO,16,RATICATE,18,KADABRA,20,IVYSAUR,0
db $FF,19,PIDGEOTTO,16,RATICATE,18,KADABRA,20,CHARMELEON,0
db $FF,25,PIDGEOTTO,23,GROWLITHE,22,EXEGGCUTE,20,KADABRA,25,WARTORTLE,0
db $FF,25,PIDGEOTTO,23,GYARADOS,22,GROWLITHE,20,KADABRA,25,IVYSAUR,0
db $FF,25,PIDGEOTTO,23,EXEGGCUTE,22,GYARADOS,20,KADABRA,25,CHARMELEON,0
db $FF,37,PIDGEOT,38,GROWLITHE,35,EXEGGCUTE,35,ALAKAZAM,40,BLASTOISE,0
db $FF,37,PIDGEOT,38,GYARADOS,35,GROWLITHE,35,ALAKAZAM,40,VENUSAUR,0
db $FF,37,PIDGEOT,38,EXEGGCUTE,35,GYARADOS,35,ALAKAZAM,40,CHARIZARD,0
db $FF,47,PIDGEOT,45,RHYHORN,45,GROWLITHE,47,EXEGGCUTE,50,ALAKAZAM ;\
db 53,BLASTOISE,0
db $FF,47,PIDGEOT,45,RHYHORN,45,GYARADOS,47,GROWLITHE,50,ALAKAZAM ;\
db 53,VENUSAUR,0
db $FF,47,PIDGEOT,45,RHYHORN,45,EXEGGCUTE,47,GYARADOS,50,ALAKAZAM ;\
db 53,CHARIZARD,0
Green3Data:
db $FF,61,PIDGEOT,59,ALAKAZAM,61,RHYDON,61,ARCANINE,63,EXEGGUTOR ;\
db 65,BLASTOISE,0
db $FF,61,PIDGEOT,59,ALAKAZAM,61,RHYDON,61,GYARADOS,63,ARCANINE ;\
db 65,VENUSAUR,0
db $FF,61,PIDGEOT,59,ALAKAZAM,61,RHYDON,61,EXEGGUTOR,63,GYARADOS ;\
db 65,CHARIZARD,0
LoreleiData:
db $FF,54,DEWGONG,53,CLOYSTER,54,SLOWBRO,56,JYNX,56,LAPRAS,0
ChannelerData:
db 22,GASTLY,0
db 24,GASTLY,0
db 23,GASTLY,GASTLY,0
db 24,GASTLY,0
db 23,GASTLY,0
db 24,GASTLY,0
db 24,HAUNTER,0
db 22,GASTLY,0
db 24,GASTLY,0
db 23,GASTLY,GASTLY,0
db 24,GASTLY,0
db 22,GASTLY,0
db 24,GASTLY,0
db 23,HAUNTER,0
db 24,GASTLY,0
db 22,GASTLY,0
db 24,GASTLY,0
db 22,HAUNTER,0
db 22,GASTLY,GASTLY,GASTLY,0
db 24,GASTLY,0
db 24,GASTLY,0
db 34,GASTLY,HAUNTER,0
db 38,HAUNTER,0
db 33,GASTLY,GASTLY,HAUNTER,0
AgathaData:
db $FF,56,GENGAR,56,GOLBAT,55,HAUNTER,58,ARBOK,60,GENGAR,0
LanceData:
db $FF,58,GYARADOS,56,DRAGONAIR,56,DRAGONAIR,60,AERODACTYL ;\
db 62,DRAGONITE,0
TrainerAI: ; 652E
;XXX called at 34964, 3c342, 3c398
and a
ld a,[W_ISTRAINERBATTLE]
dec a
ret z ; if not a trainer, we're done here
ld a,[W_ISLINKBATTLE]
cp 4
ret z
ld a,[W_TRAINERCLASS] ; what trainer class is this?
dec a
ld c,a
ld b,0
ld hl,TrainerAIPointers
add hl,bc
add hl,bc
add hl,bc
ld a,[$CCDF] ; XXX 340b0,3a548,3a553,3a696,3c943,3ef74
and a
ret z ; if XXX, we're done here
inc hl
inc a
jr nz,.getpointer\@
dec hl
ld a,[hli]
ld [$CCDF],a
.getpointer\@
ld a,[hli]
ld h,[hl]
ld l,a
call $3E5C
jp [hl]
TrainerAIPointers: ; 655C
; one entry per trainer class
; XXX first byte, ???
; next two bytes, pointer to AI subroutine for trainer class
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,JugglerAI ; juggler_x
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,GenericAI
dbw 3,JugglerAI ; juggler
dbw 3,GenericAI
dbw 3,GenericAI
dbw 2,BlackbeltAI ; blackbelt
dbw 3,GenericAI
dbw 3,GenericAI
dbw 1,GenericAI ; chief
dbw 3,GenericAI
dbw 1,GiovanniAI ; giovanni
dbw 3,GenericAI
dbw 2,CooltrainerMAI ; cooltrainerm
dbw 1,CooltrainerFAI ; cooltrainerf
dbw 2,BrunoAI ; bruno
dbw 5,BrockAI ; brock
dbw 1,MistyAI ; misty
dbw 1,LtSurgeAI ; surge
dbw 1,ErikaAI ; erika
dbw 2,KogaAI ; koga
dbw 2,BlaineAI ; blaine
dbw 1,SabrinaAI ; sabrina
dbw 3,GenericAI
dbw 1,Sony2AI ; sony2
dbw 1,Sony3AI ; sony3
dbw 2,LoreleiAI ; lorelei
dbw 3,GenericAI
dbw 2,AgathaAI ; agatha
dbw 1,LanceAI ; lance
JugglerAI:
cp $40
ret nc
jp $672A
BlackbeltAI:
cp $20
ret nc
jp AIUseXAttack
GiovanniAI:
cp $40
ret nc
jp AIUseGuardSpec
CooltrainerMAI:
cp $40
ret nc
jp AIUseXAttack
CooltrainerFAI:
cp $40
ld a,$A
call $67CF
jp c,AIUseHyperPotion
ld a,5
call $67CF
ret nc
jp $672A
BrockAI:
; if his active monster has a status condition, use a full heal
ld a,[W_OPPONENTSTATUS]
and a
ret z
jp AIUseFullHeal
MistyAI:
cp $40
ret nc
jp AIUseXDefend
LtSurgeAI:
cp $40
ret nc
jp AIUseXSpeed
ErikaAI:
cp $80
ret nc
ld a,$A
call $67CF
ret nc
jp AIUseSuperPotion
KogaAI:
cp $40
ret nc
jp AIUseXAttack
BlaineAI:
cp $40
ret nc
jp AIUseSuperPotion
SabrinaAI:
cp $40
ret nc
ld a,$A
call $67CF
ret nc
jp AIUseHyperPotion
Sony2AI:
cp $20
ret nc
ld a,5
call $67CF
ret nc
jp AIUsePotion
Sony3AI:
cp $20
ret nc
ld a,5
call $67CF
ret nc
jp AIUseFullRestore
LoreleiAI:
cp $80
ret nc
ld a,5
call $67CF
ret nc
jp AIUseSuperPotion
BrunoAI:
cp $40
ret nc
jp AIUseXDefend
AgathaAI:
cp $14
jp c,$672A
cp $80
ret nc
ld a,4
call $67CF
ret nc
jp AIUseSuperPotion
LanceAI:
cp $80
ret nc
ld a,5
call $67CF
ret nc
jp AIUseHyperPotion
GenericAI:
and a
ret
; end of individual trainer AI routines
Function6695: ; 6695
; XXX what does this do
ld hl,$CCDF
dec [hl]
scf
ret
Function669B: ; 669B
; XXX what does this do
ld a,$8E
jp $3740
AIUseFullRestore:
call AICureStatus
ld a,FULL_RESTORE
ld [$CF05],a
ld de,$CEEB
ld hl,$CFE7
ld a,[hld]
ld [de],a
inc de
ld a,[hl]
ld [de],a
inc de
ld hl,$CFF5
ld a,[hld]
ld [de],a
inc de
ld [$CEE9],a
ld [$CFE7],a
ld a,[hl]
ld [de],a
ld [$CEEA],a
ld [W_OPPONENTHP],a
jr Function6718
AIUsePotion:
; enemy trainer heals his monster with a potion
ld a,POTION
ld b,20
jr AIRecoverHP
AIUseSuperPotion:
; enemy trainer heals his monster with a super potion
ld a,SUPER_POTION
ld b,50
jr AIRecoverHP
AIUseHyperPotion:
; enemy trainer heals his monster with a hyper potion
ld a,HYPER_POTION
ld b,200
; fallthrough
AIRecoverHP: ; 66DA
; heal b HP and print "trainer used $(a) on pokemon!"
ld [$CF05],a
ld hl,$CFE7
ld a,[hl]
ld [$CEEB],a
add b
ld [hld],a
ld [$CEED],a
ld a,[hl]
ld [$CEEC],a
ld [$CEEE],a
jr nc,.next\@
inc a
ld [hl],a
ld [$CEEE],a
.next\@
inc hl
ld a,[hld]
ld b,a
ld de,$CFF5
ld a,[de]
dec de
ld [$CEE9],a
sub b
ld a,[hli]
ld b,a
ld a,[de]
ld [$CEEA],a
sbc b
jr nc,Function6718
inc de
ld a,[de]
dec de
ld [hld],a
ld [$CEED],a
ld a,[de]
ld [hl],a
ld [$CEEE],a
; fallthrough
Function6718: ; 6718
call AIPrintItemUse_
ld hl,$C3CA
xor a
ld [$CF94],a
ld a,$48
call Predef
jp $6695
Function672A: ; 672A
ld a,[W_ENEMYMONCOUNT]
ld c,a
ld hl,W_ENEMYMON1HP
ld d,0 ; keep count of unfainted monsters
; count how many monsters haven't fainted yet
.loop\@
ld a,[hli]
ld b,a
ld a,[hld]
or b
jr z,.Fainted\@ ; has monster fainted?
inc d
.Fainted\@
push bc
ld bc,$2C
add hl,bc
pop bc
dec c
jr nz,.loop\@
ld a,d ; how many available monsters are there?
cp 2 ; don't bother if only 1 or 2
jp nc,Function674B ; XXX check, does this jump when a = 2?
and a
ret
Function674B: ; 674B
; prepare to withdraw the active monster: copy hp, number, and status to roster
ld a,[W_OPPONENTNUMBER]
ld hl,W_ENEMYMON1HP
ld bc,$2C
call AddNTimes
ld d,h
ld e,l
ld hl,W_OPPONENTHP
ld bc,4
call CopyData
ld hl,AIBattleWithdrawText
call PrintText
ld a,1
ld [$D11D],a
ld hl,EnemySendOut
ld b,BANK(EnemySendOut)
call Bankswitch
xor a
ld [$D11D],a
ld a,[W_ISLINKBATTLE]
cp 4
ret z
scf
ret
AIBattleWithdrawText:
TX_FAR _AIBattleWithdrawText
TX_NULL
AIUseFullHeal:
call $669B
call AICureStatus
ld a,FULL_HEAL
jp AIPrintItemUse
AICureStatus:
; cures the status of enemy's active pokemon
ld a,[W_OPPONENTNUMBER]
ld hl,$D8A8
ld bc,$2C
call AddNTimes
xor a
ld [hl],a ; clear status in enemy team roster
ld [W_OPPONENTSTATUS],a ; clear status of active enemy
ld hl,$D069
res 0,[hl]
ret
AIUseXAccuracy: ; unused
call $669B
ld hl,$D068
set 0,[hl]
ld a,X_ACCURACY
jp AIPrintItemUse
AIUseGuardSpec:
call $669B
ld hl,$D068
set 1,[hl]
ld a,GUARD_SPEC_
jp AIPrintItemUse
AIUseDireHit: ; unused
call $669B
ld hl,$D068
set 2,[hl]
ld a,DIRE_HIT
jp AIPrintItemUse
Function67CF: ; 67CF
ld [$FF99],a
ld hl,$CFF4
ld a,[hli]
ld [$FF95],a
ld a,[hl]
ld [$FF96],a
ld b,2
call $38B9
ld a,[$FF98]
ld c,a
ld a,[$FF97]
ld b,a
ld hl,$CFE7
ld a,[hld]
ld e,a
ld a,[hl]
ld d,a
ld a,d
sub b
ret nz
ld a,e
sub c
ret
AIUseXAttack:
ld b,$A
ld a,X_ATTACK
jr AIIncreaseStat
AIUseXDefend:
ld b,$B
ld a,X_DEFEND
jr AIIncreaseStat
AIUseXSpeed:
ld b,$C
ld a,X_SPEED
jr AIIncreaseStat
AIUseXSpecial:
ld b,$D
ld a,X_SPECIAL
; fallthrough
AIIncreaseStat:
ld [$CF05],a
push bc
call AIPrintItemUse_
pop bc
ld hl,$CFCD
ld a,[hld]
push af
ld a,[hl]
push af
push hl
ld a,$AF
ld [hli],a
ld [hl],b
ld hl,$7428
ld b,$F
call Bankswitch
pop hl
pop af
ld [hli],a
pop af
ld [hl],a
jp $6695
AIPrintItemUse:
ld [$CF05],a
call AIPrintItemUse_
jp $6695
AIPrintItemUse_:
; print "x used [$CF05] on z!"
ld a,[$CF05]
ld [$D11E],a
call GetItemName
ld hl,AIBattleUseItemText
jp PrintText
AIBattleUseItemText:
TX_FAR _AIBattleUseItemText
TX_NULL
INCBIN "baserom.gbc",$3A849,$3B05C - $3A849
EvosAttacksPointerTable: ; 705C
dw Mon112_EvosAttacks
dw Mon115_EvosAttacks
dw Mon032_EvosAttacks
dw Mon035_EvosAttacks
dw Mon021_EvosAttacks
dw Mon100_EvosAttacks
dw Mon034_EvosAttacks
dw Mon080_EvosAttacks
dw Mon002_EvosAttacks
dw Mon103_EvosAttacks
dw Mon108_EvosAttacks
dw Mon102_EvosAttacks
dw Mon088_EvosAttacks
dw Mon094_EvosAttacks
dw Mon029_EvosAttacks
dw Mon031_EvosAttacks
dw Mon104_EvosAttacks
dw Mon111_EvosAttacks
dw Mon131_EvosAttacks
dw Mon059_EvosAttacks
dw Mon151_EvosAttacks
dw Mon130_EvosAttacks
dw Mon090_EvosAttacks
dw Mon072_EvosAttacks
dw Mon092_EvosAttacks
dw Mon123_EvosAttacks
dw Mon120_EvosAttacks
dw Mon009_EvosAttacks
dw Mon127_EvosAttacks
dw Mon114_EvosAttacks
dw Mon152_EvosAttacks ;MissingNo
dw Mon153_EvosAttacks ;MissingNo
dw Mon058_EvosAttacks
dw Mon095_EvosAttacks
dw Mon022_EvosAttacks
dw Mon016_EvosAttacks
dw Mon079_EvosAttacks
dw Mon064_EvosAttacks
dw Mon075_EvosAttacks
dw Mon113_EvosAttacks
dw Mon067_EvosAttacks
dw Mon122_EvosAttacks
dw Mon106_EvosAttacks
dw Mon107_EvosAttacks
dw Mon024_EvosAttacks
dw Mon047_EvosAttacks
dw Mon054_EvosAttacks
dw Mon096_EvosAttacks
dw Mon076_EvosAttacks
dw Mon154_EvosAttacks ;MissingNo
dw Mon126_EvosAttacks
dw Mon155_EvosAttacks ;MissingNo
dw Mon125_EvosAttacks
dw Mon082_EvosAttacks
dw Mon109_EvosAttacks
dw Mon156_EvosAttacks ;MissingNo
dw Mon056_EvosAttacks
dw Mon086_EvosAttacks
dw Mon050_EvosAttacks
dw Mon128_EvosAttacks
dw Mon157_EvosAttacks ;MissingNo
dw Mon158_EvosAttacks ;MissingNo
dw Mon159_EvosAttacks ;MissingNo
dw Mon083_EvosAttacks
dw Mon048_EvosAttacks
dw Mon149_EvosAttacks
dw Mon160_EvosAttacks ;MissingNo
dw Mon161_EvosAttacks ;MissingNo
dw Mon162_EvosAttacks ;MissingNo
dw Mon084_EvosAttacks
dw Mon060_EvosAttacks
dw Mon124_EvosAttacks
dw Mon146_EvosAttacks
dw Mon144_EvosAttacks
dw Mon145_EvosAttacks
dw Mon132_EvosAttacks
dw Mon052_EvosAttacks
dw Mon098_EvosAttacks
dw Mon163_EvosAttacks ;MissingNo
dw Mon164_EvosAttacks ;MissingNo
dw Mon165_EvosAttacks ;MissingNo
dw Mon037_EvosAttacks
dw Mon038_EvosAttacks
dw Mon025_EvosAttacks
dw Mon026_EvosAttacks
dw Mon166_EvosAttacks ;MissingNo
dw Mon167_EvosAttacks ;MissingNo
dw Mon147_EvosAttacks
dw Mon148_EvosAttacks
dw Mon140_EvosAttacks
dw Mon141_EvosAttacks
dw Mon116_EvosAttacks
dw Mon117_EvosAttacks
dw Mon168_EvosAttacks ;MissingNo
dw Mon169_EvosAttacks ;MissingNo
dw Mon027_EvosAttacks
dw Mon028_EvosAttacks
dw Mon138_EvosAttacks
dw Mon139_EvosAttacks
dw Mon039_EvosAttacks
dw Mon040_EvosAttacks
dw Mon133_EvosAttacks
dw Mon136_EvosAttacks
dw Mon135_EvosAttacks
dw Mon134_EvosAttacks
dw Mon066_EvosAttacks
dw Mon041_EvosAttacks
dw Mon023_EvosAttacks
dw Mon046_EvosAttacks
dw Mon061_EvosAttacks
dw Mon062_EvosAttacks
dw Mon013_EvosAttacks
dw Mon014_EvosAttacks
dw Mon015_EvosAttacks
dw Mon170_EvosAttacks ;MissingNo
dw Mon085_EvosAttacks
dw Mon057_EvosAttacks
dw Mon051_EvosAttacks
dw Mon049_EvosAttacks
dw Mon087_EvosAttacks
dw Mon171_EvosAttacks ;MissingNo
dw Mon172_EvosAttacks ;MissingNo
dw Mon010_EvosAttacks
dw Mon011_EvosAttacks
dw Mon012_EvosAttacks
dw Mon068_EvosAttacks
dw Mon173_EvosAttacks ;MissingNo
dw Mon055_EvosAttacks
dw Mon097_EvosAttacks
dw Mon042_EvosAttacks
dw Mon150_EvosAttacks
dw Mon143_EvosAttacks
dw Mon129_EvosAttacks
dw Mon174_EvosAttacks ;MissingNo
dw Mon175_EvosAttacks ;MissingNo
dw Mon089_EvosAttacks
dw Mon176_EvosAttacks ;MissingNo
dw Mon099_EvosAttacks
dw Mon091_EvosAttacks
dw Mon177_EvosAttacks ;MissingNo
dw Mon101_EvosAttacks
dw Mon036_EvosAttacks
dw Mon110_EvosAttacks
dw Mon053_EvosAttacks
dw Mon105_EvosAttacks
dw Mon178_EvosAttacks ;MissingNo
dw Mon093_EvosAttacks
dw Mon063_EvosAttacks
dw Mon065_EvosAttacks
dw Mon017_EvosAttacks
dw Mon018_EvosAttacks
dw Mon121_EvosAttacks
dw Mon001_EvosAttacks
dw Mon003_EvosAttacks
dw Mon073_EvosAttacks
dw Mon179_EvosAttacks ;MissingNo
dw Mon118_EvosAttacks
dw Mon119_EvosAttacks
dw Mon180_EvosAttacks ;MissingNo
dw Mon181_EvosAttacks ;MissingNo
dw Mon182_EvosAttacks ;MissingNo
dw Mon183_EvosAttacks ;MissingNo
dw Mon077_EvosAttacks
dw Mon078_EvosAttacks
dw Mon019_EvosAttacks
dw Mon020_EvosAttacks
dw Mon033_EvosAttacks
dw Mon030_EvosAttacks
dw Mon074_EvosAttacks
dw Mon137_EvosAttacks
dw Mon142_EvosAttacks
dw Mon184_EvosAttacks ;MissingNo
dw Mon081_EvosAttacks
dw Mon185_EvosAttacks ;MissingNo
dw Mon186_EvosAttacks ;MissingNo
dw Mon004_EvosAttacks
dw Mon007_EvosAttacks
dw Mon005_EvosAttacks
dw Mon008_EvosAttacks
dw Mon006_EvosAttacks
dw Mon187_EvosAttacks ;MissingNo
dw Mon188_EvosAttacks ;MissingNo
dw Mon189_EvosAttacks ;MissingNo
dw Mon190_EvosAttacks ;MissingNo
dw Mon043_EvosAttacks
dw Mon044_EvosAttacks
dw Mon045_EvosAttacks
dw Mon069_EvosAttacks
dw Mon070_EvosAttacks
dw Mon071_EvosAttacks
Mon112_EvosAttacks:
;RHYDON
;Evolutions
db 0
;Learnset
db 30,STOMP
db 35,TAIL_WHIP
db 40,FURY_ATTACK
db 48,HORN_DRILL
db 55,LEER
db 64,TAKE_DOWN
db 0
Mon115_EvosAttacks:
;KANGASKHAN
;Evolutions
db 0
;Learnset
db 26,BITE
db 31,TAIL_WHIP
db 36,MEGA_PUNCH
db 41,LEER
db 46,DIZZY_PUNCH
db 0
Mon032_EvosAttacks:
;NIDORAN_M
;Evolutions
db EV_LEVEL,16,NIDORINO
db 0
;Learnset
db 8,HORN_ATTACK
db 14,POISON_STING
db 21,FOCUS_ENERGY
db 29,FURY_ATTACK
db 36,HORN_DRILL
db 43,DOUBLE_KICK
db 0
Mon035_EvosAttacks:
;CLEFAIRY
;Evolutions
db EV_ITEM,MOON_STONE,1,CLEFABLE
db 0
;Learnset
db 13,SING
db 18,DOUBLESLAP
db 24,MINIMIZE
db 31,METRONOME
db 39,DEFENSE_CURL
db 48,LIGHT_SCREEN
db 0
Mon021_EvosAttacks:
;SPEAROW
;Evolutions
db EV_LEVEL,20,FEAROW
db 0
;Learnset
db 9,LEER
db 15,FURY_ATTACK
db 22,MIRROR_MOVE
db 29,DRILL_PECK
db 36,AGILITY
db 0
Mon100_EvosAttacks:
;VOLTORB
;Evolutions
db EV_LEVEL,30,ELECTRODE
db 0
;Learnset
db 17,SONICBOOM
db 22,SELFDESTRUCT
db 29,LIGHT_SCREEN
db 36,SWIFT
db 43,EXPLOSION
db 0
Mon034_EvosAttacks:
;NIDOKING
;Evolutions
db 0
;Learnset
db 8,HORN_ATTACK
db 14,POISON_STING
db 23,THRASH
db 0
Mon080_EvosAttacks:
;SLOWBRO
;Evolutions
db 0
;Learnset
db 18,DISABLE
db 22,HEADBUTT
db 27,GROWL
db 33,WATER_GUN
db 37,WITHDRAW
db 44,AMNESIA
db 55,PSYCHIC_M
db 0
Mon002_EvosAttacks:
;IVYSAUR
;Evolutions
db EV_LEVEL,32,VENUSAUR
db 0
;Learnset
db 7,LEECH_SEED
db 13,VINE_WHIP
db 22,POISONPOWDER
db 30,RAZOR_LEAF
db 38,GROWTH
db 46,SLEEP_POWDER
db 54,SOLARBEAM
db 0
Mon103_EvosAttacks:
;EXEGGUTOR
;Evolutions
db 0
;Learnset
db 28,STOMP
db 0
Mon108_EvosAttacks:
;LICKITUNG
;Evolutions
db 0
;Learnset
db 7,STOMP
db 15,DISABLE
db 23,DEFENSE_CURL
db 31,SLAM
db 39,SCREECH
db 0
Mon102_EvosAttacks:
;EXEGGCUTE
;Evolutions
db EV_ITEM,LEAF_STONE ,1,EXEGGUTOR
db 0
;Learnset
db 25,REFLECT
db 28,LEECH_SEED
db 32,STUN_SPORE
db 37,POISONPOWDER
db 42,SOLARBEAM
db 48,SLEEP_POWDER
db 0
Mon088_EvosAttacks:
;GRIMER
;Evolutions
db EV_LEVEL,38,MUK
db 0
;Learnset
db 30,POISON_GAS
db 33,MINIMIZE
db 37,SLUDGE
db 42,HARDEN
db 48,SCREECH
db 55,ACID_ARMOR
db 0
Mon094_EvosAttacks:
;GENGAR
;Evolutions
db 0
;Learnset
db 29,HYPNOSIS
db 38,DREAM_EATER
db 0
Mon029_EvosAttacks:
;NIDORAN_F
;Evolutions
db EV_LEVEL,16,NIDORINA
db 0
;Learnset
db 8,SCRATCH
db 14,POISON_STING
db 21,TAIL_WHIP
db 29,BITE
db 36,FURY_SWIPES
db 43,DOUBLE_KICK
db 0
Mon031_EvosAttacks:
;NIDOQUEEN
;Evolutions
db 0
;Learnset
db 8,SCRATCH
db 14,POISON_STING
db 23,BODY_SLAM
db 0
Mon104_EvosAttacks:
;CUBONE
;Evolutions
db EV_LEVEL,28,MAROWAK
db 0
;Learnset
db 25,LEER
db 31,FOCUS_ENERGY
db 38,THRASH
db 43,BONEMERANG
db 46,RAGE
db 0
Mon111_EvosAttacks:
;RHYHORN
;Evolutions
db EV_LEVEL,42,RHYDON
db 0
;Learnset
db 30,STOMP
db 35,TAIL_WHIP
db 40,FURY_ATTACK
db 45,HORN_DRILL
db 50,LEER
db 55,TAKE_DOWN
db 0
Mon131_EvosAttacks:
;LAPRAS
;Evolutions
db 0
;Learnset
db 16,SING
db 20,MIST
db 25,BODY_SLAM
db 31,CONFUSE_RAY
db 38,ICE_BEAM
db 46,HYDRO_PUMP
db 0
Mon059_EvosAttacks:
;ARCANINE
;Evolutions
db 0
;Learnset
db 0
Mon151_EvosAttacks:
;MEW
;Evolutions
db 0
;Learnset
db 10,TRANSFORM
db 20,MEGA_PUNCH
db 30,METRONOME
db 40,PSYCHIC_M
db 0
Mon130_EvosAttacks:
;GYARADOS
;Evolutions
db 0
;Learnset
db 20,BITE
db 25,DRAGON_RAGE
db 32,LEER
db 41,HYDRO_PUMP
db 52,HYPER_BEAM
db 0
Mon090_EvosAttacks:
;SHELLDER
;Evolutions
db EV_ITEM,WATER_STONE ,1,CLOYSTER
db 0
;Learnset
db 18,SUPERSONIC
db 23,CLAMP
db 30,AURORA_BEAM
db 39,LEER
db 50,ICE_BEAM
db 0
Mon072_EvosAttacks:
;TENTACOOL
;Evolutions
db EV_LEVEL,30,TENTACRUEL
db 0
;Learnset
db 7,SUPERSONIC
db 13,WRAP
db 18,POISON_STING
db 22,WATER_GUN
db 27,CONSTRICT
db 33,BARRIER
db 40,SCREECH
db 48,HYDRO_PUMP
db 0
Mon092_EvosAttacks:
;GASTLY
;Evolutions
db EV_LEVEL,25,HAUNTER
db 0
;Learnset
db 27,HYPNOSIS
db 35,DREAM_EATER
db 0
Mon123_EvosAttacks:
;SCYTHER
;Evolutions
db 0
;Learnset
db 17,LEER
db 20,FOCUS_ENERGY
db 24,DOUBLE_TEAM
db 29,SLASH
db 35,SWORDS_DANCE
db 42,AGILITY
db 0
Mon120_EvosAttacks:
;STARYU
;Evolutions
db EV_ITEM,WATER_STONE ,1,STARMIE
db 0
;Learnset
db 17,WATER_GUN
db 22,HARDEN
db 27,RECOVER
db 32,SWIFT
db 37,MINIMIZE
db 42,LIGHT_SCREEN
db 47,HYDRO_PUMP
db 0
Mon009_EvosAttacks:
;BLASTOISE
;Evolutions
db 0
;Learnset
db 8,BUBBLE
db 15,WATER_GUN
db 24,BITE
db 31,WITHDRAW
db 42,SKULL_BASH
db 52,HYDRO_PUMP
db 0
Mon127_EvosAttacks:
;PINSIR
;Evolutions
db 0
;Learnset
db 25,SEISMIC_TOSS
db 30,GUILLOTINE
db 36,FOCUS_ENERGY
db 43,HARDEN
db 49,SLASH
db 54,SWORDS_DANCE
db 0
Mon114_EvosAttacks:
;TANGELA
;Evolutions
db 0
;Learnset
db 29,ABSORB
db 32,POISONPOWDER
db 36,STUN_SPORE
db 39,SLEEP_POWDER
db 45,SLAM
db 49,GROWTH
db 0
Mon152_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon153_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon058_EvosAttacks:
;GROWLITHE
;Evolutions
db EV_ITEM,FIRE_STONE,1,ARCANINE
db 0
;Learnset
db 18,EMBER
db 23,LEER
db 30,TAKE_DOWN
db 39,AGILITY
db 50,FLAMETHROWER
db 0
Mon095_EvosAttacks:
;ONIX
;Evolutions
db 0
;Learnset
db 15,BIND
db 19,ROCK_THROW
db 25,RAGE
db 33,SLAM
db 43,HARDEN
db 0
Mon022_EvosAttacks:
;FEAROW
;Evolutions
db 0
;Learnset
db 9,LEER
db 15,FURY_ATTACK
db 25,MIRROR_MOVE
db 34,DRILL_PECK
db 43,AGILITY
db 0
Mon016_EvosAttacks:
;PIDGEY
;Evolutions
db EV_LEVEL,18,PIDGEOTTO
db 0
;Learnset
db 5,SAND_ATTACK
db 12,QUICK_ATTACK
db 19,WHIRLWIND
db 28,WING_ATTACK
db 36,AGILITY
db 44,MIRROR_MOVE
db 0
Mon079_EvosAttacks:
;SLOWPOKE
;Evolutions
db EV_LEVEL,37,SLOWBRO
db 0
;Learnset
db 18,DISABLE
db 22,HEADBUTT
db 27,GROWL
db 33,WATER_GUN
db 40,AMNESIA
db 48,PSYCHIC_M
db 0
Mon064_EvosAttacks:
;KADABRA
;Evolutions
db EV_TRADE,1,ALAKAZAM
db 0
;Learnset
db 16,CONFUSION
db 20,DISABLE
db 27,PSYBEAM
db 31,RECOVER
db 38,PSYCHIC_M
db 42,REFLECT
db 0
Mon075_EvosAttacks:
;GRAVELER
;Evolutions
db EV_TRADE,1,GOLEM
db 0
;Learnset
db 11,DEFENSE_CURL
db 16,ROCK_THROW
db 21,SELFDESTRUCT
db 29,HARDEN
db 36,EARTHQUAKE
db 43,EXPLOSION
db 0
Mon113_EvosAttacks:
;CHANSEY
;Evolutions
db 0
;Learnset
db 24,SING
db 30,GROWL
db 38,MINIMIZE
db 44,DEFENSE_CURL
db 48,LIGHT_SCREEN
db 54,DOUBLE_EDGE
db 0
Mon067_EvosAttacks:
;MACHOKE
;Evolutions
db EV_TRADE,1,MACHAMP
db 0
;Learnset
db 20,LOW_KICK
db 25,LEER
db 36,FOCUS_ENERGY
db 44,SEISMIC_TOSS
db 52,SUBMISSION
db 0
Mon122_EvosAttacks:
;MR__MIME
;Evolutions
db 0
;Learnset
db 15,CONFUSION
db 23,LIGHT_SCREEN
db 31,DOUBLESLAP
db 39,MEDITATE
db 47,SUBSTITUTE
db 0
Mon106_EvosAttacks:
;HITMONLEE
;Evolutions
db 0
;Learnset
db 33,ROLLING_KICK
db 38,JUMP_KICK
db 43,FOCUS_ENERGY
db 48,HI_JUMP_KICK
db 53,MEGA_KICK
db 0
Mon107_EvosAttacks:
;HITMONCHAN
;Evolutions
db 0
;Learnset
db 33,FIRE_PUNCH
db 38,ICE_PUNCH
db 43,THUNDERPUNCH
db 48,MEGA_PUNCH
db 53,COUNTER
db 0
Mon024_EvosAttacks:
;ARBOK
;Evolutions
db 0
;Learnset
db 10,POISON_STING
db 17,BITE
db 27,GLARE
db 36,SCREECH
db 47,ACID
db 0
Mon047_EvosAttacks:
;PARASECT
;Evolutions
db 0
;Learnset
db 13,STUN_SPORE
db 20,LEECH_LIFE
db 30,SPORE
db 39,SLASH
db 48,GROWTH
db 0
Mon054_EvosAttacks:
;PSYDUCK
;Evolutions
db EV_LEVEL,33,GOLDUCK
db 0
;Learnset
db 28,TAIL_WHIP
db 31,DISABLE
db 36,CONFUSION
db 43,FURY_SWIPES
db 52,HYDRO_PUMP
db 0
Mon096_EvosAttacks:
;DROWZEE
;Evolutions
db EV_LEVEL,26,HYPNO
db 0
;Learnset
db 12,DISABLE
db 17,CONFUSION
db 24,HEADBUTT
db 29,POISON_GAS
db 32,PSYCHIC_M
db 37,MEDITATE
db 0
Mon076_EvosAttacks:
;GOLEM
;Evolutions
db 0
;Learnset
db 11,DEFENSE_CURL
db 16,ROCK_THROW
db 21,SELFDESTRUCT
db 29,HARDEN
db 36,EARTHQUAKE
db 43,EXPLOSION
db 0
Mon154_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon126_EvosAttacks:
;MAGMAR
;Evolutions
db 0
;Learnset
db 36,LEER
db 39,CONFUSE_RAY
db 43,FIRE_PUNCH
db 48,SMOKESCREEN
db 52,SMOG
db 55,FLAMETHROWER
db 0
Mon155_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon125_EvosAttacks:
;ELECTABUZZ
;Evolutions
db 0
;Learnset
db 34,THUNDERSHOCK
db 37,SCREECH
db 42,THUNDERPUNCH
db 49,LIGHT_SCREEN
db 54,THUNDER
db 0
Mon082_EvosAttacks:
;MAGNETON
;Evolutions
db 0
;Learnset
db 21,SONICBOOM
db 25,THUNDERSHOCK
db 29,SUPERSONIC
db 38,THUNDER_WAVE
db 46,SWIFT
db 54,SCREECH
db 0
Mon109_EvosAttacks:
;KOFFING
;Evolutions
db EV_LEVEL,35,WEEZING
db 0
;Learnset
db 32,SLUDGE
db 37,SMOKESCREEN
db 40,SELFDESTRUCT
db 45,HAZE
db 48,EXPLOSION
db 0
Mon156_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon056_EvosAttacks:
;MANKEY
;Evolutions
db EV_LEVEL,28,PRIMEAPE
db 0
;Learnset
db 15,KARATE_CHOP
db 21,FURY_SWIPES
db 27,FOCUS_ENERGY
db 33,SEISMIC_TOSS
db 39,THRASH
db 0
Mon086_EvosAttacks:
;SEEL
;Evolutions
db EV_LEVEL,34,DEWGONG
db 0
;Learnset
db 30,GROWL
db 35,AURORA_BEAM
db 40,REST
db 45,TAKE_DOWN
db 50,ICE_BEAM
db 0
Mon050_EvosAttacks:
;DIGLETT
;Evolutions
db EV_LEVEL,26,DUGTRIO
db 0
;Learnset
db 15,GROWL
db 19,DIG
db 24,SAND_ATTACK
db 31,SLASH
db 40,EARTHQUAKE
db 0
Mon128_EvosAttacks:
;TAUROS
;Evolutions
db 0
;Learnset
db 21,STOMP
db 28,TAIL_WHIP
db 35,LEER
db 44,RAGE
db 51,TAKE_DOWN
db 0
Mon157_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon158_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon159_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon083_EvosAttacks:
;FARFETCH_D
;Evolutions
db 0
;Learnset
db 7,LEER
db 15,FURY_ATTACK
db 23,SWORDS_DANCE
db 31,AGILITY
db 39,SLASH
db 0
Mon048_EvosAttacks:
;VENONAT
;Evolutions
db EV_LEVEL,31,VENOMOTH
db 0
;Learnset
db 24,POISONPOWDER
db 27,LEECH_LIFE
db 30,STUN_SPORE
db 35,PSYBEAM
db 38,SLEEP_POWDER
db 43,PSYCHIC_M
db 0
Mon149_EvosAttacks:
;DRAGONITE
;Evolutions
db 0
;Learnset
db 10,THUNDER_WAVE
db 20,AGILITY
db 35,SLAM
db 45,DRAGON_RAGE
db 60,HYPER_BEAM
db 0
Mon160_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon161_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon162_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon084_EvosAttacks:
;DODUO
;Evolutions
db EV_LEVEL,31,DODRIO
db 0
;Learnset
db 20,GROWL
db 24,FURY_ATTACK
db 30,DRILL_PECK
db 36,RAGE
db 40,TRI_ATTACK
db 44,AGILITY
db 0
Mon060_EvosAttacks:
;POLIWAG
;Evolutions
db EV_LEVEL,25,POLIWHIRL
db 0
;Learnset
db 16,HYPNOSIS
db 19,WATER_GUN
db 25,DOUBLESLAP
db 31,BODY_SLAM
db 38,AMNESIA
db 45,HYDRO_PUMP
db 0
Mon124_EvosAttacks:
;JYNX
;Evolutions
db 0
;Learnset
db 18,LICK
db 23,DOUBLESLAP
db 31,ICE_PUNCH
db 39,BODY_SLAM
db 47,THRASH
db 58,BLIZZARD
db 0
Mon146_EvosAttacks:
;MOLTRES
;Evolutions
db 0
;Learnset
db 51,LEER
db 55,AGILITY
db 60,SKY_ATTACK
db 0
Mon144_EvosAttacks:
;ARTICUNO
;Evolutions
db 0
;Learnset
db 51,BLIZZARD
db 55,AGILITY
db 60,MIST
db 0
Mon145_EvosAttacks:
;ZAPDOS
;Evolutions
db 0
;Learnset
db 51,THUNDER
db 55,AGILITY
db 60,LIGHT_SCREEN
db 0
Mon132_EvosAttacks:
;DITTO
;Evolutions
db 0
;Learnset
db 0
Mon052_EvosAttacks:
;MEOWTH
;Evolutions
db EV_LEVEL,28,PERSIAN
db 0
;Learnset
db 12,BITE
db 17,PAY_DAY
db 24,SCREECH
db 33,FURY_SWIPES
db 44,SLASH
db 0
Mon098_EvosAttacks:
;KRABBY
;Evolutions
db EV_LEVEL,28,KINGLER
db 0
;Learnset
db 20,VICEGRIP
db 25,GUILLOTINE
db 30,STOMP
db 35,CRABHAMMER
db 40,HARDEN
db 0
Mon163_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon164_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon165_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon037_EvosAttacks:
;VULPIX
;Evolutions
db EV_ITEM,FIRE_STONE,1,NINETALES
db 0
;Learnset
db 16,QUICK_ATTACK
db 21,ROAR
db 28,CONFUSE_RAY
db 35,FLAMETHROWER
db 42,FIRE_SPIN
db 0
Mon038_EvosAttacks:
;NINETALES
;Evolutions
db 0
;Learnset
db 0
Mon025_EvosAttacks:
;PIKACHU
;Evolutions
db EV_ITEM,THUNDER_STONE ,1,RAICHU
db 0
;Learnset
db 9,THUNDER_WAVE
db 16,QUICK_ATTACK
db 26,SWIFT
db 33,AGILITY
db 43,THUNDER
db 0
Mon026_EvosAttacks:
;RAICHU
;Evolutions
db 0
;Learnset
db 0
Mon166_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon167_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon147_EvosAttacks:
;DRATINI
;Evolutions
db EV_LEVEL,30,DRAGONAIR
db 0
;Learnset
db 10,THUNDER_WAVE
db 20,AGILITY
db 30,SLAM
db 40,DRAGON_RAGE
db 50,HYPER_BEAM
db 0
Mon148_EvosAttacks:
;DRAGONAIR
;Evolutions
db EV_LEVEL,55,DRAGONITE
db 0
;Learnset
db 10,THUNDER_WAVE
db 20,AGILITY
db 35,SLAM
db 45,DRAGON_RAGE
db 55,HYPER_BEAM
db 0
Mon140_EvosAttacks:
;KABUTO
;Evolutions
db EV_LEVEL,40,KABUTOPS
db 0
;Learnset
db 34,ABSORB
db 39,SLASH
db 44,LEER
db 49,HYDRO_PUMP
db 0
Mon141_EvosAttacks:
;KABUTOPS
;Evolutions
db 0
;Learnset
db 34,ABSORB
db 39,SLASH
db 46,LEER
db 53,HYDRO_PUMP
db 0
Mon116_EvosAttacks:
;HORSEA
;Evolutions
db EV_LEVEL,32,SEADRA
db 0
;Learnset
db 19,SMOKESCREEN
db 24,LEER
db 30,WATER_GUN
db 37,AGILITY
db 45,HYDRO_PUMP
db 0
Mon117_EvosAttacks:
;SEADRA
;Evolutions
db 0
;Learnset
db 19,SMOKESCREEN
db 24,LEER
db 30,WATER_GUN
db 41,AGILITY
db 52,HYDRO_PUMP
db 0
Mon168_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon169_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon027_EvosAttacks:
;SANDSHREW
;Evolutions
db EV_LEVEL,22,SANDSLASH
db 0
;Learnset
db 10,SAND_ATTACK
db 17,SLASH
db 24,POISON_STING
db 31,SWIFT
db 38,FURY_SWIPES
db 0
Mon028_EvosAttacks:
;SANDSLASH
;Evolutions
db 0
;Learnset
db 10,SAND_ATTACK
db 17,SLASH
db 27,POISON_STING
db 36,SWIFT
db 47,FURY_SWIPES
db 0
Mon138_EvosAttacks:
;OMANYTE
;Evolutions
db EV_LEVEL,40,OMASTAR
db 0
;Learnset
db 34,HORN_ATTACK
db 39,LEER
db 46,SPIKE_CANNON
db 53,HYDRO_PUMP
db 0
Mon139_EvosAttacks:
;OMASTAR
;Evolutions
db 0
;Learnset
db 34,HORN_ATTACK
db 39,LEER
db 44,SPIKE_CANNON
db 49,HYDRO_PUMP
db 0
Mon039_EvosAttacks:
;JIGGLYPUFF
;Evolutions
db EV_ITEM,MOON_STONE,1,WIGGLYTUFF
db 0
;Learnset
db 9,POUND
db 14,DISABLE
db 19,DEFENSE_CURL
db 24,DOUBLESLAP
db 29,REST
db 34,BODY_SLAM
db 39,DOUBLE_EDGE
db 0
Mon040_EvosAttacks:
;WIGGLYTUFF
;Evolutions
db 0
;Learnset
db 0
Mon133_EvosAttacks:
;EEVEE
;Evolutions
db EV_ITEM,FIRE_STONE,1,FLAREON
db EV_ITEM,THUNDER_STONE ,1,JOLTEON
db EV_ITEM,WATER_STONE ,1,VAPOREON
db 0
;Learnset
db 27,QUICK_ATTACK
db 31,TAIL_WHIP
db 37,BITE
db 45,TAKE_DOWN
db 0
Mon136_EvosAttacks:
;FLAREON
;Evolutions
db 0
;Learnset
db 27,QUICK_ATTACK
db 31,EMBER
db 37,TAIL_WHIP
db 40,BITE
db 42,LEER
db 44,FIRE_SPIN
db 48,RAGE
db 54,FLAMETHROWER
db 0
Mon135_EvosAttacks:
;JOLTEON
;Evolutions
db 0
;Learnset
db 27,QUICK_ATTACK
db 31,THUNDERSHOCK
db 37,TAIL_WHIP
db 40,THUNDER_WAVE
db 42,DOUBLE_KICK
db 44,AGILITY
db 48,PIN_MISSILE
db 54,THUNDER
db 0
Mon134_EvosAttacks:
;VAPOREON
;Evolutions
db 0
;Learnset
db 27,QUICK_ATTACK
db 31,WATER_GUN
db 37,TAIL_WHIP
db 40,BITE
db 42,ACID_ARMOR
db 44,HAZE
db 48,MIST
db 54,HYDRO_PUMP
db 0
Mon066_EvosAttacks:
;MACHOP
;Evolutions
db EV_LEVEL,28,MACHOKE
db 0
;Learnset
db 20,LOW_KICK
db 25,LEER
db 32,FOCUS_ENERGY
db 39,SEISMIC_TOSS
db 46,SUBMISSION
db 0
Mon041_EvosAttacks:
;ZUBAT
;Evolutions
db EV_LEVEL,22,GOLBAT
db 0
;Learnset
db 10,SUPERSONIC
db 15,BITE
db 21,CONFUSE_RAY
db 28,WING_ATTACK
db 36,HAZE
db 0
Mon023_EvosAttacks:
;EKANS
;Evolutions
db EV_LEVEL,22,ARBOK
db 0
;Learnset
db 10,POISON_STING
db 17,BITE
db 24,GLARE
db 31,SCREECH
db 38,ACID
db 0
Mon046_EvosAttacks:
;PARAS
;Evolutions
db EV_LEVEL,24,PARASECT
db 0
;Learnset
db 13,STUN_SPORE
db 20,LEECH_LIFE
db 27,SPORE
db 34,SLASH
db 41,GROWTH
db 0
Mon061_EvosAttacks:
;POLIWHIRL
;Evolutions
db EV_ITEM,WATER_STONE ,1,POLIWRATH
db 0
;Learnset
db 16,HYPNOSIS
db 19,WATER_GUN
db 26,DOUBLESLAP
db 33,BODY_SLAM
db 41,AMNESIA
db 49,HYDRO_PUMP
db 0
Mon062_EvosAttacks:
;POLIWRATH
;Evolutions
db 0
;Learnset
db 16,HYPNOSIS
db 19,WATER_GUN
db 0
Mon013_EvosAttacks:
;WEEDLE
;Evolutions
db EV_LEVEL,7,KAKUNA
db 0
;Learnset
db 0
Mon014_EvosAttacks:
;KAKUNA
;Evolutions
db EV_LEVEL,10,BEEDRILL
db 0
;Learnset
db 0
Mon015_EvosAttacks:
;BEEDRILL
;Evolutions
db 0
;Learnset
db 12,FURY_ATTACK
db 16,FOCUS_ENERGY
db 20,TWINEEDLE
db 25,RAGE
db 30,PIN_MISSILE
db 35,AGILITY
db 0
Mon170_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon085_EvosAttacks:
;DODRIO
;Evolutions
db 0
;Learnset
db 20,GROWL
db 24,FURY_ATTACK
db 30,DRILL_PECK
db 39,RAGE
db 45,TRI_ATTACK
db 51,AGILITY
db 0
Mon057_EvosAttacks:
;PRIMEAPE
;Evolutions
db 0
;Learnset
db 15,KARATE_CHOP
db 21,FURY_SWIPES
db 27,FOCUS_ENERGY
db 37,SEISMIC_TOSS
db 46,THRASH
db 0
Mon051_EvosAttacks:
;DUGTRIO
;Evolutions
db 0
;Learnset
db 15,GROWL
db 19,DIG
db 24,SAND_ATTACK
db 35,SLASH
db 47,EARTHQUAKE
db 0
Mon049_EvosAttacks:
;VENOMOTH
;Evolutions
db 0
;Learnset
db 24,POISONPOWDER
db 27,LEECH_LIFE
db 30,STUN_SPORE
db 38,PSYBEAM
db 43,SLEEP_POWDER
db 50,PSYCHIC_M
db 0
Mon087_EvosAttacks:
;DEWGONG
;Evolutions
db 0
;Learnset
db 30,GROWL
db 35,AURORA_BEAM
db 44,REST
db 50,TAKE_DOWN
db 56,ICE_BEAM
db 0
Mon171_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon172_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon010_EvosAttacks:
;CATERPIE
;Evolutions
db EV_LEVEL,7,METAPOD
db 0
;Learnset
db 0
Mon011_EvosAttacks:
;METAPOD
;Evolutions
db EV_LEVEL,10,BUTTERFREE
db 0
;Learnset
db 0
Mon012_EvosAttacks:
;BUTTERFREE
;Evolutions
db 0
;Learnset
db 12,CONFUSION
db 15,POISONPOWDER
db 16,STUN_SPORE
db 17,SLEEP_POWDER
db 21,SUPERSONIC
db 26,WHIRLWIND
db 32,PSYBEAM
db 0
Mon068_EvosAttacks:
;MACHAMP
;Evolutions
db 0
;Learnset
db 20,LOW_KICK
db 25,LEER
db 36,FOCUS_ENERGY
db 44,SEISMIC_TOSS
db 52,SUBMISSION
db 0
Mon173_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon055_EvosAttacks:
;GOLDUCK
;Evolutions
db 0
;Learnset
db 28,TAIL_WHIP
db 31,DISABLE
db 39,CONFUSION
db 48,FURY_SWIPES
db 59,HYDRO_PUMP
db 0
Mon097_EvosAttacks:
;HYPNO
;Evolutions
db 0
;Learnset
db 12,DISABLE
db 17,CONFUSION
db 24,HEADBUTT
db 33,POISON_GAS
db 37,PSYCHIC_M
db 43,MEDITATE
db 0
Mon042_EvosAttacks:
;GOLBAT
;Evolutions
db 0
;Learnset
db 10,SUPERSONIC
db 15,BITE
db 21,CONFUSE_RAY
db 32,WING_ATTACK
db 43,HAZE
db 0
Mon150_EvosAttacks:
;MEWTWO
;Evolutions
db 0
;Learnset
db 63,BARRIER
db 66,PSYCHIC_M
db 70,RECOVER
db 75,MIST
db 81,AMNESIA
db 0
Mon143_EvosAttacks:
;SNORLAX
;Evolutions
db 0
;Learnset
db 35,BODY_SLAM
db 41,HARDEN
db 48,DOUBLE_EDGE
db 56,HYPER_BEAM
db 0
Mon129_EvosAttacks:
;MAGIKARP
;Evolutions
db EV_LEVEL,20,GYARADOS
db 0
;Learnset
db 15,TACKLE
db 0
Mon174_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon175_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon089_EvosAttacks:
;MUK
;Evolutions
db 0
;Learnset
db 30,POISON_GAS
db 33,MINIMIZE
db 37,SLUDGE
db 45,HARDEN
db 53,SCREECH
db 60,ACID_ARMOR
db 0
Mon176_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon099_EvosAttacks:
;KINGLER
;Evolutions
db 0
;Learnset
db 20,VICEGRIP
db 25,GUILLOTINE
db 34,STOMP
db 42,CRABHAMMER
db 49,HARDEN
db 0
Mon091_EvosAttacks:
;CLOYSTER
;Evolutions
db 0
;Learnset
db 50,SPIKE_CANNON
db 0
Mon177_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon101_EvosAttacks:
;ELECTRODE
;Evolutions
db 0
;Learnset
db 17,SONICBOOM
db 22,SELFDESTRUCT
db 29,LIGHT_SCREEN
db 40,SWIFT
db 50,EXPLOSION
db 0
Mon036_EvosAttacks:
;CLEFABLE
;Evolutions
db 0
;Learnset
db 0
Mon110_EvosAttacks:
;WEEZING
;Evolutions
db 0
;Learnset
db 32,SLUDGE
db 39,SMOKESCREEN
db 43,SELFDESTRUCT
db 49,HAZE
db 53,EXPLOSION
db 0
Mon053_EvosAttacks:
;PERSIAN
;Evolutions
db 0
;Learnset
db 12,BITE
db 17,PAY_DAY
db 24,SCREECH
db 37,FURY_SWIPES
db 51,SLASH
db 0
Mon105_EvosAttacks:
;MAROWAK
;Evolutions
db 0
;Learnset
db 25,LEER
db 33,FOCUS_ENERGY
db 41,THRASH
db 48,BONEMERANG
db 55,RAGE
db 0
Mon178_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon093_EvosAttacks:
;HAUNTER
;Evolutions
db EV_TRADE,1,GENGAR
db 0
;Learnset
db 29,HYPNOSIS
db 38,DREAM_EATER
db 0
Mon063_EvosAttacks:
;ABRA
;Evolutions
db EV_LEVEL,16,KADABRA
db 0
;Learnset
db 0
Mon065_EvosAttacks:
;ALAKAZAM
;Evolutions
db 0
;Learnset
db 16,CONFUSION
db 20,DISABLE
db 27,PSYBEAM
db 31,RECOVER
db 38,PSYCHIC_M
db 42,REFLECT
db 0
Mon017_EvosAttacks:
;PIDGEOTTO
;Evolutions
db EV_LEVEL,36,PIDGEOT
db 0
;Learnset
db 5,SAND_ATTACK
db 12,QUICK_ATTACK
db 21,WHIRLWIND
db 31,WING_ATTACK
db 40,AGILITY
db 49,MIRROR_MOVE
db 0
Mon018_EvosAttacks:
;PIDGEOT
;Evolutions
db 0
;Learnset
db 5,SAND_ATTACK
db 12,QUICK_ATTACK
db 21,WHIRLWIND
db 31,WING_ATTACK
db 44,AGILITY
db 54,MIRROR_MOVE
db 0
Mon121_EvosAttacks:
;STARMIE
;Evolutions
db 0
;Learnset
db 0
Mon001_EvosAttacks:
;BULBASAUR
;Evolutions
db EV_LEVEL,16,IVYSAUR
db 0
;Learnset
db 7,LEECH_SEED
db 13,VINE_WHIP
db 20,POISONPOWDER
db 27,RAZOR_LEAF
db 34,GROWTH
db 41,SLEEP_POWDER
db 48,SOLARBEAM
db 0
Mon003_EvosAttacks:
;VENUSAUR
;Evolutions
db 0
;Learnset
db 7,LEECH_SEED
db 13,VINE_WHIP
db 22,POISONPOWDER
db 30,RAZOR_LEAF
db 43,GROWTH
db 55,SLEEP_POWDER
db 65,SOLARBEAM
db 0
Mon073_EvosAttacks:
;TENTACRUEL
;Evolutions
db 0
;Learnset
db 7,SUPERSONIC
db 13,WRAP
db 18,POISON_STING
db 22,WATER_GUN
db 27,CONSTRICT
db 35,BARRIER
db 43,SCREECH
db 50,HYDRO_PUMP
db 0
Mon179_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon118_EvosAttacks:
;GOLDEEN
;Evolutions
db EV_LEVEL,33,SEAKING
db 0
;Learnset
db 19,SUPERSONIC
db 24,HORN_ATTACK
db 30,FURY_ATTACK
db 37,WATERFALL
db 45,HORN_DRILL
db 54,AGILITY
db 0
Mon119_EvosAttacks:
;SEAKING
;Evolutions
db 0
;Learnset
db 19,SUPERSONIC
db 24,HORN_ATTACK
db 30,FURY_ATTACK
db 39,WATERFALL
db 48,HORN_DRILL
db 54,AGILITY
db 0
Mon180_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon181_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon182_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon183_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon077_EvosAttacks:
;PONYTA
;Evolutions
db EV_LEVEL,40,RAPIDASH
db 0
;Learnset
db 30,TAIL_WHIP
db 32,STOMP
db 35,GROWL
db 39,FIRE_SPIN
db 43,TAKE_DOWN
db 48,AGILITY
db 0
Mon078_EvosAttacks:
;RAPIDASH
;Evolutions
db 0
;Learnset
db 30,TAIL_WHIP
db 32,STOMP
db 35,GROWL
db 39,FIRE_SPIN
db 47,TAKE_DOWN
db 55,AGILITY
db 0
Mon019_EvosAttacks:
;RATTATA
;Evolutions
db EV_LEVEL,20,RATICATE
db 0
;Learnset
db 7,QUICK_ATTACK
db 14,HYPER_FANG
db 23,FOCUS_ENERGY
db 34,SUPER_FANG
db 0
Mon020_EvosAttacks:
;RATICATE
;Evolutions
db 0
;Learnset
db 7,QUICK_ATTACK
db 14,HYPER_FANG
db 27,FOCUS_ENERGY
db 41,SUPER_FANG
db 0
Mon033_EvosAttacks:
;NIDORINO
;Evolutions
db EV_ITEM,MOON_STONE,1,NIDOKING
db 0
;Learnset
db 8,HORN_ATTACK
db 14,POISON_STING
db 23,FOCUS_ENERGY
db 32,FURY_ATTACK
db 41,HORN_DRILL
db 50,DOUBLE_KICK
db 0
Mon030_EvosAttacks:
;NIDORINA
;Evolutions
db EV_ITEM,MOON_STONE,1,NIDOQUEEN
db 0
;Learnset
db 8,SCRATCH
db 14,POISON_STING
db 23,TAIL_WHIP
db 32,BITE
db 41,FURY_SWIPES
db 50,DOUBLE_KICK
db 0
Mon074_EvosAttacks:
;GEODUDE
;Evolutions
db EV_LEVEL,25,GRAVELER
db 0
;Learnset
db 11,DEFENSE_CURL
db 16,ROCK_THROW
db 21,SELFDESTRUCT
db 26,HARDEN
db 31,EARTHQUAKE
db 36,EXPLOSION
db 0
Mon137_EvosAttacks:
;PORYGON
;Evolutions
db 0
;Learnset
db 23,PSYBEAM
db 28,RECOVER
db 35,AGILITY
db 42,TRI_ATTACK
db 0
Mon142_EvosAttacks:
;AERODACTYL
;Evolutions
db 0
;Learnset
db 33,SUPERSONIC
db 38,BITE
db 45,TAKE_DOWN
db 54,HYPER_BEAM
db 0
Mon184_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon081_EvosAttacks:
;MAGNEMITE
;Evolutions
db EV_LEVEL,30,MAGNETON
db 0
;Learnset
db 21,SONICBOOM
db 25,THUNDERSHOCK
db 29,SUPERSONIC
db 35,THUNDER_WAVE
db 41,SWIFT
db 47,SCREECH
db 0
Mon185_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon186_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon004_EvosAttacks:
;CHARMANDER
;Evolutions
db EV_LEVEL,16,CHARMELEON
db 0
;Learnset
db 9,EMBER
db 15,LEER
db 22,RAGE
db 30,SLASH
db 38,FLAMETHROWER
db 46,FIRE_SPIN
db 0
Mon007_EvosAttacks:
;SQUIRTLE
;Evolutions
db EV_LEVEL,16,WARTORTLE
db 0
;Learnset
db 8,BUBBLE
db 15,WATER_GUN
db 22,BITE
db 28,WITHDRAW
db 35,SKULL_BASH
db 42,HYDRO_PUMP
db 0
Mon005_EvosAttacks:
;CHARMELEON
;Evolutions
db EV_LEVEL,36,CHARIZARD
db 0
;Learnset
db 9,EMBER
db 15,LEER
db 24,RAGE
db 33,SLASH
db 42,FLAMETHROWER
db 56,FIRE_SPIN
db 0
Mon008_EvosAttacks:
;WARTORTLE
;Evolutions
db EV_LEVEL,36,BLASTOISE
db 0
;Learnset
db 8,BUBBLE
db 15,WATER_GUN
db 24,BITE
db 31,WITHDRAW
db 39,SKULL_BASH
db 47,HYDRO_PUMP
db 0
Mon006_EvosAttacks:
;CHARIZARD
;Evolutions
db 0
;Learnset
db 9,EMBER
db 15,LEER
db 24,RAGE
db 36,SLASH
db 46,FLAMETHROWER
db 55,FIRE_SPIN
db 0
Mon187_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon188_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon189_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon190_EvosAttacks:
;MISSINGNO
;Evolutions
db 0
;Learnset
db 0
Mon043_EvosAttacks:
;ODDISH
;Evolutions
db EV_LEVEL,21,GLOOM
db 0
;Learnset
db 15,POISONPOWDER
db 17,STUN_SPORE
db 19,SLEEP_POWDER
db 24,ACID
db 33,PETAL_DANCE
db 46,SOLARBEAM
db 0
Mon044_EvosAttacks:
;GLOOM
;Evolutions
db EV_ITEM,LEAF_STONE ,1,VILEPLUME
db 0
;Learnset
db 15,POISONPOWDER
db 17,STUN_SPORE
db 19,SLEEP_POWDER
db 28,ACID
db 38,PETAL_DANCE
db 52,SOLARBEAM
db 0
Mon045_EvosAttacks:
;VILEPLUME
;Evolutions
db 0
;Learnset
db 15,POISONPOWDER
db 17,STUN_SPORE
db 19,SLEEP_POWDER
db 0
Mon069_EvosAttacks:
;BELLSPROUT
;Evolutions
db EV_LEVEL,21,WEEPINBELL
db 0
;Learnset
db 13,WRAP
db 15,POISONPOWDER
db 18,SLEEP_POWDER
db 21,STUN_SPORE
db 26,ACID
db 33,RAZOR_LEAF
db 42,SLAM
db 0
Mon070_EvosAttacks:
;WEEPINBELL
;Evolutions
db EV_ITEM,LEAF_STONE ,1,VICTREEBEL
db 0
;Learnset
db 13,WRAP
db 15,POISONPOWDER
db 18,SLEEP_POWDER
db 23,STUN_SPORE
db 29,ACID
db 38,RAZOR_LEAF
db 49,SLAM
db 0
Mon071_EvosAttacks:
;VICTREEBEL
;Evolutions
db 0
;Learnset
db 13,WRAP
db 15,POISONPOWDER
db 18,SLEEP_POWDER
db 0
INCBIN "baserom.gbc",$3B9EC, $3C000 - $3B9EC
SECTION "bankF",DATA,BANK[$F]
INCBIN "baserom.gbc",$3C000,$90E
; XXX this needs cleaning up. it's what runs when a juggler switches pokemon
EnemySendOut: ; 490E
ld hl,$D058
xor a
ld [hl],a
ld a,[$CC2F]
ld c,a
ld b,1
push bc
ld a,$10
call Predef
ld hl,$CCF5
xor a
ld [hl],a
pop bc
ld a,$10
call Predef
xor a
ld hl,$D065
ld [hli],a
ld [hli],a
ld [hli],a
ld [hli],a
ld [hl],a
ld [$D072],a
ld [$CCEF],a
ld [$CCF3],a
ld hl,$CCF1
ld [hli],a
ld [hl],a
dec a
ld [$CCDF],a
ld hl,$D062
res 5,[hl]
ld hl,$C3B2
ld a,8
call $48DF
call $6E94
call $3719
ld a,[$D12B]
cp 4
jr nz,.next\@
ld a,[$CC3E]
sub 4
ld [$CF92],a
jr .next3\@
.next\@
ld b,$FF
.next2\@
inc b
ld a,[$CFE8]
cp b
jr z,.next2\@
ld hl,$D8A4
ld a,b
ld [$CF92],a
push bc
ld bc,$2C
call AddNTimes
pop bc
inc hl
ld a,[hli]
ld c,a
ld a,[hl]
or c
jr z,.next2\@
.next3\@
ld a,[$CF92]
ld hl,$D8C5
ld bc,$2C
call AddNTimes
ld a,[hl]
ld [$D127],a
ld a,[$CF92]
inc a
ld hl,$D89C
ld c,a
ld b,0
add hl,bc
ld a,[hl]
ld [$CFD8],a
ld [$CF91],a
call $6B01
ld hl,$CFE6
ld a,[hli]
ld [$CCE3],a
ld a,[hl]
ld [$CCE4],a
ld a,1
ld [$CC26],a
ld a,[$D11D]
dec a
jr z,.next4\@
ld a,[$D163]
dec a
jr z,.next4\@
ld a,[$D12B]
cp 4
jr z,.next4\@
ld a,[$D355]
bit 6,a
jr nz,.next4\@
ld hl,$4A79
call PrintText
ld hl,$C42C
ld bc,$0801
ld a,$14
ld [$D125],a
call $30E8
ld a,[$CC26]
and a
jr nz,.next4\@
ld a,2
ld [$D07D],a
call $13FC
.next9\@
ld a,1
ld [$CC26],a
jr c,.next7\@
ld hl,$CC2F
ld a,[$CF92]
cp [hl]
jr nz,.next6\@
ld hl,$51F5
call PrintText
.next8\@
call $1411
jr .next9\@
.next6\@
call $4A97
jr z,.next8\@
xor a
ld [$CC26],a
.next7\@
call $3DE5
call $6E5B
call $3725
.next4\@
call $0082
ld hl,$C3A0
ld bc,$040B
call $18C4
ld b,1
call $3DEF
call $3DDC
ld hl,$4A7E
call PrintText
ld a,[$CFD8]
ld [$CF91],a
ld [$D0B5],a
call $1537
ld de,$9000
call $1665
ld a,$CF
ld [$FFE1],a
ld hl,$C427
ld a,2
call Predef
ld a,[$CFD8]
call $13D0
call $4DEC
ld a,[$CC26]
and a
ret nz
xor a
ld [$D058],a
ld [$CCF5],a
call $3719
jp $51BA
db $17
dw $5784
db $22
db $50
db $17
dw $57B4
db $22
db $50
INCBIN "baserom.gbc",$3CA83,$40000 - $3CA83
SECTION "bank10",DATA,BANK[$10]
INCBIN "baserom.gbc",$40000,$1024
PokedexOrder: ; 5024
db DEX_RHYDON
db DEX_KANGASKHAN
db DEX_NIDORAN_M
db DEX_CLEFAIRY
db DEX_SPEAROW
db DEX_VOLTORB
db DEX_NIDOKING
db DEX_SLOWBRO
db DEX_IVYSAUR
db DEX_EXEGGUTOR
db DEX_LICKITUNG
db DEX_EXEGGCUTE
db DEX_GRIMER
db DEX_GENGAR
db DEX_NIDORAN_F
db DEX_NIDOQUEEN
db DEX_CUBONE
db DEX_RHYHORN
db DEX_LAPRAS
db DEX_ARCANINE
db DEX_MEW
db DEX_GYARADOS
db DEX_SHELLDER
db DEX_TENTACOOL
db DEX_GASTLY
db DEX_SCYTHER
db DEX_STARYU
db DEX_BLASTOISE
db DEX_PINSIR
db DEX_TANGELA
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_GROWLITHE
db DEX_ONIX
db DEX_FEAROW
db DEX_PIDGEY
db DEX_SLOWPOKE
db DEX_KADABRA
db DEX_GRAVELER
db DEX_CHANSEY
db DEX_MACHOKE
db DEX_MR__MIME
db DEX_HITMONLEE
db DEX_HITMONCHAN
db DEX_ARBOK
db DEX_PARASECT
db DEX_PSYDUCK
db DEX_DROWZEE
db DEX_GOLEM
db 0 ; MISSINGNO.
db DEX_MAGMAR
db 0 ; MISSINGNO.
db DEX_ELECTABUZZ
db DEX_MAGNETON
db DEX_KOFFING
db 0 ; MISSINGNO.
db DEX_MANKEY
db DEX_SEEL
db DEX_DIGLETT
db DEX_TAUROS
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_FARFETCH_D
db DEX_VENONAT
db DEX_DRAGONITE
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_DODUO
db DEX_POLIWAG
db DEX_JYNX
db DEX_MOLTRES
db DEX_ARTICUNO
db DEX_ZAPDOS
db DEX_DITTO
db DEX_MEOWTH
db DEX_KRABBY
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_VULPIX
db DEX_NINETALES
db DEX_PIKACHU
db DEX_RAICHU
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_DRATINI
db DEX_DRAGONAIR
db DEX_KABUTO
db DEX_KABUTOPS
db DEX_HORSEA
db DEX_SEADRA
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_SANDSHREW
db DEX_SANDSLASH
db DEX_OMANYTE
db DEX_OMASTAR
db DEX_JIGGLYPUFF
db DEX_WIGGLYTUFF
db DEX_EEVEE
db DEX_FLAREON
db DEX_JOLTEON
db DEX_VAPOREON
db DEX_MACHOP
db DEX_ZUBAT
db DEX_EKANS
db DEX_PARAS
db DEX_POLIWHIRL
db DEX_POLIWRATH
db DEX_WEEDLE
db DEX_KAKUNA
db DEX_BEEDRILL
db 0 ; MISSINGNO.
db DEX_DODRIO
db DEX_PRIMEAPE
db DEX_DUGTRIO
db DEX_VENOMOTH
db DEX_DEWGONG
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_CATERPIE
db DEX_METAPOD
db DEX_BUTTERFREE
db DEX_MACHAMP
db 0 ; MISSINGNO.
db DEX_GOLDUCK
db DEX_HYPNO
db DEX_GOLBAT
db DEX_MEWTWO
db DEX_SNORLAX
db DEX_MAGIKARP
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_MUK
db 0 ; MISSINGNO.
db DEX_KINGLER
db DEX_CLOYSTER
db 0 ; MISSINGNO.
db DEX_ELECTRODE
db DEX_CLEFABLE
db DEX_WEEZING
db DEX_PERSIAN
db DEX_MAROWAK
db 0 ; MISSINGNO.
db DEX_HAUNTER
db DEX_ABRA
db DEX_ALAKAZAM
db DEX_PIDGEOTTO
db DEX_PIDGEOT
db DEX_STARMIE
db DEX_BULBASAUR
db DEX_VENUSAUR
db DEX_TENTACRUEL
db 0 ; MISSINGNO.
db DEX_GOLDEEN
db DEX_SEAKING
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_PONYTA
db DEX_RAPIDASH
db DEX_RATTATA
db DEX_RATICATE
db DEX_NIDORINO
db DEX_NIDORINA
db DEX_GEODUDE
db DEX_PORYGON
db DEX_AERODACTYL
db 0 ; MISSINGNO.
db DEX_MAGNEMITE
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_CHARMANDER
db DEX_SQUIRTLE
db DEX_CHARMELEON
db DEX_WARTORTLE
db DEX_CHARIZARD
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db 0 ; MISSINGNO.
db DEX_ODDISH
db DEX_GLOOM
db DEX_VILEPLUME
db DEX_BELLSPROUT
db DEX_WEEPINBELL
db DEX_VICTREEBEL
INCBIN "baserom.gbc",$410E2,$4000 - $10E2
SECTION "bank11",DATA,BANK[$11]
INCBIN "baserom.gbc",$44000,$4000
SECTION "bank12",DATA,BANK[$12]
INCBIN "baserom.gbc",$48000,$4000
SECTION "bank13",DATA,BANK[$13]
INCBIN "baserom.gbc",$4C000,$3E49
GetPredefPointer:
; stores hl in $CC4F,$CC50
; stores de in $CC51,$CC52
; stores bc in $CC53,$CC54
; grabs a byte "n" from $CC4E,
; and gets the nth (3-byte) pointer in PredefPointers
; stores the bank of said pointer in [$D0B7]
; stores the pointer in hl and returns
; ld $CC4F,hl
ld a,h
ld [$CC4F],a
ld a,l
ld [$CC50],a
; ld $CC51,de
ld hl,$CC51
ld a,d
ld [hli],a
ld a,e
ld [hli],a
; ld $CC53,bc
ld a,b
ld [hli],a
ld [hl],c
ld hl,PredefPointers
ld de,0
; de = 3 * [$CC4E]
ld a,[$CC4E]
ld e,a
add a,a
add a,e
ld e,a
jr nc,.next\@
inc d
.next\@
add hl,de
ld d,h
ld e,l
; get bank of predef routine
ld a,[de]
ld [$D0B7],a
; get pointer
inc de
ld a,[de]
ld l,a
inc de
ld a,[de]
ld h,a
ret
PredefPointers: ; 7E79
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
dbw $0F,$4D60
dbw $0F,$70C6
dbw $0F,$7073
dbw $0B,$7E40
dbw $0F,$7103
dbw $1E,$5ABA
dbw $03,$7132
dbw $03,$76A5
dbw $1E,$4D5E
dbw $03,$771E
dbw $03,$771E
dbw $03,$781D
dbw $03,$7836
dbw $03,$771E
dbw $03,$771E
dbw $03,$7850
dbw $03,$7666
dbw $03,$71D7
dbw $03,$71A6
dbw $03,$469C
dbw $0F,$4A83
dbw $03,$71C8
dbw $03,$71C8
dbw $03,$6E9E
dbw $03,$7850
dbw $03,$4754
dbw $0E,$6F5B
dbw $01,$6E43
dbw $03,$78A5
dbw $03,$3EB5
dbw $03,$3E2E
dbw $12,$40EB
dbw $03,$78BA
dbw $12,$40FF
dbw $03,$7929
dbw $03,$79A0
dbw $12,$4125
dbw $03,$7A1D
dbw $03,$79DC
dbw $01,$5AB0
dbw $0F,$6D02
dbw $10,$4000
dbw $0E,$6D1C
dbw $1C,$778C
dbw $0F,$6F18
dbw $01,$5A5F
dbw $03,$6A03
dbw $10,$50F3
dbw $1C,$496D
dbw $1E,$5DDA
dbw $10,$5682
dbw $1E,$5869
dbw $1C,$4B5D
dbw $03,$4586
dbw $04,$6953
dbw $04,$6B57
dbw $10,$50E2
dbw $15,$690F
dbw $10,$5010
dbw BANK(Predef3B),Predef3B; 3B display pic?
dbw $03,$6F54
dbw $10,$42D1
dbw $0E,$6FB8
dbw $1C,$770A
dbw $1C,$602B
dbw $03,$7113
dbw $17,$5B5E
dbw $04,$773E
dbw $04,$7763
dbw $1C,$5DDF
dbw $17,$40DC; 46 load dex screen
dbw $03,$72E5
dbw $03,$7A1D
dbw $0F,$4DEC
dbw $1C,$4F60
dbw $09,$7D6B
dbw $05,$7C47; 4C player exclamation
dbw $01,$5AAF
dbw $01,$64EB
dbw $0D,$7CA1
dbw $1C,$780F
dbw $1C,$76BD
dbw $1C,$75E8
dbw $1C,$77E2
dbw $1C,$5AD9
dbw $1D,$405C
dbw $11,$4169
dbw $1E,$45BA
dbw $1E,$4510
dbw $03,$45BE
dbw $03,$460B
dbw $03,$4D99
dbw $01,$4DE1
dbw $09,$7D98
dbw $03,$7473
dbw $04,$68EF
dbw $04,$68F6
dbw $07,$49C6
dbw $16,$5035
SECTION "bank14",DATA,BANK[$14]
INCBIN "baserom.gbc",$50000,$4000
SECTION "bank15",DATA,BANK[$15]
INCBIN "baserom.gbc",$54000,$4000
SECTION "bank16",DATA,BANK[$16]
INCBIN "baserom.gbc",$58000,$4000
SECTION "bank17",DATA,BANK[$17]
INCBIN "baserom.gbc",$5C000,$4000
SECTION "bank18",DATA,BANK[$18]
INCBIN "baserom.gbc",$60000,$4000
SECTION "bank19",DATA,BANK[$19]
Tset00_GFX:
INCBIN "baserom.gbc",$64000,$645E0-$64000
Tset00_Block:
INCBIN "baserom.gbc",$645E0,$64DE0-$645E0
Tset01_GFX:
INCBIN "baserom.gbc",$64DE0,$65270-$64DE0
Tset01_Block:
INCBIN "baserom.gbc",$65270,$653A0-$65270
Tset08_GFX:
INCBIN "baserom.gbc",$653A0,$65980-$653A0
Tset08_Block:
INCBIN "baserom.gbc",$65980,$65BB0-$65980
Tset13_GFX:
INCBIN "baserom.gbc",$65BB0,$66190-$65BB0
Tset13_Block:
INCBIN "baserom.gbc",$66190,$66610-$66190
Tset0E_GFX:
INCBIN "baserom.gbc",$66610,$66BF0-$66610
Tset0E_Block:
INCBIN "baserom.gbc",$66BF0,$66D60-$66BF0
Tset10_GFX:
INCBIN "baserom.gbc",$66D60,$67350-$66D60
Tset10_Block:
INCBIN "baserom.gbc",$67350,$676F0-$67350
Tset17_GFX:
INCBIN "baserom.gbc",$676F0,$67B50-$676F0
Tset17_Block:
INCBIN "baserom.gbc",$67B50,$68000-$67B50
SECTION "bank1A",DATA,BANK[$1A]
INCBIN "baserom.gbc",$68000,$6807F-$68000
Tset05_GFX:
INCBIN "baserom.gbc",$6807F,$6867F-$6807F
Tset05_Block:
INCBIN "baserom.gbc",$6867F,$68DBF-$6867F
Tset02_GFX:
INCBIN "baserom.gbc",$68DBF,$693BF-$68DBF
Tset02_Block:
INCBIN "baserom.gbc",$693BF,$6960F-$693BF
Tset09_GFX:
INCBIN "baserom.gbc",$6960F,$69BFF-$6960F
Tset09_Block:
INCBIN "baserom.gbc",$69BFF,$6A3FF-$69BFF
Tset03_GFX:
INCBIN "baserom.gbc",$6A3FF,$6A9FF-$6A3FF
Tset03_Block:
INCBIN "baserom.gbc",$6A9FF,$6B1FF-$6A9FF
Tset16_GFX:
INCBIN "baserom.gbc",$6B1FF,$6B7FF-$6B1FF
Tset16_Block:
INCBIN "baserom.gbc",$6B7FF,$6C000-$6B7FF
SECTION "bank1B",DATA,BANK[$1B]
Tset0F_GFX:
INCBIN "baserom.gbc",$6C000,$6C5C0-$6C000
Tset0F_Block:
INCBIN "baserom.gbc",$6C5C0,$6CCA0-$6C5C0
Tset11_GFX:
INCBIN "baserom.gbc",$6CCA0,$6D0C0-$6CCA0
Tset11_Block:
INCBIN "baserom.gbc",$6D0C0,$6D8C0-$6D0C0
Tset12_GFX:
INCBIN "baserom.gbc",$6D8C0,$6DEA0-$6D8C0
Tset12_Block:
INCBIN "baserom.gbc",$6DEA0,$6E390-$6DEA0
Tset0D_GFX:
INCBIN "baserom.gbc",$6E390,$6E930-$6E390
Tset0D_Block:
INCBIN "baserom.gbc",$6E930,$6ED10-$6E930
Tset14_GFX:
INCBIN "baserom.gbc",$6ED10,$6F2D0-$6ED10
Tset14_Block:
INCBIN "baserom.gbc",$6F2D0,$6F670-$6F2D0
Tset15_GFX:
INCBIN "baserom.gbc",$6F670,$6FB20-$6F670
Tset15_Block:
INCBIN "baserom.gbc",$6FB20,$6FD60-$6FB20
Tset0B_GFX:
INCBIN "baserom.gbc",$6FD60,$6FEF0-$6FD60
Tset0B_Block:
INCBIN "baserom.gbc",$6FEF0,$70000-$6FEF0
SECTION "bank1C",DATA,BANK[$1C]
INCBIN "baserom.gbc",$70000,$1100
CompressedMap: ; 5100
; you can decompress this file with the redrle program in the extras/ dir
INCBIN "baserom.gbc",$71100,$711AB-$71100
INCBIN "baserom.gbc",$711AB,$71313-$711AB
ExternalMapEntries: ; 5313
EMAP $2,$B,PalletTownName
EMAP $2,$8,ViridianCityName
EMAP $2,$3,PewterCityName
EMAP $A,$2,CeruleanCityName
EMAP $E,$5,LavenderTownName
EMAP $A,$9,VermilionCityName
EMAP $7,$5,CeladonCityName
EMAP $8,$D,FuchsiaCityName
EMAP $2,$F,CinnabarIslandName
EMAP $0,$2,IndigoPlateauName
EMAP $A,$5,SaffronCityName
EMAP $0,$0,PalletTownName ; unused
EMAP $2,$A,Route1Name
EMAP $2,$6,Route2Name
EMAP $4,$3,Route3Name
EMAP $8,$2,Route4Name
EMAP $A,$3,Route5Name
EMAP $A,$8,Route6Name
EMAP $8,$5,Route7Name
EMAP $D,$5,Route8Name
EMAP $D,$2,Route9Name
EMAP $E,$4,Route10Name
EMAP $C,$9,Route11Name
EMAP $E,$9,Route12Name
EMAP $D,$B,Route13Name
EMAP $B,$C,Route14Name
EMAP $A,$D,Route15Name
EMAP $5,$5,Route16Name
EMAP $4,$8,Route17Name
EMAP $6,$D,Route18Name
EMAP $6,$F,Route19Name
EMAP $4,$F,Route20Name
EMAP $2,$D,Route21Name
EMAP $0,$8,Route22Name
EMAP $0,$6,Route23Name
EMAP $A,$1,Route24Name
EMAP $B,$0,Route25Name
InternalMapEntries: ; 5382
IMAP $29,$2,$B,PalletTownName
IMAP $2E,$2,$8,ViridianCityName
IMAP $33,$2,$6,Route2Name
IMAP $34,$2,$4,ViridianForestName
IMAP $3B,$2,$3,PewterCityName
IMAP $3E,$6,$2,MountMoonName
IMAP $44,$A,$2,CeruleanCityName
IMAP $45,$5,$2,Route4Name
IMAP $46,$A,$2,CeruleanCityName
IMAP $49,$A,$4,Route5Name
IMAP $4C,$A,$6,Route6Name
IMAP $4F,$9,$5,Route7Name
IMAP $51,$B,$5,Route8Name
IMAP $53,$E,$3,RockTunnelName
IMAP $54,$F,$4,PowerPlantName
IMAP $57,$D,$9,Route11Name
IMAP $58,$E,$7,Route12Name
IMAP $59,$C,$0,SeaCottageName
IMAP $5F,$A,$9,VermilionCityName
IMAP $69,$9,$A,SSAnneName
IMAP $6D,$0,$4,VictoryRoadName
IMAP $77,$0,$2,PokemonLeagueName
IMAP $78,$A,$5,UndergroundPathName
IMAP $79,$0,$2,PokemonLeagueName
IMAP $7A,$A,$5,UndergroundPathName
IMAP $8D,$7,$5,CeladonCityName
IMAP $8E,$E,$5,LavenderTownName
IMAP $95,$F,$5,PokemonTowerName
IMAP $98,$E,$5,LavenderTownName
IMAP $9C,$8,$D,FuchsiaCityName
IMAP $9D,$8,$C,SafariZoneName
IMAP $9F,$8,$D,FuchsiaCityName
IMAP $A3,$5,$F,SeafoamIslandsName
IMAP $A4,$A,$9,VermilionCityName
IMAP $A5,$8,$D,FuchsiaCityName
IMAP $A6,$2,$F,PokemonMansionName
IMAP $AE,$2,$F,CinnabarIslandName
IMAP $AF,$0,$2,IndigoPlateauName
IMAP $B8,$A,$5,SaffronCityName
IMAP $BA,$9,$D,Route15Name
IMAP $BD,$4,$5,Route16Name
IMAP $BE,$E,$A,Route12Name
IMAP $C0,$7,$D,Route18Name
IMAP $C1,$5,$F,SeafoamIslandsName
IMAP $C2,$0,$7,Route22Name
IMAP $C3,$0,$4,VictoryRoadName
IMAP $C4,$E,$7,Route12Name
IMAP $C5,$A,$9,VermilionCityName
IMAP $C6,$3,$4,DiglettsCaveName
IMAP $C7,$0,$4,VictoryRoadName
IMAP $CF,$7,$5,RocketHQName
IMAP $D6,$A,$5,SilphCoName
IMAP $D9,$2,$F,PokemonMansionName
IMAP $E2,$8,$C,SafariZoneName
IMAP $E5,$9,$1,CeruleanCaveName
IMAP $E6,$E,$5,LavenderTownName
IMAP $E7,$A,$2,CeruleanCityName
IMAP $E9,$E,$3,RockTunnelName
IMAP $ED,$A,$5,SilphCoName
IMAP $F8,$0,$2,PokemonLeagueName
db $FF
MapNames: ; 5473
PalletTownName:
db $8f,$80,$8b,$8b,$84,$93,$7f,$93,$8e,$96,$8d,$50
ViridianCityName:
db $95,$88,$91,$88,$83,$88,$80,$8d,$7f,$82,$88,$93,$98,$50
PewterCityName:
db $8f,$84,$96,$93,$84,$91,$7f,$82,$88,$93,$98,$50
CeruleanCityName:
db $82,$84,$91,$94,$8b,$84,$80,$8d,$7f,$82,$88,$93,$98,$50
LavenderTownName:
db $8b,$80,$95,$84,$8d,$83,$84,$91,$7f,$93,$8e,$96,$8d,$50
VermilionCityName:
db $95,$84,$91,$8c,$88,$8b,$88,$8e,$8d,$7f,$82,$88,$93,$98,$50
CeladonCityName:
db $82,$84,$8b,$80,$83,$8e,$8d,$7f,$82,$88,$93,$98,$50
FuchsiaCityName:
db $85,$94,$82,$87,$92,$88,$80,$7f,$82,$88,$93,$98,$50
CinnabarIslandName:
db $82,$88,$8d,$8d,$80,$81,$80,$91,$7f,$88,$92,$8b,$80,$8d,$83,$50
IndigoPlateauName:
db $88,$8d,$83,$88,$86,$8e,$7f,$8f,$8b,$80,$93,$84,$80,$94,$50
SaffronCityName:
db $92,$80,$85,$85,$91,$8e,$8d,$7f,$82,$88,$93,$98,$50
Route1Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$50
Route2Name:
db $91,$8e,$94,$93,$84,$7f,$f8,$50
Route3Name:
db $91,$8e,$94,$93,$84,$7f,$f9,$50
Route4Name:
db $91,$8e,$94,$93,$84,$7f,$fa,$50
Route5Name:
db $91,$8e,$94,$93,$84,$7f,$fb,$50
Route6Name:
db $91,$8e,$94,$93,$84,$7f,$fc,$50
Route7Name:
db $91,$8e,$94,$93,$84,$7f,$fd,$50
Route8Name:
db $91,$8e,$94,$93,$84,$7f,$fe,$50
Route9Name:
db $91,$8e,$94,$93,$84,$7f,$ff,$50
Route10Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$f6,$50
Route11Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$f7,$50
Route12Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$f8,$50
Route13Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$f9,$50
Route14Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$fa,$50
Route15Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$fb,$50
Route16Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$fc,$50
Route17Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$fd,$50
Route18Name:
db $91,$8e,$94,$93,$84,$7f,$f7,$fe,$50
Route19Name:
db $92,$84,$80,$7f,$91,$8e,$94,$93,$84,$7f,$f7,$ff,$50
Route20Name:
db $92,$84,$80,$7f,$91,$8e,$94,$93,$84,$7f,$f8,$f6,$50
Route21Name:
db $92,$84,$80,$7f,$91,$8e,$94,$93,$84,$7f,$f8,$f7,$50
Route22Name:
db $91,$8e,$94,$93,$84,$7f,$f8,$f8,$50
Route23Name:
db $91,$8e,$94,$93,$84,$7f,$f8,$f9,$50
Route24Name:
db $91,$8e,$94,$93,$84,$7f,$f8,$fa,$50
Route25Name:
db $91,$8e,$94,$93,$84,$7f,$f8,$fb,$50
ViridianForestName:
db $95,$88,$91,$88,$83,$88,$80,$8d,$7f,$85,$8e,$91,$84,$92,$93,$50
MountMoonName:
db $8c,$93,$e8,$8c,$8e,$8e,$8d,$50
RockTunnelName:
db $91,$8e,$82,$8a,$7f,$93,$94,$8d,$8d,$84,$8b,$50
SeaCottageName:
db $92,$84,$80,$7f,$82,$8e,$93,$93,$80,$86,$84,$50
SSAnneName:
db $92,$e8,$92,$e8,$80,$8d,$8d,$84,$50
PokemonLeagueName:
db $54,$8c,$8e,$8d,$7f,$8b,$84,$80,$86,$94,$84,$50
UndergroundPathName:
db $94,$8d,$83,$84,$91,$86,$91,$8e,$94,$8d,$83,$7f,$8f,$80,$93,$87,$50
PokemonTowerName:
db $54,$8c,$8e,$8d,$7f,$93,$8e,$96,$84,$91,$50
SeafoamIslandsName:
db $92,$84,$80,$85,$8e,$80,$8c,$7f,$88,$92,$8b,$80,$8d,$83,$92,$50
VictoryRoadName:
db $95,$88,$82,$93,$8e,$91,$98,$7f,$91,$8e,$80,$83,$50
DiglettsCaveName:
db $83,$88,$86,$8b,$84,$93,$93,$bd,$7f,$82,$80,$95,$84,$50
RocketHQName:
db $91,$8e,$82,$8a,$84,$93,$7f,$87,$90,$50
SilphCoName:
db $92,$88,$8b,$8f,$87,$7f,$82,$8e,$e8,$50
PokemonMansionName:
db $4a,$7f,$8c,$80,$8d,$92,$88,$8e,$8d,$50
SafariZoneName:
db $92,$80,$85,$80,$91,$88,$7f,$99,$8e,$8d,$84,$50
CeruleanCaveName:
db $82,$84,$91,$94,$8b,$84,$80,$8d,$7f,$82,$80,$95,$84,$50
PowerPlantName:
db $8f,$8e,$96,$84,$91,$7f,$8f,$8b,$80,$8d,$93,$50
INCBIN "baserom.gbc",$716BE,$71B7B-$716BE
TradeMons: ; 5B7B
; givemonster, getmonster, textstring, nickname (11 bytes), 14 bytes total
; TERRY
db NIDORINO,NIDORINA,0,$93,$84,$91,$91,$98,$50,$50,$50,$50,$50,$50
; MARCEL
db ABRA,MR__MIME,0,$8C,$80,$91,$82,$84,$8B,$50,$50,$50,$50,$50
; CHIKUCHIKU
db BUTTERFREE,BEEDRILL,2,$82,$87,$88,$8A,$94,$82,$87,$88,$8A,$94,$50
; SAILOR
db PONYTA,SEEL,0,$92,$80,$88,$8B,$8E,$91,$50,$50,$50,$50,$50
; DUX
db SPEAROW,FARFETCH_D,2,$83,$94,$97,$50,$50,$50,$50,$50,$50,$50,$50
; MARC
db SLOWBRO,LICKITUNG,0,$8C,$80,$91,$82,$50,$50,$50,$50,$50,$50,$50
; LOLA
db POLIWHIRL,JYNX,1,$8B,$8E,$8B,$80,$50,$50,$50,$50,$50,$50,$50
; DORIS
db RAICHU,ELECTRODE,1,$83,$8E,$91,$88,$92,$50,$50,$50,$50,$50,$50
; CRINKLES
db VENONAT,TANGELA,2,$82,$91,$88,$8D,$8A,$8B,$84,$92,$50,$50,$50
; SPOT
db NIDORAN_M,NIDORAN_F,2,$92,$8F,$8E,$93,$50,$50,$50,$50,$50,$50,$50
INCBIN "baserom.gbc",$71C07,$725C8-$71C07
MonsterPalettes: ; 65C8
db PAL_MEWMON ; MISSINGNO
db PAL_GREENMON ; BULBASAUR
db PAL_GREENMON ; IVYSAUR
db PAL_GREENMON ; VENUSAUR
db PAL_REDMON ; CHARMANDER
db PAL_REDMON ; CHARMELEON
db PAL_REDMON ; CHARIZARD
db PAL_CYANMON ; SQUIRTLE
db PAL_CYANMON ; WARTORTLE
db PAL_CYANMON ; BLASTOISE
db PAL_GREENMON ; CATERPIE
db PAL_GREENMON ; METAPOD
db PAL_CYANMON ; BUTTERFREE
db PAL_YELLOWMON ; WEEDLE
db PAL_YELLOWMON ; KAKUNA
db PAL_YELLOWMON ; BEEDRILL
db PAL_BROWNMON ; PIDGEY
db PAL_BROWNMON ; PIDGEOTTO
db PAL_BROWNMON ; PIDGEOT
db PAL_GREYMON ; RATTATA
db PAL_GREYMON ; RATICATE
db PAL_BROWNMON ; SPEAROW
db PAL_BROWNMON ; FEAROW
db PAL_PURPLEMON ; EKANS
db PAL_PURPLEMON ; ARBOK
db PAL_YELLOWMON ; PIKACHU
db PAL_YELLOWMON ; RAICHU
db PAL_BROWNMON ; SANDSHREW
db PAL_BROWNMON ; SANDSLASH
db PAL_BLUEMON ; NIDORAN_F
db PAL_BLUEMON ; NIDORINA
db PAL_BLUEMON ; NIDOQUEEN
db PAL_PURPLEMON ; NIDORAN_M
db PAL_PURPLEMON ; NIDORINO
db PAL_PURPLEMON ; NIDOKING
db PAL_PINKMON ; CLEFAIRY
db PAL_PINKMON ; CLEFABLE
db PAL_REDMON ; VULPIX
db PAL_YELLOWMON ; NINETALES
db PAL_PINKMON ; JIGGLYPUFF
db PAL_PINKMON ; WIGGLYTUFF
db PAL_BLUEMON ; ZUBAT
db PAL_BLUEMON ; GOLBAT
db PAL_GREENMON ; ODDISH
db PAL_REDMON ; GLOOM
db PAL_REDMON ; VILEPLUME
db PAL_REDMON ; PARAS
db PAL_REDMON ; PARASECT
db PAL_PURPLEMON ; VENONAT
db PAL_PURPLEMON ; VENOMOTH
db PAL_BROWNMON ; DIGLETT
db PAL_BROWNMON ; DUGTRIO
db PAL_YELLOWMON ; MEOWTH
db PAL_YELLOWMON ; PERSIAN
db PAL_YELLOWMON ; PSYDUCK
db PAL_CYANMON ; GOLDUCK
db PAL_BROWNMON ; MANKEY
db PAL_BROWNMON ; PRIMEAPE
db PAL_BROWNMON ; GROWLITHE
db PAL_REDMON ; ARCANINE
db PAL_BLUEMON ; POLIWAG
db PAL_BLUEMON ; POLIWHIRL
db PAL_BLUEMON ; POLIWRATH
db PAL_YELLOWMON ; ABRA
db PAL_YELLOWMON ; KADABRA
db PAL_YELLOWMON ; ALAKAZAM
db PAL_GREYMON ; MACHOP
db PAL_GREYMON ; MACHOKE
db PAL_GREYMON ; MACHAMP
db PAL_GREENMON ; BELLSPROUT
db PAL_GREENMON ; WEEPINBELL
db PAL_GREENMON ; VICTREEBEL
db PAL_CYANMON ; TENTACOOL
db PAL_CYANMON ; TENTACRUEL
db PAL_GREYMON ; GEODUDE
db PAL_GREYMON ; GRAVELER
db PAL_GREYMON ; GOLEM
db PAL_REDMON ; PONYTA
db PAL_REDMON ; RAPIDASH
db PAL_PINKMON ; SLOWPOKE
db PAL_PINKMON ; SLOWBRO
db PAL_GREYMON ; MAGNEMITE
db PAL_GREYMON ; MAGNETON
db PAL_BROWNMON ; FARFETCH_D
db PAL_BROWNMON ; DODUO
db PAL_BROWNMON ; DODRIO
db PAL_BLUEMON ; SEEL
db PAL_BLUEMON ; DEWGONG
db PAL_PURPLEMON ; GRIMER
db PAL_PURPLEMON ; MUK
db PAL_GREYMON ; SHELLDER
db PAL_GREYMON ; CLOYSTER
db PAL_PURPLEMON ; GASTLY
db PAL_PURPLEMON ; HAUNTER
db PAL_PURPLEMON ; GENGAR
db PAL_GREYMON ; ONIX
db PAL_YELLOWMON ; DROWZEE
db PAL_YELLOWMON ; HYPNO
db PAL_REDMON ; KRABBY
db PAL_REDMON ; KINGLER
db PAL_YELLOWMON ; VOLTORB
db PAL_YELLOWMON ; ELECTRODE
db PAL_PINKMON ; EXEGGCUTE
db PAL_GREENMON ; EXEGGUTOR
db PAL_GREYMON ; CUBONE
db PAL_GREYMON ; MAROWAK
db PAL_BROWNMON ; HITMONLEE
db PAL_BROWNMON ; HITMONCHAN
db PAL_PINKMON ; LICKITUNG
db PAL_PURPLEMON ; KOFFING
db PAL_PURPLEMON ; WEEZING
db PAL_GREYMON ; RHYHORN
db PAL_GREYMON ; RHYDON
db PAL_PINKMON ; CHANSEY
db PAL_BLUEMON ; TANGELA
db PAL_BROWNMON ; KANGASKHAN
db PAL_CYANMON ; HORSEA
db PAL_CYANMON ; SEADRA
db PAL_REDMON ; GOLDEEN
db PAL_REDMON ; SEAKING
db PAL_REDMON ; STARYU
db PAL_GREYMON ; STARMIE
db PAL_PINKMON ; MR__MIME
db PAL_GREENMON ; SCYTHER
db PAL_MEWMON ; JYNX
db PAL_YELLOWMON ; ELECTABUZZ
db PAL_REDMON ; MAGMAR
db PAL_BROWNMON ; PINSIR
db PAL_GREYMON ; TAUROS
db PAL_REDMON ; MAGIKARP
db PAL_BLUEMON ; GYARADOS
db PAL_CYANMON ; LAPRAS
db PAL_GREYMON ; DITTO
db PAL_GREYMON ; EEVEE
db PAL_CYANMON ; VAPOREON
db PAL_YELLOWMON ; JOLTEON
db PAL_REDMON ; FLAREON
db PAL_GREYMON ; PORYGON
db PAL_BLUEMON ; OMANYTE
db PAL_BLUEMON ; OMASTAR
db PAL_BROWNMON ; KABUTO
db PAL_BROWNMON ; KABUTOPS
db PAL_GREYMON ; AERODACTYL
db PAL_PINKMON ; SNORLAX
db PAL_BLUEMON ; ARTICUNO
db PAL_YELLOWMON ; ZAPDOS
db PAL_REDMON ; MOLTRES
db PAL_GREYMON ; DRATINI
db PAL_BLUEMON ; DRAGONAIR
db PAL_BROWNMON ; DRAGONITE
db PAL_MEWMON ; MEWTWO
db PAL_MEWMON ; MEW
; palettes for overworlds, title screen, monsters
SuperPalettes: ; 6660
RGB 31,29,31 ; PAL_ROUTE
RGB 21,28,11
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_PALLET
RGB 25,28,27
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_VIRIDIAN
RGB 17,26,3
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_PEWTER
RGB 23,25,16
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_CERULEAN
RGB 17,20,30
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_LAVENDER
RGB 27,20,27
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_VERMILION
RGB 30,18,0
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_CELADON
RGB 16,30,22
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_FUCHSIA
RGB 31,15,22
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_CINNABAR
RGB 26,10,6
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_INDIGO
RGB 22,14,24
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; PAL_SAFFRON
RGB 27,27,3
RGB 20,26,31
RGB 3,2,2
RGB 31,29,31 ; XXX
RGB 20,26,31
RGB 17,23,10
RGB 3,2,2
RGB 31,29,31 ; PAL_LOGO1
RGB 30,30,17
RGB 17,23,10
RGB 21,0,4
RGB 31,29,31 ; XXX
RGB 30,30,17
RGB 18,18,24
RGB 7,7,16
RGB 31,29,31 ; PAL_LOGO2
RGB 24,20,30
RGB 11,20,30
RGB 3,2,2
RGB 31,29,31 ; PAL_MEWMON
RGB 30,22,17
RGB 16,14,19
RGB 3,2,2
RGB 31,29,31 ; PAL_BLUEMON
RGB 18,20,27
RGB 11,15,23
RGB 3,2,2
RGB 31,29,31 ; PAL_REDMON
RGB 31,20,10
RGB 26,10,6
RGB 3,2,2
RGB 31,29,31 ; PAL_CYANMON
RGB 21,25,29
RGB 14,19,25
RGB 3,2,2
RGB 31,29,31 ; PAL_PURPLEMON
RGB 27,22,24
RGB 21,15,23
RGB 3,2,2
RGB 31,29,31 ; PAL_BROWNMON
RGB 28,20,15
RGB 21,14,9
RGB 3,2,2
RGB 31,29,31 ; PAL_GREENMON
RGB 20,26,16
RGB 9,20,11
RGB 3,2,2
RGB 31,29,31 ; PAL_PINKMON
RGB 30,22,24
RGB 28,15,21
RGB 3,2,2
RGB 31,29,31 ; PAL_YELLOWMON
RGB 31,28,14
RGB 26,20,0
RGB 3,2,2
RGB 31,29,31 ; PAL_GREYMON
RGB 26,21,22
RGB 15,15,18
RGB 3,2,2
RGB 31,29,31 ; PAL_SLOTS1
RGB 26,21,22
RGB 27,20,6
RGB 3,2,2
RGB 31,29,31 ; PAL_SLOTS2
RGB 31,31,17
RGB 25,17,21
RGB 3,2,2
RGB 31,29,31 ; PAL_SLOTS3
RGB 22,31,16
RGB 25,17,21
RGB 3,2,2
RGB 31,29,31 ; PAL_SLOTS4
RGB 16,19,29
RGB 25,17,21
RGB 3,2,2
RGB 31,29,31 ; PAL_BLACK
RGB 7,7,7
RGB 2,3,3
RGB 3,2,2
RGB 31,29,31 ; PAL_GREENBAR
RGB 30,26,15
RGB 9,20,11
RGB 3,2,2
RGB 31,29,31 ; PAL_YELLOWBAR
RGB 30,26,15
RGB 26,20,0
RGB 3,2,2
RGB 31,29,31 ; PAL_REDBAR
RGB 30,26,15
RGB 26,10,6
RGB 3,2,2
RGB 31,29,31 ; PAL_BADGE
RGB 30,22,17
RGB 11,15,23
RGB 3,2,2
RGB 31,29,31 ; PAL_CAVE
RGB 21,14,9
RGB 18,24,22
RGB 3,2,2
RGB 31,29,31 ; XXX
RGB 31,28,14
RGB 24,20,10
RGB 3,2,2
BorderPalettes: ; 6788
INCBIN "baserom.gbc",$72788,$4000 - $2788
SECTION "bank1D",DATA,BANK[$1D]
INCBIN "baserom.gbc",$74000,$4000
SECTION "bank1E",DATA,BANK[$1E]
INCBIN "baserom.gbc",$78000,$4000
SECTION "bank1F",DATA,BANK[$1F]
INCBIN "baserom.gbc",$7C000,$4000
SECTION "bank20",DATA,BANK[$20]
INCBIN "baserom.gbc",$80000,$4000
SECTION "bank21",DATA,BANK[$21]
INCBIN "baserom.gbc",$84000,$4000
SECTION "bank22",DATA,BANK[$22]
INCBIN "baserom.gbc",$88000,$BE
_AIBattleWithdrawText:
INCBIN "baserom.gbc",$880BE,$17
_AIBattleUseItemText:
INCBIN "baserom.gbc",$880D5,$1A
INCBIN "baserom.gbc",$880EF,$2C0A
SECTION "bank23",DATA,BANK[$23]
INCBIN "baserom.gbc",$8C000,$4000
SECTION "bank24",DATA,BANK[$24]
INCBIN "baserom.gbc",$90000,$4000
SECTION "bank25",DATA,BANK[$25]
INCBIN "baserom.gbc",$94000,$4000
SECTION "bank26",DATA,BANK[$26]
INCBIN "baserom.gbc",$98000,$4000
SECTION "bank27",DATA,BANK[$27]
INCBIN "baserom.gbc",$9C000,$4000
SECTION "bank28",DATA,BANK[$28]
INCBIN "baserom.gbc",$A0000,$4000
SECTION "bank29",DATA,BANK[$29]
INCBIN "baserom.gbc",$A4000,$4000
SECTION "bank2A",DATA,BANK[$2A]
INCBIN "baserom.gbc",$A8000,$4000
SECTION "bank2B",DATA,BANK[$2B]
INCBIN "baserom.gbc",$AC000,$4000
SECTION "bank2C",DATA,BANK[$2C]
INCBIN "baserom.gbc",$B0000,$4000