Basic high-speed span rendering working

This commit is contained in:
blondie7575 2017-07-30 20:23:32 -07:00
parent 39395c40bb
commit 06100a50c8
8 changed files with 532 additions and 1 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/GSCats.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/GSCats.xcscheme
/gscats.lst
/GSCats.xcodeproj/xcuserdata/qd.xcuserdatad/xcdebugger

View File

@ -10,6 +10,8 @@
700C39C51F2E5CA800C24F9C /* trigtables.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = trigtables.s; sourceTree = "<group>"; };
706DF1641F2D39F700AA6680 /* loader.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = loader.s; sourceTree = "<group>"; };
706DF1651F2D4A8100AA6680 /* terrain.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = terrain.s; sourceTree = "<group>"; };
7088096C1F2EA4B200D4C950 /* spanRender.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spanRender.s; sourceTree = "<group>"; };
7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = GenerateRenderSpans.py; sourceTree = "<group>"; };
70E9D85F1F2BD95400555C19 /* equates.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = equates.s; sourceTree = "<group>"; };
70E9D8601F2BD95400555C19 /* graphics.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = graphics.s; sourceTree = "<group>"; };
70E9D8611F2BD95400555C19 /* gscats.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gscats.s; sourceTree = "<group>"; };
@ -26,9 +28,11 @@
70E9D8621F2BD95400555C19 /* macros.s */,
706DF1641F2D39F700AA6680 /* loader.s */,
706DF1651F2D4A8100AA6680 /* terrain.s */,
7088096C1F2EA4B200D4C950 /* spanRender.s */,
700C39C51F2E5CA800C24F9C /* trigtables.s */,
70E9D8611F2BD95400555C19 /* gscats.s */,
70E9D8631F2BD95400555C19 /* Makefile */,
7088096D1F2ECE8D00D4C950 /* GenerateRenderSpans.py */,
);
sourceTree = "<group>";
};

32
GenerateRenderSpans.py Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/python
import sys,os,png
import argparse
def main(argv):
# Prologue
print ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
print "; spanRenderers"
print ";"
print "; Automatically generated by GenerateRenderSpans.py. Do not edit."
print ";\nrenderSpamJumpTable:"
for jump in range(0,80):
print "\t.word renderSpan%d" % (jump+1)
print "\n"
for span in range(1,81):
print "renderSpan%d:" % span
bytes = "\t.byte "
for byte in range(0,span-1):
bytes += "$5a,"
bytes += "$5a\n\tjmp renderSpanComplete\n"
print bytes
if __name__ == "__main__":
main(sys.argv[1:])

View File

@ -2,6 +2,7 @@
; colorFill
; Fills 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

Binary file not shown.

View File

@ -33,7 +33,9 @@ mainBank2:
mainGameLoop:
ldy mapScrollPos
jsr renderTerrainColumns
; jsr renderTerrainColumns
jsr renderTerrain
jsr kbdScan

408
spanRender.s Normal file
View File

