mirror of
https://github.com/blondie7575/HiSprite.git
synced 2024-06-08 03:29:30 +00:00
Optimizations
- Added black rectangle compiling - Got batched rendering working
This commit is contained in:
parent
34e34055d4
commit
69e669054b
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ HGR.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.x
|
||||||
/hisprite.lst
|
/hisprite.lst
|
||||||
/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate
|
/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate
|
||||||
/HiSprite.xcodeproj/xcuserdata/qd.xcuserdatad/xcdebugger
|
/HiSprite.xcodeproj/xcuserdata/qd.xcuserdatad/xcdebugger
|
||||||
|
/DataDrawCycleCounts.txt
|
||||||
|
|
40
HiSprite.py
40
HiSprite.py
|
@ -19,9 +19,14 @@ def main(argv):
|
||||||
|
|
||||||
pngfile = sys.argv[1]
|
pngfile = sys.argv[1]
|
||||||
xdraw = 0
|
xdraw = 0
|
||||||
if len(argv)>1 and sys.argv[2] == "--xdraw":
|
black = 0
|
||||||
xdraw = 1
|
if len(argv)>1:
|
||||||
|
if sys.argv[2] == "--xdraw":
|
||||||
|
xdraw = 1
|
||||||
|
else:
|
||||||
|
if sys.argv[2] == "--black":
|
||||||
|
black = 1
|
||||||
|
|
||||||
reader = png.Reader(pngfile)
|
reader = png.Reader(pngfile)
|
||||||
try:
|
try:
|
||||||
pngdata = reader.asRGB8()
|
pngdata = reader.asRGB8()
|
||||||
|
@ -33,7 +38,10 @@ def main(argv):
|
||||||
pixelData = list(pngdata[2])
|
pixelData = list(pngdata[2])
|
||||||
byteWidth = width/2+1+1 # TODO: Calculate a power of two for this
|
byteWidth = width/2+1+1 # TODO: Calculate a power of two for this
|
||||||
niceName = os.path.splitext(pngfile)[0].upper()
|
niceName = os.path.splitext(pngfile)[0].upper()
|
||||||
|
|
||||||
|
if black:
|
||||||
|
niceName = "BLACK"
|
||||||
|
|
||||||
disclaimer()
|
disclaimer()
|
||||||
|
|
||||||
# Prologue
|
# Prologue
|
||||||
|
@ -63,7 +71,7 @@ def main(argv):
|
||||||
print rowStartCode
|
print rowStartCode
|
||||||
cycleCount += extraCycles
|
cycleCount += extraCycles
|
||||||
|
|
||||||
spriteChunks = layoutSpriteChunk(pixelData,width,height,shift,xdraw,cycleCount)
|
spriteChunks = layoutSpriteChunk(pixelData,width,height,shift,xdraw,black,cycleCount)
|
||||||
|
|
||||||
for row in range(height):
|
for row in range(height):
|
||||||
for chunkIndex in range(len(spriteChunks)):
|
for chunkIndex in range(len(spriteChunks)):
|
||||||
|
@ -72,11 +80,11 @@ def main(argv):
|
||||||
print "\n"
|
print "\n"
|
||||||
|
|
||||||
|
|
||||||
def layoutSpriteChunk(pixelData,width,height,shift,xdraw,cycleCount):
|
def layoutSpriteChunk(pixelData,width,height,shift,xdraw,black,cycleCount):
|
||||||
|
|
||||||
colorStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForColor,highBitForColor)
|
colorStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForColor,highBitForColor)
|
||||||
maskStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForMask,highBitForMask)
|
maskStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForMask,highBitForMask)
|
||||||
code = generateBlitter(colorStreams,maskStreams,height,xdraw,cycleCount)
|
code = generateBlitter(colorStreams,maskStreams,height,xdraw,black,cycleCount)
|
||||||
|
|
||||||
return code
|
return code
|
||||||
|
|
||||||
|
@ -129,7 +137,7 @@ def byteStreamsFromPixels(pixelData,width,height,shift,bitDelegate,highBitDelega
|
||||||
return byteStreams
|
return byteStreams
|
||||||
|
|
||||||
|
|
||||||
def generateBlitter(colorStreams,maskStreams,height,xdraw,baseCycleCount):
|
def generateBlitter(colorStreams,maskStreams,height,xdraw,black,baseCycleCount):
|
||||||
|
|
||||||
byteWidth = len(colorStreams[0])
|
byteWidth = len(colorStreams[0])
|
||||||
spriteChunks = [["" for y in range(height)] for x in range(byteWidth)]
|
spriteChunks = [["" for y in range(height)] for x in range(byteWidth)]
|
||||||
|
@ -149,17 +157,23 @@ def generateBlitter(colorStreams,maskStreams,height,xdraw,baseCycleCount):
|
||||||
byteSplits[chunkIndex] != "10000000":
|
byteSplits[chunkIndex] != "10000000":
|
||||||
|
|
||||||
# Store byte into video memory
|
# Store byte into video memory
|
||||||
if xdraw:
|
if xdraw: # Option to exclusive-or pixels into background
|
||||||
spriteChunks[chunkIndex][row] = \
|
spriteChunks[chunkIndex][row] = \
|
||||||
"\tlda (SCRATCH0),y\n" + \
|
"\tlda (SCRATCH0),y\n" + \
|
||||||
"\teor #%%%s\n" % byteSplits[chunkIndex] + \
|
"\teor #%%%s\n" % byteSplits[chunkIndex] + \
|
||||||
"\tsta (SCRATCH0),y\n";
|
"\tsta (SCRATCH0),y\n";
|
||||||
cycleCount += 5 + 2 + 6
|
cycleCount += 5 + 2 + 6
|
||||||
else:
|
else:
|
||||||
spriteChunks[chunkIndex][row] = \
|
if black: # Option to write "black-out" pixels instead
|
||||||
"\tlda #%%%s\n" % byteSplits[chunkIndex] + \
|
spriteChunks[chunkIndex][row] = \
|
||||||
"\tsta (SCRATCH0),y\n";
|
"\tlda #0\n" + \
|
||||||
cycleCount += 2 + 6
|
"\tsta (SCRATCH0),y\n";
|
||||||
|
cycleCount += 2 + 6
|
||||||
|
else: # Regular blitting
|
||||||
|
spriteChunks[chunkIndex][row] = \
|
||||||
|
"\tlda #%%%s\n" % byteSplits[chunkIndex] + \
|
||||||
|
"\tsta (SCRATCH0),y\n";
|
||||||
|
cycleCount += 2 + 6
|
||||||
else:
|
else:
|
||||||
optimizationCount += 1
|
optimizationCount += 1
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
700F8D261EF8CFA100F103DE /* spritegen0b.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen0b.s; sourceTree = "<group>"; };
|
||||||
7018A7A81E883A3A00C57515 /* spriteBuffers.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = spriteBuffers.s; sourceTree = "<group>"; };
|
7018A7A81E883A3A00C57515 /* spriteBuffers.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = spriteBuffers.s; sourceTree = "<group>"; };
|
||||||
701B5E0E1D84810000E6D330 /* macros.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = macros.s; sourceTree = "<group>"; };
|
701B5E0E1D84810000E6D330 /* macros.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = macros.s; sourceTree = "<group>"; };
|
||||||
701B5E0F1D84810000E6D330 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
|
701B5E0F1D84810000E6D330 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
701B5E121D8481C800E6D330 /* hgrtableX.s */,
|
701B5E121D8481C800E6D330 /* hgrtableX.s */,
|
||||||
701B5E171D84824400E6D330 /* hgrtableY.s */,
|
701B5E171D84824400E6D330 /* hgrtableY.s */,
|
||||||
701B5E131D84820100E6D330 /* spritegen0.s */,
|
701B5E131D84820100E6D330 /* spritegen0.s */,
|
||||||
|
700F8D261EF8CFA100F103DE /* spritegen0b.s */,
|
||||||
701B5E141D84823300E6D330 /* spritegen1.s */,
|
701B5E141D84823300E6D330 /* spritegen1.s */,
|
||||||
701B5E151D84823300E6D330 /* spritegen2.s */,
|
701B5E151D84823300E6D330 /* spritegen2.s */,
|
||||||
701B5E161D84823300E6D330 /* spritegen3.s */,
|
701B5E161D84823300E6D330 /* spritegen3.s */,
|
||||||
|
|
93
graphics.s
93
graphics.s
|
@ -192,72 +192,73 @@ restoreBackground_smc5:
|
||||||
; PARAM0: X pos
|
; PARAM0: X pos
|
||||||
; PARAM1: Y pos
|
; PARAM1: Y pos
|
||||||
;
|
;
|
||||||
; Assumes 4-byte-wide, 8px-high sprites
|
; Assumes 6-byte-wide, 8px-high sprites
|
||||||
|
; 1099 cycles per call
|
||||||
;
|
;
|
||||||
BlackRect:
|
BlackRect:
|
||||||
SAVE_AX
|
SAVE_AX ; 6
|
||||||
lda #0
|
lda #0 ; 2
|
||||||
pha
|
pha ; 3 9 setup
|
||||||
|
|
||||||
blackRect_loop:
|
blackRect_loop:
|
||||||
clc
|
clc ; 2
|
||||||
pla
|
pla ; 4
|
||||||
pha
|
pha ; 3
|
||||||
adc PARAM1 ; Calculate Y line
|
adc PARAM1 ; 3 ; Calculate Y line
|
||||||
tax
|
tax ; 2
|
||||||
|
|
||||||
lda HGRROWS_H1,x ; Compute hires row
|
lda HGRROWS_H1,x ; 4 ; Compute hires row
|
||||||
sta blackRect_smc0+2
|
sta blackRect_smc0+2 ; 4
|
||||||
sta blackRect_smc1+2
|
sta blackRect_smc1+2 ; 4
|
||||||
sta blackRect_smc2+2
|
sta blackRect_smc2+2 ; 4
|
||||||
sta blackRect_smc3+2
|
sta blackRect_smc3+2 ; 4
|
||||||
sta blackRect_smc4+2
|
sta blackRect_smc4+2 ; 4
|
||||||
sta blackRect_smc5+2
|
sta blackRect_smc5+2 ; 4
|
||||||
lda HGRROWS_L,x
|
lda HGRROWS_L,x ; 4
|
||||||
sta blackRect_smc0+1
|
sta blackRect_smc0+1 ; 4
|
||||||
sta blackRect_smc1+1
|
sta blackRect_smc1+1 ; 4
|
||||||
sta blackRect_smc2+1
|
sta blackRect_smc2+1 ; 4
|
||||||
sta blackRect_smc3+1
|
sta blackRect_smc3+1 ; 4
|
||||||
sta blackRect_smc4+1
|
sta blackRect_smc4+1 ; 4
|
||||||
sta blackRect_smc5+1
|
sta blackRect_smc5+1 ; 4
|
||||||
|
|
||||||
ldx PARAM0 ; Compute hires column
|
|
||||||
lda DIV7_2,x
|
|
||||||
tax
|
|
||||||
|
|
||||||
|
ldx PARAM0 ; 3 ; Compute hires column
|
||||||
|
lda DIV7_2,x ; 4
|
||||||
|
tax ; 2
|
||||||
|
; 79
|
||||||
blackRect_smc0:
|
blackRect_smc0:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
inx
|
inx ; 2
|
||||||
|
|
||||||
blackRect_smc1:
|
blackRect_smc1:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
inx
|
inx ; 2
|
||||||
|
|
||||||
blackRect_smc2:
|
blackRect_smc2:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
inx
|
inx ; 2
|
||||||
|
|
||||||
blackRect_smc3:
|
blackRect_smc3:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
inx
|
inx ; 2
|
||||||
|
|
||||||
blackRect_smc4:
|
blackRect_smc4:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
inx
|
inx ; 2
|
||||||
|
|
||||||
blackRect_smc5:
|
blackRect_smc5:
|
||||||
stz $2000,x
|
stz $2000,x ; 5
|
||||||
|
|
||||||
pla
|
pla ; 4
|
||||||
inc
|
inc ;2
|
||||||
pha
|
pha ; 3
|
||||||
|
|
||||||
cmp #8
|
cmp #8 ; 2
|
||||||
bne blackRect_loop
|
bne blackRect_loop ; 2 134 per row
|
||||||
|
|
||||||
pla
|
pla ; 4
|
||||||
RESTORE_AX
|
RESTORE_AX ; 8
|
||||||
rts
|
rts ; 6 18 cleanup
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
BIN
hisprite.dsk
BIN
hisprite.dsk
Binary file not shown.
84
hisprite.s
84
hisprite.s
|
@ -30,9 +30,11 @@ SCRATCH1 = $1a
|
||||||
SPRITEPTR_L = $1b
|
SPRITEPTR_L = $1b
|
||||||
SPRITEPTR_H = $1c
|
SPRITEPTR_H = $1c
|
||||||
|
|
||||||
MAXSPRITEINDEX = 5 ; Sprite count - 1
|
MAXSPRITEINDEX = 3 ; Sprite count - 1
|
||||||
MAXPOSX = 127 ; This demo doesn't wanna do 16 bit math
|
MAXPOSX = 127 ; This demo doesn't wanna do 16 bit math
|
||||||
MAXPOSY = 127
|
MAXPOSY = 127
|
||||||
|
MAXLOCALBATCHINDEX = 3 ; Sprites in batch - 1
|
||||||
|
MAXBATCHINDEX = 0 ; Number of batches - 1
|
||||||
|
|
||||||
; Macros
|
; Macros
|
||||||
.macro BLITBYTE xPos,yPos,addr
|
.macro BLITBYTE xPos,yPos,addr
|
||||||
|
@ -75,39 +77,43 @@ main:
|
||||||
|
|
||||||
mainLoop:
|
mainLoop:
|
||||||
|
|
||||||
; Draw sprites
|
|
||||||
renderLoop:
|
renderLoop:
|
||||||
|
|
||||||
; Find our sprite pointer
|
; Find our sprite pointer
|
||||||
lda spriteNum
|
lda spriteNum ; 4
|
||||||
asl
|
asl ; 2
|
||||||
tax
|
tax ; 2
|
||||||
lda META_BUFFERS+1,x
|
lda META_BUFFERS+1,x ; 4
|
||||||
sta SPRITEPTR_H
|
sta SPRITEPTR_H ; 3
|
||||||
lda META_BUFFERS,x
|
lda META_BUFFERS,x ; 4
|
||||||
sta SPRITEPTR_L
|
sta SPRITEPTR_L ; 3
|
||||||
|
|
||||||
; Find Y coordinate
|
; Find Y coordinate
|
||||||
ldy #1
|
ldy #1 ; 2
|
||||||
lda (SPRITEPTR_L),y
|
lda (SPRITEPTR_L),y ; 5
|
||||||
sta PARAM1
|
sta PARAM1 ; 3
|
||||||
|
|
||||||
; Find X coordinate
|
; Find X coordinate
|
||||||
ldy #0
|
ldy #0 ; 2
|
||||||
lda (SPRITEPTR_L),y
|
lda (SPRITEPTR_L),y ; 5
|
||||||
sta PARAM0
|
sta PARAM0 ; 3
|
||||||
|
|
||||||
jsr BOXW_MAG
|
jsr BOXW_MAG ; 6 48 cycles overhead to here
|
||||||
|
|
||||||
; Next sprite
|
; Next sprite
|
||||||
dec spriteNum
|
dec spriteNum ; 6
|
||||||
bmi restartList
|
dec batchLocalIndex ; 6
|
||||||
jmp renderLoop
|
bmi restartList ; 2
|
||||||
|
jmp renderLoop ; 3 65 cycles overhead per sprite
|
||||||
|
|
||||||
restartList:
|
restartList:
|
||||||
lda #MAXSPRITEINDEX
|
lda batchMaxIndex
|
||||||
sta spriteNum
|
sta spriteNum
|
||||||
|
lda #MAXLOCALBATCHINDEX
|
||||||
|
sta batchLocalIndex
|
||||||
|
|
||||||
|
; jmp batchLoop
|
||||||
VBL_SYNC
|
VBL_SYNC
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,17 +139,21 @@ backgroundLoop:
|
||||||
lda (SPRITEPTR_L),y
|
lda (SPRITEPTR_L),y
|
||||||
sta PARAM0
|
sta PARAM0
|
||||||
|
|
||||||
jsr BlackRect
|
jsr BLACK
|
||||||
|
|
||||||
; Next sprite
|
; Next sprite
|
||||||
dec spriteNum
|
dec spriteNum
|
||||||
|
dec batchLocalIndex
|
||||||
bmi backgroundRestartList
|
bmi backgroundRestartList
|
||||||
jmp backgroundLoop
|
jmp backgroundLoop ; 65 cycles overhead per rect
|
||||||
|
|
||||||
backgroundRestartList:
|
backgroundRestartList:
|
||||||
lda #MAXSPRITEINDEX
|
; lda batchMaxIndex
|
||||||
sta spriteNum
|
; sta spriteNum
|
||||||
jmp mainLoop ; Skip movement
|
lda #MAXLOCALBATCHINDEX
|
||||||
|
sta batchLocalIndex
|
||||||
|
|
||||||
|
jmp batchLoop ; Skip movement
|
||||||
|
|
||||||
movementLoop:
|
movementLoop:
|
||||||
; Find our sprite pointer
|
; Find our sprite pointer
|
||||||
|
@ -204,9 +214,18 @@ flipY:
|
||||||
bra continueMovementList
|
bra continueMovementList
|
||||||
|
|
||||||
movementRestartList:
|
movementRestartList:
|
||||||
|
|
||||||
|
batchLoop:
|
||||||
|
dec batchIndex
|
||||||
|
bpl batchContinue
|
||||||
|
|
||||||
|
lda #MAXBATCHINDEX
|
||||||
|
sta batchIndex
|
||||||
lda #MAXSPRITEINDEX
|
lda #MAXSPRITEINDEX
|
||||||
sta spriteNum
|
sta spriteNum
|
||||||
jmp renderLoop
|
|
||||||
|
batchContinue:
|
||||||
|
jmp mainLoop
|
||||||
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@ -242,6 +261,14 @@ delayShortInner:
|
||||||
|
|
||||||
spriteNum:
|
spriteNum:
|
||||||
.byte MAXSPRITEINDEX
|
.byte MAXSPRITEINDEX
|
||||||
|
batchIndex:
|
||||||
|
.byte MAXBATCHINDEX
|
||||||
|
batchMaxIndex:
|
||||||
|
.byte MAXSPRITEINDEX
|
||||||
|
batchLocalIndex:
|
||||||
|
.byte MAXLOCALBATCHINDEX
|
||||||
|
|
||||||
|
|
||||||
bgFilename:
|
bgFilename:
|
||||||
.byte "KOL",0
|
.byte "KOL",0
|
||||||
|
|
||||||
|
@ -250,6 +277,7 @@ bgFilename:
|
||||||
.include "hgrtableY.s"
|
.include "hgrtableY.s"
|
||||||
.include "spriteBuffers.s"
|
.include "spriteBuffers.s"
|
||||||
.include "spritegen0.s"
|
.include "spritegen0.s"
|
||||||
|
.include "spritegen0b.s"
|
||||||
;.include "spritegen1.s"
|
;.include "spritegen1.s"
|
||||||
;.include "spritegen2.s"
|
;.include "spritegen2.s"
|
||||||
;.include "spritegen3.s"
|
;.include "spritegen3.s"
|
||||||
|
|
|
@ -29,94 +29,94 @@ META_BUFFERS:
|
||||||
.addr metaBuffer20
|
.addr metaBuffer20
|
||||||
|
|
||||||
metaBuffer0:
|
metaBuffer0:
|
||||||
.byte 80 ; X pos
|
.byte 0 ; X pos
|
||||||
.byte 116 ; Y pos
|
.byte 0 ;116 ; Y pos
|
||||||
.byte -1 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte -3 ; Y vec
|
.byte -1 ; Y vec
|
||||||
|
|
||||||
metaBuffer1:
|
metaBuffer1:
|
||||||
.byte 64 ; X pos
|
.byte 20 ; X pos
|
||||||
.byte 126 ; Y pos
|
.byte 0; 126 ; Y pos
|
||||||
.byte 4 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte 3 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer2:
|
metaBuffer2:
|
||||||
.byte 42 ; X pos
|
.byte 40 ; X pos
|
||||||
.byte 67 ; Y pos
|
.byte 0; 67 ; Y pos
|
||||||
.byte -3 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte -3 ; Y vec
|
.byte -1 ; Y vec
|
||||||
|
|
||||||
metaBuffer3:
|
metaBuffer3:
|
||||||
.byte 72 ; X pos
|
.byte 60 ; X pos
|
||||||
.byte 70 ; Y pos
|
.byte 0; 70 ; Y pos
|
||||||
.byte -3 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte 5 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer4:
|
metaBuffer4:
|
||||||
.byte 75 ; X pos
|
.byte 80 ; X pos
|
||||||
.byte 49 ; Y pos
|
.byte 0; 49 ; Y pos
|
||||||
.byte -5 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte 3 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer5:
|
metaBuffer5:
|
||||||
.byte 42 ; X pos
|
.byte 100 ; X pos
|
||||||
.byte 101 ; Y pos
|
.byte 0; 101 ; Y pos
|
||||||
.byte 4 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte 2 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer6:
|
metaBuffer6:
|
||||||
.byte 40 ; X pos
|
.byte 120 ; X pos
|
||||||
.byte 74 ; Y pos
|
.byte 0; 74 ; Y pos
|
||||||
.byte 4 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte -5 ; Y vec
|
.byte -1 ; Y vec
|
||||||
|
|
||||||
metaBuffer7:
|
metaBuffer7:
|
||||||
.byte 71 ; X pos
|
.byte 71 ; X pos
|
||||||
.byte 58 ; Y pos
|
.byte 0; 58 ; Y pos
|
||||||
.byte 5 ; X vec
|
.byte 2 ; X vec
|
||||||
.byte 5 ; Y vec
|
.byte 2 ; Y vec
|
||||||
|
|
||||||
metaBuffer8:
|
metaBuffer8:
|
||||||
.byte 20 ; X pos
|
.byte 20 ; X pos
|
||||||
.byte 51 ; Y pos
|
.byte 0; 51 ; Y pos
|
||||||
.byte -5 ; X vec
|
.byte -2 ; X vec
|
||||||
.byte 3 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer9:
|
metaBuffer9:
|
||||||
.byte 74 ; X pos
|
.byte 74 ; X pos
|
||||||
.byte 61 ; Y pos
|
.byte 0; 61 ; Y pos
|
||||||
.byte 1 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte -2 ; Y vec
|
.byte -2 ; Y vec
|
||||||
|
|
||||||
metaBuffer10:
|
metaBuffer10:
|
||||||
.byte 115 ; X pos
|
.byte 115 ; X pos
|
||||||
.byte 86 ; Y pos
|
.byte 86 ; Y pos
|
||||||
.byte 5 ; X vec
|
.byte 2 ; X vec
|
||||||
.byte -2 ; Y vec
|
.byte -2 ; Y vec
|
||||||
|
|
||||||
metaBuffer11:
|
metaBuffer11:
|
||||||
.byte 104 ; X pos
|
.byte 104 ; X pos
|
||||||
.byte 53 ; Y pos
|
.byte 53 ; Y pos
|
||||||
.byte -5 ; X vec
|
.byte -2 ; X vec
|
||||||
.byte 1 ; Y vec
|
.byte 1 ; Y vec
|
||||||
|
|
||||||
metaBuffer12:
|
metaBuffer12:
|
||||||
.byte 21 ; X pos
|
.byte 21 ; X pos
|
||||||
.byte 2 ; Y pos
|
.byte 2 ; Y pos
|
||||||
.byte 1 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte 3 ; Y vec
|
.byte 2 ; Y vec
|
||||||
|
|
||||||
metaBuffer13:
|
metaBuffer13:
|
||||||
.byte 2 ; X pos
|
.byte 2 ; X pos
|
||||||
.byte 127 ; Y pos
|
.byte 127 ; Y pos
|
||||||
.byte 1 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte -5 ; Y vec
|
.byte -2 ; Y vec
|
||||||
|
|
||||||
metaBuffer14:
|
metaBuffer14:
|
||||||
.byte 97 ; X pos
|
.byte 97 ; X pos
|
||||||
.byte 123 ; Y pos
|
.byte 123 ; Y pos
|
||||||
.byte 1 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte -5 ; Y vec
|
.byte -2 ; Y vec
|
||||||
|
|
||||||
metaBuffer15:
|
metaBuffer15:
|
||||||
.byte 5 ; X pos
|
.byte 5 ; X pos
|
||||||
|
@ -127,13 +127,13 @@ metaBuffer15:
|
||||||
metaBuffer16:
|
metaBuffer16:
|
||||||
.byte 4 ; X pos
|
.byte 4 ; X pos
|
||||||
.byte 40 ; Y pos
|
.byte 40 ; Y pos
|
||||||
.byte -3 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte 4 ; Y vec
|
.byte 4 ; Y vec
|
||||||
|
|
||||||
metaBuffer17:
|
metaBuffer17:
|
||||||
.byte 43 ; X pos
|
.byte 43 ; X pos
|
||||||
.byte 67 ; Y pos
|
.byte 67 ; Y pos
|
||||||
.byte 4 ; X vec
|
.byte 1 ; X vec
|
||||||
.byte -1 ; Y vec
|
.byte -1 ; Y vec
|
||||||
|
|
||||||
metaBuffer18:
|
metaBuffer18:
|
||||||
|
@ -145,8 +145,8 @@ metaBuffer18:
|
||||||
metaBuffer19:
|
metaBuffer19:
|
||||||
.byte 75 ; X pos
|
.byte 75 ; X pos
|
||||||
.byte 4 ; Y pos
|
.byte 4 ; Y pos
|
||||||
.byte -3 ; X vec
|
.byte -1 ; X vec
|
||||||
.byte -5 ; Y vec
|
.byte -2 ; Y vec
|
||||||
|
|
||||||
metaBuffer20:
|
metaBuffer20:
|
||||||
.byte 61 ; X pos
|
.byte 61 ; X pos
|
||||||
|
|
1210
spritegen0b.s
Normal file
1210
spritegen0b.s
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user