Closed furrtek closed 5 years ago
Actually, this was NOT fixed. It was just never encountered because simulation was only done with a few games.
The glitch affects sprites with the special "infinite height" value of 33. This is the case of League Bowling's lane and background behind the how-to-play lady.
The sprite tilemap address highest bit (SPRITEMAP_ADDR_MSB) is inverted when it shouldn't. Tilemap indexes 16, 17, 18... are read instead of 0, 1, 2...
Fixed in 8c46a32. Caused by verilog syntax misunderstanding :(
Fix: assign SPR_Y_SHRINK = LO_LINE_A + {1'b0, ~YSHRINK};
See League Bowling lane, Puzzle Bobble backgrounds, many games with full-screen scrolling maps...
This was happening in simulation and was fixed by adding # delays in some cells. Can this be solved with timing constraints, or by using a 2x clock and additional registers ?