mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
commit
6e46ec61f9
21 changed files with 423 additions and 349 deletions
|
@ -20,9 +20,14 @@ D_LEFT EQU %00100000
|
||||||
D_UP EQU %01000000
|
D_UP EQU %01000000
|
||||||
D_DOWN EQU %10000000
|
D_DOWN EQU %10000000
|
||||||
|
|
||||||
|
PIXELS_PER_TILE EQU 8
|
||||||
|
|
||||||
SCREEN_WIDTH EQU 20
|
SCREEN_WIDTH EQU 20
|
||||||
SCREEN_HEIGHT EQU 18
|
SCREEN_HEIGHT EQU 18
|
||||||
|
|
||||||
|
SCREEN_WIDTH_PIXELS EQU SCREEN_WIDTH * PIXELS_PER_TILE
|
||||||
|
SCREEN_HEIGHT_PIXELS EQU SCREEN_HEIGHT * PIXELS_PER_TILE
|
||||||
|
|
||||||
NPC_MOVEMENT_DOWN EQU $00
|
NPC_MOVEMENT_DOWN EQU $00
|
||||||
NPC_MOVEMENT_UP EQU $40
|
NPC_MOVEMENT_UP EQU $40
|
||||||
NPC_MOVEMENT_LEFT EQU $80
|
NPC_MOVEMENT_LEFT EQU $80
|
||||||
|
|
|
@ -28,67 +28,78 @@ AnimateShootingStar: ; 70044 (1c:4044)
|
||||||
call LoadShootingStarGraphics
|
call LoadShootingStarGraphics
|
||||||
ld a, (SFX_1f_67 - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_67 - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
|
|
||||||
|
; Move the big star down and left across the screen.
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld bc, $a004
|
ld bc, $a004
|
||||||
.asm_70052
|
.bigStarLoop
|
||||||
push hl
|
push hl
|
||||||
push bc
|
push bc
|
||||||
.asm_70054
|
.bigStarInnerLoop
|
||||||
ld a, [hl]
|
ld a, [hl] ; Y
|
||||||
add $4
|
add 4
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld a, [hl]
|
ld a, [hl] ; X
|
||||||
add $fc
|
add -4
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_70054
|
jr nz, .bigStarInnerLoop
|
||||||
ld c, $1
|
ld c, 1
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
pop bc
|
pop bc
|
||||||
pop hl
|
pop hl
|
||||||
ret c
|
ret c
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $50
|
cp 80
|
||||||
jr nz, .asm_70070
|
jr nz, .next
|
||||||
jr .asm_70052
|
jr .bigStarLoop
|
||||||
.asm_70070
|
.next
|
||||||
cp b
|
cp b
|
||||||
jr nz, .asm_70052
|
jr nz, .bigStarLoop
|
||||||
|
|
||||||
|
; Clear big star OAM.
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld c, $4
|
ld c, 4
|
||||||
ld de, $4
|
ld de, 4
|
||||||
.asm_7007b
|
.clearOAMLoop
|
||||||
ld [hl], $a0
|
ld [hl], 160
|
||||||
add hl, de
|
add hl, de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_7007b
|
jr nz, .clearOAMLoop
|
||||||
ld b, $3
|
|
||||||
.asm_70083
|
; Make Gamefreak logo flash.
|
||||||
|
ld b, 3
|
||||||
|
.flashLogoLoop
|
||||||
ld hl, rOBP0
|
ld hl, rOBP0
|
||||||
rrc [hl]
|
rrc [hl]
|
||||||
rrc [hl]
|
rrc [hl]
|
||||||
ld c, $a
|
ld c, 10
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
ret c
|
ret c
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_70083
|
jr nz, .flashLogoLoop
|
||||||
|
|
||||||
|
; Copy 24 instances of the small stars OAM data.
|
||||||
|
; Note that their coordinates put them off-screen.
|
||||||
ld de, wOAMBuffer
|
ld de, wOAMBuffer
|
||||||
ld a, $18
|
ld a, 24
|
||||||
.asm_70098
|
.initSmallStarsOAMLoop
|
||||||
push af
|
push af
|
||||||
ld hl, OAMData_700ee
|
ld hl, SmallStarsOAM
|
||||||
ld bc, $4
|
ld bc, 4
|
||||||
call CopyData
|
call CopyData
|
||||||
pop af
|
pop af
|
||||||
dec a
|
dec a
|
||||||
jr nz, .asm_70098
|
jr nz, .initSmallStarsOAMLoop
|
||||||
|
|
||||||
|
; Animate the small stars falling from the Gamefreak logo.
|
||||||
xor a
|
xor a
|
||||||
ld [wWhichTrade], a
|
ld [wMoveDownSmallStarsOAMCount], a
|
||||||
ld hl, PointerTable_700f2
|
ld hl, SmallStarsWaveCoordsPointerTable
|
||||||
ld c, $6
|
ld c, 6
|
||||||
.asm_700af
|
.smallStarsLoop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld e, a
|
ld e, a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
|
@ -96,100 +107,109 @@ AnimateShootingStar: ; 70044 (1c:4044)
|
||||||
push bc
|
push bc
|
||||||
push hl
|
push hl
|
||||||
ld hl, wOAMBuffer + $50
|
ld hl, wOAMBuffer + $50
|
||||||
ld c, $4
|
ld c, 4
|
||||||
.asm_700ba
|
.smallStarsInnerLoop ; introduce new wave of 4 small stars OAM entries
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
cp $ff
|
cp $ff
|
||||||
jr z, .asm_700d5
|
jr z, .next2
|
||||||
ld [hli], a
|
ld [hli], a ; Y
|
||||||
inc de
|
inc de
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
ld [hli], a
|
ld [hli], a ; X
|
||||||
inc de
|
inc de
|
||||||
inc hl
|
inc hl
|
||||||
inc hl
|
inc hl
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_700ba
|
jr nz, .smallStarsInnerLoop
|
||||||
ld a, [wWhichTrade]
|
ld a, [wMoveDownSmallStarsOAMCount]
|
||||||
cp $18
|
cp 24
|
||||||
jr z, .asm_700d5
|
jr z, .next2
|
||||||
add $6
|
add 6 ; should be 4, but the extra 2 aren't visible on screen
|
||||||
ld [wWhichTrade], a
|
ld [wMoveDownSmallStarsOAMCount], a
|
||||||
.asm_700d5
|
.next2
|
||||||
call Func_7011f
|
call MoveDownSmallStars
|
||||||
push af
|
push af
|
||||||
|
|
||||||
|
; shift the existing OAM entries down to make room for the next wave
|
||||||
ld hl, wOAMBuffer + $10
|
ld hl, wOAMBuffer + $10
|
||||||
ld de, wOAMBuffer
|
ld de, wOAMBuffer
|
||||||
ld bc, $50
|
ld bc, $50
|
||||||
call CopyData
|
call CopyData
|
||||||
|
|
||||||
pop af
|
pop af
|
||||||
pop hl
|
pop hl
|
||||||
pop bc
|
pop bc
|
||||||
ret c
|
ret c
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_700af
|
jr nz, .smallStarsLoop
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
OAMData_700ee: ; 700ee (1c:40ee)
|
SmallStarsOAM: ; 700ee (1c:40ee)
|
||||||
db $00,$00,$A2,$90
|
db $00,$00,$A2,$90
|
||||||
|
|
||||||
PointerTable_700f2: ; 700f2 (1c:40f2)
|
SmallStarsWaveCoordsPointerTable: ; 700f2 (1c:40f2)
|
||||||
dw OAMData_700fe
|
dw SmallStarsWave1Coords
|
||||||
dw OAMData_70106
|
dw SmallStarsWave2Coords
|
||||||
dw OAMData_7010e
|
dw SmallStarsWave3Coords
|
||||||
dw OAMData_70116
|
dw SmallStarsWave4Coords
|
||||||
dw OAMData_7011e
|
dw SmallStarsEmptyWave
|
||||||
dw OAMData_7011e
|
dw SmallStarsEmptyWave
|
||||||
|
|
||||||
; each entry is only half of an OAM tile
|
; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries.
|
||||||
OAMData_700fe: ; 700fe (1c:40fe)
|
; These arrays contain the Y and X coordinates of each OAM entry.
|
||||||
|
|
||||||
|
SmallStarsWave1Coords: ; 700fe (1c:40fe)
|
||||||
db $68,$30
|
db $68,$30
|
||||||
db $68,$40
|
db $68,$40
|
||||||
db $68,$58
|
db $68,$58
|
||||||
db $68,$78
|
db $68,$78
|
||||||
|
|
||||||
OAMData_70106: ; 70106 (1c:4106)
|
SmallStarsWave2Coords: ; 70106 (1c:4106)
|
||||||
db $68,$38
|
db $68,$38
|
||||||
db $68,$48
|
db $68,$48
|
||||||
db $68,$60
|
db $68,$60
|
||||||
db $68,$70
|
db $68,$70
|
||||||
|
|
||||||
OAMData_7010e: ; 7010e (1c:410e)
|
SmallStarsWave3Coords: ; 7010e (1c:410e)
|
||||||
db $68,$34
|
db $68,$34
|
||||||
db $68,$4C
|
db $68,$4C
|
||||||
db $68,$54
|
db $68,$54
|
||||||
db $68,$64
|
db $68,$64
|
||||||
|
|
||||||
OAMData_70116: ; 70116 (1c:4116)
|
SmallStarsWave4Coords: ; 70116 (1c:4116)
|
||||||
db $68,$3C
|
db $68,$3C
|
||||||
db $68,$5C
|
db $68,$5C
|
||||||
db $68,$6C
|
db $68,$6C
|
||||||
db $68,$74
|
db $68,$74
|
||||||
|
|
||||||
OAMData_7011e: ; 7011e (1c:411e)
|
SmallStarsEmptyWave: ; 7011e (1c:411e)
|
||||||
db $FF
|
db $FF
|
||||||
|
|
||||||
Func_7011f: ; 7011f (1c:411f)
|
MoveDownSmallStars: ; 7011f (1c:411f)
|
||||||
ld b, $8
|
ld b, 8
|
||||||
.asm_70121
|
.loop
|
||||||
ld hl, wOAMBuffer + $5c
|
ld hl, wOAMBuffer + $5c
|
||||||
ld a, [wWhichTrade]
|
ld a, [wMoveDownSmallStarsOAMCount]
|
||||||
ld de, $fffc
|
ld de, -4
|
||||||
ld c, a
|
ld c, a
|
||||||
.asm_7012b
|
.innerLoop
|
||||||
inc [hl]
|
inc [hl] ; Y
|
||||||
add hl, de
|
add hl, de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_7012b
|
jr nz, .innerLoop
|
||||||
|
|
||||||
|
; Toggle the palette so that the lower star in the small stars tile blinks in
|
||||||
|
; and out.
|
||||||
ld a, [rOBP1]
|
ld a, [rOBP1]
|
||||||
xor $a0
|
xor %10100000
|
||||||
ld [rOBP1], a
|
ld [rOBP1], a
|
||||||
ld c, $3
|
|
||||||
|
ld c, 3
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
ret c
|
ret c
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_70121
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
GameFreakLogoOAMData: ; 70140 (1c:4140)
|
GameFreakLogoOAMData: ; 70140 (1c:4140)
|
||||||
|
|
143
engine/intro.asm
143
engine/intro.asm
|
@ -22,16 +22,16 @@ PlayIntroScene: ; 4169d (10:569d)
|
||||||
ld [rOBP1], a
|
ld [rOBP1], a
|
||||||
xor a
|
xor a
|
||||||
ld [hSCX], a
|
ld [hSCX], a
|
||||||
ld b, $3
|
ld b, $3 ; Gengar tiles
|
||||||
call Func_4183f
|
call IntroCopyTiles
|
||||||
ld a, 0
|
ld a, 0
|
||||||
ld [W_BASECOORDX], a
|
ld [W_BASECOORDX], a
|
||||||
ld a, 80
|
ld a, 80
|
||||||
ld [W_BASECOORDY], a
|
ld [W_BASECOORDY], a
|
||||||
ld bc, $606
|
ld bc, $606
|
||||||
call Func_417c7
|
call InitIntroNidorinoOAM
|
||||||
ld de, $28ff
|
ld de, $28ff ; move Nidorino right by 80 pixels
|
||||||
call Func_4180e
|
call IntroMoveMon
|
||||||
ret c
|
ret c
|
||||||
|
|
||||||
; hip
|
; hip
|
||||||
|
@ -66,22 +66,22 @@ PlayIntroScene: ; 4169d (10:569d)
|
||||||
|
|
||||||
; raise
|
; raise
|
||||||
ld b, $4
|
ld b, $4
|
||||||
call Func_4183f
|
call IntroCopyTiles
|
||||||
ld a, (SFX_1f_61 - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_61 - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
ld de, $401
|
ld de, $401 ; move Gengar left by 8 pixels
|
||||||
call Func_4180e
|
call IntroMoveMon
|
||||||
ld c, $1e
|
ld c, $1e
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
ret c
|
ret c
|
||||||
|
|
||||||
; slash
|
; slash
|
||||||
ld b, $5
|
ld b, $5
|
||||||
call Func_4183f
|
call IntroCopyTiles
|
||||||
ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
ld de, $800
|
ld de, $800 ; move Gengar right by 16 pixels
|
||||||
call Func_4180e
|
call IntroMoveMon
|
||||||
; hip
|
; hip
|
||||||
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_5f - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
|
@ -93,10 +93,10 @@ PlayIntroScene: ; 4169d (10:569d)
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
ret c
|
ret c
|
||||||
|
|
||||||
ld de, $401
|
ld de, $401 ; move Gengar left by 8 pixels
|
||||||
call Func_4180e
|
call IntroMoveMon
|
||||||
ld b, $3
|
ld b, $3
|
||||||
call Func_4183f
|
call IntroCopyTiles
|
||||||
ld c, $3c
|
ld c, $3c
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
ret c
|
ret c
|
||||||
|
@ -142,19 +142,19 @@ AnimateIntroNidorino: ; 41793 (10:5793)
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
ld [W_BASECOORDX], a
|
ld [W_BASECOORDX], a
|
||||||
push de
|
push de
|
||||||
ld c, $24
|
ld c, 6 * 6
|
||||||
call Func_417ae
|
call UpdateIntroNidorinoOAM
|
||||||
ld c, 5
|
ld c, 5
|
||||||
call DelayFrames
|
call DelayFrames
|
||||||
pop de
|
pop de
|
||||||
inc de
|
inc de
|
||||||
jr AnimateIntroNidorino
|
jr AnimateIntroNidorino
|
||||||
|
|
||||||
Func_417ae: ; 417ae (10:57ae)
|
UpdateIntroNidorinoOAM: ; 417ae (10:57ae)
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld a, [wd09f]
|
ld a, [wd09f]
|
||||||
ld d, a
|
ld d, a
|
||||||
.asm_417b5
|
.loop
|
||||||
ld a, [W_BASECOORDY]
|
ld a, [W_BASECOORDY]
|
||||||
add [hl]
|
add [hl]
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
|
@ -166,105 +166,111 @@ Func_417ae: ; 417ae (10:57ae)
|
||||||
inc hl
|
inc hl
|
||||||
inc d
|
inc d
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_417b5
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_417c7: ; 417c7 (10:57c7)
|
InitIntroNidorinoOAM: ; 417c7 (10:57c7)
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld d, $0
|
ld d, 0
|
||||||
.asm_417cc
|
.loop
|
||||||
push bc
|
push bc
|
||||||
ld a, [W_BASECOORDY]
|
ld a, [W_BASECOORDY]
|
||||||
ld e, a
|
ld e, a
|
||||||
.asm_417d1
|
.innerLoop
|
||||||
ld a, e
|
ld a, e
|
||||||
add $8
|
add 8
|
||||||
ld e, a
|
ld e, a
|
||||||
ld [hli], a
|
ld [hli], a ; Y
|
||||||
ld a, [W_BASECOORDX]
|
ld a, [W_BASECOORDX]
|
||||||
ld [hli], a
|
ld [hli], a ; X
|
||||||
ld a, d
|
ld a, d
|
||||||
ld [hli], a
|
ld [hli], a ; tile
|
||||||
ld a, $80
|
ld a, $80
|
||||||
ld [hli], a
|
ld [hli], a ; attributes
|
||||||
inc d
|
inc d
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_417d1
|
jr nz, .innerLoop
|
||||||
ld a, [W_BASECOORDX]
|
ld a, [W_BASECOORDX]
|
||||||
add $8
|
add 8
|
||||||
ld [W_BASECOORDX], a
|
ld [W_BASECOORDX], a
|
||||||
pop bc
|
pop bc
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_417cc
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_417f0: ; 417f0 (10:57f0)
|
IntroClearScreen: ; 417f0 (10:57f0)
|
||||||
ld hl, vBGMap1
|
ld hl, vBGMap1
|
||||||
ld bc, $240
|
ld bc, $240
|
||||||
jr asm_417fe
|
jr IntroClearCommon
|
||||||
|
|
||||||
Func_417f8: ; 417f8 (10:57f8)
|
IntroClearMiddleOfScreen: ; 417f8 (10:57f8)
|
||||||
|
; clear the area of the tile map between the black bars on the top and bottom
|
||||||
hlCoord 0, 4
|
hlCoord 0, 4
|
||||||
ld bc, $c8
|
ld bc, SCREEN_WIDTH * 10
|
||||||
asm_417fe: ; 417fe (10:57fe)
|
|
||||||
|
IntroClearCommon: ; 417fe (10:57fe)
|
||||||
ld [hl], $0
|
ld [hl], $0
|
||||||
inc hl
|
inc hl
|
||||||
dec bc
|
dec bc
|
||||||
ld a, b
|
ld a, b
|
||||||
or c
|
or c
|
||||||
jr nz, asm_417fe
|
jr nz, IntroClearCommon
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_41807: ; 41807 (10:5807)
|
IntroPlaceBlackTiles: ; 41807 (10:5807)
|
||||||
ld a, $1
|
ld a, $1
|
||||||
.asm_41809
|
.loop
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_41809
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_4180e: ; 4180e (10:580e)
|
IntroMoveMon: ; 4180e (10:580e)
|
||||||
|
; d = number of times to move the mon (2 pixels each time)
|
||||||
|
; e: $00 = move Gengar right, $01 = move Gengar left, $ff = move Nidorino right
|
||||||
ld a, e
|
ld a, e
|
||||||
cp $ff
|
cp $ff
|
||||||
jr z, .asm_4181d
|
jr z, .moveNidorinoRight
|
||||||
cp $1
|
cp $1
|
||||||
jr z, .asm_4182d
|
jr z, .moveGengarLeft
|
||||||
|
; move Gengar right
|
||||||
ld a, [hSCX]
|
ld a, [hSCX]
|
||||||
dec a
|
dec a
|
||||||
dec a
|
dec a
|
||||||
jr .asm_41831
|
jr .next
|
||||||
.asm_4181d
|
.moveNidorinoRight
|
||||||
push de
|
push de
|
||||||
ld a, $2
|
ld a, 2
|
||||||
ld [W_BASECOORDX], a
|
ld [W_BASECOORDX], a
|
||||||
xor a
|
xor a
|
||||||
ld [W_BASECOORDY], a
|
ld [W_BASECOORDY], a
|
||||||
ld c, $24
|
ld c, 6 * 6
|
||||||
call Func_417ae
|
call UpdateIntroNidorinoOAM
|
||||||
pop de
|
pop de
|
||||||
.asm_4182d
|
.moveGengarLeft
|
||||||
ld a, [hSCX]
|
ld a, [hSCX]
|
||||||
inc a
|
inc a
|
||||||
inc a
|
inc a
|
||||||
.asm_41831
|
.next
|
||||||
ld [hSCX], a
|
ld [hSCX], a
|
||||||
push de
|
push de
|
||||||
ld c, $2
|
ld c, 2
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
pop de
|
pop de
|
||||||
ret c
|
ret c
|
||||||
dec d
|
dec d
|
||||||
jr nz, Func_4180e
|
jr nz, IntroMoveMon
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_4183f: ; 4183f (10:583f)
|
IntroCopyTiles: ; 4183f (10:583f)
|
||||||
hlCoord 13, 7
|
hlCoord 13, 7
|
||||||
|
|
||||||
CopyTileIDsFromList_ZeroBaseTileID: ; 41842 (10:5842)
|
CopyTileIDsFromList_ZeroBaseTileID: ; 41842 (10:5842)
|
||||||
ld c, $0
|
ld c, 0
|
||||||
predef_jump CopyTileIDsFromList
|
predef_jump CopyTileIDsFromList
|
||||||
|
|
||||||
Func_41849: ; 41849 (10:5849)
|
PlayMoveSoundB: ; 41849 (10:5849)
|
||||||
|
; unused
|
||||||
predef GetMoveSoundB
|
predef GetMoveSoundB
|
||||||
ld a, b
|
ld a, b
|
||||||
jp PlaySound
|
jp PlaySound
|
||||||
|
@ -303,7 +309,7 @@ PlayShootingStar: ; 4188a (10:588a)
|
||||||
call DisableLCD
|
call DisableLCD
|
||||||
xor a
|
xor a
|
||||||
ld [W_CUROPPONENT], a
|
ld [W_CUROPPONENT], a
|
||||||
call Func_418e9
|
call IntroDrawBlackBars
|
||||||
call LoadIntroGraphics
|
call LoadIntroGraphics
|
||||||
call EnableLCD
|
call EnableLCD
|
||||||
ld hl, rLCDC
|
ld hl, rLCDC
|
||||||
|
@ -314,36 +320,37 @@ PlayShootingStar: ; 4188a (10:588a)
|
||||||
callba AnimateShootingStar
|
callba AnimateShootingStar
|
||||||
push af
|
push af
|
||||||
pop af
|
pop af
|
||||||
jr c, .asm_418d0
|
jr c, .next ; skip the delay if the user interrupted the animation
|
||||||
ld c, 40
|
ld c, 40
|
||||||
call DelayFrames
|
call DelayFrames
|
||||||
.asm_418d0
|
.next
|
||||||
ld a, BANK(Music_IntroBattle)
|
ld a, BANK(Music_IntroBattle)
|
||||||
ld [wc0ef], a
|
ld [wc0ef], a
|
||||||
ld [wc0f0], a
|
ld [wc0f0], a
|
||||||
ld a, MUSIC_INTRO_BATTLE
|
ld a, MUSIC_INTRO_BATTLE
|
||||||
ld [wc0ee], a
|
ld [wc0ee], a
|
||||||
call PlaySound
|
call PlaySound
|
||||||
call Func_417f8
|
call IntroClearMiddleOfScreen
|
||||||
call ClearSprites
|
call ClearSprites
|
||||||
jp Delay3
|
jp Delay3
|
||||||
|
|
||||||
Func_418e9: ; 418e9 (10:58e9)
|
IntroDrawBlackBars: ; 418e9 (10:58e9)
|
||||||
call Func_417f0
|
; clear the screen and draw black bars on the top and bottom
|
||||||
|
call IntroClearScreen
|
||||||
hlCoord 0, 0
|
hlCoord 0, 0
|
||||||
ld c, $50
|
ld c, SCREEN_WIDTH * 4
|
||||||
call Func_41807
|
call IntroPlaceBlackTiles
|
||||||
hlCoord 0, 14
|
hlCoord 0, 14
|
||||||
ld c, $50
|
ld c, SCREEN_WIDTH * 4
|
||||||
call Func_41807
|
call IntroPlaceBlackTiles
|
||||||
ld hl, vBGMap1
|
ld hl, vBGMap1
|
||||||
ld c, $80
|
ld c, $80
|
||||||
call Func_41807
|
call IntroPlaceBlackTiles
|
||||||
ld hl, vBGMap1 + $1c0
|
ld hl, vBGMap1 + $1c0
|
||||||
ld c, $80
|
ld c, $80
|
||||||
jp Func_41807
|
jp IntroPlaceBlackTiles
|
||||||
|
|
||||||
Func_4190c: ; 4190c (10:590c)
|
EmptyFunc4: ; 4190c (10:590c)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
IntroNidorinoAnimation0: ; 4190d (10:590d)
|
IntroNidorinoAnimation0: ; 4190d (10:590d)
|
||||||
|
|
|
@ -36,19 +36,23 @@ DisplayDiploma: ; 566e2 (15:66e2)
|
||||||
hlCoord 10, 4
|
hlCoord 10, 4
|
||||||
ld de, wPlayerName
|
ld de, wPlayerName
|
||||||
call PlaceString
|
call PlaceString
|
||||||
callba Func_44dd
|
callba DrawPlayerCharacter
|
||||||
|
|
||||||
|
; Move the player 33 pixels right and set the priority bit so he appears
|
||||||
|
; behind the background layer.
|
||||||
ld hl, wOAMBuffer + $01
|
ld hl, wOAMBuffer + $01
|
||||||
ld bc, $8028
|
ld bc, $8028
|
||||||
.asm_5673e
|
.adjustPlayerGfxLoop
|
||||||
ld a, [hl]
|
ld a, [hl] ; X
|
||||||
add $21
|
add 33
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
inc hl
|
inc hl
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [hli], a
|
ld [hli], a ; attributes
|
||||||
inc hl
|
inc hl
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_5673e
|
jr nz, .adjustPlayerGfxLoop
|
||||||
|
|
||||||
call EnableLCD
|
call EnableLCD
|
||||||
callba LoadTrainerInfoTextBoxTiles
|
callba LoadTrainerInfoTextBoxTiles
|
||||||
ld b, $8
|
ld b, $8
|
||||||
|
@ -65,15 +69,17 @@ DisplayDiploma: ; 566e2 (15:66e2)
|
||||||
call Delay3
|
call Delay3
|
||||||
jp GBPalNormal
|
jp GBPalNormal
|
||||||
|
|
||||||
Func_56777: ; 56777 (15:6777)
|
UnusedPlayerNameLengthFunc: ; 56777 (15:6777)
|
||||||
|
; Unused function that does a calculation involving the length of the player's
|
||||||
|
; name.
|
||||||
ld hl, wPlayerName
|
ld hl, wPlayerName
|
||||||
ld bc, $ff00
|
ld bc, $ff00
|
||||||
.asm_5677d
|
.loop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
cp $50
|
cp "@"
|
||||||
ret z
|
ret z
|
||||||
dec c
|
dec c
|
||||||
jr .asm_5677d
|
jr .loop
|
||||||
|
|
||||||
DiplomaTextPointersAndCoords: ; 56784 (15:6784)
|
DiplomaTextPointersAndCoords: ; 56784 (15:6784)
|
||||||
dw DiplomaText
|
dw DiplomaText
|
||||||
|
|
|
@ -179,11 +179,11 @@ LoadCoinsToSubtract: ; 528b1 (14:68b1)
|
||||||
ld hl,wd141 ; first prize's price
|
ld hl,wd141 ; first prize's price
|
||||||
add hl,de ; get selected prize's price
|
add hl,de ; get selected prize's price
|
||||||
xor a
|
xor a
|
||||||
ld [$FF9F],a
|
ld [hCoins - 1],a
|
||||||
ld a,[hli]
|
ld a,[hli]
|
||||||
ld [$FFA0],a
|
ld [hCoins],a
|
||||||
ld a,[hl]
|
ld a,[hl]
|
||||||
ld [$FFA1],a
|
ld [hCoins + 1],a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
HandlePrizeChoice: ; 528c6 (14:68c6)
|
HandlePrizeChoice: ; 528c6 (14:68c6)
|
||||||
|
@ -239,7 +239,7 @@ HandlePrizeChoice: ; 528c6 (14:68c6)
|
||||||
ret nc
|
ret nc
|
||||||
.SubtractCoins
|
.SubtractCoins
|
||||||
call LoadCoinsToSubtract
|
call LoadCoinsToSubtract
|
||||||
ld hl,$FFA1
|
ld hl,hCoins + 1
|
||||||
ld de,wPlayerCoins + 1
|
ld de,wPlayerCoins + 1
|
||||||
ld c,$02 ; how many bytes
|
ld c,$02 ; how many bytes
|
||||||
predef SubBCDPredef ; subtract coins (BCD daa operations)
|
predef SubBCDPredef ; subtract coins (BCD daa operations)
|
||||||
|
|
|
@ -7,19 +7,19 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
||||||
xor a
|
xor a
|
||||||
ld [wCurrentMenuItem], a
|
ld [wCurrentMenuItem], a
|
||||||
ld [wLastMenuItem], a
|
ld [wLastMenuItem], a
|
||||||
ld a, $3
|
ld a, A_BUTTON | B_BUTTON
|
||||||
ld [wMenuWatchedKeys], a
|
ld [wMenuWatchedKeys], a
|
||||||
ld a, $3
|
ld a, 3
|
||||||
ld [wMaxMenuItem], a
|
ld [wMaxMenuItem], a
|
||||||
ld a, $5
|
ld a, 5
|
||||||
ld [wTopMenuItemY], a
|
ld [wTopMenuItemY], a
|
||||||
ld a, $1
|
ld a, 1
|
||||||
ld [wTopMenuItemX], a
|
ld [wTopMenuItemX], a
|
||||||
ld hl, wd730
|
ld hl, wd730
|
||||||
set 6, [hl]
|
set 6, [hl]
|
||||||
hlCoord 0, 3
|
hlCoord 0, 3
|
||||||
ld b, $8
|
ld b, 8
|
||||||
ld c, $c
|
ld c, 12
|
||||||
call TextBoxBorder
|
call TextBoxBorder
|
||||||
call UpdateSprites
|
call UpdateSprites
|
||||||
hlCoord 2, 5
|
hlCoord 2, 5
|
||||||
|
@ -31,27 +31,28 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
||||||
ld hl, wd730
|
ld hl, wd730
|
||||||
res 6, [hl]
|
res 6, [hl]
|
||||||
call HandleMenuInput
|
call HandleMenuInput
|
||||||
bit 1, a
|
bit 1, a ; pressed B?
|
||||||
jr nz, .asm_74f93
|
jr nz, .notThirsty
|
||||||
ld a, [wCurrentMenuItem]
|
ld a, [wCurrentMenuItem]
|
||||||
cp $3
|
cp 3 ; chose Cancel?
|
||||||
jr z, .asm_74f93
|
jr z, .notThirsty
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc, .enoughMoney
|
jr nc, .enoughMoney
|
||||||
ld hl, VendingMachineText4
|
ld hl, VendingMachineText4
|
||||||
jp PrintText
|
jp PrintText
|
||||||
.enoughMoney
|
.enoughMoney
|
||||||
call Func_74fe7
|
call LoadVendingMachineItem
|
||||||
ld a, [$ffdb]
|
ld a, [hVendingMachineItem]
|
||||||
ld b, a
|
ld b, a
|
||||||
ld c, 1
|
ld c, 1
|
||||||
call GiveItem
|
call GiveItem
|
||||||
jr nc, .BagFull
|
jr nc, .BagFull
|
||||||
|
|
||||||
ld b, 60 ; number of times to play the "brrrrr" sound
|
ld b, 60 ; number of times to play the "brrrrr" sound
|
||||||
.playDeliverySound
|
.playDeliverySound
|
||||||
ld c, 2
|
ld c, 2
|
||||||
|
@ -62,10 +63,10 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
||||||
pop bc
|
pop bc
|
||||||
dec b
|
dec b
|
||||||
jr nz, .playDeliverySound
|
jr nz, .playDeliverySound
|
||||||
.asm_74f72
|
|
||||||
ld hl, VendingMachineText5
|
ld hl, VendingMachineText5
|
||||||
call PrintText
|
call PrintText
|
||||||
ld hl, $ffde
|
ld hl, hVendingMachinePrice + 2
|
||||||
ld de, wPlayerMoney + 2
|
ld de, wPlayerMoney + 2
|
||||||
ld c, $3
|
ld c, $3
|
||||||
predef SubBCDPredef
|
predef SubBCDPredef
|
||||||
|
@ -75,7 +76,7 @@ VendingMachineMenu: ; 74ee0 (1d:4ee0)
|
||||||
.BagFull
|
.BagFull
|
||||||
ld hl, VendingMachineText6
|
ld hl, VendingMachineText6
|
||||||
jp PrintText
|
jp PrintText
|
||||||
.asm_74f93
|
.notThirsty
|
||||||
ld hl, VendingMachineText7
|
ld hl, VendingMachineText7
|
||||||
jp PrintText
|
jp PrintText
|
||||||
|
|
||||||
|
@ -110,22 +111,22 @@ VendingMachineText7: ; 74fe2 (1d:4fe2)
|
||||||
TX_FAR _VendingMachineText7
|
TX_FAR _VendingMachineText7
|
||||||
db "@"
|
db "@"
|
||||||
|
|
||||||
Func_74fe7: ; 74fe7 (1d:4fe7)
|
LoadVendingMachineItem: ; 74fe7 (1d:4fe7)
|
||||||
ld hl, VendingPrices
|
ld hl, VendingPrices
|
||||||
ld a, [wCurrentMenuItem]
|
ld a, [wCurrentMenuItem]
|
||||||
add a
|
add a
|
||||||
add a
|
add a
|
||||||
ld d, $0
|
ld d, 0
|
||||||
ld e, a
|
ld e, a
|
||||||
add hl, de
|
add hl, de
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [$ffdb], a
|
ld [hVendingMachineItem], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [$ffdc], a
|
ld [hVendingMachinePrice], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [$ffdd], a
|
ld [hVendingMachinePrice + 1], a
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [$ffde], a
|
ld [hVendingMachinePrice + 2], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
VendingPrices: ; 75000 (1d:5000)
|
VendingPrices: ; 75000 (1d:5000)
|
||||||
|
|
|
@ -67,9 +67,9 @@ HiddenCoins: ; 76799 (1d:6799)
|
||||||
and a
|
and a
|
||||||
ret nz
|
ret nz
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hCoins - 1], a
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
ld a, [wWhichTrade]
|
ld a, [wWhichTrade]
|
||||||
sub COIN
|
sub COIN
|
||||||
cp 10
|
cp 10
|
||||||
|
@ -81,22 +81,22 @@ HiddenCoins: ; 76799 (1d:6799)
|
||||||
jr .bcd100
|
jr .bcd100
|
||||||
.bcd10
|
.bcd10
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
jr .bcddone
|
jr .bcddone
|
||||||
.bcd20
|
.bcd20
|
||||||
ld a, $20
|
ld a, $20
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
jr .bcddone
|
jr .bcddone
|
||||||
.bcd40 ; due to a typo, this is never used
|
.bcd40 ; due to a typo, this is never used
|
||||||
ld a, $40
|
ld a, $40
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
jr .bcddone
|
jr .bcddone
|
||||||
.bcd100
|
.bcd100
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
.bcddone
|
.bcddone
|
||||||
ld de, wPlayerCoins + 1
|
ld de, wPlayerCoins + 1
|
||||||
ld hl, $ffa1
|
ld hl, hCoins + 1
|
||||||
ld c, $2
|
ld c, $2
|
||||||
predef AddBCDPredef
|
predef AddBCDPredef
|
||||||
ld hl, wd6fe
|
ld hl, wd6fe
|
||||||
|
|
|
@ -74,7 +74,7 @@ PalletMovementScript_OakMoveLeft: ; 1a44c (6:644c)
|
||||||
jr .done
|
jr .done
|
||||||
; The player is on the left tile of the northern path out of Pallet Town and
|
; The player is on the left tile of the northern path out of Pallet Town and
|
||||||
; Prof. Oak is below.
|
; Prof. Oak is below.
|
||||||
; Prof. Oak is already on the right tile.
|
; Prof. Oak is already where he needs to be.
|
||||||
.playerOnLeftTile
|
.playerOnLeftTile
|
||||||
ld a, $3
|
ld a, $3
|
||||||
ld [wNPCMovementScriptFunctionNum], a
|
ld [wNPCMovementScriptFunctionNum], a
|
||||||
|
|
|
@ -206,7 +206,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20)
|
||||||
jp .loop
|
jp .loop
|
||||||
.isThereEnoughMoney
|
.isThereEnoughMoney
|
||||||
ld de,wPlayerMoney
|
ld de,wPlayerMoney
|
||||||
ld hl,$ff9f ; item price
|
ld hl,hMoney
|
||||||
ld c,3 ; length of money in bytes
|
ld c,3 ; length of money in bytes
|
||||||
jp StringCmp
|
jp StringCmp
|
||||||
.notEnoughMoney
|
.notEnoughMoney
|
||||||
|
|
|
@ -67,50 +67,60 @@ ENDC
|
||||||
|
|
||||||
ld a, BANK(Version_GFX)
|
ld a, BANK(Version_GFX)
|
||||||
call FarCopyDataDouble
|
call FarCopyDataDouble
|
||||||
call Func_4519
|
call ClearBothBGMaps
|
||||||
|
|
||||||
|
; place tiles for pokemon logo (except for the last row)
|
||||||
hlCoord 2, 1
|
hlCoord 2, 1
|
||||||
ld a, $80
|
ld a, $80
|
||||||
ld de, SCREEN_WIDTH
|
ld de, SCREEN_WIDTH
|
||||||
ld c, $6
|
ld c, 6
|
||||||
.asm_434d
|
.pokemonLogoTileLoop
|
||||||
ld b, $10
|
ld b, $10
|
||||||
push hl
|
push hl
|
||||||
.asm_4350
|
.pokemonLogoTileRowLoop ; place tiles for one row
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
inc a
|
inc a
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_4350
|
jr nz, .pokemonLogoTileRowLoop
|
||||||
pop hl
|
pop hl
|
||||||
add hl, de
|
add hl, de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_434d
|
jr nz, .pokemonLogoTileLoop
|
||||||
|
|
||||||
|
; place tiles for the last row of the pokemon logo
|
||||||
hlCoord 2, 7
|
hlCoord 2, 7
|
||||||
ld a, $31
|
ld a, $31
|
||||||
ld b, $10
|
ld b, $10
|
||||||
.asm_4361
|
.pokemonLogoLastTileRowLoop
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
inc a
|
inc a
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_4361
|
jr nz, .pokemonLogoLastTileRowLoop
|
||||||
call Func_44dd
|
|
||||||
|
call DrawPlayerCharacter
|
||||||
|
|
||||||
|
; put a pokeball in the player's hand
|
||||||
ld hl, wOAMBuffer + $28
|
ld hl, wOAMBuffer + $28
|
||||||
ld a, $74
|
ld a, $74
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
|
; place tiles for title screen copyright
|
||||||
hlCoord 2, 17
|
hlCoord 2, 17
|
||||||
ld de, .titlescreenTilemap
|
ld de, .tileScreenCopyrightTiles
|
||||||
ld b, $10
|
ld b, $10
|
||||||
.asm_4377
|
.tileScreenCopyrightTilesLoop
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
inc de
|
inc de
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_4377
|
jr nz, .tileScreenCopyrightTilesLoop
|
||||||
jr .asm_438f
|
|
||||||
|
|
||||||
.titlescreenTilemap ; 437f (1:437f)
|
jr .next
|
||||||
|
|
||||||
|
.tileScreenCopyrightTiles ; 437f (1:437f)
|
||||||
db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
|
db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
|
||||||
|
|
||||||
.asm_438f
|
.next
|
||||||
call SaveScreenTilesToBuffer2
|
call SaveScreenTilesToBuffer2
|
||||||
call LoadScreenTilesFromBuffer2
|
call LoadScreenTilesFromBuffer2
|
||||||
call EnableLCD
|
call EnableLCD
|
||||||
|
@ -121,37 +131,39 @@ IF DEF(_BLUE)
|
||||||
ld a,SQUIRTLE ; which Pokemon to show first on the title screen
|
ld a,SQUIRTLE ; which Pokemon to show first on the title screen
|
||||||
ENDC
|
ENDC
|
||||||
|
|
||||||
ld [wWhichTrade], a
|
ld [wTitleMonSpecies], a
|
||||||
call Func_4524
|
call LoadTitleMonSprite
|
||||||
ld a, $9b
|
ld a, (vBGMap0 + $300) / $100
|
||||||
call Func_4533
|
call TitleScreenCopyTileMapToVRAM
|
||||||
call SaveScreenTilesToBuffer1
|
call SaveScreenTilesToBuffer1
|
||||||
ld a, $40
|
ld a, $40
|
||||||
ld [hWY], a
|
ld [hWY], a
|
||||||
call LoadScreenTilesFromBuffer2
|
call LoadScreenTilesFromBuffer2
|
||||||
ld a, $98
|
ld a, vBGMap0 / $100
|
||||||
call Func_4533
|
call TitleScreenCopyTileMapToVRAM
|
||||||
ld b, $6
|
ld b, $6
|
||||||
call GoPAL_SET
|
call GoPAL_SET
|
||||||
call GBPalNormal
|
call GBPalNormal
|
||||||
ld a, $e4
|
ld a, %11100100
|
||||||
ld [rOBP0], a
|
ld [rOBP0], a
|
||||||
ld bc, $ffaf ; background scroll Y
|
|
||||||
|
; make pokemon logo bounce up and down
|
||||||
|
ld bc, hSCY ; background scroll Y
|
||||||
ld hl, .TitleScreenPokemonLogoYScrolls
|
ld hl, .TitleScreenPokemonLogoYScrolls
|
||||||
.asm_43c6
|
.bouncePokemonLogoLoop
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_43f4
|
jr z, .finishedBouncingPokemonLogo
|
||||||
ld d, a
|
ld d, a
|
||||||
cp $fd
|
cp -3
|
||||||
jr nz, .asm_43d4
|
jr nz, .skipPlayingSound
|
||||||
ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_62 - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
.asm_43d4
|
.skipPlayingSound
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld e, a
|
ld e, a
|
||||||
call .ScrollTitleScreenPokemonLogo
|
call .ScrollTitleScreenPokemonLogo
|
||||||
jr .asm_43c6
|
jr .bouncePokemonLogoLoop
|
||||||
|
|
||||||
.TitleScreenPokemonLogoYScrolls: ; 43db (1:43db)
|
.TitleScreenPokemonLogoYScrolls: ; 43db (1:43db)
|
||||||
; Controls the bouncing effect of the Pokemon logo on the title screen
|
; Controls the bouncing effect of the Pokemon logo on the title screen
|
||||||
|
@ -168,36 +180,40 @@ ENDC
|
||||||
; Scrolls the Pokemon logo on the title screen to create the bouncing effect
|
; Scrolls the Pokemon logo on the title screen to create the bouncing effect
|
||||||
; Scrolls d pixels e times
|
; Scrolls d pixels e times
|
||||||
call DelayFrame
|
call DelayFrame
|
||||||
ld a, [bc]
|
ld a, [bc] ; background scroll Y
|
||||||
add d
|
add d
|
||||||
ld [bc], a
|
ld [bc], a
|
||||||
dec e
|
dec e
|
||||||
jr nz, .ScrollTitleScreenPokemonLogo
|
jr nz, .ScrollTitleScreenPokemonLogo
|
||||||
ret
|
ret
|
||||||
.asm_43f4
|
|
||||||
|
.finishedBouncingPokemonLogo
|
||||||
call LoadScreenTilesFromBuffer1
|
call LoadScreenTilesFromBuffer1
|
||||||
ld c, 36
|
ld c, 36
|
||||||
call DelayFrames
|
call DelayFrames
|
||||||
ld a, (SFX_1f_63 - SFX_Headers_1f) / 3
|
ld a, (SFX_1f_63 - SFX_Headers_1f) / 3
|
||||||
call PlaySound
|
call PlaySound
|
||||||
|
|
||||||
|
; scroll game version in from the right
|
||||||
call PrintGameVersionOnTitleScreen
|
call PrintGameVersionOnTitleScreen
|
||||||
ld a, $90
|
ld a, SCREEN_HEIGHT_PIXELS
|
||||||
ld [hWY], a
|
ld [hWY], a
|
||||||
ld d, $90
|
ld d, 144
|
||||||
.asm_440a
|
.scrollTitleScreenGameVersionLoop
|
||||||
ld h, d
|
ld h, d
|
||||||
ld l, $40
|
ld l, 64
|
||||||
call Func_44cf
|
call ScrollTitleScreenGameVersion
|
||||||
ld h, $0
|
ld h, 0
|
||||||
ld l, $50
|
ld l, 80
|
||||||
call Func_44cf
|
call ScrollTitleScreenGameVersion
|
||||||
ld a, d
|
ld a, d
|
||||||
add $4
|
add 4
|
||||||
ld d, a
|
ld d, a
|
||||||
and a
|
and a
|
||||||
jr nz, .asm_440a
|
jr nz, .scrollTitleScreenGameVersionLoop
|
||||||
ld a, $9c
|
|
||||||
call Func_4533
|
ld a, vBGMap1 / $100
|
||||||
|
call TitleScreenCopyTileMapToVRAM
|
||||||
call LoadScreenTilesFromBuffer2
|
call LoadScreenTilesFromBuffer2
|
||||||
call PrintGameVersionOnTitleScreen
|
call PrintGameVersionOnTitleScreen
|
||||||
call Delay3
|
call Delay3
|
||||||
|
@ -207,19 +223,22 @@ ENDC
|
||||||
call PlaySound
|
call PlaySound
|
||||||
xor a
|
xor a
|
||||||
ld [wcc5b], a
|
ld [wcc5b], a
|
||||||
.asm_443b
|
|
||||||
ld c, $c8
|
; Keep scrolling in new mons indefinitely until the user performs input.
|
||||||
|
.awaitUserInterruptionLoop
|
||||||
|
ld c, 200
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
jr c, .asm_4459
|
jr c, .finishedWaiting
|
||||||
call Func_44c1
|
call TitleScreenScrollInMon
|
||||||
ld c, $1
|
ld c, 1
|
||||||
call CheckForUserInterruption
|
call CheckForUserInterruption
|
||||||
jr c, .asm_4459
|
jr c, .finishedWaiting
|
||||||
callba Func_372ac
|
callba TitleScreenAnimateBallIfStarterOut
|
||||||
call Func_4496
|
call TitleScreenPickNewMon
|
||||||
jr .asm_443b
|
jr .awaitUserInterruptionLoop
|
||||||
.asm_4459
|
|
||||||
ld a, [wWhichTrade]
|
.finishedWaiting
|
||||||
|
ld a, [wTitleMonSpecies]
|
||||||
call PlayCry
|
call PlayCry
|
||||||
call WaitForSoundToFinish
|
call WaitForSoundToFinish
|
||||||
call GBPalWhiteOutWithDelay3
|
call GBPalWhiteOutWithDelay3
|
||||||
|
@ -229,10 +248,10 @@ ENDC
|
||||||
inc a
|
inc a
|
||||||
ld [H_AUTOBGTRANSFERENABLED], a
|
ld [H_AUTOBGTRANSFERENABLED], a
|
||||||
call ClearScreen
|
call ClearScreen
|
||||||
ld a, $98
|
ld a, vBGMap0 / $100
|
||||||
call Func_4533
|
call TitleScreenCopyTileMapToVRAM
|
||||||
ld a, $9c
|
ld a, vBGMap1 / $100
|
||||||
call Func_4533
|
call TitleScreenCopyTileMapToVRAM
|
||||||
call Delay3
|
call Delay3
|
||||||
call LoadGBPal
|
call LoadGBPal
|
||||||
ld a, [hJoyHeld]
|
ld a, [hJoyHeld]
|
||||||
|
@ -247,12 +266,12 @@ ENDC
|
||||||
ld hl, DoClearSaveDialogue
|
ld hl, DoClearSaveDialogue
|
||||||
jp Bankswitch
|
jp Bankswitch
|
||||||
|
|
||||||
Func_4496: ; 4496 (1:4496)
|
TitleScreenPickNewMon: ; 4496 (1:4496)
|
||||||
ld a, $98
|
ld a, vBGMap0 / $100
|
||||||
call Func_4533
|
call TitleScreenCopyTileMapToVRAM
|
||||||
|
|
||||||
.new
|
.loop
|
||||||
; Generate a new TitleMon.
|
; Keep looping until a mon different from the current one is picked.
|
||||||
call Random
|
call Random
|
||||||
and $f
|
and $f
|
||||||
ld c, a
|
ld c, a
|
||||||
|
@ -260,14 +279,14 @@ Func_4496: ; 4496 (1:4496)
|
||||||
ld hl, TitleMons
|
ld hl, TitleMons
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld hl, wWhichTrade
|
ld hl, wTitleMonSpecies
|
||||||
|
|
||||||
; Can't be the same as before.
|
; Can't be the same as before.
|
||||||
cp [hl]
|
cp [hl]
|
||||||
jr z, .new
|
jr z, .loop
|
||||||
|
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
call Func_4524
|
call LoadTitleMonSprite
|
||||||
|
|
||||||
ld a, $90
|
ld a, $90
|
||||||
ld [hWY], a
|
ld [hWY], a
|
||||||
|
@ -275,14 +294,14 @@ Func_4496: ; 4496 (1:4496)
|
||||||
callba TitleScroll
|
callba TitleScroll
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_44c1: ; 44c1 (1:44c1)
|
TitleScreenScrollInMon: ; 44c1 (1:44c1)
|
||||||
ld d, 0 ; scroll in
|
ld d, 0 ; scroll in
|
||||||
callba TitleScroll
|
callba TitleScroll
|
||||||
xor a
|
xor a
|
||||||
ld [hWY], a
|
ld [hWY], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_44cf: ; 44cf (1:44cf)
|
ScrollTitleScreenGameVersion: ; 44cf (1:44cf)
|
||||||
.wait
|
.wait
|
||||||
ld a, [rLY]
|
ld a, [rLY]
|
||||||
cp l
|
cp l
|
||||||
|
@ -297,7 +316,7 @@ Func_44cf: ; 44cf (1:44cf)
|
||||||
jr z, .wait2
|
jr z, .wait2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_44dd: ; 44dd (1:44dd)
|
DrawPlayerCharacter: ; 44dd (1:44dd)
|
||||||
ld hl, PlayerCharacterTitleGraphics
|
ld hl, PlayerCharacterTitleGraphics
|
||||||
ld de, vSprites
|
ld de, vSprites
|
||||||
ld bc, $230
|
ld bc, $230
|
||||||
|
@ -305,49 +324,49 @@ Func_44dd: ; 44dd (1:44dd)
|
||||||
call FarCopyData2
|
call FarCopyData2
|
||||||
call ClearSprites
|
call ClearSprites
|
||||||
xor a
|
xor a
|
||||||
ld [wWhichTrade], a
|
ld [wPlayerCharacterOAMTile], a
|
||||||
ld hl, wOAMBuffer
|
ld hl, wOAMBuffer
|
||||||
ld de, $605a
|
ld de, $605a
|
||||||
ld b, $7
|
ld b, 7
|
||||||
.asm_44fa
|
.loop
|
||||||
push de
|
push de
|
||||||
ld c, $5
|
ld c, 5
|
||||||
.asm_44fd
|
.innerLoop
|
||||||
ld a, d
|
ld a, d
|
||||||
ld [hli], a
|
ld [hli], a ; Y
|
||||||
ld a, e
|
ld a, e
|
||||||
ld [hli], a
|
ld [hli], a ; X
|
||||||
add $8
|
add 8
|
||||||
ld e, a
|
ld e, a
|
||||||
ld a, [wWhichTrade]
|
ld a, [wPlayerCharacterOAMTile]
|
||||||
ld [hli], a
|
ld [hli], a ; tile
|
||||||
inc a
|
inc a
|
||||||
ld [wWhichTrade], a
|
ld [wPlayerCharacterOAMTile], a
|
||||||
inc hl
|
inc hl
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_44fd
|
jr nz, .innerLoop
|
||||||
pop de
|
pop de
|
||||||
ld a, $8
|
ld a, 8
|
||||||
add d
|
add d
|
||||||
ld d, a
|
ld d, a
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_44fa
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Func_4519: ; 4519 (1:4519)
|
ClearBothBGMaps: ; 4519 (1:4519)
|
||||||
ld hl, vBGMap0
|
ld hl, vBGMap0
|
||||||
ld bc, $800
|
ld bc, $400 * 2
|
||||||
ld a, $7f
|
ld a, " "
|
||||||
jp FillMemory
|
jp FillMemory
|
||||||
|
|
||||||
Func_4524: ; 4524 (1:4524)
|
LoadTitleMonSprite: ; 4524 (1:4524)
|
||||||
ld [wcf91], a
|
ld [wcf91], a
|
||||||
ld [wd0b5], a
|
ld [wd0b5], a
|
||||||
hlCoord 5, 10
|
hlCoord 5, 10
|
||||||
call GetMonHeader
|
call GetMonHeader
|
||||||
jp LoadFrontSpriteByMonIndex
|
jp LoadFrontSpriteByMonIndex
|
||||||
|
|
||||||
Func_4533: ; 4533 (1:4533)
|
TitleScreenCopyTileMapToVRAM: ; 4533 (1:4533)
|
||||||
ld [H_AUTOBGTRANSFERDEST + 1], a
|
ld [H_AUTOBGTRANSFERDEST + 1], a
|
||||||
jp Delay3
|
jp Delay3
|
||||||
|
|
||||||
|
|
|
@ -87,9 +87,9 @@ TitleBallYTable: ; 372a0 (d:72a0)
|
||||||
; This is really two 0-terminated lists. Initiated with an index of 1.
|
; This is really two 0-terminated lists. Initiated with an index of 1.
|
||||||
db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
|
db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
|
||||||
|
|
||||||
Func_372ac: ; 372ac (d:72ac)
|
TitleScreenAnimateBallIfStarterOut: ; 372ac (d:72ac)
|
||||||
; Animate the TitleBall if a starter just got scrolled out.
|
; Animate the TitleBall if a starter just got scrolled out.
|
||||||
ld a, [wWhichTrade]
|
ld a, [wTitleMonSpecies]
|
||||||
cp STARTER1
|
cp STARTER1
|
||||||
jr z, .ok
|
jr z, .ok
|
||||||
cp STARTER2
|
cp STARTER2
|
||||||
|
|
34
home.asm
34
home.asm
|
@ -1630,15 +1630,15 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
|
||||||
ld c,$03
|
ld c,$03
|
||||||
ld a,[wItemQuantity]
|
ld a,[wItemQuantity]
|
||||||
ld b,a
|
ld b,a
|
||||||
ld hl,$ff9f ; total price
|
ld hl,hMoney ; total price
|
||||||
; initialize total price to 0
|
; initialize total price to 0
|
||||||
xor a
|
xor a
|
||||||
ld [hli],a
|
ld [hli],a
|
||||||
ld [hli],a
|
ld [hli],a
|
||||||
ld [hl],a
|
ld [hl],a
|
||||||
.addLoop ; loop to multiply the individual price by the quantity to get the total price
|
.addLoop ; loop to multiply the individual price by the quantity to get the total price
|
||||||
ld de,$ffa1
|
ld de,hMoney + 2
|
||||||
ld hl,$ff8d
|
ld hl,hItemPrice + 2
|
||||||
push bc
|
push bc
|
||||||
predef AddBCDPredef ; add the individual price to the current sum
|
predef AddBCDPredef ; add the individual price to the current sum
|
||||||
pop bc
|
pop bc
|
||||||
|
@ -1648,23 +1648,23 @@ DisplayChooseQuantityMenu:: ; 2d57 (0:2d57)
|
||||||
and a ; should the price be halved (for selling items)?
|
and a ; should the price be halved (for selling items)?
|
||||||
jr z,.skipHalvingPrice
|
jr z,.skipHalvingPrice
|
||||||
xor a
|
xor a
|
||||||
ld [$ffa2],a
|
ld [hDivideBCDDivisor],a
|
||||||
ld [$ffa3],a
|
ld [hDivideBCDDivisor + 1],a
|
||||||
ld a,$02
|
ld a,$02
|
||||||
ld [$ffa4],a
|
ld [hDivideBCDDivisor + 2],a
|
||||||
predef DivideBCDPredef3 ; halves the price
|
predef DivideBCDPredef3 ; halves the price
|
||||||
; store the halved price
|
; store the halved price
|
||||||
ld a,[$ffa2]
|
ld a,[hDivideBCDQuotient]
|
||||||
ld [$ff9f],a
|
ld [hMoney],a
|
||||||
ld a,[$ffa3]
|
ld a,[hDivideBCDQuotient + 1]
|
||||||
ld [$ffa0],a
|
ld [hMoney + 1],a
|
||||||
ld a,[$ffa4]
|
ld a,[hDivideBCDQuotient + 2]
|
||||||
ld [$ffa1],a
|
ld [hMoney + 2],a
|
||||||
.skipHalvingPrice
|
.skipHalvingPrice
|
||||||
hlCoord 12, 10
|
hlCoord 12, 10
|
||||||
ld de,SpacesBetweenQuantityAndPriceText
|
ld de,SpacesBetweenQuantityAndPriceText
|
||||||
call PlaceString
|
call PlaceString
|
||||||
ld de,$ff9f ; total price
|
ld de,hMoney ; total price
|
||||||
ld c,$a3
|
ld c,$a3
|
||||||
call PrintBCDNumber
|
call PrintBCDNumber
|
||||||
hlCoord 9, 10
|
hlCoord 9, 10
|
||||||
|
@ -2942,17 +2942,17 @@ GetTrainerName:: ; 359e (0:359e)
|
||||||
|
|
||||||
HasEnoughMoney::
|
HasEnoughMoney::
|
||||||
; Check if the player has at least as much
|
; Check if the player has at least as much
|
||||||
; money as the 3-byte BCD value at $ff9f.
|
; money as the 3-byte BCD value at hMoney.
|
||||||
ld de, wPlayerMoney
|
ld de, wPlayerMoney
|
||||||
ld hl, $ff9f
|
ld hl, hMoney
|
||||||
ld c, 3
|
ld c, 3
|
||||||
jp StringCmp
|
jp StringCmp
|
||||||
|
|
||||||
HasEnoughCoins::
|
HasEnoughCoins::
|
||||||
; Check if the player has at least as many
|
; Check if the player has at least as many
|
||||||
; coins as the 2-byte BCD value at $ffa0.
|
; coins as the 2-byte BCD value at hCoins.
|
||||||
ld de, wPlayerCoins
|
ld de, wPlayerCoins
|
||||||
ld hl, $ffa0
|
ld hl, hCoins
|
||||||
ld c, 2
|
ld c, 2
|
||||||
jp StringCmp
|
jp StringCmp
|
||||||
|
|
||||||
|
|
9
hram.asm
9
hram.asm
|
@ -92,6 +92,12 @@ hNPCPlayerRelativePosPerspective EQU $FF9B
|
||||||
; 1 = target is to the west
|
; 1 = target is to the west
|
||||||
hNPCPlayerRelativePosFlags EQU $FF9D
|
hNPCPlayerRelativePosFlags EQU $FF9D
|
||||||
|
|
||||||
|
hMoney EQU $FF9F ; 3-byte BCD number
|
||||||
|
hCoins EQU $FFA0 ; 2-byte BCD number
|
||||||
|
|
||||||
|
hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number
|
||||||
|
hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number
|
||||||
|
|
||||||
hSerialReceivedNewData EQU $FFA9
|
hSerialReceivedNewData EQU $FFA9
|
||||||
|
|
||||||
; $01 = using external clock
|
; $01 = using external clock
|
||||||
|
@ -201,6 +207,9 @@ hTilesetType EQU $FFD7
|
||||||
|
|
||||||
H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
|
H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
|
||||||
|
|
||||||
|
hVendingMachineItem EQU $FFDB
|
||||||
|
hVendingMachinePrice EQU $FFDC ; 3-byte BCD number
|
||||||
|
|
||||||
hNewPartyLength EQU $FFE4
|
hNewPartyLength EQU $FFE4
|
||||||
|
|
||||||
hDividend2 EQU $FFE5
|
hDividend2 EQU $FFE5
|
||||||
|
|
28
main.asm
28
main.asm
|
@ -31,30 +31,30 @@ ResetStatusAndHalveMoneyOnBlackout::
|
||||||
ld [wNPCMovementScriptPointerTableNum], a
|
ld [wNPCMovementScriptPointerTableNum], a
|
||||||
ld [wFlags_0xcd60], a
|
ld [wFlags_0xcd60], a
|
||||||
|
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ff9f + 1], a
|
ld [hMoney + 1], a
|
||||||
ld [$ff9f + 2], a
|
ld [hMoney + 2], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr c, .lostmoney ; never happens
|
jr c, .lostmoney ; never happens
|
||||||
|
|
||||||
; Halve the player's money.
|
; Halve the player's money.
|
||||||
ld a, [wPlayerMoney]
|
ld a, [wPlayerMoney]
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld a, [wPlayerMoney + 1]
|
ld a, [wPlayerMoney + 1]
|
||||||
ld [$ff9f + 1], a
|
ld [hMoney + 1], a
|
||||||
ld a, [wPlayerMoney + 2]
|
ld a, [wPlayerMoney + 2]
|
||||||
ld [$ff9f + 2], a
|
ld [hMoney + 2], a
|
||||||
xor a
|
xor a
|
||||||
ld [$ffa2], a
|
ld [hDivideBCDDivisor], a
|
||||||
ld [$ffa3], a
|
ld [hDivideBCDDivisor + 1], a
|
||||||
ld a, 2
|
ld a, 2
|
||||||
ld [$ffa4], a
|
ld [hDivideBCDDivisor + 2], a
|
||||||
predef DivideBCDPredef3
|
predef DivideBCDPredef3
|
||||||
ld a, [$ffa2]
|
ld a, [hDivideBCDQuotient]
|
||||||
ld [wPlayerMoney], a
|
ld [wPlayerMoney], a
|
||||||
ld a, [$ffa2 + 1]
|
ld a, [hDivideBCDQuotient + 1]
|
||||||
ld [wPlayerMoney + 1], a
|
ld [wPlayerMoney + 1], a
|
||||||
ld a, [$ffa2 + 2]
|
ld a, [hDivideBCDQuotient + 2]
|
||||||
ld [wPlayerMoney + 2], a
|
ld [wPlayerMoney + 2], a
|
||||||
|
|
||||||
.lostmoney
|
.lostmoney
|
||||||
|
@ -789,12 +789,12 @@ INCLUDE "engine/oak_speech2.asm"
|
||||||
; sets carry flag if there is enough money and unsets carry flag if not
|
; sets carry flag if there is enough money and unsets carry flag if not
|
||||||
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
|
SubtractAmountPaidFromMoney_: ; 6b21 (1:6b21)
|
||||||
ld de,wPlayerMoney
|
ld de,wPlayerMoney
|
||||||
ld hl,$ff9f ; total price of items
|
ld hl,hMoney ; total price of items
|
||||||
ld c,3 ; length of money in bytes
|
ld c,3 ; length of money in bytes
|
||||||
call StringCmp
|
call StringCmp
|
||||||
ret c
|
ret c
|
||||||
ld de,wPlayerMoney + 2
|
ld de,wPlayerMoney + 2
|
||||||
ld hl,$ffa1 ; total price of items
|
ld hl,hMoney + 2 ; total price of items
|
||||||
ld c,3 ; length of money in bytes
|
ld c,3 ; length of money in bytes
|
||||||
predef SubBCDPredef ; subtract total price from money
|
predef SubBCDPredef ; subtract total price from money
|
||||||
ld a,MONEY_BOX
|
ld a,MONEY_BOX
|
||||||
|
|
|
@ -151,31 +151,31 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9)
|
||||||
call Has9990Coins
|
call Has9990Coins
|
||||||
jr nc, .asm_48d14
|
jr nc, .asm_48d14
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc, .asm_48cdb
|
jr nc, .asm_48cdb
|
||||||
ld hl, CeladonGameCornerText_48d31
|
ld hl, CeladonGameCornerText_48d31
|
||||||
jr .asm_48d1c
|
jr .asm_48d1c
|
||||||
.asm_48cdb
|
.asm_48cdb
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
ld hl, $ffa1
|
ld hl, hMoney + 2
|
||||||
ld de, wPlayerMoney + 2
|
ld de, wPlayerMoney + 2
|
||||||
ld c, $3
|
ld c, $3
|
||||||
predef SubBCDPredef
|
predef SubBCDPredef
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hCoins - 1], a
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld a, $50
|
ld a, $50
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
ld de, wPlayerCoins + 1
|
ld de, wPlayerCoins + 1
|
||||||
ld hl, $ffa1
|
ld hl, hCoins + 1
|
||||||
ld c, $2
|
ld c, $2
|
||||||
predef AddBCDPredef
|
predef AddBCDPredef
|
||||||
call CeladonGameCornerScript_48f1e
|
call CeladonGameCornerScript_48f1e
|
||||||
|
@ -238,12 +238,12 @@ CeladonGameCornerText5: ; 48d4a (12:4d4a)
|
||||||
call Has9990Coins
|
call Has9990Coins
|
||||||
jr nc, .asm_48d8e
|
jr nc, .asm_48d8e
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hCoins - 1], a
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
ld de, wPlayerCoins + 1
|
ld de, wPlayerCoins + 1
|
||||||
ld hl, $ffa1
|
ld hl, hCoins + 1
|
||||||
ld c, $2
|
ld c, $2
|
||||||
predef AddBCDPredef
|
predef AddBCDPredef
|
||||||
ld hl, wd77e
|
ld hl, wd77e
|
||||||
|
@ -320,12 +320,12 @@ CeladonGameCornerText9: ; 48dd9 (12:4dd9)
|
||||||
call Has9990Coins
|
call Has9990Coins
|
||||||
jr nc, .asm_48e18
|
jr nc, .asm_48e18
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hCoins - 1], a
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld a, $20
|
ld a, $20
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
ld de, wPlayerCoins + 1
|
ld de, wPlayerCoins + 1
|
||||||
ld hl, $ffa1
|
ld hl, hCoins + 1
|
||||||
ld c, $2
|
ld c, $2
|
||||||
predef AddBCDPredef
|
predef AddBCDPredef
|
||||||
ld hl, wd77e
|
ld hl, wd77e
|
||||||
|
@ -373,12 +373,12 @@ CeladonGameCornerText10: ; 48e3b (12:4e3b)
|
||||||
call Has9990Coins
|
call Has9990Coins
|
||||||
jr z, .asm_48e7a
|
jr z, .asm_48e7a
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hCoins - 1], a
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld a, $20
|
ld a, $20
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
ld de, wPlayerCoins + 1
|
ld de, wPlayerCoins + 1
|
||||||
ld hl, $ffa1
|
ld hl, hCoins + 1
|
||||||
ld c, $2
|
ld c, $2
|
||||||
predef AddBCDPredef
|
predef AddBCDPredef
|
||||||
ld hl, wd77e
|
ld hl, wd77e
|
||||||
|
@ -527,7 +527,7 @@ GameCornerBlankText2: ; 48f8d (12:4f8d)
|
||||||
|
|
||||||
Has9990Coins: ; 48f95 (12:4f95)
|
Has9990Coins: ; 48f95 (12:4f95)
|
||||||
ld a, $99
|
ld a, $99
|
||||||
ld [$ffa0], a
|
ld [hCoins], a
|
||||||
ld a, $90
|
ld a, $90
|
||||||
ld [$ffa1], a
|
ld [hCoins + 1], a
|
||||||
jp HasEnoughCoins
|
jp HasEnoughCoins
|
||||||
|
|
|
@ -137,11 +137,11 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
|
||||||
and a
|
and a
|
||||||
jp nz, .asm_56403
|
jp nz, .asm_56403
|
||||||
ld hl, wTrainerFacingDirection
|
ld hl, wTrainerFacingDirection
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc, .asm_56396
|
jr nc, .asm_56396
|
||||||
ld hl, DayCareMText_56454
|
ld hl, DayCareMText_56454
|
||||||
|
|
|
@ -35,10 +35,10 @@ MtMoonPokecenterText4: ; 492ec (12:52ec)
|
||||||
ld a, [wCurrentMenuItem]
|
ld a, [wCurrentMenuItem]
|
||||||
and a
|
and a
|
||||||
jp nz, .asm_4934e
|
jp nz, .asm_4934e
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
ld a, $5
|
ld a, $5
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc, .asm_faa09
|
jr nc, .asm_faa09
|
||||||
ld hl, MtMoonPokecenterText_49366
|
ld hl, MtMoonPokecenterText_49366
|
||||||
|
|
|
@ -81,10 +81,10 @@ Museum1FText1: ; 5c135 (17:4135)
|
||||||
and a
|
and a
|
||||||
jr nz, .asm_de133
|
jr nz, .asm_de133
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f], a
|
ld [hMoney], a
|
||||||
ld [$ffa0], a
|
ld [hMoney + 1], a
|
||||||
ld a, $50
|
ld a, $50
|
||||||
ld [$ffa1], a
|
ld [hMoney + 2], a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc, .asm_0f3e3
|
jr nc, .asm_0f3e3
|
||||||
ld hl, Museum1FText_5c229
|
ld hl, Museum1FText_5c229
|
||||||
|
|
|
@ -155,11 +155,11 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
|
||||||
and a
|
and a
|
||||||
jp nz,.PleaseComeAgain
|
jp nz,.PleaseComeAgain
|
||||||
xor a
|
xor a
|
||||||
ld [$ff9f],a
|
ld [hMoney],a
|
||||||
ld a,$05
|
ld a,$05
|
||||||
ld [$ffa0],a
|
ld [hMoney + 1],a
|
||||||
ld a,$00
|
ld a,$00
|
||||||
ld [$ffa1],a
|
ld [hMoney + 2],a
|
||||||
call HasEnoughMoney
|
call HasEnoughMoney
|
||||||
jr nc,.success
|
jr nc,.success
|
||||||
ld hl,.NotEnoughMoneyText
|
ld hl,.NotEnoughMoneyText
|
||||||
|
|
10
text.asm
10
text.asm
|
@ -15,7 +15,7 @@ POKEDEX_TEXT EQU $2b
|
||||||
MOVE_NAMES EQU $2c
|
MOVE_NAMES EQU $2c
|
||||||
|
|
||||||
INCLUDE "macros.asm"
|
INCLUDE "macros.asm"
|
||||||
|
INCLUDE "hram.asm"
|
||||||
|
|
||||||
|
|
||||||
SECTION "Text 1", ROMX, BANK[TEXT_1]
|
SECTION "Text 1", ROMX, BANK[TEXT_1]
|
||||||
|
@ -1015,13 +1015,13 @@ _HiddenItemBagFullText:: ; 894e1 (22:54e1)
|
||||||
_FoundHiddenCoinsText:: ; 8950b (22:550b)
|
_FoundHiddenCoinsText:: ; 8950b (22:550b)
|
||||||
text $52, " found"
|
text $52, " found"
|
||||||
line "@"
|
line "@"
|
||||||
TX_BCD $ffa0, $c2
|
TX_BCD hCoins, $c2
|
||||||
text " coins!@@"
|
text " coins!@@"
|
||||||
|
|
||||||
_FoundHiddenCoins2Text:: ; 89523 (22:5523)
|
_FoundHiddenCoins2Text:: ; 89523 (22:5523)
|
||||||
text $52, " found"
|
text $52, " found"
|
||||||
line "@"
|
line "@"
|
||||||
TX_BCD $ffa0, $c2
|
TX_BCD hCoins, $c2
|
||||||
text " coins!@@"
|
text " coins!@@"
|
||||||
|
|
||||||
_DroppedHiddenCoinsText:: ; 8953b (22:553b)
|
_DroppedHiddenCoinsText:: ; 8953b (22:553b)
|
||||||
|
@ -2635,7 +2635,7 @@ _PokemartTellBuyPriceText:: ; a2619 (28:6619)
|
||||||
text "?"
|
text "?"
|
||||||
line "That will be"
|
line "That will be"
|
||||||
cont "¥@"
|
cont "¥@"
|
||||||
TX_BCD $ff9f, $c3
|
TX_BCD hMoney, $c3
|
||||||
text ". OK?"
|
text ". OK?"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -2662,7 +2662,7 @@ _PokemonSellingGreetingText:: ; a2690 (28:6690)
|
||||||
_PokemartTellSellPriceText:: ; a26ae (28:66ae)
|
_PokemartTellSellPriceText:: ; a26ae (28:66ae)
|
||||||
text "I can pay you"
|
text "I can pay you"
|
||||||
line "¥@"
|
line "¥@"
|
||||||
TX_BCD $ff9f, $c3
|
TX_BCD hMoney, $c3
|
||||||
text " for that."
|
text " for that."
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
7
wram.asm
7
wram.asm
|
@ -634,6 +634,13 @@ wOverrideSimulatedJoypadStatesMask:: ; cd3b
|
||||||
|
|
||||||
ds 1
|
ds 1
|
||||||
|
|
||||||
|
wTitleMonSpecies:: ; cd3d
|
||||||
|
|
||||||
|
wPlayerCharacterOAMTile:: ; cd3d
|
||||||
|
|
||||||
|
wMoveDownSmallStarsOAMCount:: ; cd3d
|
||||||
|
; the number of small stars OAM entries to move down
|
||||||
|
|
||||||
wChargeMoveNum:: ; cd3d
|
wChargeMoveNum:: ; cd3d
|
||||||
|
|
||||||
wCoordIndex:: ; cd3d
|
wCoordIndex:: ; cd3d
|
||||||
|
|
Loading…
Reference in a new issue