diff options
-rwxr-xr-x | data/catchem_timer_values.asm | 157 | ||||
-rwxr-xr-x | main.asm | 60 |
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 @@ -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 |