I worked a bit more on this to fix a bug TIny reported. You can no longer zoom in or out too far! Even if you somehow manage to still do that, the program should gracefully quit rather than crash.
I also added drawing interrupts so if you press a key while the image is drawing, it will immediately stop drawing and do the button you pressed. This makes the program feel so much more responsive especially for large images! It's not perfect, sometimes it won't accept the key press and will only stop drawing. I'll look into it more in the future but it works well enough for now.
I noticed a bug that worries me but I'm not sure how to approach. When I zoom in, sometimes I'll see small artifacts in the picture as if the pixel is using the wrong palette value. If I zoom in further, the artifacts disappear. Here's an example if you look in the circled area, you'll see red pixels where there shouldn't be any red.
What would cause such an artifact? I suspect it may be a result of gfx_ScaleSprite() but I will need to test more to verify. Are there any specific tests I could do to diagnose this?
No new release for now but you can give my debug version
a try if you want!