08-26-2012, 03:09 PM
I have only recently started playing with PCSX2 in earnest, after finally acquiring a PC with the necessary specs for good PS2 emulation results. And it is only a few days ago that I became aware of the widescreen patches available here. I have tried to read up on the subject as far as possible in so little time, but I may have missed some things of importance, causing part of my submission here to be in error. If so, please don't hesitate to tell me so, so that I can redirect my efforts accordingly.
One thing that struck me as surprising is that many of the posts I've read so far refer to elf-patching as being somehow in conflict with the patching of variables via pnach files, and also with the automatic game fixes applied by the emulator (or by its plugins). The conflict admittedly exists for elf-patching done by modifying a game ISO, since that will modify the CRC used to identify a game, for application of both pnach files and automatic game fixes. But there are other methods of elf-patching which do not cause such CRC failures.
One such alternate way of patching the elf files is to use a normal cheat engine to patch the elf in its runtime RAM addresses in PS2 EE RAM. This is in fact a rather common way to implement game cheats of many kinds. So this method works fine even on a physical console.
A related way of elf-patching without using any separate cheat engine, is to instead use the pnach patch features of PCSX2 to do the elf patching. This works fine and without any CRC conflicts, simply because the pnach file is never applied until after the CRC calculation is done, which only happens once per game run (or so I think anyway).
I suppose additional master code or conditional code usage may be needed for cases of multi-elf games (as different elfs may re-use the same addresses), but for the cases I've tried so far I've had no such problems.
As 'proof-of-concept' I'm attaching a few elf-patching pnach files I've made and used without problems. Note that these are all based on information gathered from older posts in this thread, so I claim no credit for discovering what to patch or the values to use. All I've done is to re-implement the elf patching into pnach form.
0643F90C.pnach == Rogue Galaxy (US) == SCUS_974.90[attachment=39900]
CBB4B383.pnach == Rogue Galaxy (EU) == SCES_545.52[attachment=39901]
3866CA7E.pnach == FFX International (Ko) == SLPM_675.13[attachment=39902]
Btw:
I did try the FFX patch through normal cheat engines too, on a physical PS2, and this worked fine with both SM3coder and CodeBreaker v10 to do the patching. But just as I had suspected beforehand, the result was not really satisfactory, as we can not change the internal rendering resolution of a game on a physical console, like we can change the internal 3D rendering resolution in PCSX2 GPU plugins. So rendering a wider 3D area into the same physical PS2 resolution inevitably means that each object is rendered with fewer pixels, resulting in a rougher appearance, just as if we had just lowered the resolution of the game.
So this kind of widescreen patch is really worthwhile only on a PC, where we can raise the internal rendering resolutions to match (or exceed) the increased width to be rendered.
Best regards: dlanor
One thing that struck me as surprising is that many of the posts I've read so far refer to elf-patching as being somehow in conflict with the patching of variables via pnach files, and also with the automatic game fixes applied by the emulator (or by its plugins). The conflict admittedly exists for elf-patching done by modifying a game ISO, since that will modify the CRC used to identify a game, for application of both pnach files and automatic game fixes. But there are other methods of elf-patching which do not cause such CRC failures.
One such alternate way of patching the elf files is to use a normal cheat engine to patch the elf in its runtime RAM addresses in PS2 EE RAM. This is in fact a rather common way to implement game cheats of many kinds. So this method works fine even on a physical console.
A related way of elf-patching without using any separate cheat engine, is to instead use the pnach patch features of PCSX2 to do the elf patching. This works fine and without any CRC conflicts, simply because the pnach file is never applied until after the CRC calculation is done, which only happens once per game run (or so I think anyway).
I suppose additional master code or conditional code usage may be needed for cases of multi-elf games (as different elfs may re-use the same addresses), but for the cases I've tried so far I've had no such problems.
As 'proof-of-concept' I'm attaching a few elf-patching pnach files I've made and used without problems. Note that these are all based on information gathered from older posts in this thread, so I claim no credit for discovering what to patch or the values to use. All I've done is to re-implement the elf patching into pnach form.
0643F90C.pnach == Rogue Galaxy (US) == SCUS_974.90[attachment=39900]
CBB4B383.pnach == Rogue Galaxy (EU) == SCES_545.52[attachment=39901]
3866CA7E.pnach == FFX International (Ko) == SLPM_675.13[attachment=39902]
Btw:
I did try the FFX patch through normal cheat engines too, on a physical PS2, and this worked fine with both SM3coder and CodeBreaker v10 to do the patching. But just as I had suspected beforehand, the result was not really satisfactory, as we can not change the internal rendering resolution of a game on a physical console, like we can change the internal 3D rendering resolution in PCSX2 GPU plugins. So rendering a wider 3D area into the same physical PS2 resolution inevitably means that each object is rendered with fewer pixels, resulting in a rougher appearance, just as if we had just lowered the resolution of the game.
So this kind of widescreen patch is really worthwhile only on a PC, where we can raise the internal rendering resolutions to match (or exceed) the increased width to be rendered.
Best regards: dlanor