Prince of Persia - The Two Thrones - Widescreen patch
Posted: 16 Mar 2008, 00:36
Hello,
although PoP3 is listed as widescreen capable, alas it is not. It's true that it supports 16:9 widescreen, but not a 16:10 aspect ratio which most computer monitors have. A modification similar to what UniWS does is not working, so I created my own widescreen fix:
:arrow: http://rapidshare.com/files/98216875/PoP_3_-_1280x800_widescreen_fix.exe.html
It works with the Reloaded NO-CD Version only and will enable a resolution of 1280x800 without aspect ratio distortion.
Have fun!
Regards, ZenJu
#########################################
For those interested in some technical details, here they are:
The resulution of PoP3 depends on two integer values in memory which are evaluated at the start of the game only:
width: address in memory [00a01ef4] + D0
height: address in memory [00a01ef4] + D4
Both values have no fixed location, but can be found via the pointers above.
What this patch does:
-----------------------------------------
Change default resolution here (Used if no DefaultProfile.DAT is available)
Disable 004173E7 and 004173F0 (NOP) (Resolution change if default resolution is invalid)
In case (and only in this case) DefaultProfile.DAT is available also the following code has
to be adapted (Resolution change):
This is accomplished by code injection: Additional check: only if EDI eq [00a01ef4] + D0 changes should be made:
Dec ECX by 2 and inc ESI, EDI by 8. => width and height are not changed.
although PoP3 is listed as widescreen capable, alas it is not. It's true that it supports 16:9 widescreen, but not a 16:10 aspect ratio which most computer monitors have. A modification similar to what UniWS does is not working, so I created my own widescreen fix:
:arrow: http://rapidshare.com/files/98216875/PoP_3_-_1280x800_widescreen_fix.exe.html
It works with the Reloaded NO-CD Version only and will enable a resolution of 1280x800 without aspect ratio distortion.
Have fun!
Regards, ZenJu
#########################################
For those interested in some technical details, here they are:
The resulution of PoP3 depends on two integer values in memory which are evaluated at the start of the game only:
width: address in memory [00a01ef4] + D0
height: address in memory [00a01ef4] + D4
Both values have no fixed location, but can be found via the pointers above.
What this patch does:
-----------------------------------------
Change default resolution here (Used if no DefaultProfile.DAT is available)
Code: Select all
004165F0 - c7 81 d0 00 00 00 20 03 00 00 - mov [ecx+000000d0],00000320
004165FA - c7 81 d4 00 00 00 58 02 00 00 - mov [ecx+000000d4],00000258Disable 004173E7 and 004173F0 (NOP) (Resolution change if default resolution is invalid)
Code: Select all
004173E7 - 89 8e d0 00 00 00 - mov [esi+000000d0],ecx
004173ED - 8b 50 04 - mov edx,[eax+04]
004173F0 - 89 96 d4 00 00 00 - mov [esi+000000d4],edxIn case (and only in this case) DefaultProfile.DAT is available also the following code has
to be adapted (Resolution change):
Code: Select all
004183CF - 8d 74 24 10 - lea esi,[esp+10]
004183D3 - f3 a5 - repe movsd "EDI = [00a01ef4] + D0, ECX = 26 in the relevant case
004183D5 - 8b cd - mov ecx,ebpThis is accomplished by code injection: Additional check: only if EDI eq [00a01ef4] + D0 changes should be made:
Dec ECX by 2 and inc ESI, EDI by 8. => width and height are not changed.