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
dependabot[bot]
adceac1390
Bump minimist from 1.2.5 to 1.2.6 in /demos/zelda
...
Bumps [minimist](https://github.com/substack/minimist ) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases )
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6 )
---
updated-dependencies:
- dependency-name: minimist
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-01 14:51:18 +00:00
Lucas Scharenbroich
df0d0ccada
Commit to a huge unrolled loop to do bitfield -> render function
2022-02-25 17:05:32 -06:00
Lucas Scharenbroich
ef620e48a3
Remove cached value; too slow to maintain on sprite remove
2022-02-25 17:03:36 -06:00
Lucas Scharenbroich
e49e069461
Start adding some basic documentation on building from source
2022-02-24 21:54:11 -06:00
Lucas Scharenbroich
7bde48e36c
Enable all dirty bits to minimize per-frame, per-sprite work
2022-02-23 08:41:02 -06:00
Lucas Scharenbroich
88fba6cd15
Add plb to prevent crash in unimplemented multisprite handler
2022-02-22 21:37:03 -06:00
Lucas Scharenbroich
19ae2b0866
Remove stray pla that prevented more than one sprite from rendering
2022-02-22 21:27:47 -06:00
Lucas Scharenbroich
2507724a49
More sprite streamlining
...
* Added a TS_LAST_VBUFF cached value in the tile store
* Added a fast path for single sprite w/fast test
* Improved raster timing granularity for visual profiling
All of the code paths are generally good. Both the _RenderSprites
and _ApplyDirtyTiles functions take a fair bit of raster time. Will
continue to try and streamline the data structures and code to
reduce overhead.`
2022-02-22 02:35:21 -06:00