UPDATE: VBL Fix v2 is up, now Classic-safe!
First off, thanks to everyone for the testing and the kind words. Special thanks to @n8blz for the seriously thorough shakedown: 30-plus restart cycles with zero freezes, then pulling the fix back out and watching the freeze return on the very first reboot. That's exactly the before-and-after I was hoping someone would run. It's the clearest confirmation I could ask for that we're fixing the right thing.
Thanks also to @xc68000 for putting both fixes through their paces and catching an edge-case that I didn't anticipate: booting an OS 9 partition inside Classic on Tiger would hang while loading the VBL fix. The cause makes sense once you see it. Under Classic the display is virtualized by Mac OS X, so there's no real ATI hardware behind the boot display. The fix works by re-issuing the display driver's "enable VBL interrupt" call, and under Classic that call has nothing real to talk to, so it wedges. The freeze itself doesn't even happen under Classic, since OS X is driving the actual display, so the right move is for the fix to just stay out of the way there.
That's all v2 does. At startup it checks (via Gestalt) whether it's running inside the Classic environment, and if it is, it quits without doing anything. On native OS 9 nothing changes at all: the check can only ever make it skip under Classic, never on real hardware, so v2 behaves identically to v1 on an actual mini. It's a safe drop-in over v1, and there's no rush to update unless you run OS 9 under Classic.
@xc68000, whenever you get a chance, could you drop v2 in and confirm your Classic on Tiger boot no longer hangs? That's the one setup I can't test here as I don't have anything booting Tiger/Classic right now, so your confirmation would be helpful.
You can grab it from the v2.0 release here:
https://github.com/UnexpectedBomb/G4-Mac-Mini-VBL-Fix/releases/tag/v2.0Install is the same as before: drop VBLFix_v2 into your Startup Items folder. There's also a VBLAutofix tester build in the release that reports what it did with a beep and a log, if you'd like to watch it catch a freeze in the act.
Thanks again, everyone. It's been a blast seeing this help so many minis. The next milestone will be to fully integrate this solution into the ROM itself for a truly seamless experience. I'll keep you posted!
-UB