summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdata/catchem_timer_values.asm157
-rwxr-xr-xmain.asm60
2 files changed, 189 insertions, 28 deletions
diff --git a/data/catchem_timer_values.asm b/data/catchem_timer_values.asm
new file mode 100755
index 0000000..15bf275
--- /dev/null
+++ b/data/catchem_timer_values.asm
@@ -0,0 +1,157 @@
+CatchEmTimerData: ; 0x12a22
+; Each 2-byte entry represents the total time you have to catch a Pokemon.
+; They're all exactly 2 minutes, 0 seconds, but they can be changed to make
+; different pokemon have different times, in order to add difficulty.
+; First byte = seconds value
+; Second byte = minutes value
+ db $00, $02 ; BULBASAUR
+ db $00, $02 ; IVYSAUR
+ db $00, $02 ; VENUSAUR
+ db $00, $02 ; CHARMANDER
+ db $00, $02 ; CHARMELEON
+ db $00, $02 ; CHARIZARD
+ db $00, $02 ; SQUIRTLE
+ db $00, $02 ; WARTORTLE
+ db $00, $02 ; BLASTOISE
+ db $00, $02 ; CATERPIE
+ db $00, $02 ; METAPOD
+ db $00, $02 ; BUTTERFREE
+ db $00, $02 ; WEEDLE
+ db $00, $02 ; KAKUNA
+ db $00, $02 ; BEEDRILL
+ db $00, $02 ; PIDGEY
+ db $00, $02 ; PIDGEOTTO
+ db $00, $02 ; PIDGEOT
+ db $00, $02 ; RATTATA
+ db $00, $02 ; RATICATE
+ db $00, $02 ; SPEAROW
+ db $00, $02 ; FEAROW
+ db $00, $02 ; EKANS
+ db $00, $02 ; ARBOK
+ db $00, $02 ; PIKACHU
+ db $00, $02 ; RAICHU
+ db $00, $02 ; SANDSHREW
+ db $00, $02 ; SANDSLASH
+ db $00, $02 ; NIDORAN_F
+ db $00, $02 ; NIDORINA
+ db $00, $02 ; NIDOQUEEN
+ db $00, $02 ; NIDORAN_M
+ db $00, $02 ; NIDORINO
+ db $00, $02 ; NIDOKING
+ db $00, $02 ; CLEFAIRY
+ db $00, $02 ; CLEFABLE
+ db $00, $02 ; VULPIX
+ db $00, $02 ; NINETALES
+ db $00, $02 ; JIGGLYPUFF
+ db $00, $02 ; WIGGLYTUFF
+ db $00, $02 ; ZUBAT
+ db $00, $02 ; GOLBAT
+ db $00, $02 ; ODDISH
+ db $00, $02 ; GLOOM
+ db $00, $02 ; VILEPLUME
+ db $00, $02 ; PARAS
+ db $00, $02 ; PARASECT
+ db $00, $02 ; VENONAT
+ db $00, $02 ; VENOMOTH
+ db $00, $02 ; DIGLETT
+ db $00, $02 ; DUGTRIO
+ db $00, $02 ; MEOWTH
+ db $00, $02 ; PERSIAN
+ db $00, $02 ; PSYDUCK
+ db $00, $02 ; GOLDUCK
+ db $00, $02 ; MANKEY
+ db $00, $02 ; PRIMEAPE
+ db $00, $02 ; GROWLITHE
+ db $00, $02 ; ARCANINE
+ db $00, $02 ; POLIWAG
+ db $00, $02 ; POLIWHIRL
+ db $00, $02 ; POLIWRATH
+ db $00, $02 ; ABRA
+ db $00, $02 ; KADABRA
+ db $00, $02 ; ALAKAZAM
+ db $00, $02 ; MACHOP
+ db $00, $02 ; MACHOKE
+ db $00, $02 ; MACHAMP
+ db $00, $02 ; BELLSPROUT
+ db $00, $02 ; WEEPINBELL
+ db $00, $02 ; VICTREEBEL
+ db $00, $02 ; TENTACOOL
+ db $00, $02 ; TENTACRUEL
+ db $00, $02 ; GEODUDE
+ db $00, $02 ; GRAVELER
+ db $00, $02 ; GOLEM
+ db $00, $02 ; PONYTA
+ db $00, $02 ; RAPIDASH
+ db $00, $02 ; SLOWPOKE
+ db $00, $02 ; SLOWBRO
+ db $00, $02 ; MAGNEMITE
+ db $00, $02 ; MAGNETON
+ db $00, $02 ; FARFETCH_D
+ db $00, $02 ; DODUO
+ db $00, $02 ; DODRIO
+ db $00, $02 ; SEEL
+ db $00, $02 ; DEWGONG
+ db $00, $02 ; GRIMER
+ db $00, $02 ; MUK
+ db $00, $02 ; SHELLDER
+ db $00, $02 ; CLOYSTER
+ db $00, $02 ; GASTLY
+ db $00, $02 ; HAUNTER
+ db $00, $02 ; GENGAR
+ db $00, $02 ; ONIX
+ db $00, $02 ; DROWZEE
+ db $00, $02 ; HYPNO
+ db $00, $02 ; KRABBY
+ db $00, $02 ; KINGLER
+ db $00, $02 ; VOLTORB
+ db $00, $02 ; ELECTRODE
+ db $00, $02 ; EXEGGCUTE
+ db $00, $02 ; EXEGGUTOR
+ db $00, $02 ; CUBONE
+ db $00, $02 ; MAROWAK
+ db $00, $02 ; HITMONLEE
+ db $00, $02 ; HITMONCHAN
+ db $00, $02 ; LICKITUNG
+ db $00, $02 ; KOFFING
+ db $00, $02 ; WEEZING
+ db $00, $02 ; RHYHORN
+ db $00, $02 ; RHYDON
+ db $00, $02 ; CHANSEY
+ db $00, $02 ; TANGELA
+ db $00, $02 ; KANGASKHAN
+ db $00, $02 ; HORSEA
+ db $00, $02 ; SEADRA
+ db $00, $02 ; GOLDEEN
+ db $00, $02 ; SEAKING
+ db $00, $02 ; STARYU
+ db $00, $02 ; STARMIE
+ db $00, $02 ; MR_MIME
+ db $00, $02 ; SCYTHER
+ db $00, $02 ; JYNX
+ db $00, $02 ; ELECTABUZZ
+ db $00, $02 ; MAGMAR
+ db $00, $02 ; PINSIR
+ db $00, $02 ; TAUROS
+ db $00, $02 ; MAGIKARP
+ db $00, $02 ; GYARADOS
+ db $00, $02 ; LAPRAS
+ db $00, $02 ; DITTO
+ db $00, $02 ; EEVEE
+ db $00, $02 ; VAPOREON
+ db $00, $02 ; JOLTEON
+ db $00, $02 ; FLAREON
+ db $00, $02 ; PORYGON
+ db $00, $02 ; OMANYTE
+ db $00, $02 ; OMASTAR
+ db $00, $02 ; KABUTO
+ db $00, $02 ; KABUTOPS
+ db $00, $02 ; AERODACTYL
+ db $00, $02 ; SNORLAX
+ db $00, $02 ; ARTICUNO
+ db $00, $02 ; ZAPDOS
+ db $00, $02 ; MOLTRES
+ db $00, $02 ; DRATINI
+ db $00, $02 ; DRAGONAIR
+ db $00, $02 ; DRAGONITE
+ db $00, $02 ; MEWTWO
+ db $00, $02 ; MEW
diff --git a/main.asm b/main.asm
index 737a125..06e2b76 100755
--- a/main.asm
+++ b/main.asm
@@ -155,7 +155,7 @@ Start: ; 0x150
ld [$daa3], a
ld a, Bank(Func_1ffc)
ld hl, Func_1ffc
- call SwitchBank
+ call BankSwitchSimple
Func_23b: ; 0x23b
ld a, [$fffe]
cp $11
@@ -488,26 +488,26 @@ Func_532: ; 0x532
ld a, [hl]
ld h, d
ld l, e
- jp Func_54f
+ jp BankSwitch
-SwitchBank: ; 0x549
+BankSwitchSimple: ; 0x549
; Switches to Bank in register a and jumps to hl.
ld [hLoadedROMBank], a
ld [$2000], a ; Load Bank
jp [hl]
-Func_54f: ; 0x54f
+BankSwitch: ; 0x54f
ld e, a
ld a, [hLoadedROMBank] ; currently-loaded Bank
cp e
- jr z, .asm_570
+ jr z, .doJump
push af
ld a, e
- call .asm_55f
- call .asm_570
+ call .loadNewBank
+ call .doJump
pop de
ld a, d
-.asm_55f
+.loadNewBank
push hl
push de
ld hl, $ffff
@@ -519,7 +519,7 @@ Func_54f: ; 0x54f
pop de
pop hl
ret
-.asm_570
+.doJump
ld a, [$ff8b]
ld e, a
ld a, [$ff8a]
@@ -2363,7 +2363,7 @@ Func_1ffc: ; 0x1ffc
ld [$ff8a], a
ld a, $f
ld hl, $4000
- call Func_54f
+ call BankSwitch
ld a, $1
ld [$d85d], a
ld a, $37
@@ -4820,7 +4820,7 @@ Func_82a8: ; 0x82a8
ld [$ff8a], a
ld a, Bank(CopyInitialHighScores)
ld hl, CopyInitialHighScores
- call Func_54f
+ call BankSwitch
.asm_82c6
ld hl, $a10c
ld de, wPokedexFlags
@@ -4830,7 +4830,7 @@ Func_82a8: ; 0x82a8
ld [$ff8a], a
ld a, $a
ld hl, $4d66
- call Func_54f
+ call BankSwitch
.asm_82de
ld hl, $a244
ld de, wKeyConfigs
@@ -4840,7 +4840,7 @@ Func_82a8: ; 0x82a8
ld [$ff8a], a
ld a, $3
ld hl, $4a3a
- call Func_54f
+ call BankSwitch
.asm_82f6
ld hl, $a268
ld de, $d300
@@ -4878,7 +4878,7 @@ StartTimer: ; 0x867d
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
- call Func_54f
+ call BankSwitch
ret
INCBIN "baserom.gbc",$86a4,$c000 - $86a4
@@ -5592,20 +5592,20 @@ Func_1003f: ; 0x1003f
ld b, $0
sla c
rl b
- ld hl, $6a22
+ ld hl, CatchEmTimerData
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld b, a
ld [$ff8a], a
- ld a, $2
- ld hl, $467d
- call Func_54f
+ ld a, Bank(StartTimer)
+ ld hl, StartTimer
+ call BankSwitch
ld [$ff8a], a
ld a, $3
ld hl, $5bd4
- call Func_54f
+ call BankSwitch
call $4696
call $3579
ld a, [$d4ac]
@@ -5727,7 +5727,11 @@ INCBIN "baserom.gbc",$115ce,$1161d - $115ce
INCLUDE "data/evolution_lines.asm"
-INCBIN "baserom.gbc",$116b4,$13685 - $116b4
+INCBIN "baserom.gbc",$116b4,$12a22 - $116b4
+
+INCLUDE "data/catchem_timer_values.asm"
+
+INCBIN "baserom.gbc",$12b50,$13685 - $12b50
Data_13685: ; 0x13685
; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet.
@@ -5877,14 +5881,14 @@ INCBIN "baserom.gbc",$14091,$1659c - $14091
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
- call Func_54f
+ call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
- call Func_54f
+ call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
@@ -5897,12 +5901,12 @@ INCBIN "baserom.gbc",$14091,$1659c - $14091
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
- call Func_54f
+ call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
- call Func_54f
+ call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a
@@ -6033,14 +6037,14 @@ INCBIN "baserom.gbc",$1c000,$1c846 - $1c000
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
- call Func_54f
+ call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
- call Func_54f
+ call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
@@ -6053,12 +6057,12 @@ INCBIN "baserom.gbc",$1c000,$1c846 - $1c000
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
- call Func_54f
+ call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
- call Func_54f
+ call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a