Commit Graph

508 Commits

Author SHA1 Message Date
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
Lucas Scharenbroich
55484fd3e4 Regenerate map and add some priority tiles for testing 2021-11-12 09:06:48 -06:00
Lucas Scharenbroich
ab16035c0d Create and pass options to png2iigs subroutines 2021-11-12 09:05:55 -06:00
Lucas Scharenbroich
6c5b283ae9
Merge pull request #2 from lscharen/multi-tile-sprites
Multi tile sprites (1/N)
2021-11-11 22:26:35 -06:00
Lucas Scharenbroich
673b97419a Clear sprite flag when erasing sprite 2021-11-11 22:22:10 -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
13393965b3 Switch to the 256x128 tileset image 2021-11-02 22:01:31 -05:00
Lucas Scharenbroich
2f40c79ddf Improve transparent / background color handling when generating tiles 2021-11-02 21:59:08 -05:00
Lucas Scharenbroich
3a5d2cb3ad
Merge pull request #1 from lscharen/20211020_sprite-and-tile-rewrite
20211020 sprite and tile rewrite
2021-11-01 23:47:30 -05:00
Lucas Scharenbroich
bb5f4493d9 Fully integration simple (8x8) sprites into the render pipeline 2021-11-01 23:36:53 -05:00
Lucas Scharenbroich
e83e8d8a0e Update map assets 2021-10-31 15:44:31 -05:00
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