Improve per-scanline demo
This commit is contained in:
parent
e3409f92fa
commit
5cfefc350c
|
@ -38,6 +38,9 @@ MaxBG0Y equ 22
|
||||||
frameCount equ 24
|
frameCount equ 24
|
||||||
OldOneSecondCounter equ 26
|
OldOneSecondCounter equ 26
|
||||||
appTmp0 equ 28
|
appTmp0 equ 28
|
||||||
|
seg1x equ 30
|
||||||
|
seg2x equ 32
|
||||||
|
seg3x equ 34
|
||||||
|
|
||||||
phk
|
phk
|
||||||
plb
|
plb
|
||||||
|
@ -51,12 +54,6 @@ appTmp0 equ 28
|
||||||
lda #ENGINE_MODE_USER_TOOL ; Engine in Fast Mode as a User Tool
|
lda #ENGINE_MODE_USER_TOOL ; Engine in Fast Mode as a User Tool
|
||||||
jsr GTEStartUp ; Load and install the GTE User Tool
|
jsr GTEStartUp ; Load and install the GTE User Tool
|
||||||
|
|
||||||
; Initialize local variables
|
|
||||||
|
|
||||||
stz StartX
|
|
||||||
stz StartY
|
|
||||||
stz frameCount
|
|
||||||
|
|
||||||
; Load a tileset
|
; Load a tileset
|
||||||
|
|
||||||
pea 0
|
pea 0
|
||||||
|
@ -72,11 +69,25 @@ appTmp0 equ 28
|
||||||
|
|
||||||
; Set up our level data
|
; Set up our level data
|
||||||
|
|
||||||
jsr BG0SetUp
|
; jsr BG0SetUp
|
||||||
|
pea 416
|
||||||
|
pea 30
|
||||||
|
pea ^App_TileMapBG0
|
||||||
|
pea App_TileMapBG0+{10*416}
|
||||||
|
_GTESetBG0TileMapInfo
|
||||||
|
|
||||||
jsr SetLimits
|
jsr SetLimits
|
||||||
|
|
||||||
pea #80
|
; Initialize local variables
|
||||||
pei MaxBG0Y
|
|
||||||
|
lda #56
|
||||||
|
sta StartX
|
||||||
|
lda #0
|
||||||
|
sta StartY
|
||||||
|
stz frameCount
|
||||||
|
|
||||||
|
pei StartX
|
||||||
|
pei StartY
|
||||||
_GTESetBG0Origin
|
_GTESetBG0Origin
|
||||||
|
|
||||||
lda #193 ; Tile ID of '0'
|
lda #193 ; Tile ID of '0'
|
||||||
|
@ -89,8 +100,9 @@ appTmp0 equ 28
|
||||||
|
|
||||||
; Set up the per-scanline rendering
|
; Set up the per-scanline rendering
|
||||||
|
|
||||||
lda #0
|
lda StartX
|
||||||
jsr InitOffsets
|
jsr InitOffsets
|
||||||
|
|
||||||
pea #scanlineHorzOffset
|
pea #scanlineHorzOffset
|
||||||
pea #^BG0Offsets
|
pea #^BG0Offsets
|
||||||
pea #BG0Offsets
|
pea #BG0Offsets
|
||||||
|
@ -114,13 +126,14 @@ EvtLoop
|
||||||
:do_more
|
:do_more
|
||||||
cmp #'d'
|
cmp #'d'
|
||||||
bne :not_d
|
bne :not_d
|
||||||
lda StartX
|
; lda StartX
|
||||||
cmp MaxBG0X
|
; cmp MaxBG0X
|
||||||
bcc *+5
|
; bcc *+5
|
||||||
brl :do_render
|
; brl :do_render
|
||||||
inc StartX
|
|
||||||
lda StartX
|
jsr DecRanges
|
||||||
jsr SetOffsets
|
jsr SetOffsets
|
||||||
|
|
||||||
; pei StartX
|
; pei StartX
|
||||||
; pei StartY
|
; pei StartY
|
||||||
; _GTESetBG0Origin
|
; _GTESetBG0Origin
|
||||||
|
@ -129,12 +142,13 @@ EvtLoop
|
||||||
|
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bne :not_a
|
bne :not_a
|
||||||
lda StartX
|
; lda StartX
|
||||||
bne *+5
|
; bne *+5
|
||||||
brl :do_render
|
; brl :do_render
|
||||||
dec StartX
|
|
||||||
lda StartX
|
jsr IncRanges
|
||||||
jsr SetOffsets
|
jsr SetOffsets
|
||||||
|
|
||||||
; pei StartX
|
; pei StartX
|
||||||
; pei StartY
|
; pei StartY
|
||||||
; _GTESetBG0Origin
|
; _GTESetBG0Origin
|
||||||
|
@ -255,38 +269,99 @@ SetLimits
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SetOffsets
|
DecRanges
|
||||||
and #$00FF
|
lda seg1x
|
||||||
brl _SetOffsets
|
bne *+5
|
||||||
|
lda #164
|
||||||
|
dec
|
||||||
|
sta seg1x
|
||||||
|
bit #1
|
||||||
|
bne :out
|
||||||
|
lda seg2x
|
||||||
|
bne *+5
|
||||||
|
lda #164
|
||||||
|
dec
|
||||||
|
sta seg2x
|
||||||
|
bit #1
|
||||||
|
bne :out
|
||||||
|
lda seg3x
|
||||||
|
bne *+5
|
||||||
|
lda #164
|
||||||
|
dec
|
||||||
|
sta seg3x
|
||||||
|
:out
|
||||||
|
rts
|
||||||
|
|
||||||
|
IncRanges
|
||||||
|
lda seg1x
|
||||||
|
inc
|
||||||
|
cmp #164
|
||||||
|
bcc *+5
|
||||||
|
lda #0
|
||||||
|
sta seg1x
|
||||||
|
bit #1
|
||||||
|
bne :out
|
||||||
|
lda seg2x
|
||||||
|
inc
|
||||||
|
cmp #164
|
||||||
|
bcc *+5
|
||||||
|
lda #0
|
||||||
|
sta seg2x
|
||||||
|
bit #1
|
||||||
|
bne :out
|
||||||
|
lda seg3x
|
||||||
|
inc
|
||||||
|
cmp #164
|
||||||
|
bcc *+5
|
||||||
|
lda #0
|
||||||
|
sta seg3x
|
||||||
|
:out
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
InitOffsets
|
InitOffsets
|
||||||
and #$00FF
|
pha
|
||||||
sta appTmp0
|
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
ldy #40
|
||||||
|
jsr _InitRange
|
||||||
|
ldx #40
|
||||||
ldy #80
|
ldy #80
|
||||||
jsr _InitRange
|
jsr _InitRange
|
||||||
ldx #80
|
ldx #120
|
||||||
ldy #80
|
ldy #88
|
||||||
jsr _InitRange
|
|
||||||
ldx #160
|
|
||||||
ldy #48
|
|
||||||
jsr _InitRange
|
jsr _InitRange
|
||||||
|
|
||||||
lda appTmp0
|
pla
|
||||||
_SetOffsets
|
sta seg1x
|
||||||
ldx #160
|
jsr SetOffset1
|
||||||
ldy #48
|
|
||||||
jsr _SetRange
|
|
||||||
lsr
|
lsr
|
||||||
ldx #80
|
sta seg2x
|
||||||
|
jsr SetOffset2
|
||||||
|
lsr
|
||||||
|
sta seg3x
|
||||||
|
jmp SetOffset3
|
||||||
|
|
||||||
|
SetOffsets
|
||||||
|
lda seg1x
|
||||||
|
jsr SetOffset1
|
||||||
|
lda seg2x
|
||||||
|
jsr SetOffset2
|
||||||
|
lda seg3x
|
||||||
|
jmp SetOffset3
|
||||||
|
|
||||||
|
SetOffset1
|
||||||
|
ldx #120
|
||||||
|
ldy #88
|
||||||
|
jmp _SetRange
|
||||||
|
SetOffset2
|
||||||
|
ldx #40
|
||||||
ldy #80
|
ldy #80
|
||||||
jsr _SetRange
|
jmp _SetRange
|
||||||
lsr
|
SetOffset3
|
||||||
ldx #0
|
ldx #0
|
||||||
ldy #80
|
ldy #40
|
||||||
jsr _SetRange
|
jmp _SetRange
|
||||||
rts
|
|
||||||
|
|
||||||
_SetRange
|
_SetRange
|
||||||
pha
|
pha
|
||||||
|
|
Loading…
Reference in New Issue