JoshuqTheHusk Posted March 7 Posted March 7 (edited) (This is an attempt to revive an old topic I made a year or 2 ago) Here are the details I have learnt since then: The game runs on a proprietary engine known as BEARD. Created by the studio behind the game: Twisted Pixel. Apparently used for games such as the 'Splosion Man series. The game's animation and model format comes in the form of RAD Games specific Granny3D/GR2 files. Which do have software that allows you to view and export these files into other formats. But this is where the issue comes in: It seems these GR2 files have no magic header or way of passing the CRC check done by any Granny3D software. Making them seen as unreadable/Corrupt. It may be a case that each game that has GR2 format could have different compression/encryption methods. But I would not know myself as I am not a reverse engineer. There could be a way that these model files could be reverse engineered or parsed to support software that can export them to something like .obj/.dae/.fbx If someone who is familiar with the GR2 format or just a model format reverse engineer in general could help out with this, that would be great I have attached the model files to this post. Have fun I guess. models.zip Edited March 7 by JoshuqTheHusk
JoshuqTheHusk Posted March 12 Author Posted March 12 (edited) On 3/9/2025 at 11:00 PM, 05SpeedMaster said: Do you have the base files? Like granny2.dll and such? I do not think the extracted game files had any form of granny2.dll included. These model files and a bunch of other things such as Lua scripts and textures come from .xpr files stored in the games files alongside compress audio formats (that's I've managed to figure out) and stuff like raw achievement icons and video files used in certain parts of the game. Here's two versions of the .xpr files they are found in: This is one is uncompressed after turning it into an XPR2 file (Which was required to extract the original xpr file properly): https://www.mediafire.com/file/u7tws2je63n8hio/resident_unpack.xpr/file And this one is the original .xpr file: https://www.mediafire.com/file/i74aw6y3nge6e7i/resident.xpr/file (Also I remember you from the last time I posted about this topic. So I bet you'd probably remember this. Oh btw, do you have a discord so we can easily talk about this more? If you wanna add me, name is joshuqthehusk) Edited March 12 by JoshuqTheHusk
05SpeedMaster Posted March 12 Posted March 12 (edited) That did comfirm which version of Granny was used. Granny Standard Exporter, SDK version 2.7.0.25 I can now look for the proper format of the header. I should have the Magic numbers I need. And I don't do Discord. Edited March 12 by 05SpeedMaster 1 1
JoshuqTheHusk Posted March 13 Author Posted March 13 21 hours ago, 05SpeedMaster said: That did comfirm which version of Granny was used. Granny Standard Exporter, SDK version 2.7.0.25 I can now look for the proper format of the header. I should have the Magic numbers I need. And I don't do Discord. Alright good to know 😄
05SpeedMaster Posted March 14 Posted March 14 (edited) Going back through all my notes and my collection of example files? I'm beginning to think the files are in the RAW format. Never paid to much attention to that format as most Games I've messed about with used a standard GR2 or slightly modified version of it. I also think that XPR2 is the data base file used by the RAW files as there's alot of information generally found in a GR2 such as bones, textures, and such. Time to dive deeper into the rabbit hole! Edited March 14 by 05SpeedMaster
JoshuqTheHusk Posted March 15 Author Posted March 15 17 hours ago, 05SpeedMaster said: Going back through all my notes and my collection of example files? I'm beginning to think the files are in the RAW format. Never paid to much attention to that format as most Games I've messed about with used a standard GR2 or slightly modified version of it. I also think that XPR2 is the data base file used by the RAW files as there's alot of information generally found in a GR2 such as bones, textures, and such. Time to dive deeper into the rabbit hole! While I have no clue what's going on exactly with this, it still impresses me all the same. 1 1
05SpeedMaster Posted March 15 Posted March 15 I think I got it figured out. I'm going to write a Script for 010 to grab the info to output an obj file. Had me a bit confused until I remembered the Xbox 360 uses BigEndian. Once I switched to that things looked more like a standard GR2 file struture for a mesh. I'm testing on the shadowcube.gr2 since it's the smallest file. I don't have to write the structure as I've had that since 2010 or so.
JoshuqTheHusk Posted March 16 Author Posted March 16 On 3/15/2025 at 3:46 PM, 05SpeedMaster said: I think I got it figured out. I'm going to write a Script for 010 to grab the info to output an obj file. Had me a bit confused until I remembered the Xbox 360 uses BigEndian. Once I switched to that things looked more like a standard GR2 file struture for a mesh. I'm testing on the shadowcube.gr2 since it's the smallest file. I don't have to write the structure as I've had that since 2010 or so. Cool! 2 questions: Does the files come with the textures as well? Is it possible to also obtain the rigs too. Don't really know much about this stuff so idk how hard it would be to do that.
05SpeedMaster Posted March 17 Posted March 17 (edited) What did you use to decompress the XPR file? I have the ISO now so would like to examine more files. As to Skeletons and such like animations. All the information is contained in the files just as they are in standard GR2 files. So someone better then I am at writting code could extract everything. What happens when converted to the RAW format is that the file information is stripped out and you get just the information in a flat format. No pointers to where things are. They just cram everything in a pile but it's all in the same order as a standard GR2. Edited March 17 by 05SpeedMaster
JoshuqTheHusk Posted March 17 Author Posted March 17 (edited) 20 hours ago, 05SpeedMaster said: What did you use to decompress the XPR file? I have the ISO now so would like to examine more files. As to Skeletons and such like animations. All the information is contained in the files just as they are in standard GR2 files. So someone better then I am at writting code could extract everything. What happens when converted to the RAW format is that the file information is stripped out and you get just the information in a flat format. No pointers to where things are. They just cram everything in a pile but it's all in the same order as a standard GR2. Not exactly the best way to show how we did it but yeah here. Sry if it's a bit messy. EDIT: Updated the images to be a bit more clear. Edited March 18 by JoshuqTheHusk
05SpeedMaster Posted March 18 Posted March 18 What did you use on the encrypted xpr to get the xpr2 version?
05SpeedMaster Posted Saturday at 03:43 PM Posted Saturday at 03:43 PM Nearly finished figureing out the RAW start index. It's mostly pointers to some information. Kind of like a stock GR2 file. You do have to read the files in Big Endian. Some areas I'm not sure of yet but it appears to layout the exact order of included information like Mesh info and such.
05SpeedMaster Posted 18 hours ago Posted 18 hours ago I have the Parent Index, Transform and InverseWorld Transform figured out. Also the OBBmin and OBBMax along with InitialPlacement settings. It's getting narrowed down bit by bit. Or should I say Byte by Byte?
05SpeedMaster Posted 13 hours ago Posted 13 hours ago (edited) One thing I do is copy information from the Stringcube. GR2 to a stock GR2 file. Then look at that in Granny Viewer. Most will get a CRC error and not open the file. I have a Viewer that ignores the CRC so it's not a problem. I also can recalculate the CRC for files like that if need be. One must make sure the source file and destination file are the same Endian! Edited 13 hours ago by 05SpeedMaster
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