huckleberrypie Posted January 20 Posted January 20 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
huckleberrypie Posted January 21 Author Posted January 21 Apparently the .SGP2 files have the textures embedded with the model file as 400KB for a PS2-era character alone is a stretch. 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 roocker666 Posted January 21 Engineer Posted January 21 (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. Edited January 21 by roocker666 1
Engineer roocker666 Posted January 21 Engineer Posted January 21 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.
huckleberrypie Posted January 22 Author Posted January 22 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?
Sparagas Posted January 22 Posted January 22 Use this for triangle generation: https://github.com/Sparagas/Triangle-Generator 2
huckleberrypie Posted January 22 Author Posted January 22 6 hours ago, Sparagas said: Use this for triangle generation: https://github.com/Sparagas/Triangle-Generator Aight mate, wish it was easy tho but oh well.
huckleberrypie Posted January 23 Author Posted January 23 Some progress using @Sparagas's tool using the tristrip option. I didn't get the UVs sadly but at least it's slowly coming up together:
Engineer roocker666 Posted January 23 Engineer Posted January 23 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.. 1
huckleberrypie Posted January 23 Author Posted January 23 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.. Well at least progress is progress. 😉 Are the UV maps intact too?
Engineer roocker666 Posted January 23 Engineer Posted January 23 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 fmt_the_sopranos_ps2_sgp2.py 2
huckleberrypie Posted January 23 Author Posted January 23 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 fmt_the_sopranos_ps2_sgp2.py 1.46 kB · 0 downloads Aight I'll see what i can do with this.
BabblingBrook Posted January 23 Posted January 23 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 : ) 2
Engineer roocker666 Posted January 23 Engineer Posted January 23 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): 1
Engineer roocker666 Posted January 23 Engineer Posted January 23 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. 1
huckleberrypie Posted January 23 Author Posted January 23 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 2
huckleberrypie Posted January 24 Author Posted January 24 I know I could get away with fixing the faces manually, but any ideas on a more elegant solution?
Engineer shak-otay Posted January 26 Engineer Posted January 26 (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. Furthermore I've split up said sub mesh into two parts and it appears that the 2nd one contains more "good" than "bad" faces: edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces: Edited January 26 by shak-otay 1 1
huckleberrypie Posted January 27 Author Posted January 27 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. Furthermore I've split up said sub mesh into two parts and it appears that the 2nd one contains more "good" than "bad" faces: edit2: it turned out that strips were not the best choice for the uvs but standard FIs give too less faces: You mean far less faces? 😛
Engineer roocker666 Posted January 27 Engineer Posted January 27 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 1
huckleberrypie Posted January 28 Author Posted January 28 16 hours ago, roocker666 said: Interesting Yea though if I try a different method the faces would spaz out even more.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now