Stenzek
e1c876671a
Misc: More iNN => sNN
2024-09-22 21:06:05 +10:00
Stenzek
3dca598063
Log: Switch to enum class
...
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
47a3cd44f3
CDROM: Support reading MODE1 sectors
2024-09-07 16:05:53 +10:00
Stenzek
6d0f92d4fb
dep/fmt: Bump to v11.0.2
2024-09-03 17:54:43 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers
2024-09-01 22:08:31 +10:00
Stenzek
2c27b20090
ImGuiManager: Remove unused function
2024-08-26 18:53:30 +10:00
Stenzek
46a6681159
CDROM: Fix incorrect clamp with seek speedup
...
And bump the minimum time up around 0.29ms or so, hopefully improve
stability in FF7.
2024-08-26 16:45:23 +10:00
Stenzek
86d4d92753
TimingEvents: Switch to 64-bit counters
2024-08-13 23:52:25 +10:00
Stenzek
304f69e350
CDROM: Fix rare interrupt race when cancelling commands
...
Fixes hang during loading in Street Fighter Alpha 3.
2024-08-19 15:11:37 +10:00
Stenzek
55d095174f
CDROM: Defer init completion until after seek
...
Reduces leaky reverb in some games.
2024-08-10 00:13:59 +10:00
Stenzek
d1f0669374
SPU: Ensure all samples are generated prior to DMA write
2024-08-09 12:36:24 +10:00
Stenzek
c97516b01d
CDROM: Further improve seek timing
...
Fixes background music in World Cup 98, background noise in Idol
Promotion - Yumie Island, probably others.
2024-08-09 12:36:24 +10:00
Stenzek
0517aef5bd
CDROM: Don't allow deferred INT1 after Pause ACK
2024-08-06 13:34:11 +10:00
Stenzek
f9079b0151
CDROM: Display XA coding info in debug window
2024-08-04 16:30:04 +10:00
Stenzek
ee538ae0ea
CDROM: Improve resampling quality of 18900hz XA
2024-08-04 16:21:35 +10:00
Stenzek
a2f98541b3
Misc: Slim down some header includes
2024-08-04 14:49:55 +10:00
Stenzek
c2d24f436c
CDROM: Re-enable error-on-seeking-pause behaviour
...
See the comments in the diff. This **will** cause lag in Final Fantasy
VII during preload areas, but that has also been confirmed on console.
Duke Nukem - Total Meltdown does this silly Read -> Pause command chain,
except it sets its data/INT1 callback on the read, but never clears it
after the pause. Therefore, if it doesn't receive at least one sector,
the callback never gets cleared, and when the next read happens, it
stores the "current" callback in the "backup" variable, which should be
null, but now has the callback from the dud read.
The result is any INT1 during XA playback running the dud callback,
which says "hey, I'm not expecting any data, so pause, and stops the
background music playback. Making sure at least one sector from that
silly chain is delivered ensures the callback is cleared, and this does
not happen.
Since the pause first mentioned above will now error out until the first
sector is delievered, the game spams pause until it eventually does
succeed after the INT1. This behaviour has also been verified on
hardware, thanks to rama for the xStation logs.
2024-07-27 14:24:23 +10:00
Stenzek
68575d15a4
CDROM: Shift instead of divide in ZigZagInterpolate
2024-07-23 22:10:04 +10:00
Stenzek
5ec9c8a397
CDROM: Fix handling of 8-bit ADPCM and decoder overruns
...
Fixes pops in menu music in Simple 1500 Series Vol. 92 - The Tozan
RPG - Ginrei no Hasha.
I haven't seen anything that _properly_ uses 8-bit ADPCM yet. The above
game does, but only in the inaudible portion of the start of the track.
2024-07-23 21:54:22 +10:00
Stenzek
52f9e8556a
CDROM: Deactivate command attempt before queueing another
...
Reduces chances of ending up with unordered events.
2024-07-20 22:35:32 +10:00
Stenzek
4f7ddfaae6
TimingEvents: Remove pointer indirection
...
Probably should move this to one big array for locality.
2024-07-19 22:56:41 +10:00
Stenzek
6a920b268e
CDROM: Handle BFRD clears inbetween DMA transfers
...
Fixes disc detection in Metal Gear Solid: Special Missions.
2024-07-19 15:51:25 +10:00
Stenzek
92038da3d5
CDROM: Handle speed change while reading
...
Fixes level music in Croc 2 demo.
2024-07-18 00:31:19 +10:00
Stenzek
f1ca914512
CDROM: Further adjust IRQ delay
...
Fixes audio dropouts in Crime Crackers, Ogre Battle seems fine now as
well.
2024-07-17 20:57:36 +10:00
Stenzek
9392c19a70
CDROM: Handle audio sectors in 2X mode
...
Fixes menu background in 360 Three Sixty.
2024-07-17 20:57:35 +10:00
Stenzek
44b9d16d9f
CDROM: Defer set of autopause track
...
Pitball's menu music starts mid-second, and there's no pregap,
so the first couple of reports are for the previous track.
It doesn't enable autopause until receiving a couple, and it's
actually playing the track it wants.
2024-07-17 20:57:35 +10:00
Stenzek
fb747d6ded
CDROM: Drop setloc on double Play
...
And limit the locations position is updated while seeking.
Fixes menu music in Hot Wheels: Extreme Racing.
2024-07-17 20:57:35 +10:00
Stenzek
0968610ba7
CDROM: Use GSVector
2024-07-03 00:24:12 +10:00
Stenzek
8124fb2ef5
CDROM: Fix incorrect sector dropped log message
2024-06-13 18:35:02 +10:00
Stenzek
8595175267
CDROM: Improve accuracy of sector redelivery on DMA complete
...
Fixes hang in loading in Syphon Filter 2/3.
2024-06-09 19:47:51 +10:00
Stenzek
34861074c1
CDROM: Ensure complete IRQs for Init go through
...
Fixes booting games with OpenBIOS and its Init spam.
2024-06-08 16:58:08 +10:00
Stenzek
7222c21cd9
CDROM: Further refine interrupt delay
2024-05-31 23:59:44 +10:00
Stenzek
d013438810
CDROM: Rewrite BFRD handling
...
Fixes hang on startup in Unirom.
2024-05-31 19:45:42 +10:00
Stenzek
3063101274
CDROM: Implement 0x60 test command
...
Apparently needed for unirom.
2024-05-30 22:34:06 +10:00
Stenzek
25bf2b3adc
CDROM: Clear async interrupt on read/seek start
...
Fixes broken audio in Road Rash.
2024-05-30 20:49:58 +10:00
Stenzek
2ff1f398a3
CDROM: Handle INT1 with pending command
...
Fixes lockup during track playback in Gokujou Parodius Da! Deluxe Pack.
2024-05-25 16:10:09 +10:00
Stenzek
1565a2667d
Misc: More format string fixes
2024-05-25 15:48:31 +10:00
Stenzek
4e922a34a7
Log: Simplify macros
2024-05-24 02:08:14 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt
2024-05-24 00:29:49 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value
2024-05-05 22:28:29 +10:00
Stenzek
71f50566f3
System: Consider pending ticks when using global ticks
2024-04-07 19:01:48 +10:00
Stenzek
de1e5b24fb
CDROM: Don't send reports when subq isn't valid
2024-03-26 01:20:33 +10:00
Stenzek
fa6850902a
CPU: Make interrupts actually edge-triggered
2024-03-18 01:46:19 +10:00
Stenzek
3395853ba2
CDROM: Fix overflow in UpdatePositionWhileSeeking()
2024-03-13 14:14:40 +10:00
Stenzek
7340324ed9
CDROM: Accuracy improvements
2024-02-29 17:00:51 +10:00
Stenzek
79c226efff
SmallString: fmt -> format, format -> sprintf
2023-12-13 21:06:15 +10:00
Stenzek
df91c63b31
CDROM: Add PVD/directory entries to file map
2023-11-30 14:38:38 +10:00
Stenzek
35799aba47
CDROM: Add current file to debug window
2023-11-29 22:01:45 +10:00
Stenzek
cce7be4723
Misc: Make struct member functions file-local
2023-11-18 16:46:11 +10:00
Stenzek
38bc2bd057
CDROM: Add option to choose emulated mechacon version
2023-11-05 14:43:38 +10:00