Commit Graph

451 Commits

Author SHA1 Message Date
Lucas Scharenbroich
955cf4a580 Remove unused memory and start working on priority renderer 2022-06-09 07:41:58 -05:00
Lucas Scharenbroich
364af7bc57 Misc updates of local work 2022-06-09 07:41:03 -05:00
Lucas Scharenbroich
3f9ba7e81b Local cleanup 2022-06-09 07:36:40 -05:00
Lucas Scharenbroich
e5938cb3c7 Change the entry points based on the engine mode 2022-06-08 23:34:15 -05:00
Lucas Scharenbroich
3c41e97b0f Move dispatch table into K bank and save 9 cycles per tile in dispatch 2022-06-08 17:34:23 -05:00
Lucas Scharenbroich
227643d7df Fix H+V sprite stamp renderer 2022-06-08 17:17:28 -05:00
Lucas Scharenbroich
388470c133 Fix left-edge sprite rendering glitch; was an issue with not erasing sprites when they transition to IS_OFFSCREEN status 2022-06-08 14:25:52 -05:00
Lucas Scharenbroich
1de4c0bc7f Make sure all macros add the vbuff offsets 2022-06-07 10:05:52 -05:00
Lucas Scharenbroich
3591c494bf Add three-sprite rendering function 2022-06-07 10:05:40 -05:00
Lucas Scharenbroich
2c409b02a7 Fix lookup tables to fix boundary rendering 2022-06-06 20:10:15 -05:00
Lucas Scharenbroich
b6202ca44c Implement framework for adjusting VBuff tables to handle boundary transitions 2022-06-06 11:23:00 -05:00
Lucas Scharenbroich
36d57f7c2d Fix signed calculations for negative sprite X and Y coordinates 2022-06-02 23:02:06 -05:00
Lucas Scharenbroich
783e813dc2 Implement overlapping rendering for two sprites 2022-06-02 13:59:15 -05:00
Lucas Scharenbroich
e6251f05a3 Clean up constants and fix bad addressing mode 2022-06-02 13:06:26 -05:00
Lucas Scharenbroich
4f557230c6 Remove some dead code and streamline some addressing. Fix bug in dispatch macro 2022-06-02 12:28:49 -05:00
Lucas Scharenbroich
83ec527b06 Make the test demo more sophisticated; multiple sprites 2022-06-01 22:24:45 -05:00
Lucas Scharenbroich
24ebb1f3af Fix Tile Store lookup initialization bug 2022-06-01 21:12:54 -05:00
Lucas Scharenbroich
a938639c1b Fix initialization bug in TileStore 2022-06-01 13:55:04 -05:00
Lucas Scharenbroich
b022162036 Fix vertical offset bug; was using the TileStore lookup index, not the TileStore offset 2022-06-01 09:19:28 -05:00
Lucas Scharenbroich
cde517bcc9 Fix single-step vertical displacement issue 2022-06-01 07:50:19 -05:00
Lucas Scharenbroich
dec50bc6fc Fix several bugs; biggest one in the SpriteStamp routine 2022-05-31 22:53:33 -05:00
Lucas Scharenbroich
98adfe5daa Continuing to tweak and debug 2022-05-31 16:31:44 -05:00
Lucas Scharenbroich
bba8929db7 PRoperly initialize Lookup tables 2022-05-31 13:01:09 -05:00
Lucas Scharenbroich
10d6dc5931 Fix crashing when trying to render sprite; sprite not visible but have end-to-end code execution 2022-05-31 09:14:25 -05:00
Lucas Scharenbroich
78d7dafe14 Another checkpoint; converging on the working implementation 2022-05-31 08:43:26 -05:00
Lucas Scharenbroich
7909113a97 Checkpoint 2022-05-26 19:36:40 -05:00
Lucas Scharenbroich
5577105be8 Complete unrolled loop for clearing sprites from the tile store 2022-05-23 15:18:34 -05:00
Lucas Scharenbroich
9da3616c1d Start working to bring sprites rendering back into the pipeline 2022-05-22 23:54:47 -05:00
Lucas Scharenbroich
d27b10b6fd Fix nasty RTable initialization bug 2022-05-22 23:52:54 -05:00
Lucas Scharenbroich
8582ecb320 Fix weird search/replace bug 2022-05-22 21:57:52 -05:00
Lucas Scharenbroich
9ac9ea623e More banking fixes 2022-05-19 23:40:45 -05:00
Lucas Scharenbroich
e52ef4f7cf Add message output for debugging 2022-05-19 23:39:19 -05:00
Lucas Scharenbroich
fc48330061 Fix bug in tile rendering and tile sheet copying 2022-05-18 22:49:14 -05:00
Lucas Scharenbroich
fd07ead8ed Get tile data to display from code field 2022-05-18 21:39:39 -05:00
Lucas Scharenbroich
755ac3fbfd Move most data storage to separate bank; fix many banking bugs 2022-05-18 21:00:06 -05:00
Lucas Scharenbroich
01e92a7b62 Update; tool is compiling while referencing new rederer pipeline 2022-05-18 00:34:25 -05:00
Lucas Scharenbroich
7f6e5d1b1f Work checkpoint 2022-04-29 12:38:04 -05:00
Lucas Scharenbroich
7050b3613a
Update README.md 2022-04-27 00:05:38 -05:00
Lucas Scharenbroich
4d6f11a9ba Initialize the graphics screen via the toolset 2022-04-25 17:11:48 -05:00
Lucas Scharenbroich
1522922abe Complete initialization sequence. 2022-04-25 16:35:47 -05:00
Lucas Scharenbroich
e5da3991cd Start to split the tiles into high-level and low-level code 2022-04-25 16:34:54 -05:00
Lucas Scharenbroich
5745482ef6 Fix bank setting on toolset entry 2022-04-25 11:32:25 -05:00
Lucas Scharenbroich
d107365d79 Break up large source code files to help with dependency ordering 2022-04-25 11:32:06 -05:00
Lucas Scharenbroich
29d70dc567 Break up large source code files to help with dependency ordering 2022-04-25 11:30:24 -05:00
Lucas Scharenbroich
76180b6feb Basic working user tool framework 2022-04-24 14:45:07 -05:00
Lucas Scharenbroich
1f9f2aee0c Thank to Kelvin Sherlock for pointing out that the source files were not setting the register state directive 2022-04-23 15:41:25 -05:00
Lucas Scharenbroich
9692277677 Work on fixing linker / OMF errors 2022-04-23 12:48:13 -05:00
Lucas Scharenbroich
e2710ace85 Refactor to support building a tool and new demo to try and use it [not working] 2022-04-23 00:47:13 -05:00
Lucas Scharenbroich
b270e985f9
Merge pull request #8 from lscharen/dependabot/npm_and_yarn/demos/zelda/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6 in /demos/zelda
2022-04-21 13:21:49 -05:00
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