From 53b2080b666eadd746ef708ca9340d70640aadff Mon Sep 17 00:00:00 2001 From: Quinn Dunki Date: Mon, 29 Aug 2016 12:44:54 -0700 Subject: [PATCH] Working horizontal lookups --- HGR.xcodeproj/project.pbxproj | 2 + HiSprite2.py | 24 +- hgrtable2.s | 200 ++++++++-------- hgrtest.dsk | Bin 143360 -> 143360 bytes hgrtest.s | 56 +++-- macros.s | 165 +++++++++++++ spritegen0.s | 427 ++++++++++++++++++---------------- spritegen1.s | 427 ++++++++++++++++++---------------- 8 files changed, 786 insertions(+), 515 deletions(-) create mode 100644 macros.s diff --git a/HGR.xcodeproj/project.pbxproj b/HGR.xcodeproj/project.pbxproj index c22afbb..c79f1ba 100644 --- a/HGR.xcodeproj/project.pbxproj +++ b/HGR.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXFileReference section */ + 70166CF81D6E2BE1002F1334 /* macros.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = macros.s; sourceTree = ""; }; 707005BE1D3EC75F00623A10 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; 707005BF1D3EC7FD00623A10 /* hgrtest.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtest.s; sourceTree = ""; }; 707005C01D3FD65900623A10 /* hgrtable.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = hgrtable.s; sourceTree = ""; }; @@ -24,6 +25,7 @@ children = ( 707005BE1D3EC75F00623A10 /* Makefile */, 707005BF1D3EC7FD00623A10 /* hgrtest.s */, + 70166CF81D6E2BE1002F1334 /* macros.s */, 7090ABAB1D41663400F02EAA /* scratch.s */, 7090ABA91D4012A600F02EAA /* spritedata0.s */, 7090ABAE1D419C3E00F02EAA /* spritedata1.s */, diff --git a/HiSprite2.py b/HiSprite2.py index ae92c24..8270d1f 100755 --- a/HiSprite2.py +++ b/HiSprite2.py @@ -23,15 +23,19 @@ def main(argv): width = pngdata[0] height = pngdata[1] - pixeldata = pngdata[2] - + pixeldata = pngdata[2] + byteWidth = width/2+1+1 # TODO: Calculate a power of two for this + for shift in range(0,7): + print "%s_SHIFT%d: ;%d bytes per row" % (os.path.splitext(pngfile)[0].upper(),shift,byteWidth) spriteChunks = layoutSpriteChunk(pixeldata,width,height,shift) - - for chunkIndex in range(len(spriteChunks)): - print "%s_SHIFT%d_CHUNK%d:" % (os.path.splitext(pngfile)[0].upper(),shift,chunkIndex) - print spriteChunks[chunkIndex] + + for row in range(height): + for chunkIndex in range(len(spriteChunks)): + print spriteChunks[chunkIndex][row] + + print "\n" @@ -40,8 +44,8 @@ def layoutSpriteChunk(pixeldata,width,height,shift): bitmap = [[0 for x in range(width)] for y in range(height)] - byteWidth = width/2+1 - spriteChunks = ["" for x in range(byteWidth)] + byteWidth = width/2+1+1 # TODO: Calculate a power of two for this + spriteChunks = [["" for y in range(height)] for x in range(byteWidth)] for row in range(height): pixelRow = bitmap[row] @@ -83,7 +87,7 @@ def layoutSpriteChunk(pixeldata,width,height,shift): bitPos += 7 for chunkIndex in range(len(byteSplits)): - spriteChunks[chunkIndex] += ".byte %%%s\t\n" % byteSplits[chunkIndex] + spriteChunks[chunkIndex][row] = ".byte %%%s" % byteSplits[chunkIndex] return spriteChunks @@ -140,7 +144,7 @@ def printHorzontalLookup(): print "\nHGRROWS_BITSHIFT_GRN:" for pixel in range(140): - print "\t.byte $%02x" % ((pixel % 7)*24) + print "\t.byte $%02x" % ((pixel % 7)*32) # 32 = 4 shifts of 8 bytes def usage(): diff --git a/hgrtable2.s b/hgrtable2.s index 467bda5..cca434f 100644 --- a/hgrtable2.s +++ b/hgrtable2.s @@ -142,142 +142,142 @@ HGRROWS_GRN: HGRROWS_BITSHIFT_GRN: .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 .byte $00 - .byte $18 - .byte $30 - .byte $48 + .byte $20 + .byte $40 .byte $60 - .byte $78 - .byte $90 + .byte $80 + .byte $a0 + .byte $c0 diff --git a/hgrtest.dsk b/hgrtest.dsk index 3a85d9db2de4e58936a734a2b35a8460a967440c..84754e1dc40530b0d486271de6e734003dc52e8c 100644 GIT binary patch delta 883 zcmZp8z|ru4V*@KQBjaW^=6DW4RtA1H23bWd9tMWT3<*HS<}&Usx5W<3jJysC3=D8Q zSyABrWC13TdJYx_1{l_0WnfSc1!4glSd>AFk%55;2L{Q3jDQ)3PGd8^9>p%8-3*~X z?1%${xzYhY3#R4$`Q{VK2x%)VCYi z9T0cblN`Pd2@MMlFep%olEi7+Wc#q0lW)XmOcn?ipUfUEFj+mkSA`gB7c(+3vS{k) z>TPCZ{l_?&Df-`Ji5UOM>MsAwWk4(YO8-`ll_{;93MvUN z9w=XUp5SpSN@5w?-rGs396%X{RL)k;mF%sOK=o1!7$lZTrn0Zvdp@BzIiWW#VQ+t8 zZ&E^UY64J$f6}Ur9I^}wa~Tv~oS31>eBt9UNrCfKzcLaQuuIGU>*7r4?FZ}Wo173U sB?mNR6PUX(A!C91Oa_GxfnP5k9Juf_VUc~`(aAGn9h%~n#W7w20J62XMgRZ+ delta 719 zcmZp8z|ru4V*@KQBlBi9=6DW47KU0}iYWKd?69K*Ayh50EKc36daVIukM$sLuqM@ax5c b0~ekqEVA#LJNZDY!(@jTji$I|ag3J$U5c+E diff --git a/hgrtest.s b/hgrtest.s index df7de68..24f5a30 100644 --- a/hgrtest.s +++ b/hgrtest.s @@ -8,6 +8,7 @@ .org $6000 +.include "macros.s" ; Softswitches TEXT = $c050 @@ -17,7 +18,7 @@ HIRES2 = $c058 ; ROM entry points COUT = $fded - +ROMWAIT = $fca8 ; Zero page locations we use (unused by Monitor, Applesoft, or ProDOS) PARAM0 = $06 @@ -63,21 +64,31 @@ SCRATCH1 = $1a main: jsr EnableHires -loop: lda #$00 jsr LinearFill .if 1 - ldx #1 - stx PARAM0 + + ldx #0 +loop: + txa + asl + asl + sta PARAM0 lda #80 sta PARAM1 - lda #BOX_MAG_SHIFT0_CHUNK0 + lda #>BOX_MAG_SHIFT0 sta PARAM3 jsr BlitSprite +; lda #$ff +; jsr ROMWAIT + + inx + cpx #35 + bne loop .endif .if 0 @@ -291,13 +302,15 @@ loop: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; BlitSprite -; Trashes everything +; Trashes everything, including parameters ; PARAM0: X Pos ; PARAM1: Y Pos ; PARAM2: Sprite Ptr LSB ; PARAM3: Sprite Ptr MSB ; BlitSprite: + SAVE_AXY + clc ; Compute sprite data base ldx PARAM0 lda HGRROWS_BITSHIFT_GRN,x @@ -307,30 +320,47 @@ BlitSprite: adc PARAM3 sta PARAM3 - ldy #7 + lda #7 + sta SCRATCH0 ; Tracks row index -blitSprite_loop: - clc ; Calculate Y line - tya + asl ; Multiply by byte width + asl + sta SCRATCH1 ; Tracks total bytes + ldy #0 + +blitSprite_Yloop: + clc ; Calculate Y line on screen + lda SCRATCH0 adc PARAM1 tax lda HGRROWS_H,x ; Compute hires row sta blitSprite_smc+2 ; Self-modifying code + sta blitSprite_smc+5 lda HGRROWS_L,x sta blitSprite_smc+1 + sta blitSprite_smc+4 ldx PARAM0 ; Compute hires horizontal byte lda HGRROWS_GRN,x tax +blitSprite_Xloop: lda (PARAM2),y blitSprite_smc: + ora $2000,x sta $2000,x - dey - bpl blitSprite_loop + inx + iny + tya ; End of row? + and #$03 ; If last two bits are zero, we've wrapped a row + bne blitSprite_Xloop + dec SCRATCH0 + bpl blitSprite_Yloop + + RESTORE_AXY rts diff --git a/macros.s b/macros.s new file mode 100644 index 0000000..a3f5d3f --- /dev/null +++ b/macros.s @@ -0,0 +1,165 @@ +; +; macros.s +; Generally useful macros for 6502 code +; +; Created by Quinn Dunki on 8/15/14. +; Copyright (c) 2014 One Girl, One Laptop Productions. All rights reserved. +; + + +; Macros + +.macro SETSWITCH name ; Sets the named softswitch (assumes write method) + sta name +.endmacro + + +.macro SAVE_AXY ; Saves all registers + pha + phx + phy +.endmacro + + +.macro RESTORE_AXY ; Restores all registers + ply + plx + pla +.endmacro + + +.macro SAVE_AY ; Saves accumulator and Y index + pha + phy +.endmacro + + +.macro RESTORE_AY ; Restores accumulator and Y index + ply + pla +.endmacro + + +.macro SAVE_AX ; Saves accumulator and X index + pha + phx +.endmacro + + +.macro RESTORE_AX ; Restores accumulator and X index + plx + pla +.endmacro + + +.macro SAVE_XY ; Saves X and Y index + phx + phy +.endmacro + + +.macro RESTORE_XY ; Restores X and Y index + ply + plx +.endmacro + + +.macro SAVE_ZPP ; Saves Zero Page locations we use for parameters + lda PARAM0 + pha + lda PARAM1 + pha + lda PARAM2 + pha + lda PARAM3 + pha +.endmacro + + +.macro RESTORE_ZPP ; Restores Zero Page locations we use for parameters + pla + sta PARAM3 + pla + sta PARAM2 + pla + sta PARAM1 + pla + sta PARAM0 +.endmacro + + +.macro SAVE_ZPS ; Saves Zero Page locations we use for scratch + lda SCRATCH0 + pha + lda SCRATCH1 + pha +.endmacro + + +.macro RESTORE_ZPS ; Restores Zero Page locations we use for scratch + pla + sta SCRATCH1 + pla + sta SCRATCH0 +.endmacro + + +.macro PARAM16 addr + lda #addr + sta PARAM1 +.endmacro + + +.macro CALL16 func,addr + PARAM16 addr + jsr func +.endmacro + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Rendering macros +; + + +.macro LDY_AVIEW + asl ; Find our new view record + asl + asl + asl ; Records are 16 bytes wide + tay +.endmacro + + +.macro LDY_ACTIVEVIEW + lda WG_ACTIVEVIEW ; Find our new view record + LDY_AVIEW +.endmacro + + +.macro LDX_ACTIVEVIEW + lda WG_ACTIVEVIEW ; Find our new view record + asl + asl + asl + asl ; Records are 16 bytes wide + tax +.endmacro + + +.macro LDY_FOCUSVIEW + lda WG_FOCUSVIEW ; Find our new view record + LDY_AVIEW +.endmacro + + +.macro VBL_SYNC ; Synchronize with vertical blanking + lda #$80 +;macroWaitVBLToFinish: +; bit RDVBLBAR +; bmi macroWaitVBLToFinish +@macroWaitVBLToStart: +; bit RDVBLBAR +; bpl @macroWaitVBLToStart +.endmacro diff --git a/spritegen0.s b/spritegen0.s index dd0f57e..a84acad 100644 --- a/spritegen0.s +++ b/spritegen0.s @@ -1,210 +1,245 @@ -BOX_MAG_SHIFT0_CHUNK0: -.byte %01010101 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01010101 +BOX_MAG_SHIFT0: ;4 bytes per row +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 -BOX_MAG_SHIFT0_CHUNK1: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_MAG_SHIFT0_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_MAG_SHIFT1: ;4 bytes per row +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 -BOX_MAG_SHIFT1_CHUNK0: -.byte %01010100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %01010100 -BOX_MAG_SHIFT1_CHUNK1: -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 +BOX_MAG_SHIFT2: ;4 bytes per row +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 -BOX_MAG_SHIFT1_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_MAG_SHIFT2_CHUNK0: -.byte %01010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %01010000 +BOX_MAG_SHIFT3: ;4 bytes per row +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 -BOX_MAG_SHIFT2_CHUNK1: -.byte %00001010 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001010 -BOX_MAG_SHIFT2_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_MAG_SHIFT4: ;4 bytes per row +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 -BOX_MAG_SHIFT3_CHUNK0: -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -BOX_MAG_SHIFT3_CHUNK1: -.byte %00101010 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00101010 +BOX_MAG_SHIFT5: ;4 bytes per row +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 -BOX_MAG_SHIFT3_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_MAG_SHIFT4_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_MAG_SHIFT6: ;4 bytes per row +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 -BOX_MAG_SHIFT4_CHUNK1: -.byte %00101010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00101010 - -BOX_MAG_SHIFT4_CHUNK2: -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 - -BOX_MAG_SHIFT5_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 - -BOX_MAG_SHIFT5_CHUNK1: -.byte %00101000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00101000 - -BOX_MAG_SHIFT5_CHUNK2: -.byte %00000101 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000101 - -BOX_MAG_SHIFT6_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 - -BOX_MAG_SHIFT6_CHUNK1: -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 - -BOX_MAG_SHIFT6_CHUNK2: -.byte %00010101 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010101 diff --git a/spritegen1.s b/spritegen1.s index 161ec0a..7bfa392 100644 --- a/spritegen1.s +++ b/spritegen1.s @@ -1,210 +1,245 @@ -BOX_GRN_SHIFT0_CHUNK0: -.byte %00101010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00101010 +BOX_GRN_SHIFT0: ;4 bytes per row +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 -BOX_GRN_SHIFT0_CHUNK1: -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -.byte %00000001 -BOX_GRN_SHIFT0_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_GRN_SHIFT1: ;4 bytes per row +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 -BOX_GRN_SHIFT1_CHUNK0: -.byte %00101000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00101000 -BOX_GRN_SHIFT1_CHUNK1: -.byte %00000101 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000101 +BOX_GRN_SHIFT2: ;4 bytes per row +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 -BOX_GRN_SHIFT1_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_GRN_SHIFT2_CHUNK0: -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 +BOX_GRN_SHIFT3: ;4 bytes per row +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 -BOX_GRN_SHIFT2_CHUNK1: -.byte %00010101 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010101 -BOX_GRN_SHIFT2_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_GRN_SHIFT4: ;4 bytes per row +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 -BOX_GRN_SHIFT3_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_GRN_SHIFT3_CHUNK1: -.byte %01010101 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01000001 -.byte %01010101 +BOX_GRN_SHIFT5: ;4 bytes per row +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 -BOX_GRN_SHIFT3_CHUNK2: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -BOX_GRN_SHIFT4_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 +BOX_GRN_SHIFT6: ;4 bytes per row +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 -BOX_GRN_SHIFT4_CHUNK1: -.byte %01010100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %00000100 -.byte %01010100 - -BOX_GRN_SHIFT4_CHUNK2: -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 -.byte %00000010 - -BOX_GRN_SHIFT5_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 - -BOX_GRN_SHIFT5_CHUNK1: -.byte %01010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %00010000 -.byte %01010000 - -BOX_GRN_SHIFT5_CHUNK2: -.byte %00001010 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001000 -.byte %00001010 - -BOX_GRN_SHIFT6_CHUNK0: -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 -.byte %00000000 - -BOX_GRN_SHIFT6_CHUNK1: -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 -.byte %01000000 - -BOX_GRN_SHIFT6_CHUNK2: -.byte %00101010 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00100000 -.byte %00101010