mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-15 20:30:11 +00:00
sb: fix blue/orange sprite to have pseudo transparency
This commit is contained in:
parent
b95389b54e
commit
6a4ff347da
@ -1,5 +1,14 @@
|
||||
Title
|
||||
+ ?
|
||||
Strongbadzone:
|
||||
+ Implement rest of audio
|
||||
+ Ball movement logic. Is actually just 2D
|
||||
-> Collision detect with head. Decrement count, play sound
|
||||
-> Collision detect with player
|
||||
+ Do the color mask (different blacks)
|
||||
+ Animate side walls
|
||||
-> This is going to involve fancy memory management
|
||||
+ Faster hgr copy?
|
||||
+ Optimize sprite size
|
||||
+ Allow lowercase keyboard (see duck code)
|
||||
|
||||
Duck:
|
||||
+ Implement throwing
|
||||
@ -8,21 +17,18 @@ Duck:
|
||||
+ Implement easter eggs
|
||||
+ Exit back to main title
|
||||
|
||||
Rat:
|
||||
+ ?
|
||||
|
||||
Strongbadzone:
|
||||
+ Get audio
|
||||
+ Ball movement logic. Is actually just 2D
|
||||
+ Check bounds on person
|
||||
+ Do the color mask (different blacks)
|
||||
+ Animate side walls
|
||||
+ Faster hgr copy?
|
||||
+ Optimize sprite size
|
||||
+ Allow lowercase keyboard (see duck code)
|
||||
|
||||
Cliff:
|
||||
+ Everything
|
||||
|
||||
Jump
|
||||
+ Everything
|
||||
|
||||
Rat:
|
||||
+ Done?
|
||||
|
||||
Title
|
||||
+ Done?
|
||||
|
||||
|
||||
|
@ -3,6 +3,9 @@
|
||||
;===========================================
|
||||
; can handle sprites bigger than a 256 byte page
|
||||
|
||||
; Note this is optimized for blue/orange sprites
|
||||
; it treats black0 as transparent
|
||||
|
||||
; SPRITE in INL/INH
|
||||
; Location at SPRITE_X SPRITE_Y
|
||||
|
||||
@ -66,8 +69,10 @@ big_sprite_inner_loop:
|
||||
|
||||
big_sprite_smc1:
|
||||
lda $f000,X ; load sprite data
|
||||
beq big_sprite_transparent
|
||||
sta (GBASL),Y ; store to screen
|
||||
|
||||
big_sprite_transparent:
|
||||
inx ; increment sprite offset
|
||||
|
||||
; if > 1 page
|
||||
@ -146,7 +151,20 @@ osprite_inner_loop:
|
||||
osprite_smc1:
|
||||
lda $f000,X ; load sprite data
|
||||
|
||||
bne osprite_not_transparent
|
||||
|
||||
; we can't just skip if 0 because we might shift a bit in
|
||||
; from previous byte
|
||||
|
||||
plp
|
||||
bcs osprite_oops
|
||||
clc
|
||||
php
|
||||
bcc osprite_transparent_done
|
||||
|
||||
osprite_not_transparent:
|
||||
plp ; restore carry from last
|
||||
osprite_oops:
|
||||
rol ; rotate in carry
|
||||
asl ; one more time, bit6 in carry
|
||||
php ; save on stack
|
||||
@ -155,6 +173,8 @@ osprite_smc1:
|
||||
|
||||
sta (GBASL),Y ; store to screen
|
||||
|
||||
|
||||
osprite_transparent_done:
|
||||
inx ; increment sprite offset
|
||||
|
||||
; if > 1 page
|
||||
|
Loading…
x
Reference in New Issue
Block a user