On earlier versions (0.9.8) the KOSMOS patches were used to fix an
emulator crash on bootup, the patches are no longer needed and cause an
emulator crash on OpenGL HW before a race begins.
The intro video patch skip also isn't needed anymore since intro video
is emulated properly. So far the only issue I spotted on earlier
versions such as 0.9.8 was fmv screen shaking.
Bug Report:
https://forums.pcsx2.net/Thread-Regression-Bug-Report-Emulator-crash-with-game-Dakar-2?pid=602842
This fixes timing issues in Dynasty Warriors 3 Xtreme Legends
(fake save corruption), Jak II (random speedup issues) and Shadow of
Rome (FMV audio issues).
Also update the comments since a lot of them refer to past revisions of
the code.
Partially replace the Linux ini code so that it:
- works on both Windows and Linux
- is backwards compatible with older GSdx inis
- properly handles UTF-8 ini pathnames
Fix an issue with GSdx on Windows not being able to handle non-ASCII
ini pathnames.
Add Jak 1 Jap versions:PAPX-90222, PAPX-90223
Add Jak 1 Korean version: SCPS-56003
Add Jak 2 Jap version:PAPX-90516
Add Jak 2 demo EU version: SCED-51700
Add Jak 3 demo EU version: SCED-52952
Adjust/ correct some of the names for Jak games to better fit their
region name and wiki entries.
* cdvd: Fix off-by-one end of file checks
* cdvd: Fix loading for games that attempt to read non-existent sectors
Some games will hang when attempting to read non-existent sectors.
Just do nothing when it occurs instead of erroring out.
* cdvdgigaherz: Fix loading for games that attempt to read non-existent sectors
Some games will hang when attempting to read non-existent sectors.
Just do nothing when it occurs instead of erroring out.
* cdvd: Don't write non-existent sectors to blockdump
This commit add some explaination about what the EETiming hack does in "Enter the Matrix" and add a missing serial with corresponding fixes to it.
Tested by atomic83github
This fixes a semi-consistent regression introduced by #3056, where on_process_exit would execute before other destructors relying on pthreads.
Now on_process_init has been moved to an earlier section of static initializers, ensuring it will be initialized first. Previously, this initializer was placed in the same section as any other initializer, making their order of execution non-deterministic across compilations - for example, I was unable to reproduce this issue as soon as I forced pthreads4w.c to recompile last!
Fixes eyes rendering in Jak games both ingame and in cutscenes.
Previous method yielded no eyes in Jak 2/3/X cutscenes.
- Generalized offset search logic with caching system (works for BW > 1
and any PSM, limited to PSMCT32 for now)
- CRC Flags mechanism for default behavior enabling in Jak games
Fixes eyes blinking in Jak games with tex in rt search
enabled.
- Target TEX0 in Source is Source TEX0 if the Source is
not build from Target, otherwise it is the Target TEX0,
allowing improved Source invalidation
This commit add a FPU negative div hack to Crazy Frog Racer 2 to fix black fade effects and some overlays texts in the menus.
It also add EETimingHack on some missing Alone in the Dark revisions which fixes game hanging at boot.
Tested by Forum member:
- LoStraniero1991
This PR modifies a third party module - I realize normally those should be fixed upstream, but I really doubt pthreads4w would a) consider it a valid bug and b) fix it. To make all my changes easily visible, I wrap them all in #if PCSX2_FIX.
This PR fixes a process exit routine in pthreads. This third party module exploits CRT initialization order to inject their initializer/deinitializer earlier than the others by putting their functions in .CRT$XCU and .CRT$XPU pseudo regions. The problem comes when a module gets build with dynamic CRT (/MD or /MDd), like most of PCSX2 plugins, it doesn't actually use .CRT$XPx regions as terminators, and instead lets dynamic CRT handle them.
This PR corrects this issue by registering the terminator via atexit, so it works with both static and dynamic CRT. This resolves an issue where SPU2-X plugin (and potentially more) leaks TLS handles when unloaded.
Setting the toggle variable is now at the vsync point. FMV toggle should still work as usual, but the F9 toggle should have to wait the full period of around 32 frames. This seems short enough while also depends on how fast those frames can rendered, avoiding having to set a timer in ms.