LarvalExtract / MGF-Explorer

MGF Explorer is a GUI tool for opening and viewing assets contained within Meyer/Glass Interactive archive files used in MechAssault and MechAssault 2: Lone Wolf.
9 stars 1 forks source link

How do you even open this? #1

Closed Kerberos-ai closed 4 years ago

Kerberos-ai commented 4 years ago

There is no .exe or anything.

You should put up how to actually get the program running. Thank you.

LarvalExtract commented 4 years ago

I'll have an exe up soon, sorry about that!

LarvalExtract commented 4 years ago

Released an EXE now, here's the link: https://github.com/LarvalExtract/MGF-Explorer/releases/download/v0.2/MGF-Explorer-x64.zip

Please read the readme.txt inside the zip

Kerberos-ai commented 4 years ago

Thank you for getting back in touch so quickly. I am currently working on getting these models into Tablet Top SImualtor, and I have the Elemental and the BattleArmour.

I put them on Steam just because they are my favourite model

https://steamcommunity.com/sharedfiles/filedetails/?id=1965536007

LarvalExtract commented 4 years ago

Nice! What did you use to get the models and textures out? Looks good.

Unfortunately MGF explorer can't extract anything at the moment, but it's definitely on the to-do list. You can still view pretty much any mgmodel though, even complicated ones with lots of nodes.

Thanks for the interest in the project!

Kerberos-ai commented 4 years ago

From some things that where extracted yeah, I have a script for Noesis but I have to use a renaming tool to get it to work and unfortunately it can not read the DS.MGMODEL with the whole model, it can only read the .mgmodel with "verts" and "indices" in name so the model is all cut up, thus rendering most of the models impossible to put together, so only the BattleArmour comes out as one and even then the textures I have for the are the very blank ones, not the ones with the factions colours so I have had to make two as close as I can to how they look in game you see.

I tried your program again but it now just keeps saying missing some .dll's for some reason, like VCRuntime etc.

If an extractor tool was made that would be awesome yeah I do have a mate I think that is taking a look at the moment but yeah, it's kind of tricky.

LarvalExtract commented 4 years ago

Try this: https://www.microsoft.com/en-us/download/details.aspx?id=52685

It should fix potential issues with other software too.

Yeah, the BattleArmour model is essentially one mesh, but other models are composed of multiple meshes positioned by a node hierarchy, that's probably what's happening - you're grabbing the mesh(es), but they're not transformed properly, so they all end up sitting at 0,0,0 :)

MGF explorer can position all the meshes properly with the node hierarchy so they should all look right. Again though, no extraction yet!

Kerberos-ai commented 4 years ago

Yeah I know.

I'm still having the same problem installed them and still getting this

MSVCP140D.dll VCRUNTIME140D.dll VCRUNTIME140_1D.dll ucrtbased.dll

No idea why it won't find them

LarvalExtract commented 4 years ago

Oh yeah, those are debug DLLs. The build I've submitted is a debug build for now due to a bug that only occurs in release mode. I think they only come with Visual Studio, my bad!

I'll try and get the bug squashed and have a release build uploaded tomorrow. Thanks for your patience, I promise it does work! lol

Kerberos-ai commented 4 years ago

No worries bud, you take your time. I do trust you lol, I'm jsut keen on seeing it myself, as it is a good game of mine that I use to play.

And hey, it's nice to see a fellow Englishman, hello from Hertfordshire.

LarvalExtract commented 4 years ago

Thank you! Greetings from Merseyside!

LarvalExtract commented 4 years ago

Okay, here's an actual release build: https://github.com/LarvalExtract/MGF-Explorer/releases/tag/v0.2

Hope it works alright, let me know if (when) any more issues show up. I think you're the first person who isn't me to run the software so it'll take some effort getting it off the ground lol

Kerberos-ai commented 4 years ago

Really? Dam, I would have thought more people would to be honest with you.

Right so I have tried to launch it again and we are still getting the "VCRUNTIME140_1D.dll" was not found error.

LarvalExtract commented 4 years ago

Try installing this one: https://aka.ms/vs/16/release/vc_redist.x64.exe

Kerberos-ai commented 4 years ago

Yup that worked, now to decompress these files

Kerberos-ai commented 4 years ago

Stupid question but, when I type the offzip -a -1 filename.mgf output.mgf

All I get is "offzip is not recognized as an internal or external command"

Kerberos-ai commented 4 years ago

This is where my files are located at

C:\Users\Jordan\Desktop\MechAssault2

LarvalExtract commented 4 years ago

It is probably because you're not running offzip from the right place. The easiest thing to do is just copy offzip.exe and decompress_all_mgf.bat to your MechAssault 2 game folder (where all the mgf files are) then just double click the .bat file. This will execute a script that puts all the mgf files through offzip automatically and place them in a new folder called "decompressed"

