What happened to OC? - CLOSED Carnage?!


  • Content count

  • Joined

  • Last visited

Everything posted by Kavawuvi

  1. What a ride.
  2. While the Doppler isn't fully accurate to Xbox (or I guess real life as the plasma pistol seems to bend in pitch when you are holding it and moving despite the fact its relative velocity to you is 0), the issue I was pointing out had to do with the firing effect not playing in both channels when strafing. Basically, it sounds like the firing effect is coming from near you rather than from you.
  3. Invader is a work-in-progress, open source, cross-platform toolkit for creating Halo: Combat Evolved maps. There are a number of tools that come with Invader: invader-archive - CLI program for creating archives of all of the tags required to build cache files invader-bitmap - CLI program for generating bitmap tags invader-bludgeon - CLI program for backhanding uncooperative tags invader-build - CLI program for building cache files from scenario tags invader-compare - CLI program for comparing sets of tags and showing differences invader-convert - CLI program for converting between different tag types - highly useful for Xbox map porting invader-dependency - CLI program for listing the dependencies of a given tag OR the tags that depend on a given tag invader-edit - CLI program for scripting tag editing operations invader-edit-qt - GUI program for editing tags invader-extract - CLI program for extracting tags from a map invader-font - CLI program for generating font tags invader-index - CLI program for generating a list of all of the tags in a cache file or resource map (useful for invader-bitmap) invader-info - CLI program for getting metadata of a cache file invader-model - CLI program for creating gbxmodel/model tags invader-recover - CLI program for recovering source data from tags invader-refactor - CLI program for renaming tags (or directories of tags) without breaking references invader-resource - CLI program for generating resource map files (i.e. bitmaps.map, sounds.map, loc.map) invader-script - CLI program for compiling scripts. invader-sound - CLI program for generating sound tags invader-string - CLI program for generating string list tags invader-strip - CLI program for cleaning up tags Six Shooter (Windows only) - GUI frontend for Invader ... and (hopefully) more programs to come! You may be wondering, why am I taking time to replace the Halo Editing Kit, something that supposedly already works fine? I'm glad you asked (or I asked?)! The Halo Editing Kit... ...is closed source. This means that you cannot make changes to it or add functionality without resorting to modifying the .exe file directly. Also, information has been obfuscated away through compilation. Invader is open source. ...is unsupported. Since it's closed source, you cannot rely on the developers to issue any updates to fix problems with the program. If they never update it, then it is the final version you get. An ideal program should never need updated, but the HEK is very far from ideal. Because Invader is open source, anyone may fork and support Invader at any time. ...is limited. Since it's closed source, you have to modify the .exe file directly in order to make changes to it. If you don't, you're limited to building 384 MiB cache files. Also, singleplayer maps are tied to the resource maps you built them with, thus users must have the same exact bitmaps.map and sounds.map you used to ensure the correct assets are displayed/played. Invader does away with most of Halo's arbitrary limits, even the 384 MiB cache file size limit (it's 4 GiB now!). ...was made for older PCs. As robust as Windows's backwards compatibility may be, even it has limitations, especially with Win32 GUI programs like Guerilla and Sapien. Invader runs natively on 64-bit x86-based PCs and takes advantage of modern hardware to boot. ...is slow. This is due to thousands of unnecessary checks as well as the program, itself, not being compiled with optimizations. Invader is considerably faster than tool.exe! ...only guarantees to work on Windows. Not everyone uses Windows, and Wine compatibility on Linux is, at best, a mixed bag especially in regards to the GUI-based applications Sapien and Guerilla. Invader natively runs on both Windows and Linux without having to worry about Wine. tl;dr: You can't guarantee the Halo Editing Kit will continue to work indefinitely, and it doesn't meet all of our needs anymore. Invader is here to fix that. I recommend reading this post for more information on why it is important that the Halo Editing Kit should be replaced: Site: https://invader.opencarnage.net/ Source code: https://github.com/SnowyMouse/invader Builds: https://invader.opencarnage.net/builds/nightly/download-latest.html Original version of this post (for posterity):
  4. CE's audio is pretty borked now. Oh dear.
  5. I've updated Invader to 0.49.1. This is mainly bugfixes, but support for the newer definitions of the April 2022 update of the H1AEK has been added, too. Sadly, I had to change Invader's name back. Sorry if you liked HEK++.
  6. AAA thank you!!!
  7. Cool!!!
  8. As of today, Invader has been renamed to HEK Plus Plus (or HEK++ for short). People have complained that HEK++ (formerly Invader) is not as user friendly as Halo Custom Edition's HEK. So, I'm going to right this wrong and make the following changes in all future builds of HEK++. All error messages will be replaced with register dumps and assertions to source files you don't have access to. Which one will you get? Who knows! If there are any problematic tags that prevent a cache file from building, HEK++ will not print the paths of the problematic tags. Instead, you must use trial and error. This is way more fun! Most of the error checking will be removed in HEK++. This means you can now build maps with tags that would've otherwise been rejected by Invader. Maps that will probably crash the game. If a map crashes the game, it's even more trial and error. Map creation hasn't been this exciting since 2004! HEK++'s argument parsing system has been removed overhauled for most tools, thus you now only have to specify paths for everything. Gone are the days where you make bitmap tags by specifying the type of bitmap you want. Now HEK++ makes DXT1 bitmaps by default, and if you want to change it, you have to open the tag editor! All tools will later be bundled into one executable, HEKPlusPlus.exe. While this does mean you will no longer be able to tab complete, it at least means you will no longer be able to do tab completion. It's a win/win, honestly. As always, thank you for using and supporting HEK++. It's very much appreciated!
  9. Due to Halo's master server being down, I've added a new command: chimera_master_server. You can use the HaloNet master server with chimera_master_server "gamespy.halonet.net" or use chimera_master_server "" to restore to the default one. You can also configure the default master in the ini.
  10. This command-line tool dumps definitions from guerilla.exe into a parseable JSON format. You can use this on both the Halo: Custom Edition and Halo: CE Anniversary guerilla.exe. Note that fields nonexistent in guerilla.exe won't be exported, thus you won't get a totally complete definition set. However, it should be good enough to make your own Halo: CE editing tools. There are a two main uses for this tool: Making tools that edit Halo: CE tags Checking for differences between releases (since they are rarely documented, at least 100% adequately) I'll primarily be using this tool for working on Invader (this was why I made it!). You may use it freely for whatever you need, however. Also note that this tool is written in Rust (if you are interested in editing its source code). Source code (GNU GPL v3 - GitHub): https://github.com/SnowyMouse/gorilla Download (win32 - 64-bit x86): gorilla-win32- (Note: This tool will work on Linux, but you will need to compile it from source!)
  11. I've updated the tool. Here are the changes: JSON output now sorts groups. JSON output now stores the ISO 8601 timestamp of the creation date of the .exe file (read from the PE header). JSON output now stores the dumper version (the version of gorilla used to make it). "description" was renamed to "text" for section types. Colored sections are now handled. The SHA256 of the exe is now placed in the output JSON. The FileVersion is now placed in the output JSON. For example, Halo: Custom Edition's guerilla.exe will report as its version.
  12. Wow.
  13. This is just a general topic for posting questions and suggestions for Chimera. You can also post issues in here if you are having issues with Chimera.
  14. I've implemented a couple "experimental" features into Invader. You can now explicitly specify tag groups in tag paths in scripts by including the extension, and you can now use "none" as a tag path to indicate no tag. These are features implemented in later versions of the engine (e.g. Halo 3) which I have basically backported to CE. This means the following script now technically works: (global object_definition my_unit "none") (script continuous meme (sleep 60) (objects_delete_by_definition my_unit) (if (= my_unit "none") (set my_unit "vehicles\warthog\mp_warthog.vehicle") (set my_unit "none") ) ) While this will technically work in the stock game due to the simple fact of how cache files work, these features are not supported by any current official tools, nor are they guaranteed to exist in all versions of Invader like this moving forward.
  15. Those values determine the resync rate. Since they are denominators, lower values mean faster rates. So, 10 means once every 10 ticks, or 333.333... ms. And 0 means once every 0 ticks, or basically constantly send data (around 33.333... ms). If anything, increasing this rate (thus lowering the values) will reduce performance as your server has to send more data and process things. If players have a low ping, this may slightly improve the experience at best by making desyncs less extreme, but medium to high ping players may see a worse experience.
  16. I wrote a program that generated this monstrosity. 1000 trees placed in a line to test my visible object limit modification. It was successful, but it isn't quite ready for everyone yet. The new visible object limit will likely be equal to the maximum number of objects possible (2048) in a game, increased from 256 objects. The limit is already increased on HaloMD via an extension made several months ago, and it may soon be available to the likes of Halo PC and Halo CE. While too many objects can significantly reduce performance (this screenshot reduced my framerate to 21 fps), making objects randomly appear and disappear to improve performance is a lousy alternative.
  17. I've updated invader to 0.47. For Invader, this fixes a potentially serious vulnerability, namely with tag referencing files outside of the tags directory. Basically, absolute paths and paths with '..' directory components would allow you to escape the tags directory and cause all sorts of havoc in your filesystem without requiring symlinks. There aren't any known tagsets or cache files exploit this, but these are the details: Basically, this is a vulnerability that nearly every set of tools has, including official toolkits (e.g. Halo Custom Edition's HEK) as well as most community-made toolkits such as the MEK and, of course, Invader (formerly). The severity of the issue varies depending on the use case, ranging from just reading some files it shouldn't to creating and/or deleting files not in the tags directory. For example, with tag extraction, you can exploit this with a hand-crafted tag path in a cache file, resulting in tags being extracted to locations well outside of the tags directory. Something like "C:\mytag" for example could extract to the C: drive on Windows, where "/mytag" may extract to the root directory on a Unix-like operating system. Or, a simple path such as "characters\..\..\cyborg\cyborg" will extract to the "cyborg" folder outside of your tags directory. You do not need to hex edit a cache file to do that second one. Tool seems to happily compile malformed paths with '..' components into cache files, meaning you can technically reference tags outside of the tags directory without any apparent issue, and these tag paths will be included in your cache file with the technically invalid path intact (that is, intact as far as invalid paths go). When resolving a tag path into a file path, Invader will now instead throw an exception error if it detects that a tag path is either an absolute path for the target system (e.g. "C:\Users\Bob" on Windows, "/home/bob" on Linux, "/Users/Bob" on macOS, etc.). It will also throw an exception if the path tries to use '.' or '..' instead of a real directory. In other news, invader-script has a number of fixes. Tag paths are now validated (so if you use a sound that doesn't exist, it will let you know before you go and build the map). Also, path separators are now validated, references are now populated, and the vehicle type can be resolved into a unit type. invader-build and invader-extract also have a few fixes and improvements, too. Also, VT100 colors are now used on Win32 builds just as on Linux builds. This will fix a few error messages being formatted weirdly, and it has also demonstrated some performance improvements. Note that VT100 colors only work on Windows 10 or newer as of an update. Therefore, if you're on Windows 8 or older, you will no longer see any colors in Invader's output. This unfortunately marks the end of full support for Windows 7 and Windows 8(.1), as I can no longer guarantee these tools to work with full or even any functionality moving forward when running on a deprecated operating system. While I definitely wish I could continue supporting Windows 7 as may consider it to be one of Windows's best versions (including myself), unfortunately it is pretty impractical to support it now that it's been out of support for two years and has been explicitly unsupported on newer hardware for over five years, starting with the release of Intel's Kaby Lake in 2016. I also can't test or debug Windows 7 functionality since I don't have a Windows 7 machine, so... yeah. Invader's intention is to take full advantage of modern systems to provide the best possible experience, and that doesn't just include taking advantage of greater hardware resources such as more RAM and CPU cores. This also includes software systems, and dependencies such as Qt do not support Windows 7 on newer versions. And since I'll be upgrading invader-edit-qt and Six Shooter to Qt 6 which only supports Windows 10 or newer on Windows, this means that parts of Invader will cease functioning on older versions of Windows. VT100 colors also now render in Six Shooter: Lastly, I fixed a few issues with invader-script and invader-extract. object_definitions should now work properly in scripts.
  18. I'd say it's my software. Chimera is definitely on the top, fixing a number of issues that not even HAC2 would fix and ultimately turning Halo PC into a proper PC game with its high quality widescreen hack and interpolation. To a lesser extent, Invader which has been picking up some traction likely thanks to MCC. I've spent so long on this one. But even Deathstar was an old tool I made that people used as it provided the best-in-class deprotection at the time.
  19. Oh wow. So much stuff has happened in the past 10 years. It's such a different world now. And despite that, this site's still around. Happy birthday, Open Carnage!
  20. Chimera now checks the first 2048 bytes of a map upon downloading it. If it's invalid, it will fail and not put anything in your maps folder. This should fix a seemingly rare issue where the map server might not deliver a map.
  21. Invader has supported building CEA maps for a while, but 0.45.0 brings full support for the CEA tagset released in the Halo: CE Mod Tools on Steam. Note that CEA still does not support custom maps at this time, so as usual, play with EAC disabled when using custom maps. See the linked update post for more information.
  22. Invader is a toolkit for creating assets for Halo: Combat Evolved on PC. The full topic can be viewed here: Anyway, as of version 0.26, invader-compress allows for compressing/decompressing CEA maps with invader-extract also extracting CEA tags (except bitmaps and sounds). In version 0.27, invader-build started to support building Halo: Combat Evolved Anniversary maps for MCC. Since there is a section dedicated to MCC modding tools on Open Carnage, it was worth having a topic for Invader here dedicated to MCC-related updates. Take care of the following notes: You will need to run your game without anticheat enabled if you have modified your MCC installation. Building MCC maps is very experimental right now - even more experimental than building Custom Edition maps. Stuff will not work right, including anything with bitmaps or sounds that were not in the map you're replacing. Make sure to keep your version of Invader up-to-date. Only the PC version is supported. Modding the Xbox One version risks a ban. Here is the original mini-update: As always, you can get the latest, nightly builds (for Windows) at https://invader.opencarnage.net/builds/nightly/download-latest.html
  23. 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
  24. Aaa hello! Gosh, I've been playing Halo since I was in grade school.