Aleron Ives wrote:
As I said on ASG, one of the patches is being written to somewhere in memory that isn't the game binary, so I'm not sure the boot disc can handle this. The patching program modifies the game's executable before allowing execution to occur, so the second widescreen patch would get overwritten once the game started to write data to that address. We probably need to know the offset in the game binary that writes to the address Esppiral patched, so that we can modify the game to write the correct value for us.
Actually... No, the patching program in its current form does not modify the game binary before it is run, since that wouldn't work for PSOv2.
It actually tries to modify the values in RAM every time the GD-ROM is accessed until it succeeds (read: until it successfully patches the first 4 bytes of the server address) -- then it short circuits unless that value is changed back. If one of the values is actually in RAM that is ever modified later on, then the current way the patching program works would not be applicable. It might be as simple as always running the set of patches when the GD-ROM is accessed, or it might have to be something more convoluted (like hooking the V-blank interrupt and doing it every frame). Hooking the V-blank handler would be possible, but not something I'd really want to do (it's much more likely that I'd do something to break the game there, plus, I'd have to figure out where the game stores the interrupt table and all that other stuff)...
Either way, it's something I can look at later (I'm doubtful I'll have time to do it before sometime in April though).
Also, that only covers V2 US/PAL and V1 US. I'd really rather if I was adding them that they could be added for all versions of the game at the same time (so, we'd need at least V1 PAL/Japan and V2 Japan... and the NTE
).I'm joking about the NTE... Although that would be nice too.