iigs-game-engine/src/blitter
Lucas Scharenbroich 8bb17895a9 Rough outline of streamlined sprite subsystem
* Split the creation of the sprite stamps from adding the
  sprites themselves.  This allows for 48 stamps that can
  be pre-rendered and quickly reassigned to sprites for
  animations.

* Inlined all calls to PushDirtyTile.  This both removed
  significant overhead from calling the small function and,
  since almost all callers we checking multiple tiles, we
  were able to avoid incrementing the count each time and
  just add a single incrments at the end.

* Switched from recording each tile that a sprite intersects
  with each from to only recording the top-left tile and the
  overlap size.  This reduced overhead for larger sprites
  and removed the needs for an end-of-list marker.

* Much more aggressive caching of Sprite and Tile Store
  values in order to streamline the inner tile dispatch
  routines.

* Moving TileStore and Sprites (and other supporting
  data structures) into a separate data bank.  Needed just
  for size purposes and provide micro-optimizations by
  opening up the use of abs,y addressing modes.

* Revamped multi-sprite rendering code to avoid the need to
  copy any masks and all stacked sprites can be drawn
  via a sequence of and [addrX],y; ora (addrX),y where
  addrX is set once per tile.

* General streamlining to reduct overhead. This work was
  focused on removing as much per-tile overhead as possible.
2022-04-20 07:43:16 -05:00
..
BG0.s Small initialization and jsr/jsl updates 2021-08-26 16:12:08 -05:00
BG1.s Fix offset for filling wrap-around byte in BG1 2021-11-15 12:32:38 -06:00
Blitter.s Tile rendering reorganization 2021-10-21 08:50:07 -05:00
Horz.s Update some comments 2022-02-02 17:24:27 -06:00
PEISlammer.s First cut at a non-trivial overlay. Pallettes and tile indexes still to be fixed 2021-10-11 14:09:38 -05:00
SCB.s Sync up with current WIP 2021-11-15 12:23:38 -06:00
Tables.s Rough outline of streamlined sprite subsystem 2022-04-20 07:43:16 -05:00
Template.s Rough outline of streamlined sprite subsystem 2022-04-20 07:43:16 -05:00
Tiles00000.s Most of the horizontal flip routines are not needed since the _GetTileAddr function returns the correct tile address. Need to finish auditing other Tile blitters 2021-11-20 13:54:19 -06:00
Tiles00001.s Streamlining tile blitter macros 2021-11-19 13:00:59 -06:00
Tiles00010.s Most of the horizontal flip routines are not needed since the _GetTileAddr function returns the correct tile address. Need to finish auditing other Tile blitters 2021-11-20 13:54:19 -06:00
Tiles00011.s Add in new variants for sprite and priority tiles 2021-11-19 15:07:43 -06:00
Tiles01000.s Rename tile blitters to match internal bit fields and add in the solid prioity blitter 2021-11-12 09:07:51 -06:00
Tiles01001.s Rename tile blitters to match internal bit fields and add in the solid prioity blitter 2021-11-12 09:07:51 -06:00
Tiles01010.s Rename tile blitters to match internal bit fields and add in the solid prioity blitter 2021-11-12 09:07:51 -06:00
Tiles10000.s Rough outline of streamlined sprite subsystem 2022-04-20 07:43:16 -05:00
Tiles10001.s Fix transposed argument in macro definition; dynamic tile + sprite now working 2021-11-19 13:26:19 -06:00
Tiles10010.s Simplify all of the remaining tile blitters 2021-11-20 13:58:24 -06:00
Tiles10011.s Fix ordering bug that caused /usr/bin/bash0 values to overwrite the sprite 2021-11-19 16:40:21 -06:00
Tiles11000.s Simplify all of the remaining tile blitters 2021-11-20 13:58:24 -06:00
Tiles11001.s Add priority dynamic tiles + sprite blitter 2021-11-19 16:30:22 -06:00
Tiles11010.s Simplify all of the remaining tile blitters 2021-11-20 13:58:24 -06:00
Tiles11011.s Add final tile blitter 2021-11-19 16:48:39 -06:00
Tiles.s Rough outline of streamlined sprite subsystem 2022-04-20 07:43:16 -05:00
TilesBG1.s Fix several incorrect uses of internal API; work toward functional demo 2021-10-22 00:56:12 -05:00
Vert.s Refactor original demo driver to use GTE Core; move functions around 2021-08-26 08:52:43 -05:00