Final KFest demo commit
- Added text mode - Added some sprites - Fixed a bug in high-bit detection - High bit detection now smarter
This commit is contained in:
parent
b8ae24af14
commit
6976747a86
19
HiSprite.py
19
HiSprite.py
|
@ -142,8 +142,7 @@ def byteStreamsFromPixels(pixelData,width,height,shift,bitDelegate,highBitDelega
|
|||
bitChunk = bitChunk[::-1]
|
||||
|
||||
# Determine palette bit from first pixel on each row
|
||||
highBit = highBitDelegate(pixelData[row][0])
|
||||
|
||||
highBit = highBitDelegate(pixelData,row,width)
|
||||
byteSplits[byteIndex] = highBit + bitChunk
|
||||
bitPos += 7
|
||||
|
||||
|
@ -267,17 +266,19 @@ def bitsForMask(pixel):
|
|||
return "11"
|
||||
|
||||
|
||||
def highBitForColor(pixel):
|
||||
def highBitForColor(pixelData,rowIndex,width):
|
||||
|
||||
# Note that we prefer high-bit white because blue fringe is less noticeable than magenta.
|
||||
highBit = "0"
|
||||
if pixel == Colors.orange or pixel == Colors.blue or pixel == Colors.white:
|
||||
highBit = "1"
|
||||
for pixelIndex in range(width):
|
||||
pixel = pixelColor(pixelData,rowIndex,pixelIndex)
|
||||
|
||||
# Note that we prefer high-bit white because blue fringe is less noticeable than magenta.
|
||||
if pixel == Colors.orange or pixel == Colors.blue or pixel == Colors.white:
|
||||
return "1"
|
||||
|
||||
return highBit
|
||||
return "0"
|
||||
|
||||
|
||||
def highBitForMask(pixel):
|
||||
def highBitForMask(pixelData,rowIndex,width):
|
||||
|
||||
return "1"
|
||||
|
||||
|
|
14
graphics.s
14
graphics.s
|
@ -8,12 +8,18 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; EnableHires
|
||||
; Trashes A
|
||||
;
|
||||
EnableHires:
|
||||
lda TEXT
|
||||
lda HIRES1
|
||||
lda HIRES2
|
||||
sta TEXT
|
||||
sta HIRES1
|
||||
sta HIRES2
|
||||
rts
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; EnableText
|
||||
;
|
||||
EnableText:
|
||||
sta TEXT2
|
||||
rts
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 192 B |
BIN
hisprite.dsk
BIN
hisprite.dsk
Binary file not shown.
48
hisprite.s
48
hisprite.s
|
@ -12,6 +12,7 @@
|
|||
|
||||
; Softswitches
|
||||
TEXT = $c050
|
||||
TEXT2 = $c051
|
||||
HIRES1 = $c057
|
||||
HIRES2 = $c058
|
||||
|
||||
|
@ -33,7 +34,7 @@ SPRITEPTR_H = $1c
|
|||
MAXSPRITEINDEX = 3 ; Sprite count - 1
|
||||
MAXPOSX = 127 ; This demo doesn't wanna do 16 bit math
|
||||
MAXPOSY = 127
|
||||
MAXLOCALBATCHINDEX = 4 ; Sprites in batch - 1
|
||||
MAXLOCALBATCHINDEX = 3 ; Sprites in batch - 1
|
||||
MAXBATCHINDEX = 0 ; Number of batches - 1
|
||||
|
||||
; Macros
|
||||
|
@ -76,7 +77,7 @@ main:
|
|||
jsr VenetianFill
|
||||
|
||||
mainLoop:
|
||||
|
||||
jsr checkKbd
|
||||
|
||||
renderLoop:
|
||||
|
||||
|
@ -99,7 +100,7 @@ renderLoop:
|
|||
lda (SPRITEPTR_L),y ; 5
|
||||
sta PARAM0 ; 3
|
||||
|
||||
jsr BOXW_MAG ; 6 48 cycles overhead to here
|
||||
jsr SPACESHIP ; 6 48 cycles overhead to here
|
||||
|
||||
; Next sprite
|
||||
dec spriteNum ; 6
|
||||
|
@ -232,33 +233,32 @@ batchContinue:
|
|||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; delayShort
|
||||
; Sleeps for ~1/30th second
|
||||
; checkKbd
|
||||
; Exits app on a keystroke
|
||||
;
|
||||
delayShort:
|
||||
SAVE_AXY
|
||||
checkKbd:
|
||||
; rts
|
||||
lda $c000
|
||||
bpl checkKbdDone
|
||||
sta $c010
|
||||
|
||||
ldy #$06 ; Loop a bit
|
||||
delayShortOuter:
|
||||
ldx #$ff
|
||||
delayShortInner:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dex
|
||||
bne delayShortInner
|
||||
dey
|
||||
bne delayShortOuter
|
||||
cmp #241 ; 'q' with high bit set
|
||||
bne checkKbdDone
|
||||
|
||||
RESTORE_AXY
|
||||
jsr EnableText
|
||||
|
||||
; pla ; Pull our own frame off the stack...
|
||||
; pla
|
||||
; pla
|
||||
; pla
|
||||
pla ; ...four local variables + return address...
|
||||
pla
|
||||
rts ; ...so we can quit to ProDOS from here
|
||||
|
||||
checkKbdDone:
|
||||
rts
|
||||
|
||||
|
||||
|
||||
spriteNum:
|
||||
.byte MAXSPRITEINDEX
|
||||
batchIndex:
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 199 B |
2006
spritegen0.s
2006
spritegen0.s
File diff suppressed because it is too large
Load Diff
268
spritegen0b.s
268
spritegen0b.s
|
@ -69,12 +69,31 @@ BLACK_SHIFT0:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
|
@ -133,8 +152,6 @@ BLACK_SHIFT0:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
@ -154,27 +171,6 @@ BLACK_SHIFT0:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
@ -201,7 +197,7 @@ BLACK_SHIFT0:
|
|||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 481, Optimized 28 rows.
|
||||
|
||||
|
||||
|
||||
|
@ -239,6 +235,27 @@ BLACK_SHIFT1:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -349,27 +366,6 @@ BLACK_SHIFT1:
|
|||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
|
||||
|
@ -406,9 +402,28 @@ BLACK_SHIFT2:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -488,8 +503,6 @@ BLACK_SHIFT2:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -509,25 +522,6 @@ BLACK_SHIFT2:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
|
@ -541,7 +535,7 @@ BLACK_SHIFT2:
|
|||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 489, Optimized 27 rows.
|
||||
|
||||
|
||||
|
||||
|
@ -576,9 +570,28 @@ BLACK_SHIFT3:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -637,8 +650,6 @@ BLACK_SHIFT3:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -658,8 +669,6 @@ BLACK_SHIFT3:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -679,25 +688,7 @@ BLACK_SHIFT3:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
|
@ -708,10 +699,9 @@ BLACK_SHIFT3:
|
|||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 481, Optimized 28 rows.
|
||||
|
||||
|
||||
|
||||
|
@ -750,11 +740,11 @@ BLACK_SHIFT4:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
|
@ -835,8 +825,6 @@ BLACK_SHIFT4:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
|
||||
|
@ -853,6 +841,8 @@ BLACK_SHIFT4:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -872,8 +862,6 @@ BLACK_SHIFT4:
|
|||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -881,7 +869,7 @@ BLACK_SHIFT4:
|
|||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 489, Optimized 27 rows.
|
||||
|
||||
|
||||
|
||||
|
@ -916,11 +904,30 @@ BLACK_SHIFT5:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
|
@ -1029,29 +1036,8 @@ BLACK_SHIFT5:
|
|||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 489, Optimized 27 rows.
|
||||
|
||||
|
||||
|
||||
|
@ -1086,10 +1072,29 @@ BLACK_SHIFT6:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -1148,8 +1153,6 @@ BLACK_SHIFT6:
|
|||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -1169,8 +1172,6 @@ BLACK_SHIFT6:
|
|||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -1189,25 +1190,6 @@ BLACK_SHIFT6:
|
|||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
iny
|
||||
iny
|
||||
|
||||
inx
|
||||
lda HGRROWS_H1,x
|
||||
sta SCRATCH1
|
||||
lda HGRROWS_L,x
|
||||
sta SCRATCH0
|
||||
ldy PARAM0
|
||||
lda DIV7_2,y
|
||||
tay
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (SCRATCH0),y
|
||||
|
@ -1221,7 +1203,7 @@ BLACK_SHIFT6:
|
|||
iny
|
||||
|
||||
RESTORE_AXY
|
||||
rts ;Cycle count: 497, Optimized 26 rows.
|
||||
rts ;Cycle count: 481, Optimized 28 rows.
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue