Commit Graph

515 Commits

Author SHA1 Message Date
Lucas Scharenbroich 83ea7921ff Switch to use Add/Update sprite and rely on Render to place sprites in frame 2021-10-31 15:44:03 -05:00
Lucas Scharenbroich 532af93538 Small update to add ability to specify a transparent color directly 2021-10-31 15:43:23 -05:00
Lucas Scharenbroich 631f40da23 Nearly complete integration of sprites into rendering function 2021-10-31 15:42:59 -05:00
Lucas Scharenbroich 8f0e82cb04 Update world map and tiles 2021-10-30 19:24:57 -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 33280dc5c5 Add single-step and free-run controls to test harness 2021-10-29 11:12:58 -05:00
Lucas Scharenbroich b1c11b09fc Make the test sprite movement a bit more interesting
This results in trails being left on-screen and crashed after
a period of time.  The emulator shows writes going to the
bank 01 I/O space ($01/$Cxxx) and there are occational garbage
words written to the screen.
2021-10-29 00:52:54 -05:00
Lucas Scharenbroich b4155dc751 Expose the ApplyTiles subroutine 2021-10-29 00:52:29 -05:00
Lucas Scharenbroich 11bbe7be3d Reference sprite updates that do not leave trails 2021-10-29 00:17:23 -05:00
Lucas Scharenbroich 9ecc262c58 First pass at validating erasing the sprite on update 2021-10-28 22:19:18 -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 cc18c67491 Expand tile blitter temp space 2021-10-27 00:11:13 -05:00
Lucas Scharenbroich 82c1a8e2e4 Remember to cacluate the tile address when adding to the dirty tile list 2021-10-26 21:34:38 -05:00
Lucas Scharenbroich 0366c1a0e0 Fix missing index in the dirty tile initializations 2021-10-26 21:21:08 -05:00
Lucas Scharenbroich 3f2a9bd8d4 Do not export BG0 tile descriptors ith the mask bit set if there is only one layer defined 2021-10-26 21:19:37 -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 160606bcc4 Remove ineffective debug command line arg 2021-10-23 22:29:34 -05:00
Lucas Scharenbroich 71327111ea Remove unused package 2021-10-22 08:22:55 -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 7bf14d4ba8 Fix debug command line parameters 2021-10-22 00:53:33 -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 c4762888ed Add brief readme to start documenting the internals of GTE 2021-10-21 08:47:17 -05:00
Lucas Scharenbroich 71fd9c29e3 Pull the sprite plane banks into the test build 2021-10-21 08:46:26 -05:00
Lucas Scharenbroich d84ce1d8ed Fix typo 2021-10-21 08:44:49 -05:00
Lucas Scharenbroich cc6408b064 Add fixed banks of memory to hold the sprite plane 2021-10-21 08:44:08 -05:00
Lucas Scharenbroich 74f96138d5 Remove BG1 code to simplify the test harness 2021-10-13 17:45:25 -05:00
Lucas Scharenbroich 9dbdeb64fe Ignore build products 2021-10-13 15:14:39 -05:00
Lucas Scharenbroich 25925c4b95 Sample project to focus on sprite development 2021-10-13 15:13:52 -05:00
Lucas Scharenbroich 5b276c5ace Fix overlay implementation 2021-10-11 21:39:30 -05:00
Lucas Scharenbroich 4d224a92d9 Fix pre-shift bug in the tile address calculation 2021-10-11 16:47:38 -05:00
Lucas Scharenbroich 4338b64338 First cut at a non-trivial overlay. Pallettes and tile indexes still to be fixed 2021-10-11 14:09:38 -05:00
Lucas Scharenbroich 2966b1052b Add rendering path for masked dynamic tiles 2021-10-07 23:54:45 -05:00
Lucas Scharenbroich 59f9e61559 Compensate for the fact the Tiled animation IDs are one off of the map TileIDs 2021-10-07 21:57:56 -05:00
Lucas Scharenbroich d5421afdbd Fix off-by-one issue in tile IDs and make the entry point consistent in the code field generator 2021-10-07 18:33:06 -05:00
Lucas Scharenbroich 4006f76c02 Fix bcc/bcs typo when initializing timers 2021-10-07 16:38:20 -05:00
Lucas Scharenbroich 87ded17e20 Initial Tiled tile animation export support
* 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
2021-10-06 07:10:09 -05:00
Lucas Scharenbroich 7d7a54a731 Update tiled export to create code to start timer scripts for animated tiles 2021-09-05 17:40:34 -05:00
Lucas Scharenbroich 2ef67e0a1c Sample project to demonstrate fringe + base tiles 2021-09-02 16:53:21 -05:00
Lucas Scharenbroich a82c1248db Add untested framework for handling fringe tile rendering 2021-08-30 22:14:04 -05:00
Lucas Scharenbroich 5cfb32c4b1 Tweak ignore files 2021-08-30 22:13:24 -05:00
Lucas Scharenbroich a72ac83b12 Add skeleton for fatdog RPG demo 2021-08-30 20:31:02 -05:00
Lucas Scharenbroich 529e4a98bc Add a tool to export fatdog's images with embedded palette and SCB information 2021-08-28 16:44:14 -05:00
Lucas Scharenbroich 4d6b97ed2c Small PoC to validate animation timers working 2021-08-26 21:22:42 -05:00
Lucas Scharenbroich f55192436a Final reorg; all projects build into a unified disk image for testing 2021-08-26 17:15:44 -05:00
Lucas Scharenbroich dc8697af30 Add separate folder for different demos 2021-08-26 16:46:01 -05:00
Lucas Scharenbroich dcf93892a7 Reorg some more files and tweak paths 2021-08-26 16:45:23 -05:00
Lucas Scharenbroich 2e11ba74ee Rename memory init file 2021-08-26 16:43:14 -05:00