Integrated Mr. Sprite bank system
This commit is contained in:
parent
145b969d97
commit
c19dee9634
|
@ -51,9 +51,9 @@
|
|||
70F0869F1F413A89002446C3 /* player.s */,
|
||||
700F21DF1F4A364600D7007D /* projectile.s */,
|
||||
70A80FB01F43D7F200BD34C9 /* gamemanager.s */,
|
||||
70E554C41F807ADB00F3C871 /* spritebank.s */,
|
||||
70E9D8611F2BD95400555C19 /* gscats.s */,
|
||||
70E9D8631F2BD95400555C19 /* Makefile */,
|
||||
70E554C41F807ADB00F3C871 /* spritebank.s */,
|
||||
7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */,
|
||||
7059502B1F37A0BE00BBE90F /* GenerateVRAMTable.py */,
|
||||
7099E3851F4107B100182A82 /* GenerateVRAMYOffset.py */,
|
||||
|
|
|
@ -16,6 +16,12 @@ beginGameplay:
|
|||
lda #0
|
||||
jsr setPalette
|
||||
|
||||
; Set up sprite rendering
|
||||
BITS8
|
||||
lda #3
|
||||
sta spritebankBank00+3 ; Tell compiled sprites what bank they are in
|
||||
BITS16
|
||||
|
||||
; Erase the screen
|
||||
ldx #$0000
|
||||
jsr colorFill
|
||||
|
|
|
@ -59,7 +59,7 @@ placeGameObjectOnTerrain:
|
|||
; ptr = Pointer to gameobject data
|
||||
; Trashes SCRATCHL
|
||||
;
|
||||
.macro RENDER_GAMEOBJECT ptr,compiledSprite
|
||||
.macro RENDER_GAMEOBJECT ptr,spriteIndex
|
||||
.scope
|
||||
SAVE_AXY
|
||||
|
||||
|
@ -374,10 +374,10 @@ renderGameobjectBackground:
|
|||
lda VRAMBANK+160*15+6,x
|
||||
sta ptr+GO_BACKGROUND,y
|
||||
|
||||
; Draw sprite
|
||||
; Call compiled sprite code
|
||||
ply
|
||||
lda #compiledSprite
|
||||
jsr drawSprite
|
||||
lda #spriteIndex
|
||||
jsr DrawSpriteBank
|
||||
|
||||
renderGameobjectDone:
|
||||
RESTORE_AXY
|
||||
|
|
10
graphics.s
10
graphics.s
|
@ -155,16 +155,6 @@ drawNumber:
|
|||
rts
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; drawSprite
|
||||
;
|
||||
; A = Sprite to render
|
||||
; X = VRAM position to render at
|
||||
;
|
||||
;
|
||||
drawSprite:
|
||||
rts
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Vertical blank checkers
|
||||
;
|
||||
|
|
BIN
gscats.2mg
BIN
gscats.2mg
Binary file not shown.
4
gscats.s
4
gscats.s
|
@ -19,13 +19,15 @@ mainBank2:
|
|||
sta TEXTCOLOR
|
||||
BITS16
|
||||
|
||||
; Set up SCBs
|
||||
; Set up video
|
||||
jsr initSCBs
|
||||
SHRVIDEO
|
||||
SHADOWMEMORY
|
||||
|
||||
jmp beginGameplay
|
||||
|
||||
quitGame:
|
||||
NORMALMEMORY
|
||||
CLASSICVIDEO
|
||||
jml (PRODOSRETURN)
|
||||
|
||||
|
|
30
macros.s
30
macros.s
|
@ -69,16 +69,33 @@
|
|||
.endmacro
|
||||
|
||||
|
||||
.macro FASTGRAPHICS ;50 cycles, 12 bytes
|
||||
sei ;2
|
||||
phd ;4
|
||||
.macro SHADOWMEMORY
|
||||
sep #%00100000 ; 3 16-bit A only, to preserve X/Y
|
||||
.a8
|
||||
|
||||
lda SHADOW ;5
|
||||
sta SHADOWREGISTER ;4
|
||||
lda #0 ;2
|
||||
sta SHADOW ;5
|
||||
rep #%00100000 ;3
|
||||
.a16
|
||||
.endmacro
|
||||
|
||||
|
||||
.macro NORMALMEMORY
|
||||
sep #%00100000 ; 3 16-bit A only, to preserve X/Y
|
||||
.a8
|
||||
lda SHADOWREGISTER ;4
|
||||
sta SHADOW ;5
|
||||
rep #%00100000 ;3
|
||||
.a16
|
||||
.endmacro
|
||||
|
||||
|
||||
.macro FASTGRAPHICS ;34 cycles, 12 bytes
|
||||
sei ;2
|
||||
phd ;4
|
||||
sep #%00100000 ; 3 16-bit A only, to preserve X/Y
|
||||
.a8
|
||||
|
||||
lda STACKCTL ;5
|
||||
sta STACKREGISTER ;4
|
||||
|
@ -92,13 +109,10 @@
|
|||
.endmacro
|
||||
|
||||
|
||||
.macro SLOWGRAPHICS ;37 cycles, 12 bytes
|
||||
.macro SLOWGRAPHICS ;28 cycles, 12 bytes
|
||||
sep #%00100000 ; 3 16-bit A only, to preserve X/Y
|
||||
.a8
|
||||
|
||||
lda SHADOWREGISTER ;4
|
||||
sta SHADOW ;5
|
||||
|
||||
lda STACKREGISTER ;4
|
||||
sta STACKCTL ;5
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
DrawSpriteBank:
|
||||
ASL ; A=Sprite Number ($0000-$0002)
|
||||
ASL ; A=Sprite Number ($0000-$0002)
|
||||
TAX ; Y=Target Screen Address ($2000-$9D00)
|
||||
LDA spritebankNum,X ; Relative Sprite Number Table
|
||||
JMP (spritebankBank,X) ; Bank Number Table
|
||||
|
||||
spritebankNum:
|
||||
.word $0000,$0200,$0100
|
||||
.word $0000,$0002,$0001
|
||||
|
||||
spritebankBank:
|
||||
.addr spritebankBank00,spritebankBank00,spritebankBank00
|
||||
|
||||
spritebankBank00:
|
||||
JSL $AA0000
|
||||
JSL $AA0000
|
||||
PHK
|
||||
PLB
|
||||
RTS
|
||||
|
|
Loading…
Reference in New Issue