Posted March 14, 2021 I've added a new model compiler to Invader. You'll never guess what I named it! (*cough* invader-model). This program supports compiling .jms files to both gbxmodel and model, allowing you to make Xbox model tags directly without any necessary conversion while still creating gbxmodel tags at a slightly better file size than tool.exe. It has both a default and legacy mode. The default mode uses a more logical structure where you'd put your models folder in the directory where your model tag will be compiled to, allowing you to have multiple model tags in one directory. So, weapons/pistol/pistol.model would require a data/weapons/pistol/pistol/models directory. You can make an equivalent weapons/pistol/fp.model model with a data/weapons/pistol/fp/models directory, too. The legacy mode is for backwards compatibility with tool.exe data folders, thus you'd put your models folder in the parent directory, instead, and your model tag will be named the parent directory. So, weapons/pistol/pistol.model would require a data/weapons/pistol/models directory instead. You can't make any other model in this directory, so if you wanted to make, say, a first person model, it'd be put in data/weapons/pistol/fp/models, making a weapons/pistol/fp/fp.model tag, instead. Enclusion, ST34MF0X, Takka and 3 others like this Share this post Link to post Share on other sites
Posted June 19, 2021 A lot of work with Invader has been done over the past month. Support for the upcoming MCC: CEA format Changes to invader-model (it only uses the legacy method - not the new method I added in the previous post) Support for global_scripts extraction Improvements to usability, such as Find/Save As in invader-edit-qt auto-expanding all directories to the tag's current directory Fixes and more fixes Check the changelog here: https://github.com/SnowyMouse/invader/blob/master/CHANGELOG.md ST34MF0X, Takka and Enclusion like this Share this post Link to post Share on other sites
Posted July 21, 2021 I'm currently in the process of redoing Invader's C++ code generator. This should make Invader compile considerably faster and make it easier to maintain. I'm also working on a script compiler and a few other things to help with MCC support. I'm hoping this will be useful! Unfortunately, the amount of time I have to work on this stuff might be significantly reduced soon as I might be finally finding myself in a programming job sometime soon! I should be able to continue working on stuff on my free time, but as I do a lot of programming by myself, updates to Invader and Chimera will be a bit slower. Sorry, I gotta eat. Takka, Enclusion, Sunstriker7 and 1 other like this Share this post Link to post Share on other sites
Posted July 30, 2021 I've updated the nightly build of Invader with some fixes to the definitions courtesy of @Vaporeon as well as some readme changes. ST34MF0X, Takka, Sunstriker7 and 1 other like this Share this post Link to post Share on other sites
Posted October 9, 2021 I'm sort of in the middle of a big refactoring/rewrite. A key point is, last month during the flight, I added in support for the new CEA "Classic HUD". However, while the tag definitions are backwards compatible with Halo Custom Edition, the tags are not, thus it'll need to be made clear which definitions work on what version of the game. As such, some things related to the parser need changed or rewritten to facilitate being able to edit so many versions of the game. Sunstriker7, ST34MF0X and Takka like this Share this post Link to post Share on other sites
Posted December 10, 2021 I've been off-and-on working on this project, but here are a few things that's been done since the last post: invader-archive supports more formats and defaults to the more ubiquitous .7z instead of .tar.xz invader-bitmap now more accurately does fade-to-gray (good for detail maps) invader-bitmap now does alpha bias invader-bitmap now supports the 'filthy sprite bug' hack invader-bitmap now more accurately mimics tool.exe behavior when generating sprite sheets using the FFDH algorithm. This is worse in some areas, but it's required because of how padding is put in the sprite sheet depending on certain conditions that would change between Invader and tool.exe invader-bitmap now supports producing non-square sprite sheets, reducing the size of the bitmap tag considerably invader-bitmap now supports editing sprite spacing just like in MCC invader-build more accurately generates tag IDs which should make some maps with scripts work better invader-edit-qt now supports viewing color plates a few issues with precision checking were fixed an out-of-bounds exception was fixed when building with newer Arch Linux installs (this issue, while not dangerous since it was read-only, always existed, but now it's fixed) a number of definition updates to support the latest version of MCC were implemented ST34MF0X, Enclusion, Jerry and 2 others like this Share this post Link to post Share on other sites
Posted January 4, 2022 I fixed a bunch of issues with invader-model. It should now be able to properly handle models that have over 65535 vertices. Some issues with markers and regions were also fixed, too. I also fixed a few invader-bitmap issues. ST34MF0X, Takka, Sunstriker7 and 1 other like this Share this post Link to post Share on other sites
Posted January 24, 2022 I've added invader-script. You can now compile scripts for all versions of Halo without requiring Sapien, even Xbox and Custom Edition. invader-build will also now compile scripts, too. This will help determine if a given script will work in a game. For example, multiplayer_draw_teammates_names will crash anything except Halo Custom Edition and MCC. Consequently, Invader now supports maps with scripts. Sunstriker7, Takka and ST34MF0X like this Share this post Link to post Share on other sites
Posted January 25, 2022 Don't forget to edit this bad boy: Nice work on this milestone ST34MF0X and Kavawuvi like this Share this post Link to post Share on other sites
Posted February 1, 2022 I've released Invader 0.45.0 (and then 0.46.0). The main point of the 0.45.0 update is to provide full compatibility with the new Halo: Combat Evolved Anniversary tagset and tools. The 0.46.0 update further improved accuracy of the tools. All scenarios that were released with the MCC Halo: CE Modding Tools now compile with invader-build with the new script compiler, though if you choose to use Invader with CEA tools and tags, there is one important thing to note: 343 Industries changed the way scripts are compiled with their tools. Basically, CEA's tool.exe loads and recompiles scripts from the data directory rather than the scenario tag, itself, on build. It also drastically increases the performance of invader-build and invader-bludgeon, since Invader now uses the vorbisfile API to query sample count instead of decoding the entire Ogg Vorbis file. This yielded over 200% more performance on my Ryzen 5 2600 PC when building levels\d40\d40. The difference is staggering! Most notably, this adds the invader-script tool, as well, allowing you to compile scripts without needing to use either Sapien or building a cache file with CEA's tool.exe. It will also make porting between versions of the game easier as it will take into account the functions and globals from different versions of the game, and it will properly size the node count. This also adds a bunch of improvements and features, making Invader even more accurate than ever before! Besides a few negligible floating point precision differences, some inconsequential ordering differences, the usage of scenario tag scripts vs. data folder scripts (you can use invader-script for these!), and a few other remaining unknowns to explore, the entire CEA tagset should now be functionally identical when built by Invader as opposed to CEA's tool.exe. And of course, Invader still supports all three major Gearbox releases of Halo PC: the disc version, Custom Edition, and trial! And the original Xbox version is also supported, too. Therefore, all of these versions naturally received a significant accuracy improvement as well! As always, when modding CEA, please note that the following: You will want to obtain the Halo: CE Mod Tools as it comes with a complete set of tags which, due to legal and size reasons, cannot be provided by Invader. It is free on Steam even if you do not own Halo: Combat Evolved Anniversary on Steam, so feel free to download it here. Until Halo: Combat Evolved Anniversary receives custom map support, you will need to replace your stock maps to use custom maps. Therefore, it is recommended that you play custom maps with EAC off. When playing with EAC off, you will be restricted to playing self-hosted Custom lobbies and singleplayer games. Matchmaking, the Custom Games Browser, and most game progression features will be disabled. If you accidentally play with EAC on, you probably won't get EAC banned since it's unlikely EAC can tell the difference between a modded .map left in by accident, a corrupted .map file from a bad download, or a .map file with wallhacks, but you will almost certainly get kicked from matchmaking and quitbanned upon trying to load a modded map. If you've accidentally messed up your MCC installation and you did not make backups, tell Steam to Verify Integrity. This will take a while depending on the speed of your computer, but if it finds a discrepancy, it will retrieve the correct file from the Internet. As far as CEA releases go, this toolkit will only support the Steam version. If you want to mod the Xbox One or Microsoft Store version of CEA, you're on your own until 343 Industries provide a method to play custom maps on those versions, assuming they ever do. Luckily the official CEA tools are available off of Steam for free. Lastly, as per version 3 of the GPL, this software has absolutely no warranty whatsoever. That also means that, just like with content made using the official CEA tools, if you get yourself Xbox Live banned because you cheated and/or griefed using content made with this software, that's on you. PLEASE don't be that guy. Lastly, I'm working on an overhaul of the tag API to hopefully further help with porting between different versions of this game. I've noticed that maps made with CEA's tagset will crash on Halo Custom Edition (and it's most likely not because of the shaders). Have fun! for the entire changelog, go here: https://github.com/SnowyMouse/invader/blob/master/CHANGELOG.md ST34MF0X and Takka like this Share this post Link to post Share on other sites