Screen wrap6/13/2023 ![]() ![]() $94:A375 8D 02 42 STA $4202 Set as multiplication operand A $94:A372 4A LSR A Divide by 16 to get Y position in tiles $94:A36C FD C8 0B SBC $0BC8,x Subtract projectile Y radius (to get the top edge) $94:A368 BD 78 0B LDA $0B78,x Load projectile Y position $A352: Beam horizontal block collision detection - wave beam the left edge if it's travelling left, or the right edge if it's travelling right). The bug lies within this routine, which checks for collisions between a projectile and all the tiles along its forward edge (i.e. To understand its conditions and effects, it helps to look at the code. It only works in rooms that are 8 screens wide (such as Frog Speedway or Crocomire's Room), and the beam shot must travel diagonally upwards through the ceiling on the right half of the room. ![]() This is an extremely specific trick with very strange effects. ![]() Therefore, a diagonal shot that passes through the red door to Green Brinstar Firefleas Room will hit the blue door at the bottom of the shaft. Since this room is 4 screens wide, shifting 16 screens forward in memory is equivalent to 4 screens downward. This only has an effect in sufficiently large rooms, as the shot has no effect if the underflow places it entirely beyond the room's tile data.Ī left side wraparound can be used to open the door from Green Brinstar Main Shaft to Green Brinstar Beetom Room before falling all the way down the shaft. The underflow affects the entire beam - not just the off-screen portion - so a sufficiently wide beam will interact with a few tiles further to the right as well.
0 Comments
Leave a Reply. |