Merged compile/span rendering working

This commit is contained in:
blondie7575 2018-01-18 18:15:42 -08:00
parent 4a8abaa1b4
commit f0631386b1
5 changed files with 22 additions and 15 deletions

View File

@ -32,6 +32,8 @@ leftScreenEdge = $6E ; Reserved for leftScreenEdge (This is almost certainly m
STACKPTR = $70 ; Cache for stack pointer in fast graphics STACKPTR = $70 ; Cache for stack pointer in fast graphics
SHADOWREGISTER = $72 ; Cache for shadow register in fast graphics SHADOWREGISTER = $72 ; Cache for shadow register in fast graphics
STACKREGISTER = $73 ; Cache for stack register in fast graphics STACKREGISTER = $73 ; Cache for stack register in fast graphics
lastCompiledTerrainY = $75 ; The highest Y value that the compiled renderer must handle
; Terrain constants ; Terrain constants

View File

@ -30,12 +30,8 @@ beginGameplay:
stz leftScreenEdge stz leftScreenEdge
jsr generateTerrain jsr generateTerrain
jsr compileTerrain
; jsr clipTerrain
jsl renderTerrainSpans
; Create players ; Create players
lda #56 lda #106;#56
ldy #0 ldy #0
jsr playerCreate jsr playerCreate
@ -50,18 +46,20 @@ beginGameplay:
jsr protectProjectiles jsr protectProjectiles
jsr prepareRowRendering jsr prepareRowRendering
jsr compileTerrain
jsr clipTerrain
gameplayLoop: gameplayLoop:
jsr syncVBL jsr syncVBL
BORDER_COLOR #$0 BORDER_COLOR #$0
; Render the terrain if needed ; Render the terrain if needed
; lda terrainDirty lda terrainDirty
; beq gameplayLoopKbd beq gameplayLoopKbd
BORDER_COLOR #$3 BORDER_COLOR #$3
jsl unrenderTerrainSpans
jsl renderTerrainSpans jsl renderTerrainSpans
; jsr renderTerrain jsr renderTerrain
stz terrainDirty stz terrainDirty
BORDER_COLOR #$1 BORDER_COLOR #$1
@ -229,8 +227,8 @@ endGame:
; A = New map scroll position ; A = New map scroll position
; ;
scrollMap: scrollMap:
; jsr unclipTerrain jsr unclipTerrain
; jsl unrenderTerrainSpans jsl unrenderTerrainSpans
jsr unrenderPlayers jsr unrenderPlayers
jsr unrenderProjectiles jsr unrenderProjectiles
@ -241,7 +239,7 @@ scrollMap:
adc #160-GAMEOBJECTWIDTH/4-1 adc #160-GAMEOBJECTWIDTH/4-1
sta rightScreenEdge sta rightScreenEdge
; jsr clipTerrain jsr clipTerrain
lda #$ffff lda #$ffff
sta mapScrollRequested sta mapScrollRequested

Binary file not shown.

View File

@ -16,7 +16,7 @@ renderTerrain:
FASTGRAPHICS FASTGRAPHICS
lda #0 lda #0
sta SCRATCHL2 ; Row counter sta SCRATCHL2 ; Row counter
lda #$5f1f ; 4 Point stack to end of VRAM lda #$5f1f ; 4 Point stack to end of affected VRAM
tcs ; 2 tcs ; 2
sec sec
@ -44,8 +44,11 @@ renderRowComplete:
lda SCRATCHL2 lda SCRATCHL2
inc inc
cmp #MAXTERRAINHEIGHT cmp lastCompiledTerrainY
beq renderTerrainDone beq renderRowCont
bcs renderTerrainDone
renderRowCont:
sta SCRATCHL2 sta SCRATCHL2
bra renderTerrainLoop bra renderTerrainLoop
@ -387,6 +390,7 @@ prepareRowRendering:
ldx #199 ldx #199
stz SCRATCHL2 stz SCRATCHL2
stz lastCompiledTerrainY
prepareRowRenderingLoop: prepareRowRenderingLoop:
lda #0 lda #0
@ -404,6 +408,7 @@ prepareRowRenderingLoop:
prepareRowRenderingCompileMode: prepareRowRenderingCompileMode:
jsr disableFillMode jsr disableFillMode
inc lastCompiledTerrainY
prepareRowRenderingLoopNext: prepareRowRenderingLoopNext:
inc SCRATCHL2 inc SCRATCHL2

View File

@ -29,6 +29,8 @@ renderTerrainSpans:
tcs tcs
lda #MAXTERRAINHEIGHT-1 lda #MAXTERRAINHEIGHT-1
sec
sbc lastCompiledTerrainY
renderTerrainSpansLoop: renderTerrainSpansLoop:
sta PARAML1 sta PARAML1