Lucas Scharenbroich
8b852485ac
Fix dirty sprite renderer when StartX and StartY are not zero
2022-02-03 23:44:46 -06:00
Lucas Scharenbroich
525f6d9c67
Add specialized erase routines for different sprite sizes
2022-02-03 08:59:10 -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
108335e90a
Add link to John Brooks' technical post on fast GS graphics
2022-02-02 10:23:39 -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
3848c98a21
More documentation
2021-11-23 10:26:34 -06:00
Lucas Scharenbroich
9652a20a3b
Add pre-configured play field size table to docs
2021-11-23 09:25:03 -06:00
Lucas Scharenbroich
af1c728303
Fix table entries
2021-11-23 00:17:02 -06:00
Lucas Scharenbroich
e5aacae8c7
Begin work on updating README
2021-11-22 23:53:13 -06:00
Lucas Scharenbroich
b24e5933e0
Add cheezy logo
2021-11-22 21:47:41 -06:00
Lucas Scharenbroich
69ed76a65d
Optimize the simple mixed BG0/BG1 handler
...
There is enough room in the 32-byte exception handler to inline the
9-byte epilogue when generating the code sequence for mixed BG1/BG0
rendering.
This code sequence is generated once and run for as many frames as the
word appear on screen, so saving an uncondition branch (3 cycles) at the
cost of 60 cycles is probably worth it.
2021-11-22 16:56:53 -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
4075ed911c
Use the 'f' key to have the SPRITE_HIDE flag set every other frame for a flashing effect
2021-11-22 13:27:27 -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
90267e4646
Test updating tile ID in UpdateSprite for a run sequence.
2021-11-20 20:33:27 -06:00
Lucas Scharenbroich
9b5d3da0e4
Let character remain facing the direction they were moving after stopping
2021-11-20 14:03:00 -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
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
e65e6dac8b
Fix mask generatino of flipped tiles
2021-11-20 11:59:37 -06:00
Lucas Scharenbroich
c92606840a
Fix mask generation bug; mask was reversed
2021-11-20 11:09:57 -06:00
Lucas Scharenbroich
c08a4f7278
Merge pull request #3 from lscharen/expand-exception-handler-space
...
Expand exception handler space
2021-11-19 16:52:18 -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
d268b34e76
Get masking working with tile map output again
2021-11-15 16:41:01 -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
bcf8820fbe
Better palette and mask handling
2021-11-14 16:30:16 -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
bab57f6e43
Add VSYNC toggle
2021-11-12 11:27:43 -06:00
Lucas Scharenbroich
45ad44f1a6
Update Tiled assets
2021-11-12 09:08:18 -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