cai567890 / pcsx2

Automatically exported from code.google.com/p/pcsx2
1 stars 0 forks source link

Switching ISOs re-applies first game's pnach(es) to second one... #1455

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1) Did the game ever work correctly (i.e. not have this problem) on the
Official PCSX2 build or an earlier version of PCSX2 playground?
(If so, please specify the latest pcsx2-playground or Official revision
that last worked.)
N/A

2) What steps will reproduce the problem?
1. Launch PCSX2.
2. Enable pnaches via "System - Enable Cheats" and/or "System - Enable 
Widescreen Patches".
3. Go to "CDVD - ISO Selector - Game A" (i.e. any game that has cheats and/or 
widescreen patches available for it).
4. Go to "System - Boot CDVD (fast)".
5. Wait for game A to start up.
6. Go to "CDVD - ISO Selector - Game B" (i.e. a different game - doesn't matter 
if cheats/widescreen patches aren't available for it).
7. In the "Confirm ISO image change" window, click the "Reset" button.
8. Depending upon how much game A's pnach hacks interfere with it, game B will 
potentially run in a very unstable fashion.

3) What exactly happens when you experience this issue (listing any console
errors or screen output you receive)?
Upon switching from game A to game B, PCSX2 won't cease repeatedly writing game 
A's pnach hacks into memory until shortly after game B has launched. As a 
result, if any of game A's pnach hacks correspond to addresses used by game B 
to store its own ELF's MIPS instructions, game B will become unstable 
(triggering console errors, crashes, etc).

4) What version of PCSX2 are you using? On what operating system? Plugins?
PCSX2 Version: R5766
OS: Windows 7 Ultimate SP1 (64-bit)
Plugins: Defaults

5) Please provide any additional information below.
- If game A is shut down (via "System - Shutdown") before switching the ISO to 
game B and fast booting it, this issue won't occur. Only the "fast" way of 
switching between games is affected.
- Feel free to use something like Cheat Engine to observe one of the addresses 
from game A's pnach(es). For example, try launching games A and B separately 
with pnaches disabled, and note down the values that are normally stored in 
that address by each game. Then, repeat item 2)'s steps to observe what's 
happening. So long as game B's game engine doesn't overwrite that address in 
live memory, game A's pnach value will remain in that address once game B is 
"fast" switched to.
- If needed, I could provide a really concrete example of this in two specific 
games.

6) Attachments.  *IMPORTANT!*  We have a limited storage quota on
GoogleCode, so please keep attachments to UNDER 200k!  Do not upload
blockdumps!  Do not upload MP3 dumps or screenshots in BMP format.  Try to
use 3rd party image hosts for screenshots when possible.
N/A

Original issue reported on code.google.com by aced1...@gmail.com on 23 Dec 2013 at 8:03

GoogleCodeExporter commented 9 years ago
Thanks for the report. This could be a bit tricky to fix, could be just an 
oversight too though :p

Original comment by ramapcsx2.code on 24 Dec 2013 at 7:24