mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
71 lines
1.1 KiB
NASM
Executable file
71 lines
1.1 KiB
NASM
Executable file
; b = new colour for BG colour 0 (usually white) for 4 frames
|
|
ChangeBGPalColor0_4Frames:
|
|
call GetPredefRegisters
|
|
ld a, [rBGP]
|
|
or b
|
|
ld [rBGP], a
|
|
ld c, 4
|
|
call DelayFrames
|
|
ld a, [rBGP]
|
|
and %11111100
|
|
ld [rBGP], a
|
|
ret
|
|
|
|
PredefShakeScreenVertically:
|
|
; Moves the window down and then back in a sequence of progressively smaller
|
|
; numbers of pixels, starting at b.
|
|
call GetPredefRegisters
|
|
ld a, 1
|
|
ld [wDisableVBlankWYUpdate], a
|
|
xor a
|
|
.loop
|
|
ld [$ff96], a
|
|
call .MutateWY
|
|
call .MutateWY
|
|
dec b
|
|
ld a, b
|
|
jr nz, .loop
|
|
xor a
|
|
ld [wDisableVBlankWYUpdate], a
|
|
ret
|
|
|
|
.MutateWY
|
|
ld a, [$ff96]
|
|
xor b
|
|
ld [$ff96], a
|
|
ld [rWY], a
|
|
ld c, 3
|
|
jp DelayFrames
|
|
|
|
PredefShakeScreenHorizontally:
|
|
; Moves the window right and then back in a sequence of progressively smaller
|
|
; numbers of pixels, starting at b.
|
|
call GetPredefRegisters
|
|
xor a
|
|
.loop
|
|
ld [$ff97], a
|
|
call .MutateWX
|
|
ld c, 1
|
|
call DelayFrames
|
|
call .MutateWX
|
|
dec b
|
|
ld a, b
|
|
jr nz, .loop
|
|
|
|
; restore normal WX
|
|
ld a, 7
|
|
ld [rWX], a
|
|
ret
|
|
|
|
.MutateWX
|
|
ld a, [$ff97]
|
|
xor b
|
|
ld [$ff97], a
|
|
bit 7, a
|
|
jr z, .skipZeroing
|
|
xor a ; zero a if it's negative
|
|
.skipZeroing
|
|
add 7
|
|
ld [rWX], a
|
|
ld c, 4
|
|
jp DelayFrames
|