diff --git a/HiSprite.py b/HiSprite.py index 12f13c1..aac1f3d 100755 --- a/HiSprite.py +++ b/HiSprite.py @@ -10,10 +10,17 @@ class Colors: def main(argv): if len(argv)<1: + usage() + exit(0) + + if sys.argv[1] == "--tables": printHorizontalLookup() exit(0) pngfile = sys.argv[1] + xdraw = 0 + if len(argv)>1 and sys.argv[2] == "--xdraw": + xdraw = 1 reader = png.Reader(pngfile) try: @@ -45,11 +52,10 @@ def main(argv): print "\n" for shift in range(0,7): print "%s_SHIFT%d:" % (niceName,shift) - print "\tldy PARAM0\n" print "\tldx PARAM1" print rowStartCalculatorCode(); - spriteChunks = layoutSpriteChunk(pixelData,width,height,shift) + spriteChunks = layoutSpriteChunk(pixelData,width,height,shift,xdraw) for row in range(height): for chunkIndex in range(len(spriteChunks)): @@ -58,11 +64,11 @@ def main(argv): print "\n" -def layoutSpriteChunk(pixelData,width,height,shift): +def layoutSpriteChunk(pixelData,width,height,shift,xdraw): colorStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForColor,highBitForColor) maskStreams = byteStreamsFromPixels(pixelData,width,height,shift,bitsForMask,highBitForMask) - code = generateBlitter(colorStreams,maskStreams,height) + code = generateBlitter(colorStreams,maskStreams,height,xdraw) return code @@ -115,7 +121,7 @@ def byteStreamsFromPixels(pixelData,width,height,shift,bitDelegate,highBitDelega return byteStreams -def generateBlitter(colorStreams,maskStreams,height): +def generateBlitter(colorStreams,maskStreams,height,xdraw): byteWidth = len(colorStreams[0]) spriteChunks = [["" for y in range(height)] for x in range(byteWidth)] @@ -128,10 +134,16 @@ def generateBlitter(colorStreams,maskStreams,height): for chunkIndex in range(len(byteSplits)): # Store byte into video memory - spriteChunks[chunkIndex][row] = \ - "\tlda #%%%s\n" % byteSplits[chunkIndex] + \ - "\tsta (SCRATCH0),y\n"; - + if xdraw: + spriteChunks[chunkIndex][row] = \ + "\tlda (SCRATCH0),y\n" + \ + "\teor #%%%s\n" % byteSplits[chunkIndex] + \ + "\tsta (SCRATCH0),y\n"; + else: + spriteChunks[chunkIndex][row] = \ + "\tlda #%%%s\n" % byteSplits[chunkIndex] + \ + "\tsta (SCRATCH0),y\n"; + # Increment indices if chunkIndex == len(byteSplits)-1: spriteChunks[chunkIndex][row] += "\n" @@ -150,7 +162,7 @@ def generateBlitter(colorStreams,maskStreams,height): def rowStartCalculatorCode(): return \ - "\tlda HGRROWS_H,x\n" + \ + "\tlda HGRROWS_H1,x\n" + \ "\tsta SCRATCH1\n" + \ "\tlda HGRROWS_L,x\n" + \ "\tsta SCRATCH0\n" + \ @@ -259,8 +271,14 @@ def printHorizontalLookup(): def usage(): print ''' -Usage: HiSprite - +Usages: + HiSprite [--xdraw] + Generates 6502 assembly to render all shifts of the given sprite, + optionally with exclusive-or drawing (if background will be non-black) + + HiSprite --tables + Generates lookup tables for horizontal sprite shifts (division and modulus 7) + PNG file must not have an alpha channel! ''' sys.exit(2) diff --git a/V2Make.scpt b/V2Make.scpt index bffa4ad..403811f 100644 Binary files a/V2Make.scpt and b/V2Make.scpt differ diff --git a/graphics.s b/graphics.s index ed30c1b..347a9c3 100644 --- a/graphics.s +++ b/graphics.s @@ -38,7 +38,7 @@ saveBackground_loop: adc PARAM1 ; Calculate Y line tax - lda HGRROWS_H,x ; Compute hires row + lda HGRROWS_H1,x ; Compute hires row sta saveBackground_smc0+2 sta saveBackground_smc1+2 sta saveBackground_smc2+2 @@ -121,7 +121,7 @@ restoreBackground_loop: adc PARAM1 ; Calculate Y line tax - lda HGRROWS_H,x ; Compute hires row + lda HGRROWS_H1,x ; Compute hires row sta restoreBackground_smc0+2 sta restoreBackground_smc1+2 sta restoreBackground_smc2+2 @@ -197,7 +197,7 @@ LinearFill: linearFill_outer: pha - lda HGRROWS_H,x + lda HGRROWS_H1,x sta linearFill_inner+2 lda HGRROWS_L,x sta linearFill_inner+1 diff --git a/hgrtableY.s b/hgrtableY.s index ae71517..0a49f79 100644 --- a/hgrtableY.s +++ b/hgrtableY.s @@ -5,7 +5,7 @@ ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. ; -HGRROWS_H: +HGRROWS_H1: .byte $20 .byte $24 .byte $28 @@ -442,3 +442,220 @@ HGRROWS_L: .byte $D0 + +HGRROWS_H2: + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F +; + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F +;; + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $40 + .byte $44 + .byte $48 + .byte $4C + .byte $50 + .byte $54 + .byte $58 + .byte $5C + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $41 + .byte $45 + .byte $49 + .byte $4D + .byte $51 + .byte $55 + .byte $59 + .byte $5D + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $42 + .byte $46 + .byte $4A + .byte $4E + .byte $52 + .byte $56 + .byte $5A + .byte $5E + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F + + .byte $43 + .byte $47 + .byte $4B + .byte $4F + .byte $53 + .byte $57 + .byte $5B + .byte $5F diff --git a/hisprite.dsk b/hisprite.dsk index 3d22c89..8e5912f 100644 Binary files a/hisprite.dsk and b/hisprite.dsk differ diff --git a/hisprite.s b/hisprite.s index 68fd53a..8bd49d2 100644 --- a/hisprite.s +++ b/hisprite.s @@ -27,6 +27,8 @@ PARAM2 = $08 PARAM3 = $09 SCRATCH0 = $19 SCRATCH1 = $1a +HIRES_PAGE_L = $1b +HIRES_PAGE_H = $1c ; Macros .macro BLITBYTE xPos,yPos,addr @@ -64,15 +66,19 @@ SCRATCH1 = $1a main: jsr EnableHires -; lda #$00 -; jsr VenetianFill + lda #$00 + jsr VenetianFill - lda #bgFilename - sta PARAM1 - jsr BloadHires +; lda #bgFilename +; sta PARAM1 +; jsr BloadHires + lda #HGRROWS_H1 + sta HIRES_PAGE_H ldx #0 ;;;; @@ -104,14 +110,24 @@ loop: jsr SaveBackground jsr BOXW_MAG - lda #$80 + lda #$60 jsr ROMWAIT + ; Sync to VBL +@1: lda $C019 + beq @1 + bpl @1 +@0: lda $C019 + bmi @0 + jsr RestoreBackground inx cpx #133 bne loop +; ldx #0 +; jmp loop + rts bgBuffer: @@ -171,10 +187,10 @@ bgFilename: .include "hgrtableX.s" .include "hgrtableY.s" .include "spritegen0.s" -.include "spritegen1.s" -.include "spritegen2.s" -.include "spritegen3.s" -.include "spritegen4.s" +;.include "spritegen1.s" +;.include "spritegen2.s" +;.include "spritegen3.s" +;.include "spritegen4.s" ; Suppress some linker warnings - Must be the last thing in the file .SEGMENT "ZPSAVE" diff --git a/spritegen0.s b/spritegen0.s index e9c218f..9d873d1 100644 --- a/spritegen0.s +++ b/spritegen0.s @@ -19,10 +19,8 @@ BOXW_MAG_JMP: BOXW_MAG_SHIFT0: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -49,7 +47,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -76,7 +74,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -103,7 +101,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -130,7 +128,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -157,7 +155,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -184,7 +182,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -211,7 +209,7 @@ BOXW_MAG_SHIFT0: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -243,10 +241,8 @@ BOXW_MAG_SHIFT0: BOXW_MAG_SHIFT1: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -273,7 +269,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -300,7 +296,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -327,7 +323,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -354,7 +350,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -381,7 +377,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -408,7 +404,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -435,7 +431,7 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -467,10 +463,8 @@ BOXW_MAG_SHIFT1: BOXW_MAG_SHIFT2: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -497,7 +491,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -524,7 +518,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -551,7 +545,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -578,7 +572,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -605,7 +599,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -632,7 +626,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -659,7 +653,7 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -691,10 +685,8 @@ BOXW_MAG_SHIFT2: BOXW_MAG_SHIFT3: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -721,7 +713,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -748,7 +740,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -775,7 +767,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -802,7 +794,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -829,7 +821,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -856,7 +848,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -883,7 +875,7 @@ BOXW_MAG_SHIFT3: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -915,10 +907,8 @@ BOXW_MAG_SHIFT3: BOXW_MAG_SHIFT4: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -945,7 +935,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -972,7 +962,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -999,7 +989,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1026,7 +1016,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1053,7 +1043,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1080,7 +1070,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1107,7 +1097,7 @@ BOXW_MAG_SHIFT4: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1139,10 +1129,8 @@ BOXW_MAG_SHIFT4: BOXW_MAG_SHIFT5: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1169,7 +1157,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1196,7 +1184,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1223,7 +1211,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1250,7 +1238,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1277,7 +1265,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1304,7 +1292,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1331,7 +1319,7 @@ BOXW_MAG_SHIFT5: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1363,10 +1351,8 @@ BOXW_MAG_SHIFT5: BOXW_MAG_SHIFT6: - ldy PARAM0 - ldx PARAM1 - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1393,7 +1379,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1420,7 +1406,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1447,7 +1433,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1474,7 +1460,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1501,7 +1487,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1528,7 +1514,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0 @@ -1555,7 +1541,7 @@ BOXW_MAG_SHIFT6: sta (SCRATCH0),y inx - lda HGRROWS_H,x + lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x sta SCRATCH0