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