The hardest thing to bring back together is going to be the tilemapper. That thing was hacked together in the most horrendous way, and I feared I would never understand enough of it to copy and paste it into the new project.
After a good night's rest from mulling over this thing, I've finally found my way, so I'm hoping I won't have to rewrite the parts that made the tilemapper go.
------------
For technical details, imagine the following scheme:
Interrupt cycle 1 = LCD/tilemap draw
Interrupt cycle 2 = Slot 1
Interrupt cycle 3 = LCD draw / tile rotation
Interrupt cycle 4 = Slot 2
Interrupt cycle 5 = LCD draw / tile rotation
Interrupt cycle 6 = Slot 3
A number of tables are prepared in the other variable slots in order to get the LCD/tilemap draw cycle to work as fast as possible. What I didn't fully understand until now is why I stuck the routines that move a character across a tilemap in Slot 1 as opposed to Slot 2, where most of my game logic is happening. What I realized is that only in Slot 1 do I get the full benefit of using the tile rotation routines in the other LCD draws (since drawing grayscale in 15MHz would leave quite a bit of delay), and I can perform tile rotations without having to use up precious clock cycles in the other variable slots.
What made things tricky was a number of race conditions that involved a local tilemap table in which the thing read from versus what tiles needed to finish rotating in order to align themselves again. Depending on which direction your character is going, the local map could refresh *BEFORE* the tiles on the edge of the screen finished rotating, and thus, remain in an intermediate state which appears... ugly. That problem was a nightmare to solve, and I'd rather not do it again.
--------
Aside:
Tile rotation isn't the only thing these LCD draws perform while the tilemapper is running. When the tilemapper is /not/ running, that cycle does the same thing as the other cycles and I can then use its built-in grayscale layering effects to some good use. One of which can be seen in the "lightning" effect in the image attached.
Best viewed in Firefox or Opera, as this is a 35FPS .gif file, which happens to be capped at 10FPS in IE or Chrome
This layering effect is not present in the tilemapper version of the LCD draw, which is something that isn't easy to fix unless I want to spend precious cycles on something the calc doesn't have time for. Can't shortchange Slot 1 any more than it already is.