Kerberos-ai commented 4 years ago

Thank you very much, it is all working now. I wonder if Ninjaripper would be able to inject into this, have you tried that?

LarvalExtract commented 4 years ago

Hold right mouse button on the viewport and press WASD to fly the camera, space and control to go up and down. Glad it's working! Remember that it's really just a content browser at this point though, but it's still neat to poke around the files.

I've not heard of Ninjaripper before, but from what I can tell (reading about it now), it's a run-time ripper, meaning it's useful to injecting in to a game and pulling out mesh data while it's running. As MechAssault runs on the Xbox it wouldn't be possible to use this, and it can't be used on archive files (non-executables). A shame, would've saved a lot of headache! Lol

Kerberos-ai commented 4 years ago

Yeah haha

I take it that's one of your other things to do then.

LarvalExtract commented 4 years ago

Pretty much all of the files in MechAssault are proprietary formats. For example, textures aren't stored as PNGs, JPEGs or anything, so there's nothing that existing rippers can latch on to. In this case, I basically have to use a hex editor and inspect everything myself and try and found out what all the data means. So far I've figured out a lot of the game's assets, but there's much to be learned. It's hard but also fun lol

Kerberos-ai commented 4 years ago

I have a script myself for Noesis, with some ripped files that can be opened, but it does not oen the base MGMODEL, it only opens the verts and indencies, so all the models parts come out all cut up.

But that was using a Hex editor and that

Kerberos-ai commented 4 years ago

What I don't understand is, when looking at the Elemental for arguments sake, the texture in game is like this (Which I had to do myself), but the ones from the files are just grey, no colour.

Elemental

LarvalExtract commented 4 years ago

I believe it's because the game has two textures layered on top of each other. In mgf explorer, there's two textures for the elemental, the grey version and a "complex" version which has the red highlights. I'm not sure how exactly it's done, but these two textures seem to be multiplied together to get the final colour. So that texture there is your added colours?

LarvalExtract commented 4 years ago

You know how you can customise your colours in the game and they get applied to the mech you're piloting? I think that comes in to it somewhere as well

Kerberos-ai commented 4 years ago

Yeah I used the first one because that's not borked, and I put my own colour on it based on a picture of the Elemental. This is the base that's in the game files. Elemental

Then this one, which has the correct colour comes out like this lol Elemental 2

Kerberos-ai commented 4 years ago

The Base Elemental that the Word of Blake uses, the Purple one in the campaign, yeah I wont that texture.

LarvalExtract commented 4 years ago

Yeah, there's definitely some composition going on in the shader between those textures, just not sure what exactly it's doing... lol. The elemental (and most mechs) use a "multitexture" material which refers to a base texture and a complex texture. Because I don't know exactly what's going on with the multitextures, every model in MGF explorer just uses the base texture for now

Kerberos-ai commented 4 years ago

Yeah These old xbox game man, they never make it easy Did you ever see the mod I am making for Bannerlord? https://www.moddb.com/mods/kingdom-under-fire-bersia-at-war

That was a laugh and a half getting all them.

LarvalExtract commented 4 years ago

I've not seen this before, nice! How did you go about grabbing all the assets from the original game?

Kerberos-ai commented 4 years ago

I have a Softmodded Xbox, so any game I put into my Xbox, I can copy across to my PC and have all the files.

No having to much abotu with the Iso or anything. I just did the same to MechAssault 1

Kerberos-ai commented 4 years ago

Just because I got curious I tired your MG Explorer on the other MechAssault game and it does work with that as well.

If you want the files for that I can send them to you as well. I hope progress is going well, and feel free to drop me a message anytime. I am on Steam, the names Kerberos. https://steamcommunity.com/id/JStahl/

Just drop a message in my comments section saying who you are as I do get a lot of people attempting to add me.

LarvalExtract commented 4 years ago

There are some differences between MechAssault 1 and 2 archives, but because they're so minor I thought I'd add support for MA1 archives too. Most of the files are also the same (some minor differences in the textures as well but again, they have been accounted for).

Main difference is the .mgmodel format wasn't introduced until the second game, so all of the models in MechAssault 1 use small text files to describe the nodes for a model and exploit the MGF file's folder hierarchy to build the scene graph. Some models in MechAssault 2 also still use this system. I haven't gotten around to supporting these models yet, but it's certainly doable.

Unfortunately I don't have much time to work on MGF explorer at the moment as I'm a pretty busy student, but I've got a lot of plans for it once I have more free time. The biggest improvement will be adding a proper 3D renderer such as Ogre3D - right now, MGF explorer uses raw OpenGL calls which are very hacked together just to make stuff visible so using a proper renderer will make it significantly easier to render and even shade models correctly. I also want to add file extraction (and conversion) and - eventually - file injection to actually mod the game!