Quote:
Originally Posted by ransom1122
I agree, It's more a FYI for Muzza, in case he has some expert knowledge as to why it may be occuring.
|
It is most likely the copper timings not being emulated correctly. I saw similar in older emulators when I first developing the game.
Take the screen you posted earlier with the status bar slightly offset in World1-1. Now look at the DMA display from WinUAE:
The yellow line that goes across the screen is where it changes from the game display to the status bar. It has to change 16 AGA colours as well as the bitplanes, and a few other things. It has one scanline to complete the changes before the blue bitplane fetches start for the status screen. You can see it is very tight. If I artificially delay the copper by inserting an empty instruction I can recreate the same problem. It looks to me as though the FPGA machine is not completing the copper operations in time whereas a real Amiga does.
Now look at the copper from World 3-3:
The yellow blocks are the copper is constantly moving the HW sprites that make up the parallax background to repeat them across the screen. If the timings are out, you end up with half of an attached sprite in the wrong position, and it looks like the scrolling has gone wrong - which matches the reports I've had.
I could possibly play with the copper timings, maybe find copper instructions to cut, and come up with a solution that works on both real and FPGA Amigas (I found it is often easy to fix for an emulator, but then it breaks on real Amigas!), but really it is better for everyone if the hardware itself is fixed.