mirror of
https://github.com/blondie7575/HiSprite.git
synced 2026-04-19 23:16:30 +00:00
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:
+10
-9
@@ -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"
|
||||
|
||||
|
||||
+10
-4
@@ -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 |
Binary file not shown.
+24
-24
@@ -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 |
+994
-1012
File diff suppressed because it is too large
Load Diff
+125
-143
@@ -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.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user