Reply 13 of 25, by ripsaw8080
- DOSBox Author
Loading some VGA BIOS with a debug build improves the shaking effect, so I tried adding a fixed number of cycles to the scroll functions by waiting in a loop. It does improve the bouncing of the screen, but doesn't work very well, and appears to depend on how many cycles DOSBox is running at compared to how many are consumed by the wait loop. What I usually see is random horizontal bands of the screen moving.
Another approach with vertical retrace turned out much better. The entire screen bounces up and down with little of the "tearing" seen in the other approach, and it's independent of how many cycles DOSBox is running at. I don't know if any video BIOS checks for retrace in its scroll functions, but it could improve the effect on real hardware as well.
I made a small loader program that waits for retrace before the scroll functions are called; and also patches INTRO.EXE in memory to use its code segment instead of the system BIOS segment for the white noise effect, which creates a more "snowy" result in DOSBox. Simply run the program in the folder where U7 is installed. Source code is included in the attached archive.