mirror of
https://github.com/MiSTer-devel/PSX_MiSTer.git
synced 2026-04-19 03:04:52 +00:00
* Release 20251204 * Update sys * Implement real Mechacon backward-seek behavior (skip only when ≥2 sectors behind) Fix for Dave Mirra / Trasher games https://github.com/MiSTer-devel/PSX_MiSTer/issues/169 * keep track of savestate slot status and allow load only for valid states/slots * Add optional Backward Seek Hack (OSD toggle) - fix Dave Mirra/Thrasher games Fix for Dave Mirra/Thrasher is generally safe for most titles (tested over 200+ games ), but known to cause issues in some Army Men games. It must be some edge case that cannot tolerate this change. Anyway, the problem with Dave Mirra is also like that :) Kept as an unsafe optional setting until a proper fix is available. This is the best solution for now, and it would be a shame to lose the opportunity to comfortably play Dave Mirra and Trasher games * Add optional Backward Seek Hack (OSD toggle) - fix Dave Mirra/Thrasher games Fix for Dave Mirra/Thrasher is generally safe for most titles (tested over 200+ games ), but known to cause issues in some Army Men games. It must be some edge case that cannot tolerate this change. Anyway, the problem with Dave Mirra is also like that :) Kept as an unsafe optional setting until a proper fix is available. This is the best solution for now, and it would be a shame to lose the opportunity to comfortably play Dave Mirra and Trasher games * Update README.md * Update PSX.sv * CD: Fix INT1 handling CD: Fix INT1 vs INT3 interrupt ordering Some games rely on very strict CDROM interrupt ordering and timing: Gokujou Parodius Da! Deluxe Pack and Crime Crackers require INT1 to be visible immediately after a sector becomes readable. Jikkyō Powerful Pro Yakyū ’95 relies on INT3 responses being fully processed before INT1, otherwise FIFO responses are read in the wrong order, causing music stutter. This change refines INT1 delivery logic. INT1 is forced immediately when no conflicting INT3 is active (required by Parodius / Crime Crackers). INT1 is deferred (queued) when INT3 is currently active, preventing response/FIFO ordering issues (required by Jikkyō ’95). Any active non-INT1 IRQ is preserved using the existing pendingDriveIRQ mechanism. * Update PSX.sv * Update README.md * CD: fix DMA read from empty sector buffer - The previous code could start a CD-ROM DMA transfer even when sectorBufferSizes(readPtr) was zero, and it cleared the buffer size flag before copySize was latched, leading to reads from empty buffers and propagation of invalid data. - The new logic only starts DMA when a valid sector is present and latches the sector size before clearing the ready flag, eliminating the race condition. * CD: Fix PAUSE timing to match psx-spx and DuckStation * CD: prevent DMA from empty sector buffers while allowing RAW reads fixes some regressions (Gran Turismo 2) * rework INT1 handling fix regression Burger Burger * add cpu exception breakpoint functionality * CD: correct PAUSE behavior during seek and early read states (fix Parasite Eve II) Parasite Eve II issues a PAUSE command while a seek is still in progress and expects the pending read to be cancelled. The previous logic rejected PAUSE too broadly, causing the read to execute after the seek and hang the loading screen. This change accepts PAUSE during SEEK and stops the pending read, restoring correct PE2 behavior. * reverting changes for “pause swap” * CD: Correct Pause handling during SEEK fix Vigilante 8: 2nd Offense black screen https://github.com/MiSTer-devel/PSX_MiSTer/issues/296 * unnecessary backward seek hack removed The issue wasn't caused by backward seek itself, but by interrupt ordering. There was a race condition between INT1 (Data Ready) and INT3. Fixed with commitbe26ea591e* unnecessary backward seek hack removed The issue wasn't caused by backward seek itself, but by interrupt ordering. There was a race condition between INT1 (Data Ready) and INT3. Fixed with commitbe26ea591e* unnecessary backward seek hack removed The issue wasn't caused by backward seek itself, but by interrupt ordering. There was a race condition between INT1 (Data Ready) and INT3. Fixed with commitbe26ea591e* Update README.md unnecessary backward seek hack removed * unused warning bit removed * Update README.md * Update sys_top.sdc * Delete PSX_20251204.rbf * Revert "Update sys_top.sdc" This reverts commit2058c5ef45. --------- Co-authored-by: RobertPeip <53250236+RobertPeip@users.noreply.github.com> Co-authored-by: jackyangantelope <jack@retroremake.co> Co-authored-by: kuba-j <jhajda@poczta.fm> Co-authored-by: Robert <-> Co-authored-by: dtungsten <github@draketungsten.net>