Lucas Scharenbroich
89ea425043
Start work on sprite attribute caching
2022-02-04 12:37:05 -06:00
Lucas Scharenbroich
8b852485ac
Fix dirty sprite renderer when StartX and StartY are not zero
2022-02-03 23:44:46 -06:00
Lucas Scharenbroich
d3b61f8de6
Merge branch 'toolbox-conversion'
2022-02-03 08:51:49 -06:00
Lucas Scharenbroich
1b9425b620
Streamline sprite functions; untested conceptual changes
2022-02-03 08:50:11 -06:00
Lucas Scharenbroich
16a3a385a9
Update some comments
2022-02-02 17:24:27 -06:00
Lucas Scharenbroich
5f492fd557
Save 1 cycle per line in the PEA fast-path for odd-aligned blits
2022-02-02 14:30:48 -06:00
Lucas Scharenbroich
1fe02e035c
Checkpoint
2022-02-02 10:21:31 -06:00
Lucas Scharenbroich
027f9746ec
Checkpoint of work
2022-01-19 20:58:57 -06:00
Lucas Scharenbroich
7d76089215
Remove some dead code
2021-11-22 16:53:47 -06:00
Lucas Scharenbroich
140126afd8
Optimize odd-aligned case in the blitter
...
The SEP/REP pairs that are used to move in and out
of 8-bit mode to do the single-byte pushed on the left
and right edges of the screen can also be used to clear
the necessary carry and overflow flags.
2021-11-22 16:13:29 -06:00
Lucas Scharenbroich
76801c0e5e
Simplify all of the remaining tile blitters
2021-11-20 13:58:24 -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
0cc28f9e6e
Generalize _DrawSprite to handle all sizes and flip bits.
2021-11-20 12:00:21 -06:00
Lucas Scharenbroich
a7ba1e4b6b
Add final tile blitter
2021-11-19 16:48:39 -06:00
Lucas Scharenbroich
fd6c686a95
Fix ordering bug that caused /usr/bin/bash0 values to overwrite the sprite
2021-11-19 16:40:21 -06:00
Lucas Scharenbroich
39303041f9
Add priority dynamic tiles + sprite blitter
2021-11-19 16:30:22 -06:00
Lucas Scharenbroich
44cbba3f23
Add in new variants for sprite and priority tiles
2021-11-19 15:07:43 -06:00
Lucas Scharenbroich
5fdb4bcf06
Fix transposed argument in macro definition; dynamic tile + sprite now working
2021-11-19 13:26:19 -06:00
Lucas Scharenbroich
b4871efe8f
Streamlining tile blitter macros
2021-11-19 13:00:59 -06:00
Lucas Scharenbroich
4c31a0d056
Reorg of exception handling code in the core blitter
...
* Moved V-flag handling outside of the 32-byte exception handler
* Switched relative branches to JMP to save a cycle per word
* Updated macros to create a full code snippet instead of assuming
certain values exist in the exception handler buffer
2021-11-19 10:24:09 -06:00
Lucas Scharenbroich
0a9eb76ab5
Checkpoint; have old Dynamic Tile Renderers working
2021-11-18 16:23:44 -06:00
Lucas Scharenbroich
ba76b0047c
Checkpoint on dynamic tile blitters
2021-11-18 15:36:36 -06:00
Lucas Scharenbroich
9a6eb45b20
Add Masked Sprite Tile blitter and fix some minor issues with the macro
2021-11-15 21:23:15 -06:00
Lucas Scharenbroich
976ab3163b
Fix offset for filling wrap-around byte in BG1
2021-11-15 12:32:38 -06:00
Lucas Scharenbroich
dfd5549918
Sync up with current WIP
2021-11-15 12:23:38 -06:00
Lucas Scharenbroich
cc8e03e6d3
Add SCB binding infrastructure
2021-11-13 19:45:27 -06:00
Lucas Scharenbroich
b87e2a8d33
Fix register assignments for dynamic tile renderer
2021-11-13 19:44:30 -06:00
Lucas Scharenbroich
596777da8d
Enable non-sprite, solid dynamic tiles
2021-11-12 15:11:29 -06:00
Lucas Scharenbroich
de5bdc6041
Rename tile blitters to match internal bit fields and add in the solid prioity blitter
2021-11-12 09:07:51 -06:00
Lucas Scharenbroich
dec9a3d106
Fix fast-path return value in PushDirtyTile and correct handling of TS_SPRITE_FLAG
2021-11-11 22:10:54 -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
b4155dc751
Expose the ApplyTiles subroutine
2021-10-29 00:52:29 -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
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
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
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
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
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
a82c1248db
Add untested framework for handling fringe tile rendering
2021-08-30 22:14:04 -05:00
Lucas Scharenbroich
69c6104742
Small initialization and jsr/jsl updates
2021-08-26 16:12:08 -05:00
Lucas Scharenbroich
fe18759759
Refactor original demo driver to use GTE Core; move functions around
2021-08-26 08:52:43 -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