Releases: monkeyman192/MBINCompiler
v1.70.0-pre3
Most structs have been updated now except for mission ones (sorry! There are lots!)
This doesn't have the new GUID's for the current experimental build on steam [3265098], however there doesn't appear to be any significant struct changes except for the galaxy globals (which I haven't yet checked to see if the struct has changed... GUID is different...)
v1.70.0-pre2
Small update. This lets defaultsave and default reality decompile (all I had time to do sorry!).
Interactioncomponent also should work so that may fix a few more entity files...
More updates will come in the following days, will just need to be patient everyone :)
v1.70.0-pre1
First release for Abyss! [Steam build 3251077]
A fair bit has been added. Too tired to write too much right now, but there is still a lot of work to be done to fix many files.
This should at least get the globals working, and hopefully some entity files
The current progress can be seen here (so if you see a file that doesn't decompile yet and has a struct in this list that doesn't have done next to it, then don't bother raising an issue as I haven't gotten around to fixing it yet :)
v1.65.0-pre3
Still fixing alignment issues. They will hopefully be fixed soon (see #101 )
Materials and anims should be decompiling again correctly now...
v1.65.0-pre2
Fixed hopefully all broken globals.
There are still probably some underlying issues due to alignment issues. Getting through them but there will be some I missed I think.
v1.65.0-pre1
Compatible with current public 1.65 release 1.64 I think (there were no struct changes between the two versions)
- This should fix some previous lingering issues with the AlienPuzzleTable and possibly some other files.
- Fix for issue #93 --force option no longer requires the --quiet option.
- Multi-threading is now implemented for batch conversion. Processing multiple files at once will now be 3 to 6 times faster, depending on how many CPU cores you have.
v1.63.0-pre4
Updated a few structs with mostly just padding issues probably introduced by the new alignment stuff. There are probably still going to be some lingering issues until we fix it, so keep letting me know if there are issues.
v1.63.0-pre3
[Compatible with steam BuildID 3183935]
Few small fixes to the ScannableComponentData
struct (new boolean added!), as well as fixing up some data in the SimpleInteractionComponentData
(list was of the wrong type (in my defense HG removed the previous struct used so I just put a dummy because I didn't know any objects with a non-empty list...))
Also hopefully finally have all the issues with list serialisation fixed?
v1.63.0-pre2
[Compatible with steam BuildID 3183935]
Fixes critical issue with the GcSpaceshipGlobals.
Also fixes an issue where geometry files wouldn't decompile even if they were the only file dragged onto mbincompiler. (And some other issues no-one probably even realised existed...)
The main improvement with this version is to LibMBIN where 3 new functions have been added which allow easy reading of mbin and exml files into NMSTemplate
objects (which can be cast to a specific type is required)
These functions exist within the LibMBIN
namespace and are contained by a FileIO
class.
The three functions are:
FileIO.LoadFile(string path)
FileIO.LoadMbin(string path)
FileIO.LoadExml(string path)
They do pretty much exactly what you would expect and allow you to read any mbin or exml file directly into an NMSTemplate object.
Eg.
NMSTemplate crystalScene = FileIO.LoadFile("CRYSTAL_LARGE.SCENE.MBIN");
// or, if we want a specific type:
TkSceneNodeData crystalScene = (TkSceneNodeData)FileIO.LoadFile("CRYSTAL_LARGE.SCENE.MBIN");
This should make loading data from existing files much easier :)
v1.63.0-pre1
[Compatible with steam BuildID 3183935]
No struct changes, but a few fixes to how lists are serialised, so hopefully many tables will now be recompiling pretty much perfectly!
Also fixes a pretty long standing issue with the ProjectileTable. This table now recompiles perfectly :D
Something else we got working was utilising the fact that the BehaviourFlags
are well... Flags...
What this means is that theoretically you should be able to combine values for the bahviour to be a combination of multiple flags.
The possible flags are as follows:
None = 0x00,
DestroyTerrain = 0x01,
DestroyAsteroids = 0x02,
GatherResources = 0x04,
Homing = 0x08,
HomingLaser = 0x10,
ScareCreatures = 0x20,
ExplosionForce = 0x40
What we can now do in the Exml file is, instead of just specifying
<Property name="BehaviourFlags" value="ScareCreatures" />
we can do (if we want)
<Property name="BehaviourFlags" value="ScareCreatures, HomingLaser" />
and this will produce a valid output in the mbin.
Whether the game will actually do anything about this is yet to be seen (so please test and let me know!!!)
(It is this same Flags system that the game uses for MP connection properties which is why the save data simply has a number for it ;) )