Lucas Scharenbroich
e2e30dfcf4
Checkpoint for initial framing for compiled sprite support
2023-02-28 11:17:43 -06:00
Lucas Scharenbroich
981182592e
Shadow based rendering working in demo-5
2023-02-27 15:30:56 -06:00
Lucas Scharenbroich
31ca627c14
Make sprite pre-calc rotines more specific and fix x,y argument ordering in AddSprite
2023-01-08 01:30:51 -06:00
Lucas Scharenbroich
4b50fa8318
checkpoint
2023-01-02 11:04:26 -06:00
Lucas Scharenbroich
b8a7641307
Add in all linked list operations
2022-09-08 21:51:00 -05:00
Lucas Scharenbroich
eaedee546e
Remove dead / obsolete code
2022-09-02 20:38:10 -05:00
Lucas Scharenbroich
217a1176a9
Remove obsolete blitter routines
2022-09-02 20:37:26 -05:00
Lucas Scharenbroich
bd1de7f83c
Checkpoint
2022-08-16 19:47:19 -05:00
Lucas Scharenbroich
3fce46872d
Checkpoint; blitter failing
2022-08-14 07:45:58 -05:00
Lucas Scharenbroich
e378dc6e26
Checkpoint with TF4 demo framework
2022-08-11 14:14:25 -05:00
Lucas Scharenbroich
093bc738f0
Merge branch 'master' into scanline-offsets
2022-08-01 22:21:52 -05:00
Lucas Scharenbroich
97fa45589b
Allow GTEStartUp caller to specify whether tool is loaded as a system or user tool
2022-08-01 22:00:54 -05:00
Lucas Scharenbroich
5883de1f71
Checkpoint
2022-08-01 21:46:00 -05:00
Lucas Scharenbroich
7a6c4e5ff4
Break up Ypos loop into pre/loop/post segment to optimize. Saved ~5,000 cycles/sec. When applied to the other routines will save a few thousand more cycles
2022-07-31 11:51:42 -05:00
Lucas Scharenbroich
794bc1fc09
Start adding scanline variants
2022-07-30 11:04:13 -05:00
Lucas Scharenbroich
7c32c89493
Merge branch 'streamline-apply-bg0'
2022-07-28 13:27:47 -05:00
Lucas Scharenbroich
456744027d
Inline all functions that are only called once
...
Eliminates the JSR/RTS overhead for the copy functions. Combined
with the other streamlining, we save around 60 - 70 cycles per
bank, or a total savings of around 10,000 cycles per seconds when
running at full screen.
This doesn't really change the FPS, but just gives some cycles
back to the main application logic.
2022-07-28 13:15:46 -05:00
Lucas Scharenbroich
babd4d06b4
Merge pull request #15 from dmalec/platform-neutral-paths
...
Switched back slash to forward slash in assembly so Merlin32 works on OSX as well as Windows
2022-07-28 12:20:40 -05:00
Lucas Scharenbroich
fa731f4b2d
Streamline restore BG0; experiment with more aggressive inlining
2022-07-28 12:15:00 -05:00
Lucas Scharenbroich
0f920acd03
Eliminate redundent register loads
2022-07-28 11:57:14 -05:00
Lucas Scharenbroich
f5a27362a7
Remove ommented out code
2022-07-28 11:56:05 -05:00
Lucas Scharenbroich
e25b5b4d7f
Correctly initialize the screen size
2022-07-27 23:42:26 -05:00
Dan Malec
9849c6bbb1
Switched back slash to forward slash in assembly so Merlin32 works on OSX as well as Windows
2022-07-27 17:56:27 -04:00
Lucas Scharenbroich
5a0e0e447e
Change GTESetScreenMode to use bytes for the width
2022-07-26 00:21:22 -05:00
Lucas Scharenbroich
68b8ca5856
Remove a CLC from the inner dispatch. Saves 2 cycles per block per sprite at the cost of 2 cycles per sprite
2022-07-26 00:11:47 -05:00
Lucas Scharenbroich
d332783c85
Add additional parameter to AddSprite to avoid needing to call UpdateSprite immediately
2022-07-26 00:10:53 -05:00
Lucas Scharenbroich
acf0276ff5
Get vertical rotation scaling going
2022-07-22 16:00:41 -05:00
Lucas Scharenbroich
18da2546bd
Add horizontal scaling to the background rotation
2022-07-22 02:01:34 -05:00
Lucas Scharenbroich
6c531619f9
Merge branch 'fixup-rotations' into kfest-2022
2022-07-21 23:35:53 -05:00
Lucas Scharenbroich
3063ab88f9
Fix sprite stamp rendering for 8x16 and 16x8 sprites
2022-07-21 22:51:25 -05:00
Lucas Scharenbroich
23f3626293
Fix issues preventing BG1 per-line offsets from working
2022-07-16 16:42:41 -05:00
Lucas Scharenbroich
0ab7fa9d81
Two layer demos
2022-07-16 15:22:23 -05:00
Lucas Scharenbroich
4506f808c9
Restore BG1 rotation code
2022-07-12 21:03:30 -05:00
Lucas Scharenbroich
d7c0577167
Fix typo that caused sprite to render above a tile with priority set; only for dirty tiles
2022-07-08 12:37:06 -05:00
Lucas Scharenbroich
086f462617
Restrict _Refresh to only on-screen tiles
2022-07-08 12:36:07 -05:00
Lucas Scharenbroich
552d32d0fa
Add back support for SPRITE_HIDE control bit
2022-07-08 12:35:49 -05:00
Lucas Scharenbroich
e9a2b8569b
Fix drift between public macro file and internal definitions
2022-07-07 17:57:05 -05:00
Lucas Scharenbroich
530cdbd07f
Merge branch 'dirty-tiles'
2022-07-07 17:44:21 -05:00
Lucas Scharenbroich
5ab9fe1c3b
Fix bank register for overlapping dirty sprites
2022-07-07 17:43:57 -05:00
Lucas Scharenbroich
af7bd36906
Fix logic to prevent unecessary sprite updates
2022-07-07 17:22:44 -05:00
Lucas Scharenbroich
9856bad091
Fix dirty<->normal rendering transition
2022-07-07 14:46:37 -05:00
Lucas Scharenbroich
77b69cdc82
Fix _PopDirtyTile2 routine to sync with new TS_DIRTY conventions; fixes basic dirty sprite rendering
2022-07-07 09:12:23 -05:00
Lucas Scharenbroich
182ebfd566
Set dirty render to the correct direct page and several small cleanups
2022-07-06 14:55:27 -05:00
Lucas Scharenbroich
41539ae606
Update zelda demo to use tool interface
2022-07-06 08:53:50 -05:00
Lucas Scharenbroich
a33d7ab341
Fix initialization bug that has been there forever. Thanks Ian Brumby
2022-07-06 07:32:04 -05:00
Lucas Scharenbroich
58705653c4
Work on helpers to refresh TileStore procs based on rendering mode
2022-07-06 07:18:49 -05:00
Lucas Scharenbroich
4e21680063
Add a full complement of firty tile rendering functions
2022-07-05 23:48:33 -05:00
Lucas Scharenbroich
48fa068dfd
Add routines for dirty tile rendering
2022-07-04 23:55:32 -05:00
Lucas Scharenbroich
9fdd1dc8a5
Fix sprite bit descriptions in comment
2022-07-03 11:13:07 -05:00
Lucas Scharenbroich
d720f0ccac
Add two additional functions
2022-06-27 17:15:27 -05:00
Lucas Scharenbroich
a7dad98d50
Additional tweaks to get old sprite demo working
2022-06-27 11:24:04 -05:00
Lucas Scharenbroich
b0affa1b72
Add check to bind SCBs in the render function
2022-06-27 00:41:30 -05:00
Lucas Scharenbroich
a51c973865
Fix addressing bug in SCB binding
2022-06-27 00:41:02 -05:00
Lucas Scharenbroich
81e0aeb351
Fix some minor bugs in the TwoLayer rendering functions
2022-06-27 00:32:44 -05:00
Lucas Scharenbroich
145fd2afc4
Fix argument definitions
2022-06-26 23:42:21 -05:00
Lucas Scharenbroich
b7d061e666
Fix simple script handling
2022-06-26 23:32:15 -05:00
Lucas Scharenbroich
8aafd5812b
Work to expose times via Toolset
2022-06-26 22:08:42 -05:00
Lucas Scharenbroich
c257d72060
Fix argument handling in SetPalette
2022-06-25 21:21:20 -05:00
Lucas Scharenbroich
78ee683ba8
Stub in a lot of the remaining functions
2022-06-25 11:17:50 -05:00
Lucas Scharenbroich
bcdc543241
Add in all the two-layer tile renderers; update complete. Just need to test
2022-06-23 11:31:42 -05:00
Lucas Scharenbroich
3292572261
Add TwoLayer rendering stubs
2022-06-22 15:29:09 -05:00
Lucas Scharenbroich
280d19876c
Fix a nasty macro/lup bug
2022-06-22 00:09:08 -05:00
Lucas Scharenbroich
4c1dba0f68
Complete Dynamic Tile renderer
2022-06-21 23:13:28 -05:00
Lucas Scharenbroich
76a9710114
Add dynamic rendering functions
2022-06-21 15:28:58 -05:00
Lucas Scharenbroich
a91f39aab8
Remove dead code and implement Slow tile renderers in terms of the Fast once to avoid code bloat
2022-06-21 13:33:17 -05:00
Lucas Scharenbroich
2820d318a0
Final cleanups for Fast mode
2022-06-21 11:23:06 -05:00
Lucas Scharenbroich
400851259d
More minor fixes
2022-06-21 10:06:17 -05:00
Lucas Scharenbroich
553fd3c02a
Tweaking updated sprite dispatch flow
2022-06-21 07:29:18 -05:00
Lucas Scharenbroich
4ea3033b5e
Get minimal tiles and sprites rendering without a crash
2022-06-20 17:57:19 -05:00
Lucas Scharenbroich
1f9c9b3f5b
Checkpoint of final tile proc reorg for generalize new infrastructure for different engine modes
2022-06-20 15:55:09 -05:00
Lucas Scharenbroich
12b05139c2
Move to tables of dispatch tuples to set tile rendering information
2022-06-14 14:21:51 -05:00
Lucas Scharenbroich
d3da96a834
Add in the special Tile 0 render routines
2022-06-14 08:12:33 -05:00
Lucas Scharenbroich
7af4a216a0
Add modular dispatch for copy routines; add initial support for tile priority bit
2022-06-12 05:28:12 -05:00
Lucas Scharenbroich
955cf4a580
Remove unused memory and start working on priority renderer
2022-06-09 07:41:58 -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