Commit Graph

332 Commits

Author SHA1 Message Date
Lucas Scharenbroich
9cc5b2e3af Generalize to allow differrnt play field sizes 2023-07-07 15:57:46 -05:00
Lucas Scharenbroich
4c13373bd3 Fix addressing bug that caused serious overdraw 2023-06-27 21:33:59 -05:00
Lucas Scharenbroich
cdfc414a9f Fix relative offset from interrupt enable code and fix order bug in exit code path 2023-06-27 21:32:21 -05:00
Lucas Scharenbroich
4645929596 Pretty 2023-06-27 21:31:40 -05:00
Lucas Scharenbroich
1fcf176012 Fix ancient bug in Col2CodeOffset table 2023-06-27 21:31:13 -05:00
Lucas Scharenbroich
29838abb40 Shorter size-agnostic implemention of SetDataBank 2023-06-27 21:30:30 -05:00
Lucas Scharenbroich
2cc839b2c6 Add offset for the interrupt entry point 2023-06-27 21:29:50 -05:00
Lucas Scharenbroich
9c24715217 Enable interrupt processing in the lite blitter 2023-06-27 21:29:32 -05:00
Lucas Scharenbroich
cb5e9b0b25 Add interrupt breaks in the lite blitter to allow music to keep playing 2023-06-26 17:17:23 -05:00
Lucas Scharenbroich
6a0b8cbdc1 Fix restore code field bug. SMB demo can use renderer 2023-06-26 14:15:20 -05:00
Lucas Scharenbroich
eb548343a7 Fix offset calc 2023-06-26 13:19:12 -05:00
Lucas Scharenbroich
2013771524 Lite render mode bugfixes 2023-06-26 11:21:05 -05:00
Lucas Scharenbroich
94dafd2093 Checkpoint 2023-06-25 21:45:34 -05:00
Lucas Scharenbroich
28016b6780 Move error check outside of loop 2023-06-17 12:33:22 -05:00
Lucas Scharenbroich
fa307e5542 Better support for user-defined tiles 2023-06-02 00:38:35 -05:00
Lucas Scharenbroich
aeb620fb7b Added sprite and background disable control bits 2023-05-28 07:49:37 -05:00
Lucas Scharenbroich
56b66033a7 Add support for sprite priority 2023-05-22 13:55:56 -05:00
Lucas Scharenbroich
b40bc0dd2b Don't crash on OOB 2023-05-22 00:04:50 -05:00
Lucas Scharenbroich
d3a7eecc6e Mostly working PPU integration with GTE rendering pipeline 2023-05-21 17:50:05 -05:00
Lucas Scharenbroich
64f7106143 Fix absolute address issue in rom 2023-05-19 20:40:52 -05:00
Lucas Scharenbroich
310c3487ca Support the sprite palette select bits in OAM 2023-05-17 12:59:07 -05:00
Lucas Scharenbroich
25c82cc44b Initial palette work; fix memory init bug 2023-05-16 22:38:54 -05:00
Lucas Scharenbroich
cb13c2ae2d Secret sauce 2023-05-16 12:34:18 -05:00
Lucas Scharenbroich
4ee67fb8be Add hook for VBL callback 2023-05-09 10:16:58 -05:00
Lucas Scharenbroich
a5498e07eb Update the shadow renderer to use the common scnaline management routines 2023-04-28 00:35:35 -05:00
Lucas Scharenbroich
c7a143b488 Remove unneeded padding from some data arrays 2023-04-28 00:14:03 -05:00
Lucas Scharenbroich
869d80af1e Comment cleanup and minro refactoring 2023-04-28 00:13:05 -05:00
Lucas Scharenbroich
515ec5280b Remove dead code 2023-04-28 00:11:46 -05:00
Lucas Scharenbroich
57f57ce533 Restore shadow reg instead of overwriting 2023-04-27 23:38:26 -05:00
Lucas Scharenbroich
e013ff03fd Fix off-by-one error in overlay 2023-04-26 08:47:56 -05:00
Lucas Scharenbroich
b449d983ee Checkpoint for WIP scanline render fix for overlays+sprites and user-defined tiles 2023-04-26 00:41:17 -05:00
Lucas Scharenbroich
44c51217a1 Checkpoint of object list resolver 2023-04-25 23:39:09 -05:00
Lucas Scharenbroich
dc5742dd11 Remove dead code from codebase 2023-03-14 09:23:01 -05:00
Lucas Scharenbroich
02bc6fe493 Comment cleanup; rename FRINGE tile control bit 2023-03-14 09:11:53 -05:00
Lucas Scharenbroich
b154bcf361 Sync up header files and add back CopyToBG1 behavior as a selectable feature 2023-03-12 15:39:41 -05:00
Lucas Scharenbroich
065603a758 Core updates for BG1 scanline support 2023-03-11 03:41:41 -06:00
Lucas Scharenbroich
d31bd30649 Implement full per-scanline offset support for BG1 2023-03-11 03:41:12 -06:00
Lucas Scharenbroich
7dd690ac04 Implement fix for scanline mode compensation in BG1 2023-03-10 19:00:26 -06:00
Lucas Scharenbroich
9021ee4506 WIP of BG1 scanline effects
A static BG1 is stable with BG0 offset values.  A seam in BG1
needs to be closed up by taking into account the BG1XOrigin value
when setting the :shift_value.

Also, several routines were hard-coded for the scanline case.  These
hanges need to be reverted and properly parametereized.
2023-03-10 15:50:42 -06:00
Lucas Scharenbroich
e3409f92fa Add per-scanline offset rendering. 2023-03-09 15:29:58 -06:00
Lucas Scharenbroich
3a78398ea7 Remove dead label 2023-03-09 00:26:31 -06:00
Lucas Scharenbroich
39163ea786 Expose the ability to select which rendering order to use for sprites 2023-03-09 00:23:12 -06:00
Lucas Scharenbroich
c533d846d7 Be more cautious when manipulaitng the sorted list 2023-03-08 20:09:57 -06:00
Lucas Scharenbroich
6c5e133b17 Fix some linked-list manipulations 2023-03-08 16:29:12 -06:00
Lucas Scharenbroich
029ab62f0c Fix accidental double-addition of the screen origin 2023-03-08 14:15:11 -06:00
Lucas Scharenbroich
a70412211c Simplify and specialize the even/odd patching
Allows the odd case to be slightly more efficient and the
code is cleaned up by not having to handle both even and odd
alignment cases at multiple points.
2023-03-08 12:49:45 -06:00
Lucas Scharenbroich
536959619f Refine the horizontal dispatch
Find small optimizations to improve the average performance of the
blitter, especially in the odd-aligned case.

 - Odd-aligned PEA exit is 2 cycles faster per line
 - Odd-aligned JMP exit is 2 cycles faster per line
 - Odd-aligned LDA exit is 6 cycles faster (eliminated long store)
 - Merged setting the entry opcode and offset to convert 2 8-bit
   store into a single 16-bit store (save 6 cycles per line)
 - Load and save the full word for the high bytes. Cost 2 cycles
   but enabled the 6 cycles saved for the LDA case.
2023-03-07 17:32:46 -06:00
Lucas Scharenbroich
5697737a93 Add workable overlay support to the scanline renderer 2023-03-06 14:39:23 -06:00
Lucas Scharenbroich
6832c7f405 Update dynamic tile rendered to use fixed snippets. Add DAMAGES flag for the one render that doesn't fit the mold 2023-03-03 21:44:39 -06:00
Lucas Scharenbroich
dd9ced08f1 Transition to fixed snippets 2023-03-02 23:24:03 -06:00