mirror of
https://github.com/jeremysrand/BuGS.git
synced 2025-01-21 13:30:18 +00:00
Look at two pixels wide when detecting collisions with a shot. I believe this solves the problem of shots passing through a centipede.
This commit is contained in:
parent
a84d135819
commit
50c924e1ff
5
BUGS.md
5
BUGS.md
@ -3,14 +3,15 @@ BUGS
|
||||
|
||||
This is a list of the software bugs (as opposed to the bugs in the game that you shoot) that still need attention:
|
||||
|
||||
* It is possible to shoot between two segments of a centipede. The problem is that there are black pixels between the segments and if things are timed just right (or just wrong), the shot can slot in at those black pixels and end up missing both segments.
|
||||
* I am not sure how much can be done about this given how collisions are detected.
|
||||
* The sound is muddy at times on real HW. Especially when lots of stuff is going on, the sound ends up coming out garbled. This isn't happening on emulators where everything is always quite clear. Perhaps I am reaching some limit of the Ensoniq. Do I need to reduce some sampling frequencies perhaps?
|
||||
|
||||
|
||||
FIXED
|
||||
=======
|
||||
|
||||
* It is possible to shoot between two segments of a centipede. The problem is that there are black pixels between the segments and if things are timed just right (or just wrong), the shot can slot in at those black pixels and end up missing both segments.
|
||||
* I am not sure how much can be done about this given how collisions are detected.
|
||||
* I have implemented a fix which I believe solves this problem. The shot is a single pixel wide which allows it to slot in between a segment. I have changed the collision code to detect a collision if it is also if there is any pixel on in the byte (ie two pixels wide). That should ensure that the shot cannot pass through a centipede. Note it also makes things slightly easier to hit where before it might have passed right next to.
|
||||
* I have seen some mushrooms appear suddenly. Sometimes, if I am shooting, the shot "hits" an invisible mushroom which then becomes visible. My guess is that there is something wrong with the code which turns a centipede segment into a mushroom when shot and the tile isn't correctly marked dirty all the time.
|
||||
* In theory, there shouldn't be a collision with an invisible mushroom but what happens is that when the shot overlaps with the tile, it becomes dirty. At that point, the mushroom will appear on the next frame and a collision can then occur.
|
||||
* On the latest build (0136579125034f41f8415b496d5ba706e86d65d9) on real HW, I can play a game and finish that game. But when I try to start a second game, I crash. The stack looks corrupted and execution is way off in the weeds somewhere. This isn't happening on either emulator.
|
||||
|
@ -100,13 +100,13 @@ drawShot entry
|
||||
stz collision
|
||||
|
||||
lda $0,s
|
||||
_collision #$000f,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$000f,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $a0,s
|
||||
@ -116,13 +116,13 @@ drawShot entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$000f,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$000f,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $a0,s
|
||||
@ -132,13 +132,13 @@ drawShot entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$000f,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$000f,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$fff0
|
||||
ora #$0004
|
||||
sta $a0,s
|
||||
@ -148,10 +148,10 @@ drawShot entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$000f,#$0
|
||||
_collision #$00ff,#$0
|
||||
|
||||
lda $a0,s
|
||||
_collision #$000f,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
|
||||
_spriteFooter
|
||||
|
||||
@ -179,13 +179,13 @@ drawShotShift entry
|
||||
stz collision
|
||||
|
||||
lda $0,s
|
||||
_collision #$00f0,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$00f0,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $a0,s
|
||||
@ -195,13 +195,13 @@ drawShotShift entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$00f0,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$00f0,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $a0,s
|
||||
@ -211,13 +211,13 @@ drawShotShift entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$00f0,#$0
|
||||
_collision #$00ff,#$0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $0,s
|
||||
|
||||
lda $a0,s
|
||||
_collision #$00f0,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
and #$ff0f
|
||||
ora #$0040
|
||||
sta $a0,s
|
||||
@ -227,10 +227,10 @@ drawShotShift entry
|
||||
tcs
|
||||
|
||||
lda $0,s
|
||||
_collision #$00f0,#$0
|
||||
_collision #$00ff,#$0
|
||||
|
||||
lda $a0,s
|
||||
_collision #$00f0,#$a0
|
||||
_collision #$00ff,#$a0
|
||||
|
||||
_spriteFooter
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user