..:: PCSX2 Forums ::..

Full Version: PSOne Widescreen Patches
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Sounds great. thanks Smile
(01-06-2016, 11:28 PM)Shenmue_Trilogy Wrote: [ -> ]ok that sucks Sad.
...but why it is so hard to find PS1 widescreen codes in general compare to PS2 games? It's really annoying me Laugh

Possibly the core reason is because PS1 has no floating point precission which is what all console widescreen hack codes on the net rely on (PS2, XBOX, DC...).
Since it can't store a value as a floating point and it's calculation math method does not allow it to be stored as an integer, the values tend to use a different philosophy on how to store a floating point value on a device that is completely incompatible with floating point values. I tried to understand what most devs were trying to do with values the "1000" and "1999" and what they have in common. I covered my theory (that I bet reality is not far from it) in this post: http://forums.pcsx2.net/Thread-PSOne-Wid...#pid491852

Long story short, they found a family of integers that tend to have the smallest error to their respective integer representations when calculated.

I'm glad that somebody made the question, it was THAT question that made me struggle for days to understand why it is hard and why "1000" and "1999" and what's the secret behind them. I bet there are more values and there's a high possibility other consoles with no floating point support do exactly the same, it's somekind of slopy ancient computing trick that I'm missing. 

PS: Yeah calling PS1 ancient makes me feel old too.
It's likely using an encoding scheme. It's VERY possible to represent floats on a CPU that has no FPU. You just encode it. The simplest way would be with a shift left. Say you wanted to store decimal numbers with two decimal places, you could just SHL all numbers by two. This is more complicated though. It's using some kind of encoding logic. One way for instance would be to use say 30 bits for the number itself, and maybe 2 bits for decimal point placement. The rightmost 30 bits represent the number itself, the left two bits represent the placement of the point. You could have up to 4 digits after the point that way for instance. However the more digits after you have, the smaller the number can be overall. However a 30 bit number can already contain up to 1073741823. If it had 4 digits of after point precision it'd be 107374.1823 Which is still a usefully large number for game cases.

Ofc, this is NOT what PSone is doing, but it's an example of ways it can be done. I imagine if it needs to represent floats it does something along those lines. With more or less bits for the point. Possibly a sign bit as well.
Yeah I know right?! I can think of a thousand ways to do the same thing it's just that I try to understand what PS1 does and the mystery stands behind the relation of the values 1000 and 1999.
(01-06-2016, 11:57 PM)FlatOut Wrote: [ -> ]I found several widescreen values for PS games like MGS and Tomb Raider, they just don't hold up for the entire game or even change as you move(other camera?). I'll haven't tried improving any after Christmas though, maybe I can finish one of 'em this weekend.


Anything for MGS would be cool Smile
Some patches which i created:

Medievil (PAL-Spain)                                                 Twisted Metal: World Tour (PAL)

[attachment=58666] [attachment=58667]                  [attachment=58668] [attachment=58669]

Twisted Metal: Small Brawl (NTSC-U)                           Um Jammer Lammy (PAL)

[attachment=58670] [attachment=58671]                  [attachment=58672] [attachment=58673]

Warhawk (PAL & NTSC-U)

[attachment=58674] [attachment=58675]

Best regards.
Medievil and Um Jammer Lammy? Awesome, thanks for these Smile
@El_Patas

Great work. Thanks Smile
You are welcome, thank you Smile 

The bad about Medievil is that not works with the POPS PS2 emu which i like, i have also the patch for
Medievil 2, but is more worse, in the ePSXe emulator only works using a savestate, loading the
game from the start with the code freezes the emu, then is why i don't know if put it in the archive.

Maybe could be possible in the future search another better values for this games, i'm curious about
if this codes could work with the real PSX.

Best regards.
Quote:Maybe could be possible in the future search another better values for this games, i'm curious about
if this codes could work with the real PSX.

I will try the medi evil code with psx hardware. Could you also please post medi evil 2 code so i can try and see if the game freezes also on original hardware.