I just made a new release which makes use of newly discovered LCD documentation to eliminate diagonal screen tearing in fullscreen mode! I'd definitely appreciate feedback on this release because it's a bit experimental. More info
here.
This release also lays some important groundwork for future GBC rendering. Up until now I used 4 bits per pixel for fullscreen rendering so I could render two pixels at once in a single byte, but the GBC can display well more than 16 colors at once, so I'll need 8 bits per pixel for it. This means the framebuffers would have to be twice as large (and require twice as many writes to render to it), which would be bad for memory usage and performance.
With this change though, my framebuffers only need to be 160x240 pixels, so I can expand to 8 bits per pixel with no memory cost. Even for original Game Boy, this is an improvement just to get rid of special-casing for 4-bit or 8-bit rendering. With a 256-color palette, I was also able to greatly increase performance when rendering multiple sprite palette configurations in a single frame (which doesn't happen often, but it was a terrible edge case before).
With this release, hopefully I can go back to my emulator core rewrite for GBC support, which I stalled while working on these rendering updates.