(04-06-2016, 11:47 PM)UltraTaber Wrote: [ -> ]Some thoughts about Tony Hawk's Pro Skater games. It was previously posted that someone found vertical aspect value, but not horizontal. Recently I messed with PC port of THPS2 and found the function that actually sets both values. it generally looks like:
Code:
x = ResX * 3;
y = ResY * 4;
if (x <= y)
{
AspectX = 0x1000;
AspectY = <calculates value depending on resolution>;
}
else
{
AspectX = <calculates value depending on resolution>;
AspectY = 0x1000;
}
It seems like the code didnt really change much between versions, so what I can tell you for sure is that AspectX is definitely not 0x1000.
That's assuming they used a code based on resolution in the console version. Because the resolution during gameplay will be fixed on console, they could've set it to any static value.
What is the actual code in the <> ? If they used something similar, it should be possible to calculate the value based on the PS1 version resolution.
(04-07-2016, 11:44 AM)FlatOut Wrote: [ -> ]Because the resolution during gameplay will be fixed on console...
Not importantly, atleast 70% of the games on PS1 do a resolution switch after initial startup multiple times and even when they don't they do somekind of vmode trickery that potentially would be incompatible with the above logic.
Nah, the game is locked at 512x240. They have a method to draw their viewports anywhere on the screen. There is a set of structures that defines different viewports in the game (single player, splitscreen left/right/top/bottom, etc.) You can find those in THPS2 NTSC exe at the offset 0x000AAE4C. Basically it works with viewport resolution, not selected video mode.
Code:
0x000AAE4C 00 02; F0 00; 00 00; 00 00; 0A 00; 30 75; 00 00; 00 00; 00 00; 00 00;
And here's a matching line, found in beta version of PC port.
Code:
SViewport ApocalypseViewport = {512,SCREENHEIGHT,0,0,10,30000}; // xR,yB,xL,yT,Hither,Yon,TanHalf
Here's the math for the brackets.
Code:
1 : AspectY = (ResY * 4 * 4096) / (ResX * 3);
2 : AspectX = (ResX * 3 * 4096) / (ResY * 4);
So for 512x240 it gives us 0x1999, which is the exact value you can find right after the 0x1000. But both of them stretch the image vertically. On PC it was enough to replace 0x1000.
I would like to make a request for Ninja Shadow of Darkness PAL SLES 00758. Widescreen mode would be very helpful in this game.
(04-25-2016, 05:42 PM)Shenmue_Trilogy Wrote: [ -> ]I would like to make a request for Ninja Shadow of Darkness PAL SLES 00758. Widescreen mode would be very helpful in this game.
Tried that game like a month ago but it didn't work.
Kula World SCES_01000 800A2E70 0C00
Kula Quest SCPS_10064 8009F4D8 0C00
Roll Away SLUS_00724 800A33D8 0C00
code :
Roll Away
TEXT:00020238 li $v0, 0x1000
TEXT:0002023C sw $v0, dword_A33D8
Kula Quest
TEXT:00025700 li $v0, 0x1000
TEXT:00025704 sw $v0, dword_8009F4D8
Kula World
TEXT:00020B10 li $v0, 0x1000
TEXT:00020B14 sw $zero, 0x28D8($gp)
TEXT:00020B18 sw $v0, off_800A2E70
(05-08-2016, 10:13 PM)blackoff Wrote: [ -> ]Kula World SCES_01000 800A2E70 0C00
Kula Quest SCPS_10064 8009F4D8 0C00
Roll Away SLUS_00724 800A33D8 0C00
code :
Roll Away
TEXT:00020238 li $v0, 0x1000
TEXT:0002023C sw $v0, dword_A33D8
Kula Quest
TEXT:00025700 li $v0, 0x1000
TEXT:00025704 sw $v0, dword_8009F4D8
Kula World
TEXT:00020B10 li $v0, 0x1000
TEXT:00020B14 sw $zero, 0x28D8($gp)
TEXT:00020B18 sw $v0, off_800A2E70
Nice! Which disassembler did you use?
Thanx, now this is making things more serious. I was unaware of this IDA Pro plugin, even though I gave up on the "proper PS1 disassembler" search before this was released.
(05-08-2016, 10:13 PM)blackoff Wrote: [ -> ]Kula World SCES_01000 800A2E70 0C00
Kula Quest SCPS_10064 8009F4D8 0C00
Roll Away SLUS_00724 800A33D8 0C00
code :
Roll Away
TEXT:00020238 li $v0, 0x1000
TEXT:0002023C sw $v0, dword_A33D8
Kula Quest
TEXT:00025700 li $v0, 0x1000
TEXT:00025704 sw $v0, dword_8009F4D8
Kula World
TEXT:00020B10 li $v0, 0x1000
TEXT:00020B14 sw $zero, 0x28D8($gp)
TEXT:00020B18 sw $v0, off_800A2E70
Great, i added them to the archive, thank you very much.
Best regards.