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