January 20, 20251 yr Localization 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
January 21, 20251 yr Author Localization 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
January 21, 20251 yr Supporter 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, 20251 yr by roocker666
January 21, 20251 yr Supporter 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.
January 22, 20251 yr Author Localization 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?
January 22, 20251 yr Localization Use this for triangle generation: https://github.com/Sparagas/Triangle-Generator
January 22, 20251 yr Author Localization 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.
January 23, 20251 yr Author Localization 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:
January 23, 20251 yr Supporter 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..
January 23, 20251 yr Author Localization 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?
January 23, 20251 yr Supporter 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
January 23, 20251 yr Author Localization 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.
January 23, 20251 yr 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 : )
January 23, 20251 yr Supporter 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):
January 23, 20251 yr Supporter 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.
January 23, 20251 yr Author Localization 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
January 24, 20251 yr Author Localization I know I could get away with fixing the faces manually, but any ideas on a more elegant solution?
January 26, 20251 yr Supporter 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, 20251 yr by shak-otay
January 27, 20251 yr Author Localization 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? 😛
January 27, 20251 yr Supporter 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
January 28, 20251 yr Author Localization 16 hours ago, roocker666 said: Interesting Yea though if I try a different method the faces would spaz out even more.
Create an account or sign in to comment