Commit Graph

71 Commits

Author SHA1 Message Date
Lucas Scharenbroich 027f9746ec Checkpoint of work 2022-01-19 20:58:57 -06:00
Lucas Scharenbroich 5bc9cc7ff2 Add a SPRITE_HIDE flag to toggle whether a sprite is drawn or not 2021-11-22 13:26:25 -06:00
Lucas Scharenbroich 2683a91e93 Fix sprite rendering with overlapping sprites. Must erase all sprites first, then re-render 2021-11-20 21:58:09 -06:00
Lucas Scharenbroich cd5de05d74 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
Lucas Scharenbroich 65ce5cbbc0 Add 16x16 vertical flip routine 2021-11-20 13:26:00 -06:00
Lucas Scharenbroich b607275089 Separate updating a sprite's position with updating it's flags 2021-11-20 12:16:03 -06:00
Lucas Scharenbroich 0cc28f9e6e Generalize _DrawSprite to handle all sizes and flip bits. 2021-11-20 12:00:21 -06:00
Lucas Scharenbroich 673b97419a Clear sprite flag when erasing sprite 2021-11-11 22:22:10 -06:00
Lucas Scharenbroich 678c9a0563 Initial shell of generalize sprite size support; just for marking the dirty tiles 2021-11-11 17:06:38 -06:00
Lucas Scharenbroich bb5f4493d9 Fully integration simple (8x8) sprites into the render pipeline 2021-11-01 23:36:53 -05:00
Lucas Scharenbroich 631f40da23 Nearly complete integration of sprites into rendering function 2021-10-31 15:42:59 -05:00
Lucas Scharenbroich 2f73b9acf5 Small improvements to sprite prototype to fix dirty tiles getting out of sync 2021-10-30 19:24:23 -05:00
Lucas Scharenbroich 0a7d9e15c7 Add external entry point to the erase function 2021-10-28 22:18:33 -05:00
Lucas Scharenbroich 7ec1b8bc29 Fix dumb initialization bug in sprite plane 2021-10-28 21:52:48 -05:00
Lucas Scharenbroich 4e46a6af85 WIP: manual sprite rendering showing on screen 2021-10-28 21:41:01 -05:00
Lucas Scharenbroich 2feb6f590b Add address in sprite plane for tile rendering; use in tile dispatcher 2021-10-27 00:14:19 -05:00
Lucas Scharenbroich 3b8bf652e1 Continued bug fixing
* 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
2021-10-23 22:31:38 -05:00
Lucas Scharenbroich 494673416b Fix several incorrect uses of internal API; work toward functional demo 2021-10-22 00:56:12 -05:00
Lucas Scharenbroich 4e779e71d2 Tile rendering reorganization
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.
2021-10-21 08:50:07 -05:00
Lucas Scharenbroich a82c1248db Add untested framework for handling fringe tile rendering 2021-08-30 22:14:04 -05:00
Lucas Scharenbroich 7d5f7aa721 Refactor GTE Core to be included as an independent Segment in other projects 2021-08-25 09:38:02 -05:00