#Xbox 360: The Gunstringer
162 messages ยท Page 1 of 1 (latest)
Actually, @ruby ember do you think you can figure this out?
Tried messing with the xbox sdk and found an unbundler. Doesn't seem to do anything though
ive found two programs now that extract this "XPR2" file from what you posted earlier. however i get stuck here, nothing ive found can extract from this thing
https://github.com/Rocky5/XBMC-Emustation/blob/master/Other/Tools/XPR Express.zip was one of the programs that could, for future reference
I tried XPR Express already, got nothing from it.
Yeah if you're wondering, this is what I was trying to figure out before the .pod files
I would say try the xbox 360 SDK software, you may get a lead there.
i posted it without clicking the extract button thinking it would work ๐คฆโโ๏ธ
oh well. the other one was this quickbms script (should actually output)
if i had a nickel for every time file extraction was solved by trimming fat in a hex editor, i'd have two nickels. which isnt a lot but it's weird it happened twice, right
step 2: enter a hex editor and cut so that there is a 12 bit "main" header and a bunch of 16 bit "file" headers. for this xpr2 there was a bunch of 0 data between both so i couldn't extract the files
^ is the file i cut, i cut everything between highlighted and non-highlighted (edit: highlighted 3 more 0s at the end than i was supposed to)
step 3, run xpr2.exe on the edited xpr. this is the output from the xpr above
Ok I'm currently out right now so I have to wait till I get back to test this out.
Ok but since you managed to extract the files, can you tell me what's in there? Need to make sure I'm actually looking at the right files lol.
right now im just peering at the lua scripting they left in there (the comments are intact)
looks like there is also some textures
a bunch of .ib "ibuf" files. very small
sound archive in .xwb format
a bunch of corresponding .vb "vbuf" files which im assuming is vertex buffer
terrain in a .gr2 but doesnt have header magic so idk what it really is
and then lightmaps + level data in a database
Interesting, guessing the models will probably be in the bigger files or something else.
Once I get back I'll look some of the others and see if I can find any bigger files that might contain the models.
After I'm done with this, this would've been the second game that I have ripped models from that literally no one else has. With that other game being Harmoknight on 3DS
there's no tcrf article on this game but there's a bunch of unused commands in these files. probably some interesting unused stuff as well
By the looks of it, this may be for the first cutscene, the string bar stuff is for pulling the Gunstringer out of his grave. I'm guessing the house lights is the spotlight and pointlight used for after pulling the Gunstringer out of his grave and starts the monologue and titlecard as he crawls further into the stage to transition into the regular environment and tutorial sequence.
Hey what's that hex editor?
thats HxD https://mh-nexus.de/en/hxd/ although you can use any one you want. almost all of them work the same
Ok I'm kinda stupid I never hex edited anything before so you'll have to guide me on this
Ok got this open, what do I do exactly?
that's a compressed xpr
you need to use the quickbms script above to convert it to xpr2
ok so from here you want to select all the 00 from 0C on the first row all the way until the ...@TX2D
and then delete that data
This good?
yep, that looks right
now it should work with the XPR2 exe
you'll have to use the command prompt to run the executable
Trying to figure this out
Ok so do I go into the folder it's in, right click and then open in terminal?
if you can open the folder in terminal directly then sure
ive never seen an option for that >.>
what i normally do is open a new command prompt
then type "cd "
and drag from this part of the explorer into the terminal so i can get to the folder i need to be in
Ok it this meant to be the command?
yep
now you mention it it is strange that the archive from earlier is much larger than the output from the program
yeah that don't seem right
but when i look at the strings referring to files in the hex editor it looks like everything was extracted?
strange
yeah this is definitely wrong, guess our job ain't done yet lol
how did you get the .pod of the main character before?
was that in a separate archive?
that comes from another game entirely
o
Like I said in that chat it was a spinoff of the Gunstringer that was on the windows 8 store
so yeah this is another beast entirely
I would have used Ninja Ripper and emulated it to get the models I wanted, but I cannot get past the first screen due to no kinect.
I feel like it has to do with the XPR2 program getting something wrong during the process
yea there's definetly model data in there the program isn't getting
Ok At least we're on the right track that the models are hiding in these
Ok I think I found something. In resident.xpr Is the gunstringer's model (But textures are still the 1kb)
Ok I sound this software but seems it doesn't wanna open.
according to this post on xentax granny engine models can have custom variations on the base format
hopefully thats not the reason its not loading but
even then we still need the textures
To be fair I had something similar with Harmoknight. A Game Freak game that used .GARC files that were also used for the 3DS Pokemon games, however it was a different compression format enough to throw software off.
Might as well just send the model file to see if you can figure anything out
ok, anything new you found?
no, im pretty much stuck
im leaning towards the fact that the xbr2 exe works properly since the lua scripting wasn't cut off/corrupted
this is reinforced by the fact that the bone name strings i found earlier were in a gr2 found in a models folder
however, im thinking that the gr2's are compressed in some way and i have no idea how
and similar thinking for the textures
it doesn't help that the cto of twisted pixel said this ahead of this game's release, making the compression issue more confusing
oh damn
on the other hand failing a crc check should mean that something is wrong with the file itself? i dont see why a file made by granny engine can't be read by granny engine
this gonna be a doozy lol
Tried an XPR2 Noesis plugin, couldn't preview but it tried to export stuff, got this error trying it:
Output extension has set output file type to:
.png - PNG Image
Detected file type: XPR2 Textures
global.DBase
Traceback (most recent call last):
File "C:\Users\noesisv4466\plugins\python\fmt_XBOX_360_XPR.py", line 84, in XPRLoadRGBA
print("WARNING: Unhandled image format " + repr(imgFmt) + " - " + repr(imgWidth) + "x" + repr(imgHeight) + " - " + repr(len(data)))
NameError: global name 'imgFmt' is not defined
yeah im thinking that's because the images are probably also compressed by granny engine
I also have a feeling they also might be in the .gr2 files themselves
possibly
so I think it's best we figure out the .gr2 file problems first
I think the best thing you can do is go into different modding discord servers for games that use the engine and ask about it. That's what I did for Harmoknight and it worked for me.
currently asking in a battlefield modding discord (Specificallly for Bad Company 2) cus it uses Granny 3D
Ok I think I might actually be right with that the textures are in the .gr2s themselves. As I looked in the TX2D folder and saw no files that have to do with the Gunstringer model. I think the files in this folder are for UI Sprite textures.
that makes sense. that would explain why all the filesizes are so small
so yeah defo prioritise the .gr2s
Maybe get a .gr2 file from another game and compare them in a hex editor?
i got some civ6 gr2s and at least they load in granny viewer. textures are separate in that game
but i didn't see any major similarities
hm...
Idk then, Not really a programmer so I can't really figure out anything alone lol
i think the last thing i'd be willing to try is to try to see what the game does to load these models
maybe there's like a folder in the game files related to granny engine or compression?
on the bright side im pretty sure the sound can be extracted easily... its just the models and textures that are stuck
yeah I managed sounds easily
I would say try Model Researcher?
(God I wish I could just use Ninja Ripper or something)
this is a really cool program actually
i dont have much experience with 3d models represented with binary thoug
but yeah update me if you anything of note
I got a bit more info I think
the noesis plugin i did find had a list of hex magic that it used to id the gr2 (and subsequently extract it) but it didn't match the files from the game. i didn't think of version mismatch though. it might be, but the game released in 2011 and the granny viewer i have has the last year in the copyright as 2010 which would probably be the version they used
also the xentax forums are dead; i think its read only now ๐
no you can still reply to stuff
wait really
i thought they were taking down the forums and everything
ah i see you already made a post
yeah but that's in december
Yeah nothing with a version in 2010 sadly
Got a reply
Learn't that granny2.dll is something used by pc games that use the engine. Obviously with this being an Xbox 360 game, I have no way to know that.
Ok looked at a tool for BG3 modding stuff that uses granny files. got this error when trying to import
So maybe it has to do with it missing it's signatures?
so I have an idea that could possibly exist.
Maybe the signature got lost during the extraction, so what if:
You look through the XPR2 file and maybe you can find that model's signature, then we can insert it into the model file?
Here's the unpacked file
and here's the packed one just in case
Just PMd a guy on xentax who made a .gr2 plugin for Noesis for assistance (Plugin doesn't work with the files btw).
Waiting for a response back
Quickly just typing something here so the thread don't get auto deleted.
got another chance at this
here's all the model files
Yeah coming back to this yeah. The file header seems to be missing from all the model files
so is there a way just to salvage the mesh and textures of the files?
@ruby ember
Some extra hex info I found
Just tried taking the header info of another working example .gr2 file and putting it into where it's meant to go. Didn't work sadly.
im thinking they either prepend the header when the game loads the file or something similar. but im not sure where that info would be stored. preferably not in the game code, so hopefully its lying around somewhere in the files
It COULD be in the .xpr file they came in. It might have got lost in the extraction.
So yeah I would say try looking in this. I'm mostly guessing you know how to find it in this lol.
ok so this is the extent of what i have found. im posting mostly so if you can find someone more experienced they have an idea of what we found so far
- while there is no magic the headers of the files contain offsets to different sections of the file. but im not sure what the sections represent. i thought that they might be a bunch of the gr2 assets concatenated but nothing loads in the viewer
- found a bunch of magic strings in this python script; but none of them work when pasted at the beginning of the file
- as for the "lost in extraction" idea the xpr2 cutter seems to do the job right afaict, reinforced by the fact that the lua files in the USER folder are completely fine.
at this point it would unironically be easier to remake the game's assets by hand rather than try to rip it from the engine. else one would probably have to write a custom parser for these files (most granny engine games seem to require this based on what ive been seeing) and not only are they weirdly complex but im mostly blindly pasting stuff in the hex editor ๐
Wanna try reviving this
@raven yew saw you wanted to attempt to solve this.
I had a look but...man, I can't really make much sense of the mesh format
something that could help? @ruby ember
So. We may have SOME form of way of doing it:
There was a Sonic Unleashed PC recompilation port released extremely recently. But the main thing relevant to this is that the recompilation tools they've made for it are open source. Meaning other 360 games could be given the same treatment. https://x.com/HoonGoons/status/1895997054994038953?t=psiSRJ7UplKCEswWvH26zA&s=19