Commit Graph

62 Commits

Author SHA1 Message Date
BearOso 50f9f9eba1 Move S9xSyncSpeed call.
DMA can last multiple frames, and so can S9xMainLoop.
If we throttle outside of S9xMainLoop or only as we're exiting the
loop as is currently done, we zoom through multiple frames and
overrun the audio. Moving S9xSyncSpeed just after EndScreenRefresh
causes it to be called every frame.

This seemingly wasn't a problem because throttling with vsync *did*
happen every frame regardless. Oops.
2023-03-20 16:02:36 -05:00
BearOso 9972e2df56 Change S9xInterlaceField to an inline function. 2023-03-07 14:01:29 -06:00
BearOso daf8fba09c Remove extra variables for interlace field.
Keeping unsynchronized copies around is just asking for trouble.
Instead, use a macro to check the actual memory address.
2023-03-07 14:01:29 -06:00
Brandon Wright e854a759f8 Fix Chou Aniki. Remove hack. 2019-03-09 17:16:54 -06:00
Brandon Wright 56af48c042 Reduced version of Vitor's fix for SA1 speed throttle. 2019-01-08 15:32:44 -06:00
Brandon Wright bb66278585 Move S9xMovieUpdate to start of next frame. 2018-12-12 12:36:56 -06:00
Brandon Wright 68e13e9044 Remove useless 'register' storage class.
It's deprecated, and any compiler we use now ignores it.
2018-11-17 15:02:37 -06:00
Brandon Wright 5f56cadafb Use a license stub everywhere.
This points to the full license in the root directory.
2018-11-15 17:31:39 -06:00
Brandon Wright b79b94b675 Revert "Move render to HBLANK start."
This reverts commit 933c861063.
2018-08-17 10:56:48 -05:00
Brandon Wright 933c861063 Move render to HBLANK start. 2018-08-17 10:23:20 -05:00
Brandon Wright 6ebe7b46d1 That didn't really help. Revert. 2018-07-04 12:44:33 -05:00
Brandon Wright 1041ef7aa1 Use 8 instead of 14, since it's closer to accurate. 2018-07-04 11:14:17 -05:00
Brandon Wright 9a80ecda2a Use delay of 14 instead of 12 cycles for first NMI 2018-07-04 11:01:00 -05:00
Brandon Wright 87fc997fb4 Clear WAI at different location. Fixes Top Gear 3000. 2018-06-17 14:52:31 -05:00
Brandon Wright 4017727bdf Divert IRQTransition for the moment. Increase time after WAI to 14 cycles. 2018-06-12 14:49:40 -05:00
Brandon Wright e8afbb5e46 Use IRQTransition again. 2018-06-02 19:02:17 -05:00
Brandon Wright 756f370021 Go back to allowing writes to 4200 and vtimerpos to trigger immediately. 2018-06-02 18:44:13 -05:00
OV2 7d5128d294 Apply IRQ flag changes before triggering NMI (#318) 2018-06-02 23:24:18 +02:00
Brandon Wright c4cf40c509 Some simplification. 2018-06-01 15:34:51 -05:00
Brandon Wright 718f580342 This was wrong. 2018-06-01 14:19:59 -05:00
Brandon Wright 1dd2501e98 The flag pushed on to the stack before IRQ is the updated one. 2018-06-01 14:05:00 -05:00
Brandon Wright 85b0cf0191 Proper for Marko AND Super Ghouls and Ghosts. 2018-05-31 15:03:49 -05:00
Brandon Wright 2c219815f9 Remove IRQPending hack. 2018-05-29 14:09:38 -05:00
Brandon Wright 78bc52cd8e Add some debugging info. Don't reset timer when reading $4211. 2018-05-28 18:24:11 -05:00
Brandon Wright 09c4e97c32 Don't schedule recurring vtimer for current line immediately. 2018-05-28 11:25:07 -05:00
Brandon Wright ca9ec5ff19 IRQExternal isn't susceptible to same delays. 2018-05-27 19:12:22 -05:00
Brandon Wright c932d4e37a Add IRQ transition. 2018-05-27 11:03:21 -05:00
Brandon Wright ce2a685c89 Adjust timing. 2018-05-26 20:34:38 -05:00
Brandon Wright c615c42199 Here, too. 2018-05-26 20:14:02 -05:00
Brandon Wright 5595e3cb96 Do HEventProcessing conditionally. 2018-05-26 20:12:44 -05:00
Brandon Wright f57ba74547 More WAI fixing. 2018-05-26 18:16:12 -05:00
Brandon Wright 937eeab133 Fix Mortal Kombat II. 2018-05-26 18:08:03 -05:00
Brandon Wright 37954fe510 Fix some IRQ bits. 2018-05-26 17:02:57 -05:00
Brandon Wright 0d1bd3f5ae Unbreak Battle Blaze. Rebreak Marko's Magic Football. 2018-05-26 13:18:01 -05:00
Brandon Wright 20bd60a3c6 Update copyright dates. 2018-05-25 15:44:52 -05:00
Brandon Wright 7dec8a1f9e Use 0x0fffffff instead of 0xffffffff here. 2018-05-19 16:56:28 -05:00
Brandon Wright d27d9b6dbd Fix a couple IRQ problems. 2018-05-19 16:54:05 -05:00
Brandon Wright f1cab4ab17 Change NextTimer to NextIRQTimer. Don't subtract a dot in interlaced mode. 2018-05-19 10:33:26 -05:00
Brandon Wright 1ff91f4224 Make sure to pull IRQLine during IRQ. 2018-05-18 15:48:42 -05:00
Brandon Wright f6864c422f Different IRQ handling. 2018-05-18 14:53:27 -05:00
Brandon Wright aaae363257 Simplify NMI trigger. 2018-05-18 11:10:01 -05:00
Brandon Wright 8c47efb89a Bound late NMI trigger to last half of scanline. Be more careful setting trigger position. 2018-05-17 16:24:51 -05:00
Brandon Wright 7f88063b84 Don't continuously skip over NMI triggers that happened late in the scanline. 2018-05-17 14:52:10 -05:00
Brandon Wright e14a32dd8c Add some NMI debugging info. 2018-05-17 14:52:10 -05:00
Brandon Wright 070d5e5dbf Fix reset of NMI pending flag. 2018-05-02 10:00:27 -05:00
Brandon Wright 551e527784 Revert "Add a wait for threads when we hand away control. Probably not needed due to all the extra processing during end-of-frame."
This reverts commit e1a4ef93b6.
2018-04-13 10:25:25 -05:00
Brandon Wright e1a4ef93b6 Add a wait for threads when we hand away control. Probably not needed due to all the extra processing during end-of-frame. 2018-04-12 16:51:00 -05:00
Brandon Wright 76e25cbb6f Revert "Also break out of S9xMainLoop in original location."
This reverts commit 8313c51e81.
2017-11-24 14:01:05 -06:00
Brandon Wright 8313c51e81 Also break out of S9xMainLoop in original location. 2017-11-24 13:47:53 -06:00
Brandon Wright 10e0ef005d Change where we break S9xMainLoop/Scan for input ("Brunnis lag fix") 2017-11-22 12:12:41 -06:00