Commit Graph

283 Commits

Author SHA1 Message Date
55d095174f CDROM: Defer init completion until after seek
Reduces leaky reverb in some games.
2024-08-10 00:13:59 +10:00
d1f0669374 SPU: Ensure all samples are generated prior to DMA write 2024-08-09 12:36:24 +10:00
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
0517aef5bd CDROM: Don't allow deferred INT1 after Pause ACK 2024-08-06 13:34:11 +10:00
f9079b0151 CDROM: Display XA coding info in debug window 2024-08-04 16:30:04 +10:00
ee538ae0ea CDROM: Improve resampling quality of 18900hz XA 2024-08-04 16:21:35 +10:00
a2f98541b3 Misc: Slim down some header includes 2024-08-04 14:49:55 +10:00
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
68575d15a4 CDROM: Shift instead of divide in ZigZagInterpolate 2024-07-23 22:10:04 +10:00
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
52f9e8556a CDROM: Deactivate command attempt before queueing another
Reduces chances of ending up with unordered events.
2024-07-20 22:35:32 +10:00
4f7ddfaae6 TimingEvents: Remove pointer indirection
Probably should move this to one big array for locality.
2024-07-19 22:56:41 +10:00
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
92038da3d5 CDROM: Handle speed change while reading
Fixes level music in Croc 2 demo.
2024-07-18 00:31:19 +10:00
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
9392c19a70 CDROM: Handle audio sectors in 2X mode
Fixes menu background in 360 Three Sixty.
2024-07-17 20:57:35 +10:00
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
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
0968610ba7 CDROM: Use GSVector 2024-07-03 00:24:12 +10:00
8124fb2ef5 CDROM: Fix incorrect sector dropped log message 2024-06-13 18:35:02 +10:00
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
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
7222c21cd9 CDROM: Further refine interrupt delay 2024-05-31 23:59:44 +10:00
d013438810 CDROM: Rewrite BFRD handling
Fixes hang on startup in Unirom.
2024-05-31 19:45:42 +10:00
3063101274 CDROM: Implement 0x60 test command
Apparently needed for unirom.
2024-05-30 22:34:06 +10:00
25bf2b3adc CDROM: Clear async interrupt on read/seek start
Fixes broken audio in Road Rash.
2024-05-30 20:49:58 +10:00
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
1565a2667d Misc: More format string fixes 2024-05-25 15:48:31 +10:00
4e922a34a7 Log: Simplify macros 2024-05-24 02:08:14 +10:00
b6d019db66 Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
ca3cfbaa99 Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
71f50566f3 System: Consider pending ticks when using global ticks 2024-04-07 19:01:48 +10:00
de1e5b24fb CDROM: Don't send reports when subq isn't valid 2024-03-26 01:20:33 +10:00
fa6850902a CPU: Make interrupts actually edge-triggered 2024-03-18 01:46:19 +10:00
3395853ba2 CDROM: Fix overflow in UpdatePositionWhileSeeking() 2024-03-13 14:14:40 +10:00
7340324ed9 CDROM: Accuracy improvements 2024-02-29 17:00:51 +10:00
79c226efff SmallString: fmt -> format, format -> sprintf 2023-12-13 21:06:15 +10:00
df91c63b31 CDROM: Add PVD/directory entries to file map 2023-11-30 14:38:38 +10:00
35799aba47 CDROM: Add current file to debug window 2023-11-29 22:01:45 +10:00
cce7be4723 Misc: Make struct member functions file-local 2023-11-18 16:46:11 +10:00
38bc2bd057 CDROM: Add option to choose emulated mechacon version 2023-11-05 14:43:38 +10:00
edae13d9e4 CDROM: Log command parameters 2023-11-05 13:32:25 +10:00
ecb082b672 CDROM: Add NEON implementation of GetPeakVolume() 2023-10-01 17:24:34 +10:00
01e505ec8b Common: Add intrin.h 2023-10-01 17:24:34 +10:00
b1bb33a566 Common: Move CPU macros to types.h 2023-10-01 13:57:25 +10:00
ac0601f408 Common: Drop String, add SmallString 2023-09-23 14:14:52 +10:00
adc124c759 Misc: Unreachable code warning fixes 2023-09-05 22:10:50 +10:00
80e3d29ab8 Misc: clang-cl warning clean-up 2023-09-03 14:30:26 +10:00
e23c9875d5 Misc: Split core and util Host 2023-08-30 00:44:00 +10:00
e57ad0b6aa Host: Backport translations cache
Note: You'll need a new command line for lupdate.

..\..\..\dep\msvc\qt\6.5.0\msvc2022_64\bin\lupdate.exe ../ ../../core/ ../../util/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP -ts duckstation-qt_LANGUAGE.ts
2023-08-20 12:40:47 +10:00