5 ms·
Maybe I missed it, but what was the actual cause of the bug?
by FeepingCreature 5y ago
Maybe I missed it, but what was the actual cause of the bug?
- strbean 5y agoWondering the same thing!
- djmips 5y agoHehe, I don't think it's actually solved in this article. The article is kind of rambly right, so it's hard to tell for sure.
- nodejs_rulez_1 5y ago> So collision did happen! For just two frames (this code runs every frame; I was able to trace it back to the frame interrupt handler, so once every 60Hz). You’d expect a real collision to last more than two frames. It happened but was too fast for a human eye.
- croes 5y agoBut what collided?
- nodejs_rulez_1 5y agoAs per the next header there "But why is the bat there?".
- quietbritishjim 5y agoBut that bat is miles away from the Alf character, so it's still missing an explanation of why it counts as a collision. (Plus, that section "But why is the bat there?", doesn't appear to answer that question.)
- deleted 5y ago[deleted]
- maury91 5y agoFrom my understanding the position of the objects are different between NTSC and PAL. So if you set it to display NTSC you see the enemies in the wrong positions and the collisions are calculated on PAL. Note: I'm not 100% sure I understood the article correctly I found the article quite confusing I have 3 possible understandings: 1. The one stated above 2. Collision is extremely fast and not displayed on screen ( if was displayed in screen it will be easy to spot by going frame by frame ) 3. Something else collided with something else. In the article it talks about the fish with the health bar
- maweki 5y agoI thought the issue was that there were multiple collisions on the same frame and the software detection was off.
- brk 5y agoI think it came down to a single flag that gets set by the video chip for any two objects that collide. Once the flag is set, the game code needs to figure out which two sprite objects in the scene could have possibly collided. Some time elapses between the flag being set, and the code checking for the collision, allowing for other things to happen in the game (even if only briefly). Ultimately this creates a lot of room for errors because the software is analyzing the game in a slightly different state than when the collision actually occurred, and it may infer a collision between two objects that did not actually collide, due to some other limitations on resources and using object boundary boxes that do not perfectly map to the actual pixels occupied by an object.
- ghusbands 5y agoThe article doesn't say. In the mini-animation of when the fault occurred, after the momentary blank, you can see the bat does actually get partially concealed by something associated with the ALF sprite; it's possible that that counts as a collision. That would seem to indicate three possibilities: 1. The top of the ALF sprite is wider than it looks and has some non-transparent black in it. 2. There's another (non-transparent black) sprite there that's colliding. 3. There's a sprite multiplexing limitation that somehow counts as a collision.
- jayd16 5y agoMy reading was that the 2nd off-screen bat caused a collision to trigger when it spawned. Sloppy collision detection registered this as a kill.