Commit Graph

301 Commits (5cf2c868740aaa9ffd4beafe7dee43ea9e933ff8)

Author SHA1 Message Date
Stenzek 5cf2c86874
CDROM: More accurate approximation of sectors per track 12 months ago
Stenzek 080807e557
CDROM: Move subchannel replacement from CDImage
This will allow you to use SBI/LSD files with real discs, if your
drive does not support reading subchannels, or has an incorrect
skew.
1 year ago
Stenzek 86a28d5dc0
ImGuiOverlays: Move debug state to auxiliary windows 1 year ago
Stenzek 0c2ab82252
System: Fix no-disc startup in later versions 1 year ago
Stenzek 6dc4fa5c75
CDROM: Physical => SubQ in variables
Better describes what it actually is.
1 year ago
Stenzek 060146a37a
CDROM: Add SubQ Skew option
Fixes corrupted boss sprites in Captain Commando.

One day I'll refactor things to fix this properly.
1 year ago
Stenzek 58dc24cb0d
CDROM: Pack state in struct
Ensures locality, as with other subsystems.
1 year ago
Stenzek 0e4ca9cd93
CDROM: Fix CDDA playback in some obscure edge cases
e.g. Roswell Conspiracies
1 year ago
Stenzek 114effd9a1
CDROM: Simulate backwards 1T jump on short seeks
Fixes hangs in LMA Manager, Nightmare Creatures PAL with Interpreter.
1 year ago
Stenzek e1c876671a
Misc: More iNN => sNN 1 year ago
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.
1 year ago
Stenzek 47a3cd44f3
CDROM: Support reading MODE1 sectors 1 year ago
Stenzek 6d0f92d4fb
dep/fmt: Bump to v11.0.2 1 year ago
Stenzek 7f4e5d55db
Misc: Update copyright headers 1 year ago
Stenzek 2c27b20090
ImGuiManager: Remove unused function 1 year ago
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.
1 year ago
Stenzek 86d4d92753
TimingEvents: Switch to 64-bit counters 1 year ago
Stenzek 304f69e350
CDROM: Fix rare interrupt race when cancelling commands
Fixes hang during loading in Street Fighter Alpha 3.
1 year ago
Stenzek 55d095174f
CDROM: Defer init completion until after seek
Reduces leaky reverb in some games.
1 year ago
Stenzek d1f0669374
SPU: Ensure all samples are generated prior to DMA write 1 year ago
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.
1 year ago
Stenzek 1565a2667d
Misc: More format string fixes 1 year ago
Stenzek 4e922a34a7
Log: Simplify macros 1 year ago
Stenzek b6d019db66
Misc: Replace log printf calls with fmt 1 year 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