mirror of
https://github.com/blondie7575/GSCats.git
synced 2024-11-22 06:31:48 +00:00
VBL experiments
This commit is contained in:
parent
0a6c36c9b4
commit
3c43a0bc78
BIN
V2Make.scpt
BIN
V2Make.scpt
Binary file not shown.
84
graphics.s
84
graphics.s
@ -30,6 +30,38 @@ colorFillLoop:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; bottomFill
|
||||||
|
; Fills the bottom of the screen with a color (or two). Pretty fast, but not fastest possible
|
||||||
|
; A 4:4:4:4 = Palette entries
|
||||||
|
; X = Color to fill (doubled)
|
||||||
|
;
|
||||||
|
; Trashes Y
|
||||||
|
|
||||||
|
bottomFill:
|
||||||
|
FASTGRAPHICS
|
||||||
|
|
||||||
|
lda #$9d00-1 ; Point stack to end of VRAM
|
||||||
|
tcs
|
||||||
|
|
||||||
|
ldy #58
|
||||||
|
|
||||||
|
bottomFillLoop:
|
||||||
|
; 80 PHXs, for 1 line
|
||||||
|
; We could do the entire screen with PHXs, but this is a
|
||||||
|
; balance between speed and super-verbose code
|
||||||
|
.byte $da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da
|
||||||
|
.byte $da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da
|
||||||
|
.byte $da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da
|
||||||
|
.byte $da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da,$da
|
||||||
|
|
||||||
|
dey
|
||||||
|
bne bottomFillLoop
|
||||||
|
|
||||||
|
SLOWGRAPHICS
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; initSCBs
|
; initSCBs
|
||||||
; Initialize all scanline control bytes
|
; Initialize all scanline control bytes
|
||||||
@ -107,6 +139,58 @@ setPaletteLoop:
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Vertical blank checkers
|
||||||
|
;
|
||||||
|
|
||||||
|
; The Brutal Deluxe version, taken from LemminGS
|
||||||
|
;
|
||||||
|
nextVBL:
|
||||||
|
lda #75
|
||||||
|
pha
|
||||||
|
nextVBL0:
|
||||||
|
lda $e0c02e
|
||||||
|
and #$7f
|
||||||
|
cmp 1,s
|
||||||
|
blt nextVBL0
|
||||||
|
cmp #100
|
||||||
|
bge nextVBL0
|
||||||
|
pla
|
||||||
|
waitVBL:
|
||||||
|
lda $e0c018
|
||||||
|
bpl waitVBL
|
||||||
|
rts
|
||||||
|
|
||||||
|
; The Apple version, taken from GS Tech Note 039
|
||||||
|
;
|
||||||
|
syncVBL:
|
||||||
|
BITS8
|
||||||
|
syncVBL0:
|
||||||
|
lda $E0C02F
|
||||||
|
asl ; VA is now in the Carry flag
|
||||||
|
lda $E0C02E
|
||||||
|
rol ; Roll Carry into bit 0
|
||||||
|
cmp #200 ; A now contains line number
|
||||||
|
bne syncVBL0
|
||||||
|
BITS16
|
||||||
|
rts
|
||||||
|
|
||||||
|
; The old style //e version
|
||||||
|
;
|
||||||
|
vblSync:
|
||||||
|
BITS8
|
||||||
|
|
||||||
|
waitVBLToFinish:
|
||||||
|
lda $E0C019
|
||||||
|
bmi waitVBLToFinish
|
||||||
|
waitVBLToStart:
|
||||||
|
lda $E0C019
|
||||||
|
bpl waitVBLToStart
|
||||||
|
|
||||||
|
BITS16
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; caches
|
; caches
|
||||||
shadowRegister:
|
shadowRegister:
|
||||||
|
BIN
gscats.2mg
BIN
gscats.2mg
Binary file not shown.
46
gscats.s
46
gscats.s
@ -32,9 +32,35 @@ mainBank2:
|
|||||||
jsr generateTerrain
|
jsr generateTerrain
|
||||||
|
|
||||||
mainGameLoop:
|
mainGameLoop:
|
||||||
ldy mapScrollPos
|
|
||||||
; jsr renderTerrainColumns
|
|
||||||
|
|
||||||
|
jsr syncVBL
|
||||||
|
|
||||||
|
; ldx #$2222
|
||||||
|
; jsr bottomFill
|
||||||
|
|
||||||
|
; ldx #$1111
|
||||||
|
; jsr bottomFill
|
||||||
|
|
||||||
|
lda scrollV
|
||||||
|
bmi negV
|
||||||
|
|
||||||
|
clc
|
||||||
|
lda mapScrollPos
|
||||||
|
adc scrollV
|
||||||
|
cmp #TERRAINWIDTH/4-80
|
||||||
|
beq reverseScroll
|
||||||
|
sta mapScrollPos
|
||||||
|
bra render
|
||||||
|
|
||||||
|
negV:
|
||||||
|
clc
|
||||||
|
lda mapScrollPos
|
||||||
|
adc scrollV
|
||||||
|
beq reverseScroll
|
||||||
|
sta mapScrollPos
|
||||||
|
|
||||||
|
render:
|
||||||
|
tay
|
||||||
jsr renderTerrain
|
jsr renderTerrain
|
||||||
|
|
||||||
jsr kbdScan
|
jsr kbdScan
|
||||||
@ -46,7 +72,15 @@ mainGameLoop:
|
|||||||
CLASSICVIDEO
|
CLASSICVIDEO
|
||||||
jml (proDOSLongJump)
|
jml (proDOSLongJump)
|
||||||
|
|
||||||
|
reverseScroll:
|
||||||
|
lda scrollV
|
||||||
|
eor #$ffff
|
||||||
|
inc
|
||||||
|
sta scrollV
|
||||||
|
jmp mainGameLoop
|
||||||
|
|
||||||
|
scrollV:
|
||||||
|
.word 1
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; kbdScan
|
; kbdScan
|
||||||
@ -60,7 +94,7 @@ kbdScan:
|
|||||||
|
|
||||||
kbdScanLoop:
|
kbdScanLoop:
|
||||||
lda KBD
|
lda KBD
|
||||||
bpl kbdScanLoop
|
bpl kbdScanDone
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
|
|
||||||
cmp #(8 + $80)
|
cmp #(8 + $80)
|
||||||
@ -71,9 +105,9 @@ kbdScanLoop:
|
|||||||
|
|
||||||
cmp #(32 + $80)
|
cmp #(32 + $80)
|
||||||
beq kbdScanSpace
|
beq kbdScanSpace
|
||||||
NATIVE
|
|
||||||
|
|
||||||
kbdScanDone:
|
kbdScanDone:
|
||||||
|
NATIVE
|
||||||
rts
|
rts
|
||||||
|
|
||||||
kbdScanLeftArrow:
|
kbdScanLeftArrow:
|
||||||
@ -105,9 +139,9 @@ kbdScanSpace:
|
|||||||
|
|
||||||
|
|
||||||
basePalette:
|
basePalette:
|
||||||
.word $0800,$0080,$0000,$000F,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
|
.word $0800,$0080,$0000,$000F,$0FFF,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
|
||||||
mapScrollPos: ; 4-pixel columns distance from right terrain edge
|
mapScrollPos: ; 4-pixel columns distance from right terrain edge
|
||||||
.word 80
|
.word 79
|
||||||
quitRequested:
|
quitRequested:
|
||||||
.word $0000
|
.word $0000
|
||||||
|
|
||||||
|
1
macros.s
1
macros.s
@ -117,6 +117,7 @@
|
|||||||
sta PARAM24
|
sta PARAM24
|
||||||
.endmacro
|
.endmacro
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;
|
;;;;;;;;;;
|
||||||
; Stack Macros
|
; Stack Macros
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
|
|
||||||
TERRAINWIDTH = 640 ; In pixels
|
TERRAINWIDTH = 640 ; In pixels
|
||||||
MAXTERRAINHEIGHT = 100 ; In pixels
|
MAXTERRAINHEIGHT = 20 ; In pixels
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
; renderTerrain
|
; renderTerrain
|
||||||
|
Loading…
Reference in New Issue
Block a user