@ -0,0 +1,408 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; spanRenderers
;
; Automatically generated by GenerateRenderSpans.py. Do not edit.
;
renderSpamJumpTable:
.word renderSpan1
.word renderSpan2
.word renderSpan3
.word renderSpan4
.word renderSpan5
.word renderSpan6
.word renderSpan7
.word renderSpan8
.word renderSpan9
.word renderSpan10
.word renderSpan11
.word renderSpan12
.word renderSpan13
.word renderSpan14
.word renderSpan15
.word renderSpan16
.word renderSpan17
.word renderSpan18
.word renderSpan19
.word renderSpan20
.word renderSpan21
.word renderSpan22
.word renderSpan23
.word renderSpan24
.word renderSpan25
.word renderSpan26
.word renderSpan27
.word renderSpan28
.word renderSpan29
.word renderSpan30
.word renderSpan31
.word renderSpan32
.word renderSpan33
.word renderSpan34
.word renderSpan35
.word renderSpan36
.word renderSpan37
.word renderSpan38
.word renderSpan39
.word renderSpan40
.word renderSpan41
.word renderSpan42
.word renderSpan43
.word renderSpan44
.word renderSpan45
.word renderSpan46
.word renderSpan47
.word renderSpan48
.word renderSpan49
.word renderSpan50
.word renderSpan51
.word renderSpan52
.word renderSpan53
.word renderSpan54
.word renderSpan55
.word renderSpan56
.word renderSpan57
.word renderSpan58
.word renderSpan59
.word renderSpan60
.word renderSpan61
.word renderSpan62
.word renderSpan63
.word renderSpan64
.word renderSpan65
.word renderSpan66
.word renderSpan67
.word renderSpan68
.word renderSpan69
.word renderSpan70
.word renderSpan71
.word renderSpan72
.word renderSpan73
.word renderSpan74
.word renderSpan75
.word renderSpan76
.word renderSpan77
.word renderSpan78
.word renderSpan79
.word renderSpan80
renderSpan1:
.byte $5a
jmp renderSpanComplete
renderSpan2:
.byte $5a,$5a
jmp renderSpanComplete
renderSpan3:
.byte $5a,$5a,$5a
jmp renderSpanComplete
renderSpan4:
.byte $5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan5:
.byte $5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan6:
.byte $5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan7:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan8:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan9:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan10:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan11:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan12:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan13:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan14:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan15:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan16:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan17:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan18:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan19:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan20:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan21:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan22:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan23:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan24:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan25:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan26:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan27:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan28:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan29:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan30:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan31:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan32:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan33:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan34:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan35:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan36:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan37:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan38:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan39:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan40:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan41:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan42:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan43:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan44:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan45:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan46:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan47:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan48:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan49:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan50:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan51:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan52:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan53:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan54:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan55:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan56:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan57:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan58:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan59:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan60:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan61:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan62:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan63:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan64:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan65:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan66:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan67:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan68:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan69:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan70:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan71:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan72:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan73:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan74:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan75:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan76:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan77:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan78:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan79:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete
renderSpan80:
.byte $5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a,$5a
jmp renderSpanComplete

View File

@ -95,11 +95,92 @@ renderTerrainColumnsDone:
rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderTerrain
;
; No stack operations permitted here!
;
renderTerrain:
FASTGRAPHICS
lda #$9d00-1 ; Point stack to end of VRAM
tcs
jmp renderSpanChain
renderSpanChainComplete:
SLOWGRAPHICS
rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderSpanChain
;
; Trashes all registers
; No stack operations permitted here!
;
renderSpanChain:
stz spanChainIndex
renderSpanChainLoop:
ldx spanChainIndex
ldy spanChain+2,x
lda spanChain,x
beq renderSpanChainComplete
dec
asl
tax
jmp (renderSpamJumpTable,x)
renderSpanComplete:
inc spanChainIndex
inc spanChainIndex
inc spanChainIndex
inc spanChainIndex
bra renderSpanChainLoop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; renderSpan
;
; No stack operations permitted here!
;
;
;renderSpan:
; ldy spanParams+2
; lda spanParams
; dec
; asl
; tax
; jmp (renderSpamJumpTable,x)
spanChain:
.word 20,$1111 ; Length,Colors
.word 40,$0000 ; Length,Colors
.word 10,$1111 ; Length,Colors
.word 2,$0000 ; Length,Colors
.word 1,$1111 ; Length,Colors
.word 0,0 ; Length,Colors
.word 0,0 ; Length,Colors
.word 0,0 ; Length,Colors
.word 0,0 ; Length,Colors
.word 0,0 ; Length,Colors
.word 0
spanChainIndex:
.word 0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; generateTerrain
;
; Trashes A and Y
;
generateTerrain:
ldy #0
lda #terrainData
@ -123,6 +204,8 @@ generateTerrainLoop:
rts
.include "spanRender.s"
; Terrain data, stored as height values 4 pixels wide
terrainData: