12-05-2018, 12:34 AM
(This post was last modified: 12-05-2018, 12:44 AM by alec100_94.)
Hi, I recently bought one of those fancy 21:9 monitors (3440x1400), and have been experimenting with some PCSX2 stuff on it. There are a handful of 21:9 patches already out there for some popular games like Dark Cloud, God of War, and Metal Gear Solid 3, and they seem to work great, but I am trying to figure out how to convert these patches myself. I am a programmer, so not afraid of some technical detail.
For example the patch for Dark Cloud is shown below
Not entirely sure how the original creator got from a to b here. I've read up on how to create the patch and found that the patch is essentially the (FoV value)*(0.75 from (4/3)/(16/9)), so i'm guessing for 21:9 it would be (FoV value)*(0.56 from (4/3)/(21/9)) but not really sure how to obtain that value (or it's address) from the widescreen patch or how this correlates to the given patch format. I am comfortable with having to use cheat engine and doing some hex math, just looking for a nudge in the right direction. I've found a few things roughly describing parts of this process here and there but not a full explanation of how to achieve this.
Thanks for the help.
For example the patch for Dark Cloud is shown below
Code:
gametitle=Dark Cloud (SCUS-97111)
comment=Widescreen hack by nemesis2000 (pnach by nemesis2000)
// 16:9 Widescreen
//patch=1,EE,0012df78,word,3f023f40
// 21:9 Widescreen (by RhinoKneel)
patch=1,EE,0012df78,word,3f023f0f
Not entirely sure how the original creator got from a to b here. I've read up on how to create the patch and found that the patch is essentially the (FoV value)*(0.75 from (4/3)/(16/9)), so i'm guessing for 21:9 it would be (FoV value)*(0.56 from (4/3)/(21/9)) but not really sure how to obtain that value (or it's address) from the widescreen patch or how this correlates to the given patch format. I am comfortable with having to use cheat engine and doing some hex math, just looking for a nudge in the right direction. I've found a few things roughly describing parts of this process here and there but not a full explanation of how to achieve this.
Thanks for the help.