because of the limited ROM size only the bump map is stored and the room is decorated when switching rooms.
however this has a noticable delay (~20 frames). found this interrupt snippet so I can print how many frames were dropped and I can measure progress. 👍
it's very smooth now, will post a before/after recording later. :)
lessons: was using a modulo-% somewhere. removed many function calls inline and simplified the calculations. moved stuff out of loops that didn't have to be recalculated.
I thought I was being clever by passing around pointers to values, but a pointer is 16 bits, vs 8-bit for a value. so you gain nothing unless for structs/arrays.
in fact the generated assembly got a lot smaller by removing the excessive pointer use. recovered a good 1Kb! :)