Progress was a little slower the last few days, unfortunately.
I've done a bit additional pixelling. On the code front, the last few days have been focused on cleaning up various rough edges. Those include a few regressions. I had offset the spare RAM buffer, forgetting that it needs to be aligned on a page bounday. This caused a few issues in some self modfiying code that was just setting the LSB of the target addresses. Ultimately this led to some visual issues in the sprite rendering.
As far as new features go, I've been working on the "effects" part of the engine. The purpose of this is to give some visual flair to various actions. It's bascially a higher level layer that sits ontop of the bitmap API, which sets/resets pixels. Currently, it supports lines (horizontal and vertical), and flashes, which are done by writing to the VIC's screen color register, $900f. So, it is quite primitive.
The bitmap manipulating actions are bounded by the room's visible area, which is an intentional limitation to allow the operations to be undone by restoring the room data from a back buffer.
Finally, although it isn't implemented yet :D, the operations should honor a stroke width.
As always, hope you all are well. Til next time :) I'm making another loaf of bread on Friday or Saturday, can't wait!