Commit Graph

267 Commits

Author SHA1 Message Date
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
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