Well, the patch indeed fixes the problem, but the new wait_vbl2 routine doesn't look like it is really fixed.
The wait_vbl routine tests 128 times for a change in $ff8209 (lower byte of shifter). If it doesn't change, then VBL is believed to be complete. If it changes, then retry for a non-change 10000 more times.
It's a strange routine which somehow depends on CPU speed.
The wait_vbl2 tests 10001 times an equality that is trivial ($ff8209 has no time to change). So it luckily works on a standard Falcon 030, but isn't better.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Fix for bug #1191415 ("adebug: video problem on falcon")
Logged In: YES
user_id=270539
Originator: YES
Well, the patch indeed fixes the problem, but the new wait_vbl2 routine doesn't look like it is really fixed.
The wait_vbl routine tests 128 times for a change in $ff8209 (lower byte of shifter). If it doesn't change, then VBL is believed to be complete. If it changes, then retry for a non-change 10000 more times.
It's a strange routine which somehow depends on CPU speed.
The wait_vbl2 tests 10001 times an equality that is trivial ($ff8209 has no time to change). So it luckily works on a standard Falcon 030, but isn't better.