* Missed an XBA to swap tile command bits into a proper index range
* Explicitly track the BASE_ADDR
* Fix some register overwriting
* Add an UpdateSprite method
This significantly simplifies the dispatch process by creating a
proper backing store for the tiles. Most values that were
calcualted on the fly are now stored as constants in the tile
store.
Also, all tile updated are run through the dirty tile list which
solved a checken-and-egg problem of which order to do sprites vs
new tiles and affords a lot of optimizations since tile rendering
is deferred and each tile is only drawn at most once per frame.
* Tiled tile animations read from TSX files
* Hooks for initialization generated by the tiled export tool
* Animated tiles implements with dynamic tiles backed by 2KB of direct
page space in Bank 00
* Animation resolution limited to 1/60th incremenents
TODO
* Fix crasher in the _DoScriptSequ timer callback
* Fix single-line of garbage on the top line of the dynamic tiles
The core data tables were reworked to pre-reverse all of the
entries to directly match the right-to-left ordering of the code
fields. This simplified some code but was required for register
reuse in the masked tile renderer.
Also fixed several offset calculation issues in the masked tile
renderer.
Need to have the called provide a copy of the base line address to the
masked drawing code and need to verify that the JTable entries are
ordered the same way as the byte offset so the same register can be used
to load the JMP addresses and patch in the LDA (DP),y instructions.
This is not quite correct yet. IT appears that two rows or columns are
drawn on the edges when only a single solumn or row is necessary. Also,
this code is based on the old GTE codebase, so the initial rectangle for
rendering tiles is width+1, height+1. This can be improved.