mirror of
https://github.com/pret/pokepinball.git
synced 2024-11-23 13:49:42 +00:00
3315 lines
74 KiB
NASM
3315 lines
74 KiB
NASM
INCLUDE "charmap.asm"
|
|
INCLUDE "macros.asm"
|
|
INCLUDE "constants.asm"
|
|
|
|
INCLUDE "home.asm"
|
|
|
|
SECTION "bank1", ROMX
|
|
|
|
INCLUDE "data/oam_frames.asm"
|
|
|
|
SECTION "bank2", ROMX
|
|
|
|
INCLUDE "engine/select_gameboy_target_menu.asm"
|
|
INCLUDE "engine/erase_all_data_menu.asm"
|
|
INCLUDE "engine/copyright_screen.asm"
|
|
INCLUDE "engine/pinball_game/stage_init/init_stages.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_stage_data.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_sprites.asm"
|
|
|
|
Func_84fd:
|
|
; unused?
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .not_cgb
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
xor a
|
|
call .FillAttrsOrBGMap
|
|
xor a
|
|
ld [rVBK], a
|
|
.not_cgb
|
|
ld a, $81
|
|
call .FillAttrsOrBGMap
|
|
ld de, wBottomMessageBuffer + $47
|
|
call Func_8524
|
|
ret
|
|
|
|
.FillAttrsOrBGMap: ; 8519 (2:4519)
|
|
hlCoord 0, 0, vBGWin
|
|
ld b, $20
|
|
.loop
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
|
|
INCLUDE "engine/pinball_game/score.asm"
|
|
INCLUDE "engine/pinball_game/timer.asm"
|
|
INCLUDE "engine/pinball_game/menu.asm"
|
|
INCLUDE "data/collision/collision_deltas.asm"
|
|
INCLUDE "engine/pokedex/variable_width_font_character.asm"
|
|
|
|
Func_8ee0: ; 0x8ee0
|
|
ld a, [$ff8d]
|
|
ld [$ff90], a
|
|
ld a, [$ff8e]
|
|
ld [$ff91], a
|
|
ld a, [$ff8d]
|
|
ld c, a
|
|
ld a, [$ff8e]
|
|
ld b, a
|
|
ld a, [$ff8c]
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, bc
|
|
ld a, l
|
|
ld [$ff8d], a
|
|
ld a, h
|
|
ld [$ff8e], a
|
|
srl h
|
|
rr l
|
|
srl h
|
|
rr l
|
|
ld a, [$ff8f]
|
|
cp l
|
|
ret
|
|
|
|
Data_8f06:
|
|
|
|
SECTION "bank2.2", ROMX
|
|
Data_9800:
|
|
|
|
macro_9800: MACRO
|
|
x = 0
|
|
rept \1
|
|
y = 0
|
|
rept $100 / \1
|
|
db (x + y) & $ff
|
|
y = y + \1
|
|
endr
|
|
x = x + 1
|
|
endr
|
|
endm
|
|
|
|
w = $100
|
|
rept 8
|
|
macro_9800 w
|
|
w = w >> 1
|
|
endr
|
|
|
|
PokedexCharactersGfx: ; 0xa000
|
|
INCBIN "gfx/pokedex/characters.interleave.2bpp"
|
|
|
|
SECTION "bank3", ROMX
|
|
|
|
INCLUDE "engine/titlescreen.asm"
|
|
INCLUDE "engine/options_screen.asm"
|
|
INCLUDE "engine/high_scores_screen.asm"
|
|
INCLUDE "engine/field_select_screen.asm"
|
|
INCLUDE "engine/pinball_game.asm"
|
|
INCLUDE "engine/pinball_game/ball_saver/ball_saver_20.asm"
|
|
INCLUDE "engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss.asm"
|
|
|
|
Func_dc6d: ; 0xdc6d
|
|
push de
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText3
|
|
pop de
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
Func_dc7c: ; 0xdc7c
|
|
ld hl, wBottomMessageBuffer + $40
|
|
ld a, $83
|
|
ld [hli], a
|
|
ld a, $81
|
|
ld [hli], a
|
|
ld a, $81
|
|
ld [hl], a
|
|
ld a, [wNumPartyMons]
|
|
call ConvertHexByteToDecWord
|
|
ld hl, wBottomMessageBuffer + $41
|
|
ld c, $1
|
|
ld a, d
|
|
call .asm_dca0
|
|
ld a, e
|
|
swap a
|
|
call .asm_dca0
|
|
ld a, e
|
|
ld c, $0
|
|
.asm_dca0
|
|
and $f
|
|
jr nz, .asm_dca7
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_dca7
|
|
ld c, $0
|
|
add $86
|
|
ld [hli], a
|
|
ret
|
|
|
|
Data_dcad:
|
|
; BCD powers of 2
|
|
db $01, $02, $04, $08, $16, $32, $64
|
|
|
|
Func_dcb4: ; 0xdcb4
|
|
ld a, [wPikachuSaverCharge]
|
|
cp MAX_PIKACHU_SAVER_CHARGE
|
|
ld a, $81
|
|
jr nz, .asm_dcbf
|
|
ld a, $84
|
|
.asm_dcbf
|
|
ld [wBottomMessageBuffer + $46], a
|
|
ret
|
|
|
|
INCLUDE "engine/pinball_game/ball_gfx.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_red_field.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_blue_field.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_gengar_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_mewtwo_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_meowth_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_diglett_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm"
|
|
INCLUDE "engine/pinball_game/flippers.asm"
|
|
INCLUDE "engine/pinball_game/stage_collision_attributes.asm"
|
|
INCLUDE "engine/pinball_game/vertical_screen_transition.asm"
|
|
INCLUDE "engine/pinball_game/slot.asm"
|
|
INCLUDE "engine/pinball_game/end_of_ball_bonus.asm"
|
|
|
|
SECTION "bank4", ROMX
|
|
|
|
Func_10000: ; 0x10000
|
|
ld c, a
|
|
ld a, [wInSpecialMode]
|
|
and a
|
|
ret z
|
|
ld a, c
|
|
ld [wd54c], a
|
|
ld a, [wSpecialMode]
|
|
cp SPECIAL_MODE_CATCHEM
|
|
jp z, Func_10a95
|
|
cp SPECIAL_MODE_EVOLUTION
|
|
jr nz, .next
|
|
callba Func_301ce
|
|
ret
|
|
|
|
.next
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_10027: ; 0x10027
|
|
padded_dab Func_20000 ; STAGE_RED_FIELD_TOP
|
|
padded_dab Func_20000 ; STAGE_RED_FIELD_BOTTOM
|
|
padded_dab Func_20000
|
|
padded_dab Func_20000
|
|
padded_dab Func_202bc ; STAGE_BLUE_FIELD_TOP
|
|
padded_dab Func_202bc ; STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
INCLUDE "engine/pinball_game/catchem_mode.asm"
|
|
|
|
Func_10a95: ; 0x19a95
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
PointerTable_10a9b: ; 0x10a9b
|
|
padded_dab Func_20581 ; STAGE_RED_FIELD_TOP
|
|
padded_dab Func_20581 ; STAGE_RED_FIELD_BOTTOM
|
|
padded_dab Func_20581
|
|
padded_dab Func_20581
|
|
padded_dab Func_20bae ; STAGE_BLUE_FIELD_TOP
|
|
padded_dab Func_20bae ; STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
StartEvolutionMode: ; 0x10ab3
|
|
ld a, [wInSpecialMode]
|
|
and a
|
|
ret nz
|
|
ld a, [wCurrentStage]
|
|
rst JumpTable ; calls JumpToFuncInTable
|
|
StartEvolutionMode_CallTable: ; 0x10abc
|
|
dw StartEvolutionMode_RedField ; STAGE_RED_FIELD_TOP
|
|
dw StartEvolutionMode_RedField ; STAGE_RED_FIELD_BOTTOM
|
|
dw StartEvolutionMode_UnusedField
|
|
dw StartEvolutionMode_UnusedField
|
|
dw StartEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
|
dw StartEvolutionMode_BlueField ; STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
ConcludeEvolutionMode: ; 0x10ac8
|
|
xor a
|
|
ld [wd5ca], a
|
|
call FillBottomMessageBufferWithBlackTile
|
|
xor a
|
|
ld [wInSpecialMode], a
|
|
ld [wWildMonIsHittable], a
|
|
ld [wd5b6], a
|
|
ld [wNumMonHits], a
|
|
ld [wd551], a
|
|
ld [wd554], a
|
|
call ClearWildMonCollisionMask
|
|
callba StopTimer
|
|
ld a, [wCurrentStage]
|
|
rst JumpTable ; calls JumpToFuncInTable
|
|
ConcludeEvolutionMode_CallTable: ; 0x10af3
|
|
dw ConcludeEvolutionMode_RedField ; STAGE_RED_FIELD_TOP
|
|
dw ConcludeEvolutionMode_RedField ; STAGE_RED_FIELD_BOTTOM
|
|
dw DoNothing_11060
|
|
dw DoNothing_11060
|
|
dw ConcludeEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
|
dw ConcludeEvolutionMode_BlueField ; STAGE_BLUE_FIELD_TOP
|
|
|
|
Func_10aff: ; 0x10aff
|
|
ld a, [wCurrentStage]
|
|
res 0, a
|
|
ld c, a
|
|
ld b, $0
|
|
srl c
|
|
sla a
|
|
sla a
|
|
sla a
|
|
sub c
|
|
ld c, a
|
|
ld hl, VideoData_10b2a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
push af
|
|
push bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
pop hl
|
|
pop af
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
VideoData_10b2a: ; 0x10b2a
|
|
dab StageRedFieldTopGfx3
|
|
dw $8900
|
|
dw $E0
|
|
dab StageRedFieldTopGfx3
|
|
dw $8900
|
|
dw $E0
|
|
dab StageRedFieldTopGfx3
|
|
dw $8900
|
|
dw $E0
|
|
|
|
Func_10b3f: ; 0x10b3f
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText1
|
|
ld a, [wCurrentEvolutionType]
|
|
cp EVO_EXPERIENCE
|
|
ld de, StartTrainingText
|
|
jr z, .asm_10b55
|
|
ld de, FindItemsText
|
|
.asm_10b55
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
InitEvolutionSelectionMenu: ; 0x10b59
|
|
; Initializes the list menu, which the player uses to select which pokemon to evolve.
|
|
xor a
|
|
ld [wDrawBottomMessageBox], a
|
|
ld hl, wBottomMessageText
|
|
ld a, $81
|
|
ld b, $30
|
|
.clearLoop
|
|
ld [hli], a ; load spaces into bottom text. repeat 192 times
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .clearLoop
|
|
ld hl, wPartyMons
|
|
call LoadMonNamesIntoEvolutionSelectionList
|
|
ld a, BANK(InGameMenuSymbolsGfx)
|
|
ld hl, InGameMenuSymbolsGfx + $50
|
|
ld de, vTilesSH tile $08
|
|
ld bc, $0030
|
|
call LoadVRAMData
|
|
ld a, $0
|
|
ld hl, wBottomMessageText
|
|
deCoord 0, 0, vBGWin
|
|
ld bc, $00c0
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
LoadMonNamesIntoEvolutionSelectionList: ; 0x10b8e
|
|
; Loads 6 pokemon names into the list that allows the player to select which pokemon to evolve.
|
|
; Input: hl = pointer to a list of pokemon ids. (an offset of wPartyMons)
|
|
ld a, [wNumPartyMons]
|
|
ld c, $0
|
|
ld b, a
|
|
.loop
|
|
ld a, [hli]
|
|
call LoadMonNameIntoEvolutionSelectionList
|
|
inc c
|
|
ld a, c
|
|
cp $6
|
|
jr z, .done
|
|
dec b
|
|
jr nz, .loop
|
|
.done
|
|
ret
|
|
|
|
LoadMonNameIntoEvolutionSelectionList: ; 0x10ba2
|
|
; Loads a single pokemon name into the list of pokemon to evolve.
|
|
; Input: c = index of the list
|
|
; a = pokemon id
|
|
push bc
|
|
push hl
|
|
swap c ;c* 32, does wird things if c starts >15
|
|
sla c
|
|
ld b, $0
|
|
ld hl, wBottomMessageText
|
|
add hl, bc ;goes down text as many times as new c
|
|
ld d, h
|
|
ld e, l
|
|
ld c, a ;c now equals paerty mon, HL stored in de
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b ;multiplies party mon by 16, then jumps to correct name in the table
|
|
ld hl, PokemonNames ;names are 16 chars long
|
|
add hl, bc
|
|
ld a, $81
|
|
ld [de], a
|
|
inc de
|
|
ld a, $81
|
|
ld [de], a
|
|
inc de
|
|
ld a, $81
|
|
ld [de], a
|
|
inc de
|
|
ld a, $81
|
|
ld [de], a ; loaded 4 spaces into de
|
|
inc de
|
|
call LoadMonNameIntoBottomMessageBufferList
|
|
.loadBlankCharacterLoop
|
|
ld a, e
|
|
and $1f
|
|
cp $14
|
|
jr nc, .done
|
|
ld a, $81
|
|
ld [de], a
|
|
inc de
|
|
jr .loadBlankCharacterLoop
|
|
|
|
.done
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
SelectPokemonToEvolveMenu: ; 0x10bea
|
|
; Drivers the menu that allows the player to select a pokemon to evolve.
|
|
xor a
|
|
ld [wCurSelectedPartyMon], a
|
|
ld [wCurSelectedPartyMonScrollOffset], a
|
|
ld [wPartySelectionCursorCounter], a
|
|
.loop
|
|
call MoveEvolutionSelectionCursor
|
|
call ClearPersistentJoypadStates
|
|
call UpdateEvolutionSelectionList
|
|
rst AdvanceFrame
|
|
ld a, [wNewlyPressedButtonsPersistent]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .loop
|
|
lb de, $00, $01
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
MoveEvolutionSelectionCursor: ; 0x10c0c
|
|
ld a, [wPressedButtonsPersistent]
|
|
ld b, a
|
|
ld a, [wNumPartyMons]
|
|
ld c, a
|
|
ld a, [wCurSelectedPartyMon]
|
|
bit BIT_D_UP, b
|
|
jr z, .didntPressUp
|
|
and a
|
|
ret z
|
|
; move the cursor up
|
|
dec a
|
|
ld [wCurSelectedPartyMon], a
|
|
lb de, $00, $03
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
.didntPressUp
|
|
bit BIT_D_DOWN, b
|
|
ret z
|
|
inc a
|
|
cp c
|
|
ret z
|
|
; move the cursor down
|
|
ld [wCurSelectedPartyMon], a
|
|
lb de, $00, $03
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
UpdateEvolutionSelectionList: ; 0x10c38
|
|
ld a, [wCurSelectedPartyMon]
|
|
ld hl, wCurSelectedPartyMonScrollOffset
|
|
sub [hl]
|
|
jr nc, .asm_10c45
|
|
dec [hl]
|
|
xor a
|
|
jr .asm_10c4c
|
|
|
|
.asm_10c45
|
|
cp $6
|
|
jr c, .asm_10c4c
|
|
inc [hl]
|
|
ld a, $5
|
|
.asm_10c4c
|
|
ld c, a
|
|
push bc
|
|
ld a, [hl]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPartyMons
|
|
add hl, bc
|
|
call LoadMonNamesIntoEvolutionSelectionList
|
|
ld a, [hJoypadState]
|
|
and a
|
|
ld a, [wPartySelectionCursorCounter]
|
|
jr z, .asm_10c62
|
|
xor a
|
|
.asm_10c62
|
|
inc a
|
|
ld [wPartySelectionCursorCounter], a
|
|
bit 3, a
|
|
pop bc
|
|
jr nz, .asm_10c78
|
|
swap c
|
|
sla c
|
|
ld b, $0
|
|
ld hl, wBottomMessageText + $03
|
|
add hl, bc
|
|
ld a, $88
|
|
ld [hl], a
|
|
.asm_10c78
|
|
ld a, [wCurSelectedPartyMonScrollOffset]
|
|
and a
|
|
jr z, .asm_10c83
|
|
ld a, $8a
|
|
ld [wBottomMessageText + $11], a
|
|
.asm_10c83
|
|
ld a, [wCurSelectedPartyMonScrollOffset]
|
|
add $7
|
|
jr z, .asm_10c96
|
|
ld c, a
|
|
ld a, [wNumPartyMons]
|
|
cp c
|
|
jr c, .asm_10c96
|
|
ld a, $89
|
|
ld [wBottomMessageText + $b1], a
|
|
.asm_10c96
|
|
ld a, $0
|
|
ld hl, wBottomMessageText
|
|
deCoord 0, 0, vBGWin
|
|
ld bc, $00c0
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
PlaceEvolutionInParty: ; 0x10ca5
|
|
ld a, [wCurSelectedPartyMon]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPartyMons
|
|
add hl, bc
|
|
ld a, [wCurrentEvolutionMon]
|
|
cp $ff
|
|
ret z
|
|
ld [hl], a
|
|
ret
|
|
|
|
SelectPokemonToEvolve: ; 0x10cb7
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call InitEvolutionSelectionMenu
|
|
ld a, $60
|
|
ld [hWY], a
|
|
dec a
|
|
ld [hLYC], a
|
|
ld a, $fd
|
|
ld [hLCDCMask], a
|
|
call SelectPokemonToEvolveMenu
|
|
ld a, $86
|
|
ld [hWY], a
|
|
ld a, $83
|
|
ld [hLYC], a
|
|
ld [hLastLYC], a
|
|
ld a, $ff
|
|
ld [hLCDCMask], a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .gameboyColor
|
|
ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
|
|
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $80
|
|
ld de, vTilesSH tile $08
|
|
ld bc, $0030
|
|
call LoadVRAMData
|
|
jr .asm_10cfc
|
|
|
|
.gameboyColor
|
|
ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
|
|
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $80
|
|
ld de, vTilesSH tile $08
|
|
ld bc, $0030
|
|
call LoadVRAMData
|
|
.asm_10cfc
|
|
call FillBottomMessageBufferWithBlackTile
|
|
ld a, SPECIAL_MODE_CATCHEM
|
|
ld [wDrawBottomMessageBox], a
|
|
ld [wInSpecialMode], a
|
|
ld [wSpecialMode], a
|
|
xor a
|
|
ld [wd54d], a
|
|
ld a, [wCurSelectedPartyMon]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPartyMons
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurrentCatchEmMon], a
|
|
ret
|
|
|
|
InitEvolutionModeForMon: ; 0x10d1d
|
|
ld hl, wd586
|
|
ld b, $18
|
|
.asm_10d22
|
|
ld a, $1
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_10d22
|
|
ld a, [wCurrentCatchEmMon]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, Data_1298b
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add $2
|
|
ld [wd555], a
|
|
xor a
|
|
ld hl, wd566
|
|
ld b, $13
|
|
.asm_10d40
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_10d40
|
|
ld a, [wCurrentCatchEmMon]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
ld hl, CatchEmTimerData
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
callba StartTimer
|
|
ld a, [wCurrentCatchEmMon]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c ; multiply mon id by 6
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .noCarry
|
|
inc b
|
|
.noCarry
|
|
sla c
|
|
rl b
|
|
ld hl, MonEvolutions
|
|
add hl, bc
|
|
push hl
|
|
ld bc, $03ff
|
|
.countMonEvolutionsLoop
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .noEvolution
|
|
inc c
|
|
.noEvolution
|
|
inc hl
|
|
dec b
|
|
jr nz, .countMonEvolutionsLoop
|
|
ld a, c
|
|
cp $ff
|
|
jr nz, .asm_10d8a
|
|
xor a
|
|
.asm_10d8a
|
|
call Func_a21
|
|
sla a
|
|
ld c, a
|
|
pop hl
|
|
add hl, bc ; hl points to one of three entries in mon's evolution data
|
|
ld a, [hli] ; a = mon id of evolution
|
|
dec a
|
|
ld [wCurrentEvolutionMon], a
|
|
ld a, [hl] ; a = evoluion type id
|
|
ld [wCurrentEvolutionType], a
|
|
xor a
|
|
ld [wd554], a
|
|
ld [wd556], a
|
|
ld [wd557], a
|
|
ld hl, wd55c
|
|
ld a, $1
|
|
ld b, $3
|
|
.asm_10dac
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_10dac
|
|
xor a
|
|
ld b, $7
|
|
.asm_10db3
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_10db3
|
|
ld de, wd55c
|
|
ld a, [wd555]
|
|
ld c, a
|
|
inc a
|
|
ld b, a
|
|
.asm_10dc0
|
|
push bc
|
|
ld a, c
|
|
call Func_a21
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wd55c
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld a, [de]
|
|
ld [hl], a
|
|
ld a, c
|
|
ld [de], a
|
|
pop bc
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_10dc0
|
|
callba InitBallSaverForCatchEmMode
|
|
call Func_10b3f
|
|
call Func_3579
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_10e09
|
|
ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx)
|
|
ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300
|
|
ld de, vTilesSH tile $2e
|
|
ld bc, $0020
|
|
call LoadOrCopyVRAMData
|
|
ld a, $0
|
|
ld hl, CatchBarTiles
|
|
deCoord 6, 8, vBGMap
|
|
ld bc, (CatchBarTilesEnd - CatchBarTiles)
|
|
call LoadOrCopyVRAMData
|
|
.asm_10e09
|
|
ret
|
|
|
|
Func_10e0a: ; 0x10e0a
|
|
ld a, [wCurrentEvolutionMon]
|
|
cp $ff
|
|
jp z, Func_10e8b
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld hl, PokemonNames + 1
|
|
add hl, bc
|
|
ld de, ItEvolvedIntoAnText ; "It evolved into an"
|
|
ld bc, Data_2b34
|
|
ld a, [hl]
|
|
; check if mon's name starts with a vowel, so it can print "an", instead of "a"
|
|
cp "A"
|
|
jr z, .nameStartsWithVowel
|
|
cp "I"
|
|
jr z, .nameStartsWithVowel
|
|
cp "U"
|
|
jr z, .nameStartsWithVowel
|
|
cp "E"
|
|
jr z, .nameStartsWithVowel
|
|
cp "O"
|
|
jr z, .nameStartsWithVowel
|
|
ld de, ItEvolvedIntoAText ; "It evolved into a"
|
|
ld bc, Data_2b1c
|
|
.nameStartsWithVowel
|
|
push hl
|
|
push bc
|
|
push de
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText1
|
|
pop de
|
|
call LoadScrollingText
|
|
ld hl, wScrollingText2
|
|
pop de
|
|
call LoadScrollingText
|
|
pop hl
|
|
ld de, wBottomMessageText + $20
|
|
ld b, $0
|
|
.asm_10e67
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_10e70
|
|
ld [de], a
|
|
inc de
|
|
inc b
|
|
jr .asm_10e67
|
|
|
|
.asm_10e70
|
|
ld a, $20
|
|
ld [de], a
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ld a, [wScrollingText2ScrollStepsRemaining]
|
|
add b
|
|
ld [wScrollingText2ScrollStepsRemaining], a
|
|
ld a, $14
|
|
sub b
|
|
srl a
|
|
ld b, a
|
|
ld a, [wScrollingText2StopOffset]
|
|
add b
|
|
ld [wScrollingText2StopOffset], a
|
|
ret
|
|
|
|
Func_10e8b: ; 0x10e8b
|
|
ld bc, OneMillionPoints
|
|
callba AddBigBCD6FromQueue
|
|
ld bc, $0100
|
|
ld de, $0000
|
|
push bc
|
|
push de
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText2
|
|
ld de, Data_2b6b
|
|
call Func_32cc
|
|
pop de
|
|
pop bc
|
|
ld hl, wScrollingText1
|
|
ld de, EvolutionSpecialBonusText
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
StartEvolutionMode_RedField: ; 0x10ebb
|
|
ld a, [wNumPartyMons]
|
|
and a
|
|
ret z
|
|
call SelectPokemonToEvolve
|
|
call InitEvolutionModeForMon
|
|
ld a, [wd555]
|
|
sub $2
|
|
ld c, a
|
|
sla c
|
|
ld hl, IndicatorStatesPointerTable_10f3b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, wIndicatorStates
|
|
ld b, $13
|
|
.loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .loop
|
|
xor a
|
|
ld [wLeftAlleyCount], a
|
|
call Func_107b0
|
|
ld a, $2
|
|
ld [wd7ad], a
|
|
ld de, $0002
|
|
call PlaySong
|
|
call SetPokemonSeenFlag
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr nz, .asm_10f0b
|
|
ld a, BANK(EvolutionTrinketsGfx)
|
|
ld hl, EvolutionTrinketsGfx
|
|
ld de, vTilesSH tile $10
|
|
ld bc, $00e0
|
|
call LoadOrCopyVRAMData
|
|
ret
|
|
|
|
.asm_10f0b
|
|
ld a, BANK(EvolutionTrinketsGfx)
|
|
ld hl, EvolutionTrinketsGfx
|
|
ld de, vTilesOB tile $20
|
|
ld bc, $00e0
|
|
call LoadOrCopyVRAMData
|
|
callba Func_14135
|
|
callba Func_10184
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
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
|
|
|
|
IndicatorStates_10f4b: ; 0x10f4b
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10f5e: ; 0x10f5e
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10f71: ; 0x10f71
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10f84: ; 0x10f84
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10f97: ; 0x10f97
|
|
db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10faa: ; 0x10faa
|
|
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10fbd: ; 0x10fbd
|
|
db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_10fd0: ; 0x10fd0
|
|
db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
ConcludeEvolutionMode_RedField: ; 0x10fe3
|
|
call ResetIndicatorStates
|
|
call Func_107c2
|
|
call Func_107c8
|
|
call Func_107e9
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jp z, Func_10aff
|
|
callba Func_14135
|
|
callba Func_16425
|
|
callba LoadMapBillboardTileData
|
|
ld a, BANK(StageSharedBonusSlotGlowGfx)
|
|
ld hl, StageSharedBonusSlotGlowGfx + $60
|
|
ld de, vTilesOB tile $20
|
|
ld bc, $00e0
|
|
call LoadVRAMData
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_11036
|
|
ld a, BANK(StageRedFieldBottomOBJPalette7)
|
|
ld hl, StageRedFieldBottomOBJPalette7
|
|
ld de, $0078
|
|
ld bc, $0008
|
|
call Func_7dc
|
|
.asm_11036
|
|
ld hl, BlankSaverSpaceTileDataRedField
|
|
ld a, BANK(BlankSaverSpaceTileDataRedField)
|
|
call Func_10aa
|
|
ld a, [wPreviousNumPokeballs]
|
|
callba Func_174d4
|
|
ld hl, CaughtPokeballTileDataPointers
|
|
ld a, BANK(CaughtPokeballTileDataPointers)
|
|
call Func_10aa
|
|
ret
|
|
|
|
StartEvolutionMode_UnusedField: ; 0x11054
|
|
ld a, [wNumPartyMons]
|
|
and a
|
|
ret z
|
|
call SelectPokemonToEvolve
|
|
call InitEvolutionModeForMon
|
|
ret
|
|
|
|
DoNothing_11060: ; 0x11060
|
|
ret
|
|
|
|
StartEvolutionMode_BlueField: ; 0x11061
|
|
ld a, [wNumPartyMons]
|
|
and a
|
|
ret z
|
|
call SelectPokemonToEvolve
|
|
call InitEvolutionModeForMon
|
|
ld a, $1
|
|
ld [wd643], a
|
|
ld a, [wd555]
|
|
sub $2
|
|
ld c, a
|
|
sla c
|
|
ld hl, IndicatorStatesPointerTable_110ed
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, wIndicatorStates
|
|
ld b, $13
|
|
.asm_11085
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_11085
|
|
xor a
|
|
ld [wLeftAlleyCount], a
|
|
callba Func_1f2ed
|
|
ld a, $2
|
|
ld [wd7ad], a
|
|
ld de, $0002
|
|
call PlaySong
|
|
call SetPokemonSeenFlag
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr nz, .asm_110bd
|
|
ld a, BANK(EvolutionTrinketsGfx)
|
|
ld hl, EvolutionTrinketsGfx
|
|
ld de, vTilesOB tile $60
|
|
ld bc, $00e0
|
|
call LoadOrCopyVRAMData
|
|
ret
|
|
|
|
.asm_110bd
|
|
ld a, BANK(EvolutionTrinketsGfx)
|
|
ld hl, EvolutionTrinketsGfx
|
|
ld de, vTilesOB tile $20
|
|
ld bc, $00e0
|
|
call LoadOrCopyVRAMData
|
|
callba Func_1c2cb
|
|
callba Func_10184
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
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
|
|
|
|
IndicatorStates_110fd: ; 0x110fd
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_11110: ; 0x11110
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_11123: ; 0x11123
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_11136: ; 0x11136
|
|
db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_11149: ; 0x11149
|
|
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_1115c: ; 0x1115c
|
|
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_1116f: ; 0x1116f
|
|
db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
IndicatorStates_11182: ; 0x11182
|
|
db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
|
|
|
|
ConcludeEvolutionMode_BlueField: ; 0x11195
|
|
xor a
|
|
ld [wd643], a
|
|
call ResetIndicatorStates
|
|
call Func_107c2
|
|
callba Func_1f2ff
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jp z, Func_1120e
|
|
callba Func_1c2cb
|
|
callba Func_1e8f6
|
|
callba LoadMapBillboardTileData
|
|
ld a, Bank(StageSharedBonusSlotGlowGfx)
|
|
ld hl, StageSharedBonusSlotGlowGfx + $60
|
|
ld de, vTilesOB tile $20
|
|
ld bc, $00e0
|
|
call LoadVRAMData
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_111f0
|
|
ld a, BANK(StageBlueFieldBottomOBJPalette7)
|
|
ld hl, StageBlueFieldBottomOBJPalette7
|
|
ld de, $0078
|
|
ld bc, $0008
|
|
call Func_7dc
|
|
.asm_111f0
|
|
ld hl, BlankSaverSpaceTileDataBlueField
|
|
ld a, BANK(BlankSaverSpaceTileDataBlueField)
|
|
call Func_10aa
|
|
ld a, [wPreviousNumPokeballs]
|
|
callba Func_174d4
|
|
ld hl, Data_10a88
|
|
ld a, BANK(Data_10a88)
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1120e: ; 0x1120e
|
|
ld a, [wCurrentStage]
|
|
sub $4
|
|
res 0, a
|
|
ld c, a
|
|
ld b, $0
|
|
srl c
|
|
sla a
|
|
sla a
|
|
sla a
|
|
sub c
|
|
ld c, a
|
|
ld hl, VRAMData_1123b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
push af
|
|
push bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
pop hl
|
|
pop af
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
VRAMData_1123b: ; 0x1123b
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
dab StageBlueFieldTopGfx3
|
|
dw $8600, $E0
|
|
|
|
INCLUDE "data/wild_mons.asm"
|
|
INCLUDE "data/evolution_line_starts.asm"
|
|
INCLUDE "data/evolution_lines.asm"
|
|
INCLUDE "data/evolution_methods.asm"
|
|
INCLUDE "data/mon_names.asm"
|
|
INCLUDE "data/mon_initial_indicator_states.asm"
|
|
|
|
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
|
|
|
|
INCLUDE "data/catchem_timer_values.asm"
|
|
INCLUDE "data/mon_gfx/mon_gfx_pointers.asm"
|
|
INCLUDE "data/mon_animated_sprite_types.asm"
|
|
INCLUDE "data/collision/mon_collision_mask_pointers.asm"
|
|
|
|
Data_13685: ; 0x13685
|
|
; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet.
|
|
db $12, $12, $10 ; EVOLINE_BULBASAUR
|
|
db $10, $10, $10 ; EVOLINE_CHARMANDER
|
|
db $12, $12, $0E ; EVOLINE_SQUIRTLE
|
|
db $14, $14, $12 ; EVOLINE_CATERPIE
|
|
db $14, $14, $10 ; EVOLINE_WEEDLE
|
|
db $0A, $0A, $0E ; EVOLINE_PIDGEY
|
|
db $11, $13, $10 ; EVOLINE_RATTATA
|
|
db $0B, $0B, $10 ; EVOLINE_SPEAROW
|
|
db $12, $12, $0E ; EVOLINE_EKANS
|
|
db $12, $14, $0E ; EVOLINE_PIKACHU
|
|
db $10, $12, $10 ; EVOLINE_SANDSHREW
|
|
db $11, $12, $0E ; EVOLINE_NIDORAN_F
|
|
db $11, $12, $0E ; EVOLINE_NIDORAN_M
|
|
db $12, $13, $10 ; EVOLINE_CLEFAIRY
|
|
db $11, $11, $10 ; EVOLINE_VULPIX
|
|
db $12, $12, $10 ; EVOLINE_JIGGLYPUFF
|
|
db $08, $08, $10 ; EVOLINE_ZUBAT
|
|
db $10, $10, $10 ; EVOLINE_ODDISH
|
|
db $10, $10, $10 ; EVOLINE_PARAS
|
|
db $11, $11, $0E ; EVOLINE_VENONAT
|
|
db $10, $10, $0E ; EVOLINE_DIGLETT
|
|
db $14, $14, $0E ; EVOLINE_MEOWTH
|
|
db $30, $30, $10 ; EVOLINE_PSYDUCK
|
|
db $12, $12, $10 ; EVOLINE_MANKEY
|
|
db $12, $12, $10 ; EVOLINE_GROWLITHE
|
|
db $10, $10, $10 ; EVOLINE_POLIWAG
|
|
db $10, $10, $10 ; EVOLINE_ABRA
|
|
db $12, $14, $10 ; EVOLINE_MACHOP
|
|
db $10, $12, $10 ; EVOLINE_BELLSPROUT
|
|
db $0C, $0C, $12 ; EVOLINE_TENTACOOL
|
|
db $12, $14, $0C ; EVOLINE_GEODUDE
|
|
db $12, $14, $0E ; EVOLINE_PONYTA
|
|
db $30, $30, $10 ; EVOLINE_SLOWPOKE
|
|
db $14, $14, $10 ; EVOLINE_MAGNEMITE
|
|
db $12, $12, $0E ; EVOLINE_FARFETCH_D
|
|
db $12, $12, $0E ; EVOLINE_DODUO
|
|
db $14, $14, $0E ; EVOLINE_SEEL
|
|
db $12, $12, $10 ; EVOLINE_GRIMER
|
|
db $14, $14, $0E ; EVOLINE_SHELLDER
|
|
db $10, $10, $0E ; EVOLINE_GASTLY
|
|
db $12, $12, $10 ; EVOLINE_ONIX
|
|
db $14, $14, $10 ; EVOLINE_DROWZEE
|
|
db $14, $12, $10 ; EVOLINE_KRABBY
|
|
db $02, $02, $10 ; EVOLINE_VOLTORB
|
|
db $12, $12, $10 ; EVOLINE_EXEGGCUTE
|
|
db $12, $12, $10 ; EVOLINE_CUBONE
|
|
db $14, $10, $10 ; EVOLINE_HITMONLEE
|
|
db $14, $10, $10 ; EVOLINE_HITMONCHAN
|
|
db $14, $12, $10 ; EVOLINE_LICKITUNG
|
|
db $11, $11, $10 ; EVOLINE_KOFFING
|
|
db $14, $14, $10 ; EVOLINE_RHYHORN
|
|
db $12, $12, $10 ; EVOLINE_CHANSEY
|
|
db $10, $10, $10 ; EVOLINE_TANGELA
|
|
db $12, $12, $10 ; EVOLINE_KANGASKHAN
|
|
db $0F, $0F, $0E ; EVOLINE_HORSEA
|
|
db $12, $12, $0E ; EVOLINE_GOLDEEN
|
|
db $23, $23, $10 ; EVOLINE_STARYU
|
|
db $13, $13, $10 ; EVOLINE_MR_MIME
|
|
db $13, $13, $10 ; EVOLINE_SCYTHER
|
|
db $12, $12, $10 ; EVOLINE_JYNX
|
|
db $12, $14, $10 ; EVOLINE_ELECTABUZZ
|
|
db $14, $14, $0E ; EVOLINE_MAGMAR
|
|
db $12, $12, $0E ; EVOLINE_PINSIR
|
|
db $12, $14, $10 ; EVOLINE_TAUROS
|
|
db $18, $18, $0C ; EVOLINE_MAGIKARP
|
|
db $16, $16, $0C ; EVOLINE_LAPRAS
|
|
db $14, $14, $10 ; EVOLINE_DITTO
|
|
db $12, $12, $10 ; EVOLINE_EEVEE
|
|
db $10, $10, $0E ; EVOLINE_PORYGON
|
|
db $12, $12, $0E ; EVOLINE_OMANYTE
|
|
db $12, $12, $0E ; EVOLINE_KABUTO
|
|
db $0C, $0C, $12 ; EVOLINE_AERODACTYL
|
|
db $26, $36, $12 ; EVOLINE_SNORLAX
|
|
db $13, $13, $10 ; EVOLINE_ARTICUNO
|
|
db $13, $13, $10 ; EVOLINE_ZAPDOS
|
|
db $13, $13, $10 ; EVOLINE_MOLTRES
|
|
db $12, $12, $0E ; EVOLINE_DRATINI
|
|
db $14, $14, $0E ; EVOLINE_MEWTWO
|
|
db $14, $14, $0E ; EVOLINE_MEW
|
|
|
|
SECTION "bank5", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_red_field.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/red_stage_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/red_stage_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_red_field_sprites.asm"
|
|
|
|
SECTION "bank6", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/stage_init/init_unused_stage.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_unused_stage.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_unused_stage.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_unused_stage_sprites.asm"
|
|
INCLUDE "engine/pinball_game/stage_init/init_gengar_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_gengar_bonus.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_gengar_bonus.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/gengar_bonus_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/gengar_bonus_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_gengar_bonus_sprites.asm"
|
|
INCLUDE "engine/pinball_game/stage_init/init_mewtwo_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_mewtwo_bonus.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_mewtwo_bonus.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/mewtwo_bonus_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/mewtwo_bonus_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_mewtwo_bonus_sprites.asm"
|
|
INCLUDE "engine/pinball_game/stage_init/init_diglett_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_diglett_bonus.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_diglett_bonus.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/diglett_bonus_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/diglett_bonus_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_diglett_bonus_sprites.asm"
|
|
|
|
SECTION "bank7", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/stage_init/init_blue_field.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_blue_field.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_blue_field.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/blue_stage_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/blue_stage_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_blue_field_sprites.asm"
|
|
|
|
SECTION "bank8", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/catchem_mode/catchem_mode_red_field.asm"
|
|
INCLUDE "engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm"
|
|
INCLUDE "engine/pinball_game/evolution_mode/evolution_mode_red_field.asm"
|
|
INCLUDE "engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm"
|
|
|
|
SECTION "bank9", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/stage_init/init_meowth_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_meowth_bonus.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_meowth_bonus.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/meowth_bonus_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/meowth_bonus_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_meowth_bonus_sprites.asm"
|
|
INCLUDE "engine/pinball_game/stage_init/init_seel_bonus.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_seel_bonus.asm"
|
|
INCLUDE "engine/pinball_game/load_stage_data/load_seel_bonus.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/seel_bonus_object_collision.asm"
|
|
INCLUDE "engine/pinball_game/object_collision/seel_bonus_resolve_collision.asm"
|
|
INCLUDE "engine/pinball_game/draw_sprites/draw_seel_bonus_sprites.asm"
|
|
|
|
SECTION "banka", ROMX
|
|
|
|
INCLUDE "engine/pokedex.asm"
|
|
|
|
SECTION "bankb", ROMX
|
|
|
|
Unknown_2c000: ; 0x2c000
|
|
dex_text " "
|
|
dex_end
|
|
|
|
INCLUDE "text/pokedex_descriptions.asm"
|
|
|
|
SECTION "bankc", ROMX
|
|
|
|
INCLUDE "engine/pinball_game/stage_init/init_red_field.asm"
|
|
INCLUDE "engine/pinball_game/ball_init/ball_init_red_field.asm"
|
|
INCLUDE "engine/pinball_game/bonus_multiplier.asm"
|
|
INCLUDE "engine/pinball_game/extra_ball.asm"
|
|
|
|
Func_301ce: ; 0x301ce
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
PointerTable_301d4: ; 0x301d4
|
|
padded_dab Func_314ae ; STAGE_RED_FIELD_TOP
|
|
padded_dab Func_314ae ; STAGE_RED_FIELD_BOTTOM
|
|
padded_dab Func_314ae
|
|
padded_dab Func_314ae
|
|
padded_dab Func_3161b ; STAGE_BLUE_FIELD_TOP
|
|
padded_dab Func_3161b ; STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
StartMapMoveMode: ; 0x301ec
|
|
ld a, [wInSpecialMode]
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [wInSpecialMode], a
|
|
ld a, SPECIAL_MODE_MAP_MOVE
|
|
ld [wSpecialMode], a
|
|
xor a
|
|
ld [wd54d], a
|
|
ld bc, $0030 ; 30 seconds
|
|
callba StartTimer
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_3021b
|
|
ld a, [wd55a]
|
|
add $12
|
|
call LoadBillboardTileData
|
|
.asm_3021b
|
|
ld a, [wCurrentStage]
|
|
rst JumpTable ; calls JumpToFuncInTable
|
|
CallTable_3021f: ; 0x3021f
|
|
dw Func_311b4 ; STAGE_RED_FIELD_TOP
|
|
dw Func_311b4 ; STAGE_RED_FIELD_BOTTOM
|
|
dw DoNothing_31324
|
|
dw DoNothing_31324
|
|
dw Func_31326 ; STAGE_BLUE_FIELD_TOP
|
|
dw Func_31326 ; STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
Func_3022b: ; 0x3022b
|
|
xor a
|
|
ld [wd5ca], a
|
|
call FillBottomMessageBufferWithBlackTile
|
|
xor a
|
|
ld [wInSpecialMode], a
|
|
ld [wSpecialMode], a
|
|
callba StopTimer
|
|
ld a, [wCurrentStage]
|
|
rst JumpTable ; calls JumpToFuncInTable
|
|
CallTable_30247: ; 0x30247
|
|
dw Func_31234 ; STAGE_RED_FIELD_TOP
|
|
dw Func_31234 ; STAGE_RED_FIELD_BOTTOM
|
|
dw DoNothing_31325
|
|
dw DoNothing_31325
|
|
dw Func_313c3 ; STAGE_BLUE_FIELD_TOP
|
|
dw Func_313c3 ; STAGE_BLUE_FIELD_TOP
|
|
|
|
INCLUDE "engine/pinball_game/billboard_tiledata.asm"
|
|
|
|
LoadScrollingMapNameText: ; 0x3118f
|
|
; Loads the scrolling message that displays the current map's name.
|
|
; Input: bc = pointer to prefix scrolling text
|
|
push bc
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld a, [wCurrentMap]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, MapNames
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld hl, wScrollingText2
|
|
call LoadScrollingText
|
|
pop de
|
|
ld hl, wScrollingText1
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
Func_311b4: ; 0x311b4
|
|
ld a, [wd55a]
|
|
and a
|
|
jr nz, .asm_311ce
|
|
ld a, $80
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
xor a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld [wIndicatorStates + 4], a
|
|
jr .asm_311e2
|
|
|
|
.asm_311ce
|
|
ld a, $80
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
xor a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld [wIndicatorStates + 4], a
|
|
jr .asm_311e2
|
|
|
|
.asm_311e2
|
|
ld a, $2
|
|
callba LoadDiglettGraphics
|
|
ld a, $5
|
|
callba LoadDiglettGraphics
|
|
ld a, $6a
|
|
ld [wStageCollisionMap + $f0], a
|
|
ld a, $6b
|
|
ld [wStageCollisionMap + $110], a
|
|
ld a, $66
|
|
ld [wStageCollisionMap + $e3], a
|
|
ld a, $67
|
|
ld [wStageCollisionMap + $103], a
|
|
callba Func_107b0
|
|
ld a, $4
|
|
ld [wd7ad], a
|
|
ld de, $0003
|
|
call PlaySong
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
callba Func_14135
|
|
ret
|
|
|
|
Func_31234: ; 0x31234
|
|
callba ResetIndicatorStates
|
|
callba Func_107c2
|
|
callba Func_107c8
|
|
callba Func_107e9
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
callba Func_14135
|
|
callba Func_16425
|
|
callba LoadMapBillboardTileData
|
|
ret
|
|
|
|
ChooseNextMap_RedField: ; 0x31282
|
|
; Picks the next map to perform a map move.
|
|
; Also records which maps have been visited.
|
|
ld a, [wNumMapMoves]
|
|
inc a
|
|
cp $6
|
|
jr c, .dontReset
|
|
ld a, $ff
|
|
ld [wVisitedMaps], a
|
|
ld [wVisitedMaps + 1], a
|
|
ld [wVisitedMaps + 2], a
|
|
ld [wVisitedMaps + 3], a
|
|
ld [wVisitedMaps + 4], a
|
|
ld [wVisitedMaps + 5], a
|
|
xor a
|
|
.dontReset
|
|
ld [wNumMapMoves], a
|
|
cp $3
|
|
jr c, .chooseMapFromArea1
|
|
cp $5
|
|
jr c, .chooseMapFromArea2
|
|
ld a, INDIGO_PLATEAU
|
|
ld [wCurrentMap], a
|
|
ld [wVisitedMaps + 5], a
|
|
ret
|
|
|
|
.chooseMapFromArea1
|
|
call GenRandom
|
|
and $7
|
|
cp $7
|
|
jr nc, .chooseMapFromArea1
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, FirstMapMoveSet_RedField
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld hl, wVisitedMaps
|
|
ld a, [wNumMapMoves]
|
|
and a
|
|
jr z, .asm_312d4
|
|
ld b, a
|
|
.asm_312cd
|
|
ld a, [hli]
|
|
cp c
|
|
jr z, .chooseMapFromArea1
|
|
dec b
|
|
jr nz, .asm_312cd
|
|
.asm_312d4
|
|
ld a, c
|
|
ld [wCurrentMap], a
|
|
ld a, [wNumMapMoves]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wVisitedMaps
|
|
add hl, bc
|
|
ld a, [wCurrentMap]
|
|
ld [hl], a
|
|
ret
|
|
|
|
.chooseMapFromArea2
|
|
call GenRandom
|
|
and $3
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, SecondMapMoveSet_RedField
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld hl, wVisitedMaps + 3
|
|
ld a, [wNumMapMoves]
|
|
sub $3
|
|
jr z, .asm_31306
|
|
ld b, a
|
|
.asm_312ff
|
|
ld a, [hli]
|
|
cp c
|
|
jr z, .chooseMapFromArea2
|
|
dec b
|
|
jr nz, .asm_312ff
|
|
.asm_31306
|
|
ld a, c
|
|
ld [wCurrentMap], a
|
|
ld a, [wNumMapMoves]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wVisitedMaps
|
|
add hl, bc
|
|
ld a, [wCurrentMap]
|
|
ld [hl], a
|
|
ret
|
|
|
|
FirstMapMoveSet_RedField:
|
|
db PALLET_TOWN
|
|
db VIRIDIAN_FOREST
|
|
db PEWTER_CITY
|
|
db CERULEAN_CITY
|
|
db VERMILION_SEASIDE
|
|
db ROCK_MOUNTAIN
|
|
db LAVENDER_TOWN
|
|
|
|
SecondMapMoveSet_RedField:
|
|
db CYCLING_ROAD
|
|
db SAFARI_ZONE
|
|
db SEAFOAM_ISLANDS
|
|
db CINNABAR_ISLAND
|
|
|
|
DoNothing_31324: ; 0x31324
|
|
ret
|
|
|
|
DoNothing_31325: ; 0x31325
|
|
ret
|
|
|
|
Func_31326: ; 0x31326
|
|
ld a, [wd55a]
|
|
and a
|
|
jr nz, .asm_3134c
|
|
ld a, $80
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
xor a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $3
|
|
callba LoadPsyduckOrPoliwagGraphics
|
|
jr .asm_31382
|
|
|
|
.asm_3134c
|
|
ld a, $80
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
xor a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $1
|
|
callba LoadPsyduckOrPoliwagGraphics
|
|
ld a, $6
|
|
callba LoadPsyduckOrPoliwagGraphics
|
|
ld a, $7
|
|
callba LoadPsyduckOrPoliwagNumberGraphics
|
|
.asm_31382
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_3139d
|
|
ld a, $54
|
|
ld [wStageCollisionMap + $e3], a
|
|
ld a, $55
|
|
ld [wStageCollisionMap + $103], a
|
|
ld a, $52
|
|
ld [wStageCollisionMap + $f0], a
|
|
ld a, $53
|
|
ld [wStageCollisionMap + $110], a
|
|
.asm_3139d
|
|
ld a, $1
|
|
ld [wd644], a
|
|
callba Func_1f2ed
|
|
ld de, $0003
|
|
call PlaySong
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
callba Func_1c2cb
|
|
ret
|
|
|
|
Func_313c3: ; 0x313c3
|
|
callba ResetIndicatorStates
|
|
callba Func_107c2
|
|
callba Func_1f2ff
|
|
ld a, $0
|
|
ld [wd644], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
callba Func_1c2cb
|
|
callba Func_1e8f6
|
|
callba LoadMapBillboardTileData
|
|
ret
|
|
|
|
ChooseNextMap_BlueField: ; 0x3140b
|
|
; Picks the next map to perform a map move.
|
|
; Also records which maps have been visited.
|
|
ld a, [wNumMapMoves]
|
|
inc a
|
|
cp $6
|
|
jr c, .dontReset
|
|
ld a, $ff
|
|
ld [wVisitedMaps], a
|
|
ld [wVisitedMaps + 1], a
|
|
ld [wVisitedMaps + 2], a
|
|
ld [wVisitedMaps + 3], a
|
|
ld [wVisitedMaps + 4], a
|
|
ld [wVisitedMaps + 5], a
|
|
xor a
|
|
.dontReset
|
|
ld [wNumMapMoves], a
|
|
cp $3
|
|
jr c, .chooseMapFromArea1
|
|
cp $5
|
|
jr c, .chooseMapFromArea2
|
|
ld a, INDIGO_PLATEAU
|
|
ld [wCurrentMap], a
|
|
ld [wVisitedMaps + 5], a
|
|
ret
|
|
|
|
.chooseMapFromArea1
|
|
call GenRandom
|
|
and $7
|
|
cp $7
|
|
jr nc, .chooseMapFromArea1
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, FirstMapMoveSet_BlueField
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld hl, wVisitedMaps
|
|
ld a, [wNumMapMoves]
|
|
and a
|
|
jr z, .asm_3145e
|
|
ld b, a
|
|
.asm_31457
|
|
ld a, [hli]
|
|
cp c
|
|
jr z, .chooseMapFromArea1
|
|
dec b
|
|
jr nz, .asm_31457
|
|
.asm_3145e
|
|
ld a, c
|
|
ld [wCurrentMap], a
|
|
ld a, [wNumMapMoves]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wVisitedMaps
|
|
add hl, bc
|
|
ld a, [wCurrentMap]
|
|
ld [hl], a
|
|
ret
|
|
|
|
.chooseMapFromArea2
|
|
call GenRandom
|
|
and $3
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, SecondMapMoveSet_BlueField
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld hl, wVisitedMaps + 3
|
|
ld a, [wNumMapMoves]
|
|
sub $3
|
|
jr z, .asm_31490
|
|
ld b, a
|
|
.asm_31489
|
|
ld a, [hli]
|
|
cp c
|
|
jr z, .chooseMapFromArea2
|
|
dec b
|
|
jr nz, .asm_31489
|
|
.asm_31490
|
|
ld a, c
|
|
ld [wCurrentMap], a
|
|
ld a, [wNumMapMoves]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wVisitedMaps
|
|
add hl, bc
|
|
ld a, [wCurrentMap]
|
|
ld [hl], a
|
|
ret
|
|
|
|
FirstMapMoveSet_BlueField:
|
|
db VIRIDIAN_CITY
|
|
db VIRIDIAN_FOREST
|
|
db MT_MOON
|
|
db CERULEAN_CITY
|
|
db VERMILION_STREETS
|
|
db ROCK_MOUNTAIN
|
|
db CELADON_CITY
|
|
|
|
SecondMapMoveSet_BlueField:
|
|
db FUCHSIA_CITY
|
|
db SAFARI_ZONE
|
|
db SAFFRON_CITY
|
|
db CINNABAR_ISLAND
|
|
|
|
Func_314ae: ; 0x314ae
|
|
ld a, [wTimerActive]
|
|
and a
|
|
ld a, [wd54c]
|
|
jr z, .asm_314d0
|
|
cp $1
|
|
jp z, Func_31591
|
|
cp $3
|
|
jp z, Func_31591
|
|
cp $2
|
|
jp z, Func_315b3
|
|
cp $5
|
|
jp z, Func_315b3
|
|
cp $d
|
|
jp z, Func_315d5
|
|
.asm_314d0
|
|
cp $0
|
|
jr z, .asm_314d6
|
|
scf
|
|
ret
|
|
|
|
.asm_314d6
|
|
call Func_3151f
|
|
ld a, [wd54d]
|
|
call CallInFollowingTable
|
|
PointerTable_314df: ; 0xd13df
|
|
padded_dab Func_314ef
|
|
padded_dab Func_314f1
|
|
padded_dab Func_314f3
|
|
padded_dab Func_31505
|
|
|
|
Func_314ef: ; 0x314ef
|
|
scf
|
|
ret
|
|
|
|
Func_314f1: ; 0x314f1
|
|
scf
|
|
ret
|
|
|
|
Func_314f3: ; 0x314f3
|
|
callba Func_3022b
|
|
ld de, $0001
|
|
call PlaySong
|
|
scf
|
|
ret
|
|
|
|
Func_31505: ; 0x31505
|
|
ld a, [wd5ca]
|
|
and a
|
|
ret nz
|
|
call FillBottomMessageBufferWithBlackTile
|
|
callba Func_3022b
|
|
ld de, $0001
|
|
call PlaySong
|
|
scf
|
|
ret
|
|
|
|
Func_3151f: ; 0x3151f
|
|
ld a, $50
|
|
ld [wd4ef], a
|
|
ld [wd4f1], a
|
|
callba Func_107f8
|
|
ld a, [wd57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [wd57e], a
|
|
ld a, $3
|
|
ld [wd54d], a
|
|
xor a
|
|
ld [wd604], a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_31577
|
|
callba Func_14135
|
|
callba Func_16425
|
|
callba LoadMapBillboardTileData
|
|
.asm_31577
|
|
callba StopTimer
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText1
|
|
ld de, MapMoveFailedText
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
Func_31591: ; 0x31591
|
|
ld a, [wd55a]
|
|
and a
|
|
jr nz, .asm_315b1
|
|
ld a, [wIndicatorStates]
|
|
and a
|
|
jr z, .asm_315b1
|
|
xor a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld a, $80
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $1
|
|
ld [wd604], a
|
|
ld [wd54d], a
|
|
.asm_315b1
|
|
scf
|
|
ret
|
|
|
|
Func_315b3: ; 0x315b3
|
|
ld a, [wd55a]
|
|
and a
|
|
jr z, .asm_315d3
|
|
ld a, [wIndicatorStates + 1]
|
|
and a
|
|
jr z, .asm_315d3
|
|
xor a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld a, $80
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $1
|
|
ld [wd604], a
|
|
ld [wd54d], a
|
|
.asm_315d3
|
|
scf
|
|
ret
|
|
|
|
Func_315d5: ; 0x315d5
|
|
ld de, $0000
|
|
call PlaySong
|
|
rst AdvanceFrame
|
|
callba ChooseNextMap_RedField
|
|
callba LoadMapBillboardTileData
|
|
lb de, $25, $25
|
|
call PlaySoundEffect
|
|
ld bc, ArrivedAtMapText
|
|
callba LoadScrollingMapNameText
|
|
.asm_31603
|
|
callba Func_33e3
|
|
rst AdvanceFrame
|
|
ld a, [wd5ca]
|
|
and a
|
|
jr nz, .asm_31603
|
|
ld a, $2
|
|
ld [wd54d], a
|
|
scf
|
|
ret
|
|
|
|
Func_3161b: ; 0x3161b
|
|
ld a, [wTimerActive]
|
|
and a
|
|
ld a, [wd54c]
|
|
jr z, .asm_3163d
|
|
cp $1
|
|
jp z, Func_31708
|
|
cp $f
|
|
jp z, Func_31708
|
|
cp $2
|
|
jp z, Func_3172a
|
|
cp $e
|
|
jp z, Func_3172a
|
|
cp $d
|
|
jp z, Func_3174c
|
|
.asm_3163d
|
|
cp $0
|
|
jr z, .asm_31643
|
|
scf
|
|
ret
|
|
|
|
.asm_31643
|
|
call Func_3168c
|
|
ld a, [wd54d]
|
|
call CallInFollowingTable
|
|
PointerTable_3164c: ; 0x3164c
|
|
padded_dab Func_3165c
|
|
padded_dab Func_3165e
|
|
padded_dab Func_31660
|
|
padded_dab Func_31672
|
|
|
|
Func_3165c: ; 0x3165c
|
|
scf
|
|
ret
|
|
|
|
Func_3165e: ; 0x3165e
|
|
scf
|
|
ret
|
|
|
|
Func_31660: ; 0x31660
|
|
callba Func_3022b
|
|
ld de, $0001
|
|
call PlaySong
|
|
scf
|
|
ret
|
|
|
|
Func_31672: ; 0x31672
|
|
ld a, [wd5ca]
|
|
and a
|
|
ret nz
|
|
call FillBottomMessageBufferWithBlackTile
|
|
callba Func_3022b
|
|
ld de, $0001
|
|
call PlaySong
|
|
scf
|
|
ret
|
|
|
|
Func_3168c: ; 0x3168c
|
|
ld a, $50
|
|
ld [wLeftMapMoveDiglettAnimationCounter], a
|
|
ld [wRightMapMoveDiglettFrame], a
|
|
ld a, $3
|
|
ld [wd645], a
|
|
ld a, $1
|
|
ld [wd646], a
|
|
callba Func_107f8
|
|
ld a, [wd57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [wd57e], a
|
|
ld a, $3
|
|
ld [wd54d], a
|
|
xor a
|
|
ld [wd604], a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_316ee
|
|
callba Func_1c2cb
|
|
callba Func_1e8f6
|
|
callba LoadMapBillboardTileData
|
|
.asm_316ee
|
|
callba StopTimer
|
|
call FillBottomMessageBufferWithBlackTile
|
|
call Func_30db
|
|
ld hl, wScrollingText1
|
|
ld de, MapMoveFailedText
|
|
call LoadScrollingText
|
|
ret
|
|
|
|
Func_31708: ; 0x31708
|
|
ld a, [wd55a]
|
|
and a
|
|
jr nz, .asm_31728
|
|
ld a, [wIndicatorStates]
|
|
and a
|
|
jr z, .asm_31728
|
|
xor a
|
|
ld [wIndicatorStates], a
|
|
ld [wIndicatorStates + 2], a
|
|
ld a, $80
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $1
|
|
ld [wd604], a
|
|
ld [wd54d], a
|
|
.asm_31728
|
|
scf
|
|
ret
|
|
|
|
Func_3172a: ; 0x3172a
|
|
ld a, [wd55a]
|
|
and a
|
|
jr z, .asm_3174a
|
|
ld a, [wIndicatorStates + 1]
|
|
and a
|
|
jr z, .asm_3174a
|
|
xor a
|
|
ld [wIndicatorStates + 1], a
|
|
ld [wIndicatorStates + 3], a
|
|
ld a, $80
|
|
ld [wIndicatorStates + 4], a
|
|
ld a, $1
|
|
ld [wd604], a
|
|
ld [wd54d], a
|
|
.asm_3174a
|
|
scf
|
|
ret
|
|
|
|
Func_3174c: ; 0x3174c
|
|
ld de, $0000
|
|
call PlaySong
|
|
rst AdvanceFrame
|
|
callba ChooseNextMap_BlueField
|
|
callba LoadMapBillboardTileData
|
|
lb de, $25, $25
|
|
call PlaySoundEffect
|
|
ld bc, ArrivedAtMapText
|
|
callba LoadScrollingMapNameText
|
|
.asm_3177a
|
|
callba Func_33e3
|
|
rst AdvanceFrame
|
|
ld a, [wd5ca]
|
|
and a
|
|
jr nz, .asm_3177a
|
|
ld a, $2
|
|
ld [wd54d], a
|
|
scf
|
|
ret
|
|
|
|
SECTION "bankd", ROMX
|
|
|
|
SlotOnPic: ; 0x34000
|
|
INCBIN "gfx/billboard/slot/slot_on.2bpp"
|
|
SlotOffPic: ; 0x34180
|
|
INCBIN "gfx/billboard/slot/slot_off.2bpp"
|
|
|
|
SECTION "bankd.2", ROMX
|
|
|
|
StageSeelBonusCollisionMasks: ; 0x37f00
|
|
INCBIN "data/collision/masks/seel_bonus.masks"
|
|
|
|
SECTION "banke", ROMX
|
|
Data_38000:
|
|
db $89, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
Data_38010:
|
|
db $89, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
Data_38020:
|
|
db $51, $10, $00, $10, $00, $10, $00, $10, $00, $80, $00, $00, $00, $00, $00, $00
|
|
|
|
Data_38030:
|
|
db $a9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
Data_3809a:
|
|
db $00, $00, $00
|
|
db $40, $40, $40
|
|
db $90, $90, $90
|
|
db $e4, $e4, $e4
|
|
|
|
Data_380a6:
|
|
db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
|
|
RGB 30, 31, 29
|
|
RGB 28, 28, 25
|
|
RGB 27, 26, 24
|
|
RGB 24, 24, 24
|
|
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
RGB 23, 23, 23
|
|
|
|
RGB 30, 31, 27
|
|
RGB 25, 26, 20
|
|
RGB 23, 21, 18
|
|
RGB 17, 17, 17
|
|
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
RGB 15, 15, 15
|
|
|
|
RGB 29, 31, 25
|
|
RGB 22, 24, 15
|
|
RGB 19, 16, 12
|
|
RGB 10, 10, 10
|
|
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
RGB 7, 7, 7
|
|
|
|
RGB 29, 31, 23
|
|
RGB 20, 22, 10
|
|
RGB 15, 12, 6
|
|
RGB 3, 3, 4
|
|
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
Data_38156:
|
|
db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
INCBIN "gfx/sgb_border.interleave.2bpp"
|
|
|
|
Data_39166:
|
|
db $99, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
INCBIN "gfx/sgb_border_blank.2bpp"
|
|
|
|
Data_3a176:
|
|
db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
INCBIN "gfx/tilemaps/sgb_border.map"
|
|
|
|
Data_3a9e6:
|
|
db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00
|
|
Data_3a9f6:
|
|
db $79, $52, $08, $00, $0b, $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0
|
|
Data_3aa06:
|
|
db $79, $47, $08, $00, $0b, $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28
|
|
Data_3aa16:
|
|
db $79, $3c, $08, $00, $0b, $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9
|
|
Data_3aa26:
|
|
db $79, $31, $08, $00, $0b, $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e
|
|
Data_3aa36:
|
|
db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0
|
|
Data_3aa46:
|
|
db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
|
|
Data_3aa56:
|
|
db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea
|
|
Data_3aa66:
|
|
db $b9, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
Data_3aa76:
|
|
db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
|
|
|
|
SECTION "bankf", ROMX
|
|
|
|
INCLUDE "audio/engine_0f.asm"
|
|
|
|
SECTION "bank10", ROMX
|
|
|
|
INCLUDE "audio/engine_10.asm"
|
|
|
|
SECTION "bank11", ROMX
|
|
|
|
INCLUDE "audio/engine_11.asm"
|
|
|
|
SECTION "bank12", ROMX
|
|
|
|
INCLUDE "audio/engine_12.asm"
|
|
|
|
; This is a blob of unused junk data
|
|
INCBIN "data/unknown/unused_4b6a8.bin"
|
|
|
|
SECTION "bank13", ROMX
|
|
|
|
INCLUDE "audio/engine_13.asm"
|
|
|
|
SECTION "bank14", ROMX
|
|
|
|
INCLUDE "audio/pikapcm.asm"
|
|
|
|
SECTION "bank16", ROMX
|
|
|
|
INCLUDE "data/billboard/billboard_pics.asm"
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_1.asm"
|
|
|
|
SECTION "bank17", ROMX
|
|
|
|
INCLUDE "data/billboard/reward_pics.asm"
|
|
|
|
MeowthBonusBaseGameBoyGfx: ; 0x5f600
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboy.2bpp"
|
|
|
|
SECTION "bank18", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_1.asm"
|
|
|
|
StageRedFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x63000
|
|
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp"
|
|
|
|
INCBIN "gfx/unused_pocket_monster.2bpp"
|
|
|
|
SECTION "bank18.2", ROMX
|
|
|
|
StageRedFieldTopBaseGameBoyGfx: ; 0x632a0
|
|
INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp"
|
|
|
|
SECTION "bank19", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_2.asm"
|
|
|
|
StageBlueFieldBottomBaseGameBoyGfx: ; 0x67000
|
|
INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboy.2bpp"
|
|
|
|
SECTION "bank1a", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_3.asm"
|
|
|
|
StageBlueFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x6b000
|
|
INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboy.2bpp"
|
|
|
|
INCBIN "gfx/unused_pocket_monster.2bpp"
|
|
ds $20 ; free space
|
|
|
|
StageBlueFieldTopBaseGameBoyGfx: ; 0x6b2a0
|
|
INCBIN "gfx/stage/blue_top/blue_top_base_gameboy.2bpp"
|
|
|
|
SECTION "bank1b", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_4.asm"
|
|
|
|
UnusedStageGfx: ; 0x6f000
|
|
INCBIN "gfx/stage/unused_stage.2bpp"
|
|
|
|
SECTION "bank1c", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_5.asm"
|
|
|
|
UncaughtPokemonBackgroundPic:
|
|
INCBIN "gfx/pokedex/uncaught_pokemon.2bpp"
|
|
INCBIN "gfx/pokedex/uncaught_pokemon.2bpp" ; This pic is unnecessarily duplicated.
|
|
|
|
SECTION "bank1c.2", ROMX
|
|
|
|
GengarBonusBaseGameBoyGfx: ; 0x73000
|
|
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboy.2bpp"
|
|
|
|
SECTION "bank1d", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_6.asm"
|
|
|
|
StageRedFieldBottomBaseGameBoyGfx: ; 0x77000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp"
|
|
|
|
SECTION "bank1e", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_7.asm"
|
|
|
|
INCLUDE "data/billboard/bonus_multiplier_pics.asm"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_2.asm"
|
|
|
|
SECTION "bank1f", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_pics_1.asm"
|
|
|
|
MewtwoBonusBaseGameBoyGfx: ; 0x7f000
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboy.2bpp"
|
|
|
|
EraseAllDataGfx: ; 0x7fd00: ; 0x7fd00
|
|
INCBIN "gfx/erase_all_data.2bpp"
|
|
|
|
SECTION "bank20", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_pics_2.asm"
|
|
|
|
MewtwoBonusBaseGameBoyColorGfx: ; 0x83000
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboycolor.2bpp"
|
|
|
|
StageDiglettBonusCollisionMasks: ; 0x83d00
|
|
INCBIN "data/collision/masks/diglett_bonus.masks"
|
|
|
|
SECTION "bank21", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_pics_3.asm"
|
|
|
|
SECTION "bank21.2", ROMX
|
|
|
|
DiglettBonusBaseGameBoyColorGfx: ; 0x87000
|
|
INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboycolor.2bpp"
|
|
|
|
GengarBonusHaunterGfx: ; 0x87d00
|
|
INCBIN "gfx/stage/gengar_bonus/haunter.interleave.2bpp"
|
|
|
|
SECTION "bank22", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_pics_4.asm"
|
|
|
|
FieldSelectScreenGfx:
|
|
FieldSelectBlinkingBorderGfx: ; 0x8b000
|
|
INCBIN "gfx/field_select/blinking_border.2bpp"
|
|
FieldSelectGfx: ; 0x8b100
|
|
INCBIN "gfx/field_select/field_select_tiles.2bpp"
|
|
|
|
GengarBonusGastlyGfx: ; 0x8bd00
|
|
INCBIN "gfx/stage/gengar_bonus/gastly.interleave.2bpp"
|
|
|
|
SECTION "bank22.2", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_3.asm"
|
|
|
|
SECTION "bank23", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_pics_5.asm"
|
|
|
|
DiglettBonusBaseGameBoyGfx: ; 0x8f000
|
|
INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboy.2bpp"
|
|
|
|
INCLUDE "gfx/high_scores/high_scores_transition_palettes.asm"
|
|
INCLUDE "data/billboard/map_palettes.asm"
|
|
|
|
SECTION "bank24", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_8.asm"
|
|
|
|
SeelBonusBaseGameBoyGfx: ; 0x93000
|
|
INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboy.2bpp"
|
|
|
|
INCLUDE "data/billboard/map_palette_maps_2.asm"
|
|
|
|
SECTION "bank25", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_9.asm"
|
|
|
|
SeelBonusBaseGameBoyColorGfx: ; 0x97000
|
|
INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboycolor.2bpp"
|
|
|
|
StageRedFieldTopGfx3: ; 0x97a00
|
|
INCBIN "gfx/stage/red_top/red_top_3.2bpp"
|
|
StageRedFieldTopGfx1: ; 0x97ba0
|
|
INCBIN "gfx/stage/red_top/red_top_1.2bpp"
|
|
StageRedFieldTopGfx2: ; 0x97e00
|
|
INCBIN "gfx/stage/red_top/red_top_2.2bpp"
|
|
|
|
SECTION "bank26", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_pics_10.asm"
|
|
|
|
SeelBonusSeel3Gfx: ; 0x9b000
|
|
INCBIN "gfx/stage/seel_bonus/seel_3.2bpp"
|
|
SeelBonusSeel1Gfx: ; 0x9b1a0
|
|
INCBIN "gfx/stage/seel_bonus/seel_1.2bpp"
|
|
SeelBonusSeel2Gfx: ; 0x9b400
|
|
INCBIN "gfx/stage/seel_bonus/seel_2.2bpp"
|
|
SeelBonusSeel4Gfx: ; 0x9b460
|
|
INCBIN "gfx/stage/seel_bonus/seel_4.2bpp"
|
|
|
|
GengarBonusGengarGfx: ; 0x9b900
|
|
INCBIN "gfx/stage/gengar_bonus/gengar.interleave.2bpp"
|
|
|
|
SECTION "bank27", ROMX
|
|
|
|
StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0x9c000
|
|
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp"
|
|
|
|
INCBIN "gfx/unused_pocket_monster_2.2bpp"
|
|
|
|
SECTION "bank27.2", ROMX
|
|
|
|
StageRedFieldTopBaseGameBoyColorGfx: ; 0x9c2a0
|
|
INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp"
|
|
|
|
StageRedFieldTopGfx4: ; 0x9d000
|
|
INCBIN "gfx/stage/red_top/red_top_4.2bpp"
|
|
|
|
GengarBonusBaseGameBoyColorGfx: ; 0x9e000
|
|
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboycolor.2bpp"
|
|
GengarBonus1Gfx: ; 0x9f000
|
|
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_1.2bpp"
|
|
|
|
SECTION "bank28", ROMX
|
|
|
|
StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0xa0000
|
|
INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboycolor.2bpp"
|
|
|
|
INCBIN "gfx/unused_pocket_monster_2.2bpp"
|
|
|
|
SECTION "bank28.2", ROMX
|
|
|
|
StageBlueFieldTopBaseGameBoyColorGfx: ; 0xa02a0
|
|
INCBIN "gfx/stage/blue_top/blue_top_base_gameboycolor.2bpp"
|
|
|
|
StageBlueFieldTopGfx4: ; 0xa1000
|
|
INCBIN "gfx/stage/blue_top/blue_top_4.2bpp"
|
|
|
|
StageRedFieldBottomBaseGameBoyColorGfx: ; 0xa2000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp"
|
|
|
|
StageRedFieldBottomGfx5: ; 0xa3000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp"
|
|
|
|
SECTION "bank29", ROMX
|
|
|
|
StageBlueFieldBottomBaseGameBoyColorGfx: ; 0xa4000
|
|
INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboycolor.2bpp"
|
|
StageBlueFieldBottomGfx1: ; 0xa5000
|
|
INCBIN "gfx/stage/blue_bottom/blue_bottom_1.2bpp"
|
|
|
|
INCLUDE "data/billboard/map_pics.asm"
|
|
|
|
HighScoresHexadecimalCharsGfx:
|
|
INCBIN "gfx/high_scores/hexadecimal_characters.2bpp"
|
|
|
|
SECTION "bank2a", ROMX
|
|
|
|
PinballGreatballShakeGfx: ; 0xa82c0
|
|
INCBIN "gfx/stage/ball_greatball_shake.w16.interleave.2bpp"
|
|
PinballUltraballShakeGfx: ; 0xa8300
|
|
INCBIN "gfx/stage/ball_ultraball_shake.w16.interleave.2bpp"
|
|
PinballMasterballShakeGfx: ; 0xa8340
|
|
INCBIN "gfx/stage/ball_masterball_shake.w16.interleave.2bpp"
|
|
PinballPokeballShakeGfx: ; 0xa8380
|
|
INCBIN "gfx/stage/ball_pokeball_shake.w16.interleave.2bpp"
|
|
|
|
StageSharedPikaBoltGfx: ; 0xa83c0
|
|
INCBIN "gfx/stage/shared/pika_bolt.2bpp"
|
|
|
|
PinballPokeballGfx: ; 0xa8400
|
|
INCBIN "gfx/stage/ball_pokeball.w32.interleave.2bpp"
|
|
|
|
FlipperGfx: ; 0xa8600
|
|
INCBIN "gfx/stage/flipper.2bpp"
|
|
|
|
PikachuSaverGfx: ; 0xa8720
|
|
INCBIN "gfx/stage/pikachu_saver.2bpp"
|
|
|
|
BallCaptureSmokeGfx:
|
|
INCBIN "gfx/stage/ball_capture_smoke.interleave.2bpp"
|
|
|
|
SECTION "bank2a.2", ROMX
|
|
|
|
PinballGreatballGfx: ; 0xa8a00
|
|
INCBIN "gfx/stage/ball_greatball.w32.interleave.2bpp"
|
|
PinballUltraballGfx: ; 0xa8c00
|
|
INCBIN "gfx/stage/ball_ultraball.w32.interleave.2bpp"
|
|
PinballMasterballGfx: ; 0xa8e00
|
|
INCBIN "gfx/stage/ball_masterball.w32.interleave.2bpp"
|
|
|
|
PinballPokeballMiniGfx: ; 0xa9000
|
|
INCBIN "gfx/stage/ball_pokeball_mini.w32.interleave.2bpp"
|
|
PinballGreatballMiniGfx: ; 0xa9200
|
|
INCBIN "gfx/stage/ball_greatball_mini.w32.interleave.2bpp"
|
|
PinballUltraballMiniGfx: ; 0xa9400
|
|
INCBIN "gfx/stage/ball_ultraball_mini.w32.interleave.2bpp"
|
|
PinballMasterballMiniGfx: ; 0xa9600
|
|
INCBIN "gfx/stage/ball_masterball_mini.w32.interleave.2bpp"
|
|
PinballBallMiniGfx: ; 0xa9800
|
|
INCBIN "gfx/stage/ball_mini.w32.interleave.2bpp"
|
|
|
|
HighScoresBaseGameBoyGfx: ; 0xa9a00
|
|
INCBIN "gfx/high_scores/high_scores_base_gameboy.2bpp"
|
|
|
|
MeowthBonusBaseGameBoyColorGfx: ; 0xab200
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboycolor.2bpp"
|
|
|
|
INCLUDE "data/billboard/map_palette_maps.asm"
|
|
|
|
SECTION "bank2a.3", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_palettes_1.asm"
|
|
|
|
SECTION "bank2b", ROMX
|
|
|
|
TitlescreenFadeInGfx: ; 0xac000
|
|
INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp"
|
|
|
|
PokedexInitialGfx:
|
|
INCBIN "gfx/pokedex/pokedex_initial.2bpp"
|
|
|
|
StageBlueFieldBottomCollisionMasks: ; 0xaf000
|
|
INCBIN "data/collision/masks/blue_stage_bottom.masks"
|
|
|
|
SECTION "bank2b.2", ROMX
|
|
|
|
DiglettBonusDugtrio3Gfx: ; 0xaf900
|
|
INCBIN "gfx/stage/diglett_bonus/dugtrio_3.2bpp"
|
|
DiglettBonusDugtrio1Gfx: ; 0xafaa0
|
|
INCBIN "gfx/stage/diglett_bonus/dugtrio_1.2bpp"
|
|
DiglettBonusDugtrio2Gfx: ; 0xafd00
|
|
INCBIN "gfx/stage/diglett_bonus/dugtrio_2.2bpp"
|
|
DiglettBonusDugtrio4Gfx: ; 0xafd60
|
|
INCBIN "gfx/stage/diglett_bonus/dugtrio_4.2bpp"
|
|
|
|
SECTION "bank2c", ROMX
|
|
|
|
StageRedFieldBottomIndicatorsGfx_Gameboy: ; 0xb0000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_indicators_gameboy.2bpp"
|
|
|
|
StageRedFieldTopCollisionAttributes6: ; 0xb3000
|
|
INCBIN "data/collision/maps/red_stage_top_6.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
FieldSelectTilemap: ; 0xb3800
|
|
INCBIN "gfx/tilemaps/field_select.map"
|
|
FieldSelectBGAttributes: ; 0xb3c00
|
|
INCBIN "gfx/bgattr/field_select.bgattr"
|
|
|
|
SECTION "bank2d", ROMX
|
|
|
|
TitlescreenGfx: ; 0xb4000
|
|
INCBIN "gfx/titlescreen/titlescreen.2bpp"
|
|
|
|
OptionMenuAndKeyConfigGfx:
|
|
OptionMenuBlankGfx: ; 0xb5800
|
|
INCBIN "gfx/option_menu/blank.2bpp"
|
|
OptionMenuArrowGfx: ; 0xb5a00
|
|
INCBIN "gfx/option_menu/arrow.2bpp"
|
|
OptionMenuPikaBubbleGfx: ; 0xb5a20
|
|
INCBIN "gfx/option_menu/pika_bubble.2bpp"
|
|
OptionMenuBouncingPokeballGfx: ; 0xb5a80
|
|
INCBIN "gfx/option_menu/bouncing_pokeball.2bpp"
|
|
OptionMenuRumblePikachuAnimationGfx: ; 0xb5b40
|
|
INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp"
|
|
OptionMenuPsyduckGfx: ; 0xb5c00
|
|
INCBIN "gfx/option_menu/psyduck.2bpp"
|
|
OptionMenuBoldArrowGfx: ; 0xb5fc0
|
|
INCBIN "gfx/option_menu/bold_arrow.2bpp"
|
|
OptionMenuUnknownGfx: ; 0xb5fd0
|
|
INCBIN "gfx/option_menu/solid_colors.2bpp"
|
|
OptionMenuOptionTextGfx: ; 0xb6020
|
|
INCBIN "gfx/option_menu/option_text.2bpp"
|
|
OptionMenuPikachuGfx: ; 0xb6080
|
|
INCBIN "gfx/option_menu/pikachu.2bpp"
|
|
OptionMenuPsyduckFeetGfx: ; 0xb6170
|
|
INCBIN "gfx/option_menu/psyduck_feet.2bpp"
|
|
OptionMenuUnknown2Gfx: ; 0xb6200
|
|
INCBIN "gfx/option_menu/blank2.2bpp"
|
|
OptionMenuRumbleTextGfx: ; 0xb6250
|
|
INCBIN "gfx/option_menu/rumble_text.2bpp"
|
|
OptionMenuUnknown3Gfx: ; 0xb62b0
|
|
INCBIN "gfx/option_menu/blank3.2bpp"
|
|
OptionMenuKeyCoTextGfx: ; 0xb6320
|
|
INCBIN "gfx/option_menu/key_co_text.2bpp"
|
|
OptionMenuSoundTestDigitsGfx: ; 0xb6370
|
|
INCBIN "gfx/option_menu/sound_test_digits.2bpp"
|
|
OptionMenuNfigTextGfx: ; 0xb6470
|
|
INCBIN "gfx/option_menu/nfig_text.2bpp"
|
|
OptionMenuUnknown4Gfx: ; 0xb64a0
|
|
INCBIN "gfx/option_menu/blank4.2bpp"
|
|
|
|
KeyConfigResetTextGfx: ; 0xb6500
|
|
INCBIN "gfx/key_config/reset_text.2bpp"
|
|
KeyConfigBallStartTextGfx: ; 0xb6560
|
|
INCBIN "gfx/key_config/ball_start_text.2bpp"
|
|
KeyConfigLeftFlipperTextGfx: ; 0xb65f0
|
|
INCBIN "gfx/key_config/left_flipper_text.2bpp"
|
|
KeyConfigRightFlipperTextGfx: ; 0xb6680
|
|
INCBIN "gfx/key_config/right_flipper_text.2bpp"
|
|
KeyConfigTiltTextGfx: ; 0xb6710
|
|
INCBIN "gfx/key_config/tilt_text.2bpp"
|
|
KeyConfigMenuTextGfx: ; 0xb6810
|
|
INCBIN "gfx/key_config/menu_text.2bpp"
|
|
KeyConfigKeyConfigTextGfx: ; 0xb6880
|
|
INCBIN "gfx/key_config/key_config_text.2bpp"
|
|
KeyConfigIconsGfx: ; 0xb6900
|
|
INCBIN "gfx/key_config/icons.2bpp"
|
|
|
|
OptionMenuSoundTextTextGfx: ; 0xb6a40
|
|
INCBIN "gfx/option_menu/sound_test_text.2bpp"
|
|
OptionMenuOnOffTextGfx: ; 0xb6ad0
|
|
INCBIN "gfx/option_menu/on_off_text.2bpp"
|
|
OptionMenuBGMSETextGfx: ; 0xb6b10
|
|
INCBIN "gfx/option_menu/bgm_se_text.2bpp"
|
|
|
|
StageRedFieldTopCollisionAttributes5: ; 0xb6c00
|
|
INCBIN "data/collision/maps/red_stage_top_5.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldTopCollisionAttributes4: ; 0xb7400
|
|
INCBIN "data/collision/maps/red_stage_top_4.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palette_maps_5.asm"
|
|
|
|
SECTION "bank2e", ROMX
|
|
|
|
StageRedFieldTopCollisionAttributes3: ; 0xb8000
|
|
INCBIN "data/collision/maps/red_stage_top_3.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldTopCollisionAttributes2: ; 0xb8800
|
|
INCBIN "data/collision/maps/red_stage_top_2.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldTopCollisionAttributes1: ; 0xb9000
|
|
INCBIN "data/collision/maps/red_stage_top_1.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldTopCollisionAttributes0: ; 0xb9800
|
|
INCBIN "data/collision/maps/red_stage_top_0.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldTopTilemap_GameBoy: ; 0xba000
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map"
|
|
|
|
SECTION "bank2e.2", ROMX
|
|
|
|
StageRedFieldBottomTilemap_GameBoy: ; 0xba800
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map"
|
|
|
|
SECTION "bank2e.3", ROMX
|
|
|
|
StageRedFieldTopCollisionMasks0: ; 0xbb000
|
|
INCBIN "data/collision/masks/red_stage_top_0.masks"
|
|
|
|
StageRedFieldTopCollisionMasks1: ; 0xbb800
|
|
INCBIN "data/collision/masks/red_stage_top_1.masks"
|
|
|
|
SECTION "bank2f", ROMX
|
|
|
|
StageRedFieldTopCollisionMasks2: ; 0xbc000
|
|
INCBIN "data/collision/masks/red_stage_top_2.masks"
|
|
|
|
StageRedFieldTopCollisionMasks3: ; 0xbc800
|
|
INCBIN "data/collision/masks/red_stage_top_3.masks"
|
|
|
|
StageRedFieldTopCollisionAttributes7: ; 0xbd000
|
|
INCBIN "data/collision/maps/red_stage_top_7.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
StageRedFieldBottomCollisionAttributes: ; 0xbd800
|
|
INCBIN "data/collision/maps/red_stage_bottom.collision"
|
|
|
|
SECTION "bank2f.2", ROMX
|
|
|
|
StageRedFieldTopTilemap_GameBoyColor: ; 0xbe000
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map"
|
|
|
|
StageRedFieldTopTilemap2_GameBoyColor: ; 0xbe400
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map"
|
|
|
|
StageRedFieldBottomTilemap_GameBoyColor: ; 0xbe800
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map"
|
|
|
|
StageRedFieldBottomTilemap2_GameBoyColor: ; 0xbec00
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map"
|
|
|
|
StageBlueFieldTopTilemap_GameBoy: ; 0xbf000
|
|
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboy.map"
|
|
|
|
SECTION "bank2f.3", ROMX
|
|
|
|
EraseAllDataTilemap: ; 0xbf800
|
|
INCBIN "gfx/tilemaps/erase_all_data.map"
|
|
EraseAllDataBGAttributes: ; 0xbfc00
|
|
INCBIN "gfx/bgattr/erase_all_data.bgattr"
|
|
|
|
SECTION "bank30", ROMX
|
|
|
|
StageBlueFieldBottomTilemap_GameBoy: ; 0xc0000
|
|
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboy.map"
|
|
|
|
SECTION "bank30.2", ROMX
|
|
|
|
StageBlueFieldTopCollisionMasks: ; 0xc0800
|
|
INCBIN "data/collision/masks/blue_stage_top.masks"
|
|
|
|
StageBlueFieldTopCollisionAttributesBallEntrance: ; 0xc1000
|
|
INCBIN "data/collision/maps/blue_stage_top_ball_entrance.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
HighScoresTilemap2: ; 0xc1800
|
|
INCBIN "gfx/tilemaps/high_scores_screen_2.map"
|
|
HighScoresTilemap5: ; 0xc1c00
|
|
INCBIN "gfx/tilemaps/high_scores_screen_5.map"
|
|
HighScoresTilemap: ; 0xc2000
|
|
INCBIN "gfx/tilemaps/high_scores_screen.map"
|
|
HighScoresTilemap4: ; 0xc2400
|
|
INCBIN "gfx/tilemaps/high_scores_screen_4.map"
|
|
|
|
StageBlueFieldTopCollisionAttributes: ; 0xc2800
|
|
INCBIN "data/collision/maps/blue_stage_top.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
OptionMenuTilemap2: ; 0xc3000
|
|
INCBIN "gfx/tilemaps/option_menu_2.map"
|
|
|
|
SECTION "bank30.3", ROMX
|
|
|
|
OptionMenuTilemap4: ; 0xc3400
|
|
INCBIN "gfx/tilemaps/option_menu_4.map"
|
|
INCBIN "gfx/tilemaps/unused_tilemap_c3640.map"
|
|
|
|
OptionMenuTilemap: ; 0xc3800
|
|
INCBIN "gfx/tilemaps/option_menu.map"
|
|
|
|
SECTION "bank30.4", ROMX
|
|
|
|
OptionMenuTilemap3: ; 0xc3c00
|
|
INCBIN "gfx/tilemaps/option_menu_3.map"
|
|
INCBIN "gfx/tilemaps/unused_tilemap_c3640.map"
|
|
|
|
SECTION "bank31", ROMX
|
|
|
|
StageBlueFieldBottomCollisionAttributes: ; 0xc4000
|
|
INCBIN "data/collision/maps/blue_stage_bottom.collision"
|
|
INCBIN "data/collision/unused_trailing_data.bin"
|
|
|
|
PokedexTilemap:
|
|
INCBIN "gfx/tilemaps/pokedex.map"
|
|
PokedexBGAttributes:
|
|
INCBIN "gfx/bgattr/pokedex.bgattr"
|
|
|
|
PokedexTilemap2:
|
|
INCBIN "gfx/tilemaps/pokedex_2.map"
|
|
PokedexBGAttributes2:
|
|
INCBIN "gfx/bgattr/pokedex_2.bgattr"
|
|
|
|
TitlescreenTilemap: ; 0xc5800
|
|
INCBIN "gfx/tilemaps/titlescreen.map"
|
|
TitlescreenBGAttributes: ; 0xc5c00
|
|
INCBIN "gfx/bgattr/titlescreen.bgattr"
|
|
|
|
SECTION "bank31.2", ROMX
|
|
|
|
CopyrightScreenTilemap: ; 0xc6000
|
|
INCBIN "gfx/tilemaps/copyright_screen.map"
|
|
CopyrightScreenBGAttributes: ; 0xc6400
|
|
INCBIN "gfx/bgattr/copyright_screen.bgattr"
|
|
|
|
StageBlueFieldTopTilemap_GameBoyColor: ; 0xc6800
|
|
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor.map"
|
|
StageBlueFieldTopTilemap2_GameBoyColor: ; 0xc6c00
|
|
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor_2.map"
|
|
|
|
StageBlueFieldBottomTilemap_GameBoyColor: ; 0xc7000
|
|
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor.map"
|
|
StageBlueFieldBottomTilemap2_GameBoyColor: ; 0xc7400
|
|
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor_2.map"
|
|
|
|
StageGengarBonusCollisionAttributesBallEntrance: ; 0xc7800
|
|
INCBIN "data/collision/maps/gengar_bonus_ball_entrance.collision"
|
|
|
|
SECTION "bank32", ROMX
|
|
|
|
StageGengarBonusCollisionAttributes: ; 0xc8000
|
|
INCBIN "data/collision/maps/gengar_bonus.collision"
|
|
|
|
SECTION "bank32.2", ROMX
|
|
|
|
GengarBonusTilemap_GameBoy: ; 0xc8800
|
|
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboy.map"
|
|
|
|
SECTION "bank32.3", ROMX
|
|
|
|
GengarBonusBottomTilemap_GameBoyColor: ; 0xc9000
|
|
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor.map"
|
|
GengarBonusBottomTilemap2_GameBoyColor: ; 0xc9400
|
|
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor_2.map"
|
|
|
|
MewtwoBonus3Gfx: ; 0xc9800
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_3.2bpp"
|
|
MewtwoBonus1Gfx: ; 0xc99a0
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_1.2bpp"
|
|
MewtwoBonus2Gfx: ; 0xc9c00
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_2.2bpp"
|
|
MewtwoBonus4Gfx: ; 0xc9c60
|
|
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_4.2bpp"
|
|
|
|
SECTION "bank32.4", ROMX
|
|
|
|
StageMewtwoBonusCollisionAttributesBallEntrance: ; 0xca000
|
|
INCBIN "data/collision/maps/mewtwo_bonus_ball_entrance.collision"
|
|
|
|
SECTION "bank32.5", ROMX
|
|
|
|
StageMewtwoBonusCollisionAttributes: ; 0xca800
|
|
INCBIN "data/collision/maps/mewtwo_bonus.collision"
|
|
|
|
SECTION "bank32.6", ROMX
|
|
|
|
MewtwoBonusTilemap_GameBoy: ; 0xcb000
|
|
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboy.map"
|
|
|
|
SECTION "bank32.7", ROMX
|
|
|
|
MewtoBonusBottomTilemap_GameBoyColor: ; 0xcb800
|
|
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor.map"
|
|
MewtoBonusBottomTilemap2_GameBoyColor: ; 0xcbc00
|
|
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor_2.map"
|
|
|
|
SECTION "bank33", ROMX
|
|
|
|
MeowthBonusMeowth3Gfx: ; 0xcc000
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_3.2bpp"
|
|
MeowthBonusMeowth1Gfx: ; 0xcc1a0
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_1.2bpp"
|
|
MeowthBonusMeowth2Gfx: ; 0xcc400
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_2.2bpp"
|
|
MeowthBonusMeowth4Gfx: ; 0xcc460
|
|
INCBIN "gfx/stage/meowth_bonus/meowth_4.2bpp"
|
|
|
|
SECTION "bank33.2", ROMX
|
|
|
|
StageMeowthBonusCollisionAttributesBallEntrance: ; 0xcc800
|
|
INCBIN "data/collision/maps/meowth_bonus_ball_entrance.collision"
|
|
|
|
SECTION "bank33.3", ROMX
|
|
|
|
StageMeowthBonusCollisionAttributes: ; 0xcd000
|
|
INCBIN "data/collision/maps/meowth_bonus.collision"
|
|
|
|
SECTION "bank33.4", ROMX
|
|
|
|
MeowthBonusTilemap_GameBoy: ; 0xcd800
|
|
INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboy.map"
|
|
|
|
SECTION "bank33.5", ROMX
|
|
|
|
MeowthBonusTilemap_GameBoyColor: ; 0xce000
|
|
INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor.map"
|
|
MeowthBonusTilemap2_GameBoyColor: ; 0xce400
|
|
INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor_2.map"
|
|
|
|
StageDiglettBonusCollisionAttributesBallEntrance: ; 0xce800
|
|
INCBIN "data/collision/maps/diglett_bonus_ball_entrance.collision"
|
|
|
|
SECTION "bank33.6", ROMX
|
|
|
|
StageDiglettBonusCollisionAttributes: ; 0xcf000
|
|
INCBIN "data/collision/maps/diglett_bonus.collision"
|
|
|
|
SECTION "bank33.7", ROMX
|
|
|
|
DiglettBonusTilemap_GameBoy: ; 0xcf800
|
|
INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboy.map"
|
|
|
|
SECTION "bank34", ROMX
|
|
|
|
INCLUDE "data/collision/mon_collision_masks.asm"
|
|
|
|
INCBIN "gfx/tilemaps/unused_tilemap_d2800.map"
|
|
|
|
DiglettBonusTilemap_GameBoyColor: ; 0xd3000
|
|
INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor.map"
|
|
DiglettBonusTilemap2_GameBoyColor: ; 0xd3400
|
|
INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor_2.map"
|
|
|
|
INCBIN "data/unused_data_d3800.bin"
|
|
|
|
SECTION "bank35", ROMX
|
|
|
|
StageSeelBonusCollisionAttributesBallEntrance: ; 0xd4000
|
|
INCBIN "data/collision/maps/seel_bonus_ball_entrance.collision"
|
|
|
|
SECTION "bank35.2", ROMX
|
|
|
|
StageSeelBonusCollisionAttributes: ; 0xd4800
|
|
INCBIN "data/collision/maps/seel_bonus.collision"
|
|
|
|
SECTION "bank35.3", ROMX
|
|
|
|
SeelBonusTilemap_GameBoy: ; 0xd5000
|
|
INCBIN "gfx/tilemaps/stage_seel_bonus_gameboy.map"
|
|
|
|
SECTION "bank35.4", ROMX
|
|
|
|
SeelBonusTilemap_GameBoyColor: ; 0xd5800
|
|
INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor.map"
|
|
SeelBonusTilemap2_GameBoyColor: ; 0xd5c00
|
|
INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor_2.map"
|
|
|
|
Alphabet1Gfx: ; 0xd6000
|
|
INCBIN "gfx/stage/alphabet_1.2bpp"
|
|
|
|
Exclamation_Point_CharacterGfx: INCBIN "gfx/stage/exclamation_point_mono.2bpp" ;DMG excalamation point
|
|
Period_CharacterGfx: INCBIN "gfx/stage/period_mono.2bpp" ;DMG period
|
|
E_Acute_CharacterGfx: INCBIN "gfx/stage/e_acute_mono.2bpp"
|
|
Apostrophe_CharacterGfx: INCBIN "gfx/stage/apostrophe_mono.2bpp" ;DMG apostrophe
|
|
Colon_CharacterGfx: INCBIN "gfx/stage/colon_mono.2bpp" ;DMG colon
|
|
|
|
SECTION "bank35.5", ROMX
|
|
|
|
Alphabet2Gfx: ; 0xd6200
|
|
INCBIN "gfx/stage/alphabet_2.2bpp"
|
|
|
|
Exclamation_Point_CharacterGfx_GameboyColor: INCBIN "gfx/stage/exclamation_point_color.2bpp";gbc excalamation point
|
|
Period_CharacterGfx_GameboyColor: INCBIN "gfx/stage/period_color.2bpp" ;gbc period
|
|
E_Acute_CharacterGfx_GameboyColor: INCBIN "gfx/stage/e_acute_color.2bpp"
|
|
Apostrophe_CharacterGfx_GameboyColor: INCBIN "gfx/stage/apostrophe_color.2bpp" ;GBC apostrophe
|
|
Colon_CharacterGfx_GameboyColor: INCBIN "gfx/stage/colon_color.2bpp" ;gbc colon
|
|
|
|
SECTION "bank35.6", ROMX
|
|
|
|
InGameMenuSymbolsGfx: ; 0xd6400
|
|
INCBIN "gfx/stage/menu_symbols.2bpp"
|
|
|
|
SECTION "bank35.7", ROMX
|
|
|
|
StageBlueFieldTopGfx3: ; 0xd6600
|
|
INCBIN "gfx/stage/blue_top/blue_top_3.2bpp"
|
|
StageBlueFieldTopGfx1: ; 0xd67a0
|
|
INCBIN "gfx/stage/blue_top/blue_top_1.2bpp"
|
|
StageBlueFieldTopGfx2: ; 0xd6a00
|
|
INCBIN "gfx/stage/blue_top/blue_top_2.2bpp"
|
|
|
|
StageRedJapaneseCharactersGfx: ; 0xd6c00
|
|
INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp"
|
|
StageRedJapaneseCharactersGfx2: ; 0xd7000
|
|
INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palette_maps_1.asm"
|
|
INCLUDE "gfx/high_scores/high_scores_transition_palettes_2.asm"
|
|
|
|
SECTION "bank36", ROMX
|
|
|
|
PaletteMap_d8000: ; 0xd8000
|
|
db $6, $6, $6, $6, $6, $6
|
|
db $6, $6, $6, $6, $6, $6
|
|
db $6, $6, $6, $6, $6, $6
|
|
db $6, $6, $6, $6, $6, $6
|
|
|
|
SECTION "bank36.2", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palette_maps_2.asm"
|
|
|
|
SaverTextOffGfx: ; 0xd8c00
|
|
INCBIN "gfx/stage/saver_off.2bpp"
|
|
|
|
AgainTextOffGfx: ; 0xd8c40
|
|
INCBIN "gfx/stage/again_off.2bpp"
|
|
|
|
CatchTextGfx:
|
|
INCBIN "gfx/stage/catch.w48.2bpp"
|
|
|
|
UnusedEvolutionTextGfx: ; 0xd8ce0
|
|
INCBIN "gfx/stage/unused_evolution_text.2bpp"
|
|
|
|
EvolutionProgressIconsGfx:
|
|
INCBIN "gfx/stage/evolution_progress_icons.2bpp"
|
|
|
|
CaughtPokeballGfx: ; 0xd8f60
|
|
INCBIN "gfx/stage/caught_pokeball.2bpp"
|
|
|
|
SECTION "bank36.3", ROMX
|
|
|
|
StageRedFieldBottomCollisionMasks: ; 0xd9000
|
|
INCBIN "data/collision/masks/red_stage_bottom.masks"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palette_maps_3.asm"
|
|
|
|
SelectGameboyTargetTextGfx: ; 0xd9c00
|
|
INCBIN "gfx/select_gb_target_text.2bpp"
|
|
|
|
CopyrightTextGfx: ; 0xda000
|
|
INCBIN "gfx/copyright_text.2bpp"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palette_maps_4.asm"
|
|
|
|
StageSharedBonusSlotGlowGfx: ; 0xdac00
|
|
INCBIN "gfx/stage/shared/bonus_slot_glow.2bpp"
|
|
|
|
SECTION "bank36.4", ROMX
|
|
|
|
StageSharedBonusSlotGlow2Gfx: ; 0xdade0
|
|
INCBIN "gfx/stage/shared/bonus_slot_glow_2.2bpp"
|
|
|
|
StageRedFieldTopGfx5: ; 0xdae00
|
|
INCBIN "gfx/stage/red_top/red_top_5.2bpp"
|
|
|
|
TimerDigitsGfx2: ; 0xdb000
|
|
INCBIN "gfx/stage/timer_digits.2bpp"
|
|
|
|
SECTION "bank36.5", ROMX
|
|
|
|
TimerDigitsGfx: ; 0xdb200
|
|
INCBIN "gfx/stage/timer_digits.2bpp"
|
|
|
|
SECTION "bank36.6", ROMX
|
|
|
|
GengarBonusGroundGfx: ; 0xdb400
|
|
INCBIN "gfx/stage/gengar_bonus/gengar_ground.2bpp"
|
|
|
|
SECTION "bank36.7", ROMX
|
|
|
|
StageGengarBonusCollisionMasks: ; 0xdb600
|
|
INCBIN "data/collision/masks/gengar_bonus.masks"
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_palettes_2.asm"
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_4.asm"
|
|
|
|
StageRedFieldTopGfx6: ; 0xdbb80
|
|
INCBIN "gfx/stage/red_top/red_top_6.2bpp"
|
|
|
|
SECTION "bank36.8", ROMX
|
|
|
|
StageMewtwoBonusCollisionMasks: ; 0xdbc80
|
|
INCBIN "data/collision/masks/mewtwo_bonus.masks"
|
|
|
|
INCLUDE "data/mon_gfx/mon_animated_palettes_3.asm"
|
|
|
|
EvolutionTrinketsGfx:
|
|
INCBIN "gfx/stage/shared/evolution_trinkets.2bpp"
|
|
|
|
Unknown_dbf60: ; 0xdbf60
|
|
; this seems to be unused garbage
|
|
INCBIN "data/unknown/unused_dbf60.bin"
|
|
|
|
SECTION "bank37", ROMX
|
|
|
|
StageSharedArrowsGfx: ; 0xdc000
|
|
INCBIN "gfx/stage/shared/arrows.2bpp"
|
|
|
|
SECTION "bank37.2", ROMX
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_5.asm"
|
|
|
|
StageMeowthBonusCollisionMasks: ; 0xdc600
|
|
INCBIN "data/collision/masks/meowth_bonus.masks"
|
|
|
|
INCLUDE "data/mon_gfx/mon_billboard_palettes_6.asm"
|
|
INCLUDE "data/stage_palettes.asm"
|
|
INCLUDE "data/billboard/map_palettes_2.asm"
|
|
INCLUDE "data/ball_palettes.asm"
|
|
|
|
PaletteData_dd188: ; 0xdd188
|
|
RGB 31, 31, 31
|
|
RGB 31, 29, 0
|
|
RGB 29, 3, 2
|
|
RGB 2, 2, 2
|
|
PaletteData_dd190: ; 0xdd190
|
|
RGB 31, 31, 31
|
|
RGB 9, 22, 6
|
|
RGB 4, 13, 31
|
|
RGB 2, 2, 2
|
|
PaletteData_dd198: ; 0xdd198
|
|
RGB 31, 31, 31
|
|
RGB 31, 26, 2
|
|
RGB 31, 3, 0
|
|
RGB 0, 0, 0
|
|
PaletteData_dd1a0: ; 0xdd1a0
|
|
RGB 31, 31, 31
|
|
RGB 31, 26, 2
|
|
RGB 31, 3, 0
|
|
RGB 0, 0, 0
|
|
|
|
SECTION "bank39", ROMX
|
|
|
|
BallPhysicsData_e4000:
|
|
INCBIN "data/collision/ball_physics_e4000.bin"
|
|
|
|
SECTION "bank3a", ROMX
|
|
|
|
GengarCollisionAngles:
|
|
INCBIN "data/collision/gengar_collision_angles.bin"
|
|
|
|
HaunterCollisionAngles:
|
|
INCBIN "data/collision/haunter_collision_angles.bin"
|
|
|
|
CircularCollisionAngles: ; 0xe9100
|
|
INCBIN "data/collision/circle_collision_angles.bin"
|
|
|
|
MeowthCollisionAngles:
|
|
INCBIN "data/collision/meowth_collision_angles.bin"
|
|
|
|
MeowthJewelCollisionAngles:
|
|
INCBIN "data/collision/meowth_jewel_collision_angles.bin"
|
|
|
|
SECTION "bank3b", ROMX
|
|
BallPhysicsData_ec000:
|
|
INCBIN "data/collision/ball_physics_ec000.bin"
|
|
|
|
SECTION "bank3c", ROMX
|
|
BallPhysicsData_f0000:
|
|
INCBIN "data/collision/ball_physics_f0000.bin"
|
|
|
|
TiltRightOnlyForce: ; 0xf2400
|
|
INCBIN "data/tilt/right_only"
|
|
TiltUpRightForce:
|
|
INCBIN "data/tilt/up_right"
|
|
TiltUpOnlyForce:
|
|
INCBIN "data/tilt/up_only"
|
|
TiltUpLeftForce:
|
|
INCBIN "data/tilt/up_left"
|
|
TiltLeftOnlyForce:
|
|
INCBIN "data/tilt/left_only"
|
|
|
|
SECTION "bank3d", ROMX
|
|
|
|
FlipperHorizontalCollisionAttributes: ; 0xf4000
|
|
INCBIN "data/collision/flippers/horizontal_attributes_0"
|
|
|
|
SECTION "bank3e", ROMX
|
|
|
|
FlipperHorizontalCollisionAttributes2: ; 0xf8000
|
|
INCBIN "data/collision/flippers/horizontal_attributes_1"
|
|
|
|
FlipperVerticalCollisionAttributes: ; 0xfa000
|
|
INCBIN "data/collision/flippers/vertical_attributes_0"
|
|
|
|
SECTION "bank3f", ROMX
|
|
|
|
FlipperVerticalCollisionAttributes2: ; 0xfc000
|
|
INCBIN "data/collision/flippers/vertical_attributes_1"
|