Commit Graph

281 Commits (c97516b01d5ee59d36bef71f763d204c3c9d696e)

Author SHA1 Message Date
Stenzek c97516b01d
CDROM: Further improve seek timing
Fixes background music in World Cup 98, background noise in Idol
Promotion - Yumie Island, probably others.
1 year ago
Stenzek 0517aef5bd
CDROM: Don't allow deferred INT1 after Pause ACK 1 year ago
Stenzek f9079b0151
CDROM: Display XA coding info in debug window 1 year ago
Stenzek ee538ae0ea
CDROM: Improve resampling quality of 18900hz XA 1 year ago
Stenzek a2f98541b3
Misc: Slim down some header includes 1 year ago
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.
1 year ago
Stenzek 68575d15a4
CDROM: Shift instead of divide in ZigZagInterpolate 1 year ago
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.
1 year ago
Stenzek 52f9e8556a
CDROM: Deactivate command attempt before queueing another
Reduces chances of ending up with unordered events.
1 year ago
Stenzek 4f7ddfaae6
TimingEvents: Remove pointer indirection
Probably should move this to one big array for locality.
1 year ago
Stenzek 6a920b268e
CDROM: Handle BFRD clears inbetween DMA transfers
Fixes disc detection in Metal Gear Solid: Special Missions.
1 year ago
Stenzek 92038da3d5
CDROM: Handle speed change while reading
Fixes level music in Croc 2 demo.
1 year ago
Stenzek f1ca914512
CDROM: Further adjust IRQ delay
Fixes audio dropouts in Crime Crackers, Ogre Battle seems fine now as
well.
1 year ago
Stenzek 9392c19a70
CDROM: Handle audio sectors in 2X mode
Fixes menu background in 360 Three Sixty.
1 year ago
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.
1 year ago
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.
1 year ago
Stenzek 0968610ba7
CDROM: Use GSVector 1 year ago
Stenzek 8124fb2ef5
CDROM: Fix incorrect sector dropped log message 1 year ago
Stenzek 8595175267
CDROM: Improve accuracy of sector redelivery on DMA complete
Fixes hang in loading in Syphon Filter 2/3.
1 year ago
Stenzek 34861074c1
CDROM: Ensure complete IRQs for Init go through
Fixes booting games with OpenBIOS and its Init spam.
1 year ago
Stenzek 7222c21cd9
CDROM: Further refine interrupt delay 1 year ago
Stenzek d013438810
CDROM: Rewrite BFRD handling
Fixes hang on startup in Unirom.
1 year ago
Stenzek 3063101274
CDROM: Implement 0x60 test command
Apparently needed for unirom.
1 year ago
Stenzek 25bf2b3adc
CDROM: Clear async interrupt on read/seek start
Fixes broken audio in Road Rash.
1 year ago
Stenzek 2ff1f398a3
CDROM: Handle INT1 with pending command
Fixes lockup during track playback in Gokujou Parodius Da! Deluxe Pack.
2 years ago
Stenzek 1565a2667d
Misc: More format string fixes 2 years ago
Stenzek 4e922a34a7
Log: Simplify macros 2 years ago
Stenzek b6d019db66
Misc: Replace log printf calls with fmt 2 years ago
Stenzek ca3cfbaa99
Misc: Pass string_view by value 2 years ago
Stenzek 71f50566f3
System: Consider pending ticks when using global ticks 2 years ago
Stenzek de1e5b24fb
CDROM: Don't send reports when subq isn't valid 2 years ago
Stenzek fa6850902a
CPU: Make interrupts actually edge-triggered 2 years ago
Stenzek 3395853ba2
CDROM: Fix overflow in UpdatePositionWhileSeeking() 2 years ago
Stenzek 7340324ed9
CDROM: Accuracy improvements 2 years ago
Stenzek 79c226efff
SmallString: fmt -> format, format -> sprintf 2 years ago
Stenzek df91c63b31
CDROM: Add PVD/directory entries to file map 2 years ago
Stenzek 35799aba47
CDROM: Add current file to debug window 2 years ago
Stenzek cce7be4723
Misc: Make struct member functions file-local 2 years ago
Stenzek 38bc2bd057
CDROM: Add option to choose emulated mechacon version 2 years ago
Stenzek edae13d9e4
CDROM: Log command parameters 2 years ago
Stenzek ecb082b672 CDROM: Add NEON implementation of GetPeakVolume() 2 years ago
Stenzek 01e505ec8b Common: Add intrin.h 2 years ago
Stenzek b1bb33a566 Common: Move CPU macros to types.h 2 years ago
Stenzek ac0601f408 Common: Drop String, add SmallString 2 years ago
Stenzek adc124c759 Misc: Unreachable code warning fixes 2 years ago
Stenzek 80e3d29ab8 Misc: clang-cl warning clean-up 2 years ago
Stenzek e23c9875d5 Misc: Split core and util Host 2 years ago
Stenzek 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
2 years ago
Stenzek a00a4391ca Common: DynamicHeapArray/FixedHeapArray 2 years ago
Stenzek 9aa6c24620 System: Store game hash as well as serial 3 years ago