Jump to content

[PS2] The Sopranos: Road to Respect .SGP2 models (model/texture bundles?)


Recommended Posts

Posted

Turns out that the 7 Studios .FS archives are supported with Watto's tool, and that there's what appears to be model files within said archives. Is anyone here up to figuring these .SGP2 stuff out? I took them from the poker minigame if it helps. I am not sure if it's just the models themselves or they came with textures embedded based on the file size.

sgp2.7z

Posted

Apparently the .SGP2 files have the textures embedded with the model file as 400KB for a PS2-era character alone is a stretch.

spacer.png

spacer.png

I've also attached samples of what appears to be the Bada Bing and Casino building model files (.EGP2) in case anyone's interested in those as well.

buildings.7z

  • Engineer
Posted (edited)

PS2 models are made by tiny submeshes, I got something with file "p_data_objects_characters_antonini_antonini_sgp.sgp2" but I am not really sure.. Each submesh has a tag in header. For example 1st submesh at 0x15310; "00 80 6D 6C 36 80" 5th byte is the count(36 Hex = 54 Dec). Uvs at 0x15334, same count 54, padding 24. UVs look like something but I don't know about vertices.

antonini.PNG

Edited by roocker666
  • Thanks 1
  • Engineer
Posted
14 hours ago, huckleberrypie said:

What about triangles?

In almost all PS2 games, 3D models don't have faces data(triangles). So you need to autogenerate those. 

Posted
1 hour ago, roocker666 said:

In almost all PS2 games, 3D models don't have faces data(triangles). So you need to autogenerate those. 

You mean we'd have to like connect the dots to form faces then? And what about the UV mapping data?

  • Engineer
Posted
15 hours ago, huckleberrypie said:

Aight mate, wish it was easy tho but oh well.

I tried to modify one of my PS2 scripts(for Noesis), it seems to work but the model has a lot of holes. Maybe I am not reading all meshes(?) I am not sure..

chris.PNG

  • Like 1
Posted
7 minutes ago, roocker666 said:

I tried to modify one of my PS2 scripts(for Noesis), it seems to work but the model has a lot of holes. Maybe I am not reading all meshes(?) I am not sure..

chris.PNG

Well at least progress is progress. 😉 Are the UV maps intact too?

  • Engineer
Posted
2 minutes ago, huckleberrypie said:

Well at least progress is progress. 😉 Are the UV maps intact too?

OK, each mesh has a header and some unknow bytes are there. I chose these as ID "80 00 00 00 40 02 30 12 05 00 00" to collect all meshes but bytes "40 02" changes in some meshes so now I chose only these bytes as ID: 30 12 05 00 00. Now it reads all meshes but we have a new problem, there are a lot of extra faces, lol(this shit always happens with PS2 models). I guess you can delete those manually. Yes, UVs look fine I think. Here is the script if you want to test it

chris_fix.PNG

fmt_the_sopranos_ps2_sgp2.py

  • Like 2
Posted
5 minutes ago, roocker666 said:

OK, each mesh has a header and some unknow bytes are there. I chose these as ID "80 00 00 00 40 02 30 12 05 00 00" to collect all meshes but bytes "40 02" changes in some meshes so now I chose only these bytes as ID: 30 12 05 00 00. Now it reads all meshes but we have a new problem, there are a lot of extra faces, lol(this shit always happens with PS2 models). I guess you can delete those manually. Yes, UVs look fine I think. Here is the script if you want to test it

chris_fix.PNG

fmt_the_sopranos_ps2_sgp2.py 1.46 kB · 0 downloads

Aight I'll see what i can do with this.

Posted

Hello! New here. I just wanna point out that I have ripped the Sopranos models (not all of them) in a-pose from what was a corrupted version of the .iso done in a ROM corrupting program called RTC (Real Time Corruptor) and I've happen to stumble upon a stockpile which did included the models in a-pose. and after so much trial and error I finally got Ninja Ripper to get the models ripped. (Although there were some imperfections like distortions, misaligned UVs) I still have managed to get (some) of them fixed.

 

I tried reaching out to those who were originally gonna tackle those .spg2 models down on a XenTax thread but had no luck with viewing them. I did contact one dude who wanted them through discord, but no reply was given back, unfortunately. And overtime I kinda started to think less and less of this until I've recently found out about this cool stuff you guys are doing. If anything can be done for the best, I'm happy enough to help you guys out : )

  • Like 2
  • Engineer
Posted
18 minutes ago, huckleberrypie said:

Aight I'll see what i can do with this.

And for textures you can use "Console Texture Eplorer" it seems like textures are in the first part of the file. You can search for these bytes to find textures: "65 00 00 00 80" then in the line below you can see width and height and after those zeros is image data(Graphic offset):

sopranos ps2 textures.PNG

  • Like 1
  • Engineer
Posted
12 minutes ago, BabblingBrook said:

Hello! New here...

The only problem are those extra faces, I think we need to use one of those floats(after vertices or Uvs) as a flag to create correct faces. Maybe someone can fix that in the script. I can't do more for now, lol.

  • Like 1
Posted
1 minute ago, roocker666 said:

The only problem are those extra faces, I think we need to use one of those floats(after vertices or Uvs) as a flag to create correct faces. Maybe someone can fix that in the script. I can't do more for now, lol.

It's alright mate, at least we're on the right track with this one lel

  • Like 2
  • Engineer
Posted (edited)

You might search for the skipflag, if any.

There's 20 mesh blocks after 0x43CB8, the last 30120500 block. Mabe they are related?

Or it's possible that another auto creation algo is required for the face indices because

if we're looking at the uvs of a "superfluous" mesh we see good and bad faces very obviously.

Sopranos-sgp2-UVs.png

Furthermore I've split up said sub mesh into two parts and it appears that the 2nd one contains more "good" than "bad" faces:

 

splitMesh.png

 

edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces:

mesh 6 noStrips.png

Edited by shak-otay
  • Like 1
  • Thanks 1
Posted
On 1/26/2025 at 8:03 AM, shak-otay said:

You might search for the skipflag, if any.

There's 20 mesh blocks after 0x43CB8, the last 30120500 block. Mabe they are related?

Or it's possible that another auto creation algo is required for the face indices because

if we're looking at the uvs of a "superfluous" mesh we see good and bad faces very obviously.

Sopranos-sgp2-UVs.png

Furthermore I've split up said sub mesh into two parts and it appears that the 2nd one contains more "good" than "bad" faces:

 

splitMesh.png

 

edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces:

mesh 6 noStrips.png

You mean far less faces? 😛

  • Engineer
Posted
On 1/25/2025 at 6:03 PM, shak-otay said:

edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces:

Interesting

  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...