That’s looks good and runs fast! I still use visual6502 to explore and explain aspects of the 6502 - for example, there’s a trick to how the first byte of an absolute address is handled, and an even bigger trick for how the first byte of a subroutine call is handled.
The original visual6502 has an advantage, I think, over the present state of this remix: it can run substantial programs with I/O and without the burden of the graphics, which can be illuminating. As an unilluminating example, this program computes pi (very slowly indeed): visual6502 computes pi
(previously this short link)