I've still been working on this as time allows and just released a new version with a lot of optimizations.
@expandedidea also contributed GBC support!
I've been testing on a Plus, SE/30, IIfx, and Quadra 650 (with 40 MHz overclock). You can now play simple games like Tetris at 60 fps on a SE/30 with sound enabled. More complicated games like Pokemon and Zelda still don't reach full speed on the SE/30 but it's a lot better (30-40 fps just walking around, full speed in menus). The IIfx and Q650 are fast enough to play anything at full speed (simple games on the Q650 get hundreds of FPS).
Here are some videos (sorry for how crappy they are, I was holding the phone with one hand and trying to play with the other):
Zelda DX (GBC game) on Q650, frame limiter on:
View attachment PXL_20260726_051904615.TS_720p.mp4
Tetris on Q650, frame limiter off:
View attachment PXL_20260726_052333966.TS_720p.mp4
Pokemon on SE/30 (pretty solid with nothing going on, dips when things are happening - this was also the first time I had gotten into a battle since launching, so it's compiling. I want to save the addresses of reached blocks to a data file to pre-compile them on launch):
View attachment PXL_20260728_060628781.TS_720p.mp4
You can get the latest version and check out my release notes for the past couple versions here:
https://github.com/mlaux/gray-brick/releases
I am very interested in hearing from people with other machines, especially anything between the SE/30 and IIfx in speed, and Macs with a 16-bit data bus (LC, LCII, Color Classic, etc)!
(also should this be moved to Software?)