mirror of
https://github.com/pret/pokepinball.git
synced 2024-11-23 05:39:49 +00:00
Evolution mode documentation
This commit is contained in:
parent
19e432cb6d
commit
d9882dc49a
@ -1,153 +1,160 @@
|
||||
Data_1298b: ; 0x1298b
|
||||
; This has to do with which indicators will need to be hit to evolve the pokemon.
|
||||
db $01 ; BULBASAUR
|
||||
db $02 ; IVYSAUR
|
||||
db $03 ; VENUSAUR
|
||||
db $01 ; CHARMANDER
|
||||
db $02 ; CHARMELEON
|
||||
db $03 ; CHARIZARD
|
||||
db $01 ; SQUIRTLE
|
||||
db $02 ; WARTORTLE
|
||||
db $03 ; BLASTOISE
|
||||
db $01 ; CATERPIE
|
||||
db $02 ; METAPOD
|
||||
db $03 ; BUTTERFREE
|
||||
db $01 ; WEEDLE
|
||||
db $02 ; KAKUNA
|
||||
db $03 ; BEEDRILL
|
||||
db $01 ; PIDGEY
|
||||
db $02 ; PIDGEOTTO
|
||||
db $03 ; PIDGEOT
|
||||
db $01 ; RATTATA
|
||||
db $03 ; RATICATE
|
||||
db $01 ; SPEAROW
|
||||
db $03 ; FEAROW
|
||||
db $01 ; EKANS
|
||||
db $03 ; ARBOK
|
||||
db $01 ; PIKACHU
|
||||
db $03 ; RAICHU
|
||||
db $01 ; SANDSHREW
|
||||
db $03 ; SANDSLASH
|
||||
db $01 ; NIDORAN_F
|
||||
db $02 ; NIDORINA
|
||||
db $04 ; NIDOQUEEN
|
||||
db $01 ; NIDORAN_M
|
||||
db $02 ; NIDORINO
|
||||
db $04 ; NIDOKING
|
||||
db $02 ; CLEFAIRY
|
||||
db $03 ; CLEFABLE
|
||||
db $02 ; VULPIX
|
||||
db $03 ; NINETALES
|
||||
db $02 ; JIGGLYPUFF
|
||||
db $03 ; WIGGLYTUFF
|
||||
db $02 ; ZUBAT
|
||||
db $03 ; GOLBAT
|
||||
db $01 ; ODDISH
|
||||
db $02 ; GLOOM
|
||||
db $04 ; VILEPLUME
|
||||
db $02 ; PARAS
|
||||
db $03 ; PARASECT
|
||||
db $02 ; VENONAT
|
||||
db $03 ; VENOMOTH
|
||||
db $02 ; DIGLETT
|
||||
db $03 ; DUGTRIO
|
||||
db $02 ; MEOWTH
|
||||
db $03 ; PERSIAN
|
||||
db $02 ; PSYDUCK
|
||||
db $03 ; GOLDUCK
|
||||
db $02 ; MANKEY
|
||||
db $03 ; PRIMEAPE
|
||||
db $02 ; GROWLITHE
|
||||
db $03 ; ARCANINE
|
||||
db $01 ; POLIWAG
|
||||
db $02 ; POLIWHIRL
|
||||
db $04 ; POLIWRATH
|
||||
db $01 ; ABRA
|
||||
db $02 ; KADABRA
|
||||
db $04 ; ALAKAZAM
|
||||
db $01 ; MACHOP
|
||||
db $02 ; MACHOKE
|
||||
db $04 ; MACHAMP
|
||||
db $01 ; BELLSPROUT
|
||||
db $02 ; WEEPINBELL
|
||||
db $04 ; VICTREEBEL
|
||||
db $02 ; TENTACOOL
|
||||
db $03 ; TENTACRUEL
|
||||
db $01 ; GEODUDE
|
||||
db $02 ; GRAVELER
|
||||
db $04 ; GOLEM
|
||||
db $02 ; PONYTA
|
||||
db $03 ; RAPIDASH
|
||||
db $02 ; SLOWPOKE
|
||||
db $03 ; SLOWBRO
|
||||
db $02 ; MAGNEMITE
|
||||
db $03 ; MAGNETON
|
||||
db $04 ; FARFETCH_D
|
||||
db $02 ; DODUO
|
||||
db $03 ; DODRIO
|
||||
db $02 ; SEEL
|
||||
db $03 ; DEWGONG
|
||||
db $02 ; GRIMER
|
||||
db $03 ; MUK
|
||||
db $02 ; SHELLDER
|
||||
db $03 ; CLOYSTER
|
||||
db $01 ; GASTLY
|
||||
db $02 ; HAUNTER
|
||||
db $04 ; GENGAR
|
||||
db $04 ; ONIX
|
||||
db $02 ; DROWZEE
|
||||
db $03 ; HYPNO
|
||||
db $02 ; KRABBY
|
||||
db $03 ; KINGLER
|
||||
db $02 ; VOLTORB
|
||||
db $03 ; ELECTRODE
|
||||
db $02 ; EXEGGCUTE
|
||||
db $03 ; EXEGGUTOR
|
||||
db $02 ; CUBONE
|
||||
db $03 ; MAROWAK
|
||||
db $04 ; HITMONLEE
|
||||
db $04 ; HITMONCHAN
|
||||
db $04 ; LICKITUNG
|
||||
db $02 ; KOFFING
|
||||
db $03 ; WEEZING
|
||||
db $02 ; RHYHORN
|
||||
db $03 ; RHYDON
|
||||
db $04 ; CHANSEY
|
||||
db $04 ; TANGELA
|
||||
db $04 ; KANGASKHAN
|
||||
db $04 ; HORSEA
|
||||
db $04 ; SEADRA
|
||||
db $02 ; GOLDEEN
|
||||
db $03 ; SEAKING
|
||||
db $02 ; STARYU
|
||||
db $03 ; STARMIE
|
||||
db $04 ; MR_MIME
|
||||
db $04 ; SCYTHER
|
||||
db $04 ; JYNX
|
||||
db $04 ; ELECTABUZZ
|
||||
db $04 ; MAGMAR
|
||||
db $04 ; PINSIR
|
||||
db $04 ; TAUROS
|
||||
db $02 ; MAGIKARP
|
||||
db $03 ; GYARADOS
|
||||
db $04 ; LAPRAS
|
||||
db $04 ; DITTO
|
||||
db $02 ; EEVEE
|
||||
db $03 ; VAPOREON
|
||||
db $03 ; JOLTEON
|
||||
db $03 ; FLAREON
|
||||
db $04 ; PORYGON
|
||||
db $02 ; OMANYTE
|
||||
db $03 ; OMASTAR
|
||||
db $02 ; KABUTO
|
||||
db $03 ; KABUTOPS
|
||||
db $04 ; AERODACTYL
|
||||
db $04 ; SNORLAX
|
||||
db $04 ; ARTICUNO
|
||||
db $04 ; ZAPDOS
|
||||
db $04 ; MOLTRES
|
||||
db $01 ; DRATINI
|
||||
db $02 ; DRAGONAIR
|
||||
db $04 ; DRAGONITE
|
||||
db $04 ; MEWTWO
|
||||
db $06 ; MEW
|
||||
MonEvolutionObjectCounts: ; 0x1298b
|
||||
; See wNumPossibleEvolutionObjects
|
||||
; The values in this table are effectively 3 less than the actual number of
|
||||
; possible evolution objects that can produce trinkets. For example, IVYSAUR
|
||||
; specifies a value of 2 in this table. This means that a total of 5 field
|
||||
; objects are candidates that could produce an evolution trinket when hit with
|
||||
; the pinball.
|
||||
;
|
||||
; There are some unused values in this table, which have functional support: 0, 5, and 7.
|
||||
db 1 ; BULBASAUR
|
||||
db 2 ; IVYSAUR
|
||||
db 3 ; VENUSAUR
|
||||
db 1 ; CHARMANDER
|
||||
db 2 ; CHARMELEON
|
||||
db 3 ; CHARIZARD
|
||||
db 1 ; SQUIRTLE
|
||||
db 2 ; WARTORTLE
|
||||
db 3 ; BLASTOISE
|
||||
db 1 ; CATERPIE
|
||||
db 2 ; METAPOD
|
||||
db 3 ; BUTTERFREE
|
||||
db 1 ; WEEDLE
|
||||
db 2 ; KAKUNA
|
||||
db 3 ; BEEDRILL
|
||||
db 1 ; PIDGEY
|
||||
db 2 ; PIDGEOTTO
|
||||
db 3 ; PIDGEOT
|
||||
db 1 ; RATTATA
|
||||
db 3 ; RATICATE
|
||||
db 1 ; SPEAROW
|
||||
db 3 ; FEAROW
|
||||
db 1 ; EKANS
|
||||
db 3 ; ARBOK
|
||||
db 1 ; PIKACHU
|
||||
db 3 ; RAICHU
|
||||
db 1 ; SANDSHREW
|
||||
db 3 ; SANDSLASH
|
||||
db 1 ; NIDORAN_F
|
||||
db 2 ; NIDORINA
|
||||
db 4 ; NIDOQUEEN
|
||||
db 1 ; NIDORAN_M
|
||||
db 2 ; NIDORINO
|
||||
db 4 ; NIDOKING
|
||||
db 2 ; CLEFAIRY
|
||||
db 3 ; CLEFABLE
|
||||
db 2 ; VULPIX
|
||||
db 3 ; NINETALES
|
||||
db 2 ; JIGGLYPUFF
|
||||
db 3 ; WIGGLYTUFF
|
||||
db 2 ; ZUBAT
|
||||
db 3 ; GOLBAT
|
||||
db 1 ; ODDISH
|
||||
db 2 ; GLOOM
|
||||
db 4 ; VILEPLUME
|
||||
db 2 ; PARAS
|
||||
db 3 ; PARASECT
|
||||
db 2 ; VENONAT
|
||||
db 3 ; VENOMOTH
|
||||
db 2 ; DIGLETT
|
||||
db 3 ; DUGTRIO
|
||||
db 2 ; MEOWTH
|
||||
db 3 ; PERSIAN
|
||||
db 2 ; PSYDUCK
|
||||
db 3 ; GOLDUCK
|
||||
db 2 ; MANKEY
|
||||
db 3 ; PRIMEAPE
|
||||
db 2 ; GROWLITHE
|
||||
db 3 ; ARCANINE
|
||||
db 1 ; POLIWAG
|
||||
db 2 ; POLIWHIRL
|
||||
db 4 ; POLIWRATH
|
||||
db 1 ; ABRA
|
||||
db 2 ; KADABRA
|
||||
db 4 ; ALAKAZAM
|
||||
db 1 ; MACHOP
|
||||
db 2 ; MACHOKE
|
||||
db 4 ; MACHAMP
|
||||
db 1 ; BELLSPROUT
|
||||
db 2 ; WEEPINBELL
|
||||
db 4 ; VICTREEBEL
|
||||
db 2 ; TENTACOOL
|
||||
db 3 ; TENTACRUEL
|
||||
db 1 ; GEODUDE
|
||||
db 2 ; GRAVELER
|
||||
db 4 ; GOLEM
|
||||
db 2 ; PONYTA
|
||||
db 3 ; RAPIDASH
|
||||
db 2 ; SLOWPOKE
|
||||
db 3 ; SLOWBRO
|
||||
db 2 ; MAGNEMITE
|
||||
db 3 ; MAGNETON
|
||||
db 4 ; FARFETCH_D
|
||||
db 2 ; DODUO
|
||||
db 3 ; DODRIO
|
||||
db 2 ; SEEL
|
||||
db 3 ; DEWGONG
|
||||
db 2 ; GRIMER
|
||||
db 3 ; MUK
|
||||
db 2 ; SHELLDER
|
||||
db 3 ; CLOYSTER
|
||||
db 1 ; GASTLY
|
||||
db 2 ; HAUNTER
|
||||
db 4 ; GENGAR
|
||||
db 4 ; ONIX
|
||||
db 2 ; DROWZEE
|
||||
db 3 ; HYPNO
|
||||
db 2 ; KRABBY
|
||||
db 3 ; KINGLER
|
||||
db 2 ; VOLTORB
|
||||
db 3 ; ELECTRODE
|
||||
db 2 ; EXEGGCUTE
|
||||
db 3 ; EXEGGUTOR
|
||||
db 2 ; CUBONE
|
||||
db 3 ; MAROWAK
|
||||
db 4 ; HITMONLEE
|
||||
db 4 ; HITMONCHAN
|
||||
db 4 ; LICKITUNG
|
||||
db 2 ; KOFFING
|
||||
db 3 ; WEEZING
|
||||
db 2 ; RHYHORN
|
||||
db 3 ; RHYDON
|
||||
db 4 ; CHANSEY
|
||||
db 4 ; TANGELA
|
||||
db 4 ; KANGASKHAN
|
||||
db 4 ; HORSEA
|
||||
db 4 ; SEADRA
|
||||
db 2 ; GOLDEEN
|
||||
db 3 ; SEAKING
|
||||
db 2 ; STARYU
|
||||
db 3 ; STARMIE
|
||||
db 4 ; MR_MIME
|
||||
db 4 ; SCYTHER
|
||||
db 4 ; JYNX
|
||||
db 4 ; ELECTABUZZ
|
||||
db 4 ; MAGMAR
|
||||
db 4 ; PINSIR
|
||||
db 4 ; TAUROS
|
||||
db 2 ; MAGIKARP
|
||||
db 3 ; GYARADOS
|
||||
db 4 ; LAPRAS
|
||||
db 4 ; DITTO
|
||||
db 2 ; EEVEE
|
||||
db 3 ; VAPOREON
|
||||
db 3 ; JOLTEON
|
||||
db 3 ; FLAREON
|
||||
db 4 ; PORYGON
|
||||
db 2 ; OMANYTE
|
||||
db 3 ; OMASTAR
|
||||
db 2 ; KABUTO
|
||||
db 3 ; KABUTOPS
|
||||
db 4 ; AERODACTYL
|
||||
db 4 ; SNORLAX
|
||||
db 4 ; ARTICUNO
|
||||
db 4 ; ZAPDOS
|
||||
db 4 ; MOLTRES
|
||||
db 1 ; DRATINI
|
||||
db 2 ; DRAGONAIR
|
||||
db 4 ; DRAGONITE
|
||||
db 4 ; MEWTWO
|
||||
db 6 ; MEW
|
||||
|
@ -1114,7 +1114,7 @@ ResetIndicatorStates: ; 0x107a5
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
Func_107b0: ; 0x107b0
|
||||
CloseSlotCave_: ; 0x107b0
|
||||
xor a
|
||||
ld [wSlotIsOpen], a
|
||||
ld [wIndicatorStates + 4], a
|
||||
@ -1249,7 +1249,7 @@ Func_10871: ; 0x10871
|
||||
jr nz, .loop
|
||||
xor a
|
||||
ld [wRightAlleyCount], a
|
||||
call Func_107b0
|
||||
call CloseSlotCave_
|
||||
ld a, $4
|
||||
ld [wd7ad], a
|
||||
ld de, MUSIC_CATCH_EM_BLUE ; This is either MUSIC_CATCH_EM_BLUE or MUSIC_CATCH_EM_RED. They happen to have the same id in their respective audio Banks.
|
||||
|
@ -284,7 +284,7 @@ DrawEvolutionTrinket_BlueFieldTop: ; 0x1f4f8
|
||||
ld a, [wEvolutionObjectsDisabled]
|
||||
and a
|
||||
ret z
|
||||
ld de, wd566
|
||||
ld de, wActiveEvolutionTrinkets
|
||||
ld hl, EvolutionTrinketOAMOffsets_BlueFieldTop
|
||||
ld b, $c
|
||||
ld c, $47
|
||||
@ -294,7 +294,7 @@ DrawEvolutionTrinket_BlueFieldBottom: ; 0x1f509
|
||||
ld a, [wEvolutionObjectsDisabled]
|
||||
and a
|
||||
ret z
|
||||
ld de, wd572
|
||||
ld de, wActiveEvolutionTrinkets + 12
|
||||
ld hl, EvolutionTrinketOAMOffsets_BlueFieldBottom
|
||||
ld b, $6
|
||||
ld c, $40
|
||||
|
@ -476,7 +476,7 @@ DrawEvolutionTrinket_RedFieldTop: ; 0x17f64
|
||||
ld a, [wEvolutionObjectsDisabled]
|
||||
and a
|
||||
ret z
|
||||
ld de, wd566
|
||||
ld de, wActiveEvolutionTrinkets
|
||||
ld hl, EvolutionTrinketOAMOffsets_RedFieldTop
|
||||
ld b, $c
|
||||
ld c, $39
|
||||
@ -486,7 +486,7 @@ DrawEvolutionTrinket_RedFieldBottom: ; 0x17f75
|
||||
ld a, [wEvolutionObjectsDisabled]
|
||||
and a
|
||||
ret z
|
||||
ld de, wd572
|
||||
ld de, wActiveEvolutionTrinkets + 12
|
||||
ld hl, EvolutionTrinketOAMOffsets_RedFieldBottom
|
||||
ld b, $6
|
||||
ld c, $40
|
||||
|
@ -389,18 +389,18 @@ InitEvolutionModeForMon: ; 0x10d1d
|
||||
ld a, [wCurrentCatchEmMon]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, Data_1298b
|
||||
ld hl, MonEvolutionObjectCounts
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
add $2
|
||||
ld [wd555], a
|
||||
add 2
|
||||
ld [wNumPossibleEvolutionObjects], a
|
||||
xor a
|
||||
ld hl, wd566
|
||||
ld b, $13
|
||||
.asm_10d40
|
||||
ld hl, wActiveEvolutionTrinkets
|
||||
ld b, 18 + 1 ; This goes out of bounds by 1--it's supposed to be 18. Doesn't result in any bad behavior, though.
|
||||
.clearEvoTrinketsLoop
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_10d40
|
||||
jr nz, .clearEvoTrinketsLoop
|
||||
ld a, [wCurrentCatchEmMon]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
@ -432,17 +432,17 @@ InitEvolutionModeForMon: ; 0x10d1d
|
||||
.countMonEvolutionsLoop
|
||||
ld a, [hli]
|
||||
and a
|
||||
jr z, .noEvolution
|
||||
jr z, .nextEvolution
|
||||
inc c
|
||||
.noEvolution
|
||||
.nextEvolution
|
||||
inc hl
|
||||
dec b
|
||||
jr nz, .countMonEvolutionsLoop
|
||||
ld a, c
|
||||
cp $ff
|
||||
jr nz, .asm_10d8a
|
||||
jr nz, .chooseEvolution
|
||||
xor a
|
||||
.asm_10d8a
|
||||
.chooseEvolution
|
||||
call RandomRange
|
||||
sla a
|
||||
ld c, a
|
||||
@ -451,37 +451,40 @@ InitEvolutionModeForMon: ; 0x10d1d
|
||||
ld a, [hli] ; a = mon id of evolution
|
||||
dec a
|
||||
ld [wCurrentEvolutionMon], a
|
||||
ld a, [hl] ; a = evoluion type id
|
||||
ld a, [hl] ; a = evolution type id
|
||||
ld [wCurrentEvolutionType], a
|
||||
xor a
|
||||
ld [wNumEvolutionTrinkets], a
|
||||
ld [wEvolutionTrinketCooldownFrames], a
|
||||
ld [wEvolutionTrinketCooldownFrames + 1], a
|
||||
ld hl, wd55c
|
||||
ld a, $1
|
||||
ld b, $3
|
||||
.asm_10dac
|
||||
; Randomly set three entries in wEvolutionObjectStates to $1.
|
||||
; Each mon has a specified range of which entries can be set to $1.
|
||||
; The idea is that rarer mons can have harder-to-hit objects.
|
||||
ld hl, wEvolutionObjectStates
|
||||
ld a, 1
|
||||
ld b, 3
|
||||
.initLoop1
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_10dac
|
||||
jr nz, .initLoop1
|
||||
xor a
|
||||
ld b, $7
|
||||
.asm_10db3
|
||||
ld b, 7
|
||||
.initLoop2
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_10db3
|
||||
ld de, wd55c
|
||||
ld a, [wd555]
|
||||
jr nz, .initLoop2
|
||||
ld de, wEvolutionObjectStates
|
||||
ld a, [wNumPossibleEvolutionObjects]
|
||||
ld c, a
|
||||
inc a
|
||||
ld b, a
|
||||
.asm_10dc0
|
||||
.shuffleLoop
|
||||
push bc
|
||||
ld a, c
|
||||
call RandomRange
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, wd55c
|
||||
ld hl, wEvolutionObjectStates
|
||||
add hl, bc
|
||||
ld c, [hl]
|
||||
ld a, [de]
|
||||
@ -491,7 +494,7 @@ InitEvolutionModeForMon: ; 0x10d1d
|
||||
pop bc
|
||||
inc de
|
||||
dec b
|
||||
jr nz, .asm_10dc0
|
||||
jr nz, .shuffleLoop
|
||||
callba InitBallSaverForCatchEmMode
|
||||
call ShowStartEvolutionModeText
|
||||
call Func_3579
|
||||
@ -609,11 +612,11 @@ StartEvolutionMode_RedField: ; 0x10ebb
|
||||
ret z
|
||||
call SelectPokemonToEvolve
|
||||
call InitEvolutionModeForMon
|
||||
ld a, [wd555]
|
||||
sub $2
|
||||
ld a, [wNumPossibleEvolutionObjects]
|
||||
sub 2
|
||||
ld c, a
|
||||
sla c
|
||||
ld hl, IndicatorStatesPointerTable_10f3b
|
||||
ld hl, InitialIndicatorStates_RedField
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@ -628,7 +631,7 @@ StartEvolutionMode_RedField: ; 0x10ebb
|
||||
jr nz, .loop
|
||||
xor a
|
||||
ld [wLeftAlleyCount], a
|
||||
call Func_107b0
|
||||
call CloseSlotCave_
|
||||
ld a, $2
|
||||
ld [wd7ad], a
|
||||
ld de, MUSIC_CATCH_EM_BLUE ; Either MUSIC_CATCH_EM_BLUE or MUSIC_CATCH_EM_RED. They have the same id in their respective audio Banks.
|
||||
@ -657,38 +660,38 @@ StartEvolutionMode_RedField: ; 0x10ebb
|
||||
callba nz, Func_102bc
|
||||
ret
|
||||
|
||||
IndicatorStatesPointerTable_10f3b: ; 0x10f3b
|
||||
dw IndicatorStates_10f4b
|
||||
dw IndicatorStates_10f5e
|
||||
dw IndicatorStates_10f71
|
||||
dw IndicatorStates_10f84
|
||||
dw IndicatorStates_10f97
|
||||
dw IndicatorStates_10faa
|
||||
dw IndicatorStates_10fbd
|
||||
dw IndicatorStates_10fd0
|
||||
InitialIndicatorStates_RedField: ; 0x10f3b
|
||||
dw InitialIndicatorStates0_RedField
|
||||
dw InitialIndicatorStates1_RedField
|
||||
dw InitialIndicatorStates2_RedField
|
||||
dw InitialIndicatorStates3_RedField
|
||||
dw InitialIndicatorStates4_RedField
|
||||
dw InitialIndicatorStates5_RedField
|
||||
dw InitialIndicatorStates6_RedField
|
||||
dw InitialIndicatorStates7_RedField
|
||||
|
||||
IndicatorStates_10f4b: ; 0x10f4b
|
||||
InitialIndicatorStates0_RedField: ; 0x10f4b
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10f5e: ; 0x10f5e
|
||||
InitialIndicatorStates1_RedField: ; 0x10f5e
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10f71: ; 0x10f71
|
||||
InitialIndicatorStates2_RedField: ; 0x10f71
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10f84: ; 0x10f84
|
||||
InitialIndicatorStates3_RedField: ; 0x10f84
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10f97: ; 0x10f97
|
||||
InitialIndicatorStates4_RedField: ; 0x10f97
|
||||
db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10faa: ; 0x10faa
|
||||
InitialIndicatorStates5_RedField: ; 0x10faa
|
||||
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10fbd: ; 0x10fbd
|
||||
InitialIndicatorStates6_RedField: ; 0x10fbd
|
||||
db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_10fd0: ; 0x10fd0
|
||||
InitialIndicatorStates7_RedField: ; 0x10fd0
|
||||
db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
ConcludeEvolutionMode_RedField: ; 0x10fe3
|
||||
@ -745,11 +748,11 @@ StartEvolutionMode_BlueField: ; 0x11061
|
||||
call InitEvolutionModeForMon
|
||||
ld a, $1
|
||||
ld [wd643], a
|
||||
ld a, [wd555]
|
||||
sub $2
|
||||
ld a, [wNumPossibleEvolutionObjects]
|
||||
sub 2
|
||||
ld c, a
|
||||
sla c
|
||||
ld hl, IndicatorStatesPointerTable_110ed
|
||||
ld hl, InitialIndicatorStates_BlueField
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
@ -793,38 +796,38 @@ StartEvolutionMode_BlueField: ; 0x11061
|
||||
callba nz, Func_102bc
|
||||
ret
|
||||
|
||||
IndicatorStatesPointerTable_110ed: ; 0x110ed
|
||||
dw IndicatorStates_110fd
|
||||
dw IndicatorStates_11110
|
||||
dw IndicatorStates_11123
|
||||
dw IndicatorStates_11136
|
||||
dw IndicatorStates_11149
|
||||
dw IndicatorStates_1115c
|
||||
dw IndicatorStates_1116f
|
||||
dw IndicatorStates_11182
|
||||
InitialIndicatorStates_BlueField: ; 0x110ed
|
||||
dw InitialIndicatorStates0_BlueField
|
||||
dw InitialIndicatorStates1_BlueField
|
||||
dw InitialIndicatorStates2_BlueField
|
||||
dw InitialIndicatorStates3_BlueField
|
||||
dw InitialIndicatorStates4_BlueField
|
||||
dw InitialIndicatorStates5_BlueField
|
||||
dw InitialIndicatorStates6_BlueField
|
||||
dw InitialIndicatorStates7_BlueField
|
||||
|
||||
IndicatorStates_110fd: ; 0x110fd
|
||||
InitialIndicatorStates0_BlueField: ; 0x110fd
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_11110: ; 0x11110
|
||||
InitialIndicatorStates1_BlueField: ; 0x11110
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_11123: ; 0x11123
|
||||
InitialIndicatorStates2_BlueField: ; 0x11123
|
||||
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_11136: ; 0x11136
|
||||
InitialIndicatorStates3_BlueField: ; 0x11136
|
||||
db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_11149: ; 0x11149
|
||||
InitialIndicatorStates4_BlueField: ; 0x11149
|
||||
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_1115c: ; 0x1115c
|
||||
InitialIndicatorStates5_BlueField: ; 0x1115c
|
||||
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_1116f: ; 0x1116f
|
||||
InitialIndicatorStates6_BlueField: ; 0x1116f
|
||||
db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
IndicatorStates_11182: ; 0x11182
|
||||
InitialIndicatorStates7_BlueField: ; 0x11182
|
||||
db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
||||
|
||||
ConcludeEvolutionMode_BlueField: ; 0x11195
|
||||
|
@ -46,12 +46,12 @@ HandleEvolutionMode_BlueField: ; 0x20c08
|
||||
ret z
|
||||
dec a
|
||||
bit 0, b
|
||||
jr z, .asm_20c18
|
||||
add $c
|
||||
.asm_20c18
|
||||
jr z, .checkTrinketActive
|
||||
add 12
|
||||
.checkTrinketActive
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, wd566
|
||||
ld hl, wActiveEvolutionTrinkets
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and a
|
||||
@ -274,10 +274,10 @@ HandleShellderCollision_EvolutionMode: ; 0x20e34
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 9], a
|
||||
ld a, [wd55c]
|
||||
ld a, [wEvolutionObjectStates + 0]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55c], a
|
||||
ld [wEvolutionObjectStates + 0], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -295,10 +295,10 @@ HandleCloysterCollision_EvolutionMode: ; 0x20e5e
|
||||
xor a
|
||||
ld [wIndicatorStates + 3], a
|
||||
ld [wIndicatorStates + 10], a
|
||||
ld a, [wd562]
|
||||
ld a, [wEvolutionObjectStates + 6]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd562], a
|
||||
ld [wEvolutionObjectStates + 6], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -316,10 +316,10 @@ HandleSlowpokeCollision_EvolutionMode: ; 0x20e82
|
||||
xor a
|
||||
ld [wIndicatorStates + 8], a
|
||||
ld [wIndicatorStates + 2], a
|
||||
ld a, [wd561]
|
||||
ld a, [wEvolutionObjectStates + 5]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd561], a
|
||||
ld [wEvolutionObjectStates + 5], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -336,10 +336,10 @@ HandlePoliwagCollision_EvolutionMode: ; 0x20ea6
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 13], a
|
||||
ld a, [wd55d]
|
||||
ld a, [wEvolutionObjectStates + 1]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55d], a
|
||||
ld [wEvolutionObjectStates + 1], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -356,10 +356,10 @@ HandlePsyduckCollision_EvolutionMode: ; 0x20ec7
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 14], a
|
||||
ld a, [wd55e]
|
||||
ld a, [wEvolutionObjectStates + 2]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55e], a
|
||||
ld [wEvolutionObjectStates + 2], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -376,10 +376,10 @@ HandleLeftBonusMultiplierCollision_EvolutionMode_BlueField: ; 0x20ee8
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 11], a
|
||||
ld a, [wd55f]
|
||||
ld a, [wEvolutionObjectStates + 3]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55f], a
|
||||
ld [wEvolutionObjectStates + 3], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -396,10 +396,10 @@ HandleRightBonusMultiplierCollision_EvolutionMode_BlueField: ; 0x20f09
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 12], a
|
||||
ld a, [wd560]
|
||||
ld a, [wEvolutionObjectStates + 4]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd560], a
|
||||
ld [wEvolutionObjectStates + 4], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -416,10 +416,10 @@ HandleBallUpgradeCollision_EvolutionMode_BlueField: ; 0x20f2a
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 6], a
|
||||
ld a, [wd565]
|
||||
ld a, [wEvolutionObjectStates + 9]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd565], a
|
||||
ld [wEvolutionObjectStates + 9], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -439,10 +439,10 @@ HandleSpinnerCollision_EvolutionMode_BlueField: ; 0x20f4b
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 7], a
|
||||
ld a, [wd564]
|
||||
ld a, [wEvolutionObjectStates + 8]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd564], a
|
||||
ld [wEvolutionObjectStates + 8], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -578,10 +578,10 @@ HandleLeftTriggerCollision_EvolutionMode_BlueField: ; 0x21089
|
||||
jr z, .asm_210a8
|
||||
xor a
|
||||
ld [wIndicatorStates], a
|
||||
ld a, [wd563]
|
||||
ld a, [wEvolutionObjectStates + 7]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd563], a
|
||||
ld [wEvolutionObjectStates + 7], a
|
||||
jp nz, CreateEvolutionTrinket_BlueField
|
||||
jp EvolutionTrinketNotFound_BlueField
|
||||
|
||||
@ -640,11 +640,11 @@ RecoverPokemon_BlueField:
|
||||
ret
|
||||
|
||||
ChooseNextEvolutionTrinketLocation_BlueField: ; 0x2111d
|
||||
ld a, $11
|
||||
ld a, 17
|
||||
call RandomRange
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, wd566
|
||||
ld hl, wActiveEvolutionTrinkets
|
||||
add hl, bc
|
||||
ret
|
||||
|
||||
|
@ -48,12 +48,12 @@ HandleEvolutionMode_RedField: ; 0x205e0
|
||||
ret z
|
||||
dec a
|
||||
bit 0, b
|
||||
jr z, .asm_205f0
|
||||
add $c
|
||||
.asm_205f0
|
||||
jr z, .checkTrinketActive
|
||||
add 12
|
||||
.checkTrinketActive
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, wd566
|
||||
ld hl, wActiveEvolutionTrinkets
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and a
|
||||
@ -277,10 +277,10 @@ HandleVoltorbCollision_EvolutionMode: ; 0x2080f
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 9], a
|
||||
ld a, [wd55c]
|
||||
ld a, [wEvolutionObjectStates + 0]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55c], a
|
||||
ld [wEvolutionObjectStates + 0], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -297,10 +297,10 @@ HandleStaryuAlleyTriggerCollision_EvolutionMode: ; 0x20839
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 2], a
|
||||
ld a, [wd563]
|
||||
ld a, [wEvolutionObjectStates + 7]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd563], a
|
||||
ld [wEvolutionObjectStates + 7], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -321,10 +321,10 @@ HandleBellsproutCollision_EvolutionMode: ; 0x2085a
|
||||
xor a
|
||||
ld [wIndicatorStates + 3], a
|
||||
ld [wIndicatorStates + 10], a
|
||||
ld a, [wd562]
|
||||
ld a, [wEvolutionObjectStates + 6]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd562], a
|
||||
ld [wEvolutionObjectStates + 6], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -341,10 +341,10 @@ HandleStaryuCollision_EvolutionMode: ; 0x20887
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 8], a
|
||||
ld a, [wd561]
|
||||
ld a, [wEvolutionObjectStates + 5]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd561], a
|
||||
ld [wEvolutionObjectStates + 5], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -361,10 +361,10 @@ HandleLeftDiglettCollision_EvolutionMode: ; 0x208a8
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 13], a ;flick off indicator
|
||||
ld a, [wd55d]
|
||||
ld a, [wEvolutionObjectStates + 1]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55d], a ;make ??? 0
|
||||
ld [wEvolutionObjectStates + 1], a ;make ??? 0
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -381,10 +381,10 @@ HandleRightDiglettCollision_EvolutionMode: ; 0x208c9
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 14], a
|
||||
ld a, [wd55e]
|
||||
ld a, [wEvolutionObjectStates + 2]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55e], a
|
||||
ld [wEvolutionObjectStates + 2], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -401,10 +401,10 @@ HandleLeftBonusMultiplierCollision_EvolutionMode_RedField: ; 0x208ea
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 11], a
|
||||
ld a, [wd55f]
|
||||
ld a, [wEvolutionObjectStates + 3]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55f], a
|
||||
ld [wEvolutionObjectStates + 3], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -421,10 +421,10 @@ HandleRightBonusMultiplierCollision_EvolutionMode_RedField: ; 0x2090b
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 12], a
|
||||
ld a, [wd560]
|
||||
ld a, [wEvolutionObjectStates + 4]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd560], a
|
||||
ld [wEvolutionObjectStates + 4], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -441,10 +441,10 @@ HandleBallUpgradeCollision_EvolutionMode_RedField: ; 0x2092c
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 6], a
|
||||
ld a, [wd565]
|
||||
ld a, [wEvolutionObjectStates + 9]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd565], a
|
||||
ld [wEvolutionObjectStates + 9], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -464,10 +464,10 @@ HandleSpinnerCollision_EvolutionMode_RedField: ; 0x2094d
|
||||
jr z, .disabled
|
||||
xor a
|
||||
ld [wIndicatorStates + 7], a
|
||||
ld a, [wd564]
|
||||
ld a, [wEvolutionObjectStates + 8]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd564], a
|
||||
ld [wEvolutionObjectStates + 8], a
|
||||
jp nz, CreateEvolutionTrinket_RedField
|
||||
jp EvolutionTrinketNotFound_RedField
|
||||
|
||||
@ -639,11 +639,11 @@ RecoverPokemon_RedField:
|
||||
ret
|
||||
|
||||
ChooseNextEvolutionTrinketLocation_RedField: ; 0x20af5
|
||||
ld a, $11
|
||||
ld a, 17
|
||||
call RandomRange
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, wd566
|
||||
ld hl, wActiveEvolutionTrinkets
|
||||
add hl, bc
|
||||
ret
|
||||
|
||||
|
@ -117,7 +117,7 @@ Func_311b4: ; 0x311b4
|
||||
ld [wStageCollisionMap + $e3], a
|
||||
ld a, $67
|
||||
ld [wStageCollisionMap + $103], a
|
||||
callba Func_107b0
|
||||
callba CloseSlotCave_
|
||||
ld a, $4
|
||||
ld [wd7ad], a
|
||||
ld de, MUSIC_HURRY_UP_BLUE ; Either MUSIC_HURRY_UP_BLUE or MUSIC_HURRY_UP_RED. They have the same id in their respective audio Banks.
|
||||
|
@ -435,7 +435,7 @@ HitRightDiglett3Times: ; 0x14920
|
||||
ld hl, wNumDugtrioTriples
|
||||
call Increment_Max100
|
||||
jr nc, .asm_14937
|
||||
ld c, $a
|
||||
ld c, 10
|
||||
call Modulo_C
|
||||
callba z, AddExtraBall
|
||||
.asm_14937
|
||||
@ -448,7 +448,7 @@ HitLeftDiglett3Times: ; 0x14947
|
||||
ld hl, wNumDugtrioTriples
|
||||
call Increment_Max100
|
||||
jr nc, .asm_1495e
|
||||
ld c, $a
|
||||
ld c, 10
|
||||
call Modulo_C
|
||||
callba z, AddExtraBall
|
||||
.asm_1495e
|
||||
@ -1580,7 +1580,7 @@ ResolveBellsproutCollision: ; 0x15e93
|
||||
ld hl, wNumBellsproutEntries
|
||||
call Increment_Max100
|
||||
ret nc
|
||||
ld c, $19
|
||||
ld c, 25
|
||||
call Modulo_C
|
||||
callba z, AddExtraBall
|
||||
ret
|
||||
@ -2406,7 +2406,7 @@ UpdatePikachuSaverAnimation_RedField: ; 0x1669e
|
||||
ld hl, wNumPikachuSaves
|
||||
call Increment_Max100
|
||||
jr nc, .asm_166f0
|
||||
ld c, $a
|
||||
ld c, 10
|
||||
call Modulo_C
|
||||
callba z, AddExtraBall
|
||||
.asm_166f0
|
||||
@ -2731,7 +2731,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
|
||||
.asm_16e10
|
||||
ld [wCurBonusMultiplier], a
|
||||
jr nc, .asm_16e24
|
||||
ld c, $19
|
||||
ld c, 25
|
||||
call Modulo_C
|
||||
callba z, AddExtraBall
|
||||
.asm_16e24
|
||||
|
@ -8,7 +8,7 @@ DoSlotRewardRoulette: ; 0xed8e
|
||||
ld a, [wBallType]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, BallTypeMultipliers
|
||||
ld hl, BallTypeIncreases
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [wSlotBallIncrease], a
|
||||
@ -235,14 +235,13 @@ IsRightOrLeftFlipperKeyPressed: ; 0xef1e
|
||||
pop bc
|
||||
ret
|
||||
|
||||
BallTypeMultipliers: ; 0xef2f
|
||||
; Score multiplier for each ball type.
|
||||
db $00 ; POKE_BALL
|
||||
db $00
|
||||
db $01 ; GREAT_BALL
|
||||
db $02 ; ULTRA_BALL
|
||||
db $02
|
||||
db $02 ; MASTER_BALL
|
||||
BallTypeIncreases: ; 0xef2f
|
||||
db 0 ; POKE_BALL
|
||||
db 0
|
||||
db 1 ; GREAT_BALL
|
||||
db 2 ; ULTRA_BALL
|
||||
db 2
|
||||
db 2 ; MASTER_BALL
|
||||
|
||||
INCLUDE "engine/pinball_game/ball_saver/ball_saver_30.asm"
|
||||
INCLUDE "engine/pinball_game/ball_saver/ball_saver_60.asm"
|
||||
|
@ -110,7 +110,7 @@ UpdateRNG: ; 0x9fa
|
||||
ret
|
||||
|
||||
RandomRange: ; 0xa21
|
||||
; Random value 0 <= x < a
|
||||
; Random value 0 <= x <= a
|
||||
push bc
|
||||
push hl
|
||||
ld c, a
|
||||
|
78
wram.asm
78
wram.asm
@ -543,7 +543,7 @@ wCollidedAlleyTriggers:: ; 0xd521
|
||||
|
||||
ds $6 ; free space
|
||||
|
||||
wIndicatorStates:: ; 0xd52f 0 = evo arrows, 1 = catch arrows, 2 = left small alley, 3 = bellsprout, 4 = slot. bit 7 controls if enabled and flashing, bit 1 and 2 control is solid (set = solid), +9 is the arrow pointing to voltorb on red evo mode
|
||||
wIndicatorStates:: ; 0xd52f
|
||||
ds $13
|
||||
|
||||
wLeftAlleyTrigger:: ; 0xd542
|
||||
@ -611,7 +611,11 @@ wCurrentEvolutionType:: ; 0xd553
|
||||
wNumEvolutionTrinkets:: ; 0xd554
|
||||
ds $1
|
||||
|
||||
wd555:: ; 0xd555
|
||||
wNumPossibleEvolutionObjects:: ; 0xd555
|
||||
; Each mon has a different number of possible field objects that can produce trinkets.
|
||||
; This number is used to randomly choose objects that fall within that set, which will
|
||||
; produce trinkets when hit with the pinball. This also corresponds to the blinking
|
||||
; arrows that are displayed when the player is trying to hit one of the objects.
|
||||
ds $1
|
||||
|
||||
wEvolutionTrinketCooldownFrames:: ; 0xd556
|
||||
@ -634,41 +638,43 @@ wMapMoveDirection:: ; 0xd55a
|
||||
wRareMonsFlag:: ; 0xd55b
|
||||
ds $1
|
||||
|
||||
wd55c:: ; 0xd55c
|
||||
ds $1
|
||||
wEvolutionObjectStates:: ; 0xd55c
|
||||
; There are 10 possible objects to hit that can spawn an evolution trinket. However, only three
|
||||
; will actually spawn the trinket. The rest are "duds". This list of states keeps track of which
|
||||
; ones will spawn the trinket. $1 = spawn trinket, $0 otherwise.
|
||||
; The indexes in this list correspond to the following objects:
|
||||
; Blue Field:
|
||||
; 0: Any of the 3 Shellder bumpers
|
||||
; 1: Poliwag
|
||||
; 2: Psyduck
|
||||
; 3: Left Bonus Multiplier railing
|
||||
; 4: Right Bonus Multiplier railing
|
||||
; 5: Slowpoke
|
||||
; 6: Cloyster
|
||||
; 7: Left alley trigger point
|
||||
; 8: Spinner
|
||||
; 9: Any of the 3 Ball Upgrade lights
|
||||
; Red Field:
|
||||
; 0: Any of the 3 Voltorb bumpers
|
||||
; 1: Left Diglett
|
||||
; 2: Right Diglett
|
||||
; 3: Left Bonus Multiplier railing
|
||||
; 4: Right Bonus Multiplier railing
|
||||
; 5: Staryu
|
||||
; 6: Bellsprout
|
||||
; 7: Staryu alley trigger point
|
||||
; 8: Spinner
|
||||
; 9: Any of the 3 Ball Upgrade lights
|
||||
ds 10
|
||||
|
||||
wd55d:: ; 0xd55d
|
||||
ds $1
|
||||
|
||||
wd55e:: ; 0xd55e
|
||||
ds $1
|
||||
|
||||
wd55f:: ; 0xd55f
|
||||
ds $1
|
||||
|
||||
wd560:: ; 0xd560
|
||||
ds $1
|
||||
|
||||
wd561:: ; 0xd561
|
||||
ds $1
|
||||
|
||||
wd562:: ; 0xd562
|
||||
ds $1
|
||||
|
||||
wd563:: ; 0xd563
|
||||
ds $1
|
||||
|
||||
wd564:: ; 0xd564
|
||||
ds $1
|
||||
|
||||
wd565:: ; 0xd565
|
||||
ds $1
|
||||
|
||||
wd566:: ; 0xd566
|
||||
ds $c
|
||||
|
||||
wd572:: ; 0xd572
|
||||
ds $6
|
||||
wActiveEvolutionTrinkets:: ; 0xd566
|
||||
; There are 18 different positions that an evolution trinket can exist.
|
||||
; Each entry in this list corresponds to one of those positions. The values
|
||||
; in this list are evolution type constants, and $0 if the trinket is inactive.
|
||||
; (See constants/evolution_type_constants.asm)
|
||||
; During gameplay, only one of these trinkets is ever active at a given time.
|
||||
; However, the game logic perfectly supports multiple being active.
|
||||
ds 18
|
||||
|
||||
wCollidedPointIndex:: ; 0xd578
|
||||
; Stores the result of the PinballCollidesWithPoints function.
|
||||
|
Loading…
Reference in New Issue
Block a user