Welcome to Open Carnage

A resource for Halo Custom Edition and MCC modding, with unique means of rewarding content creation and support. Have a wander to see why we're worth the time! - EST. 2012


  • Content count

  • Joined

  • Last visited

Everything posted by Kavawuvi

  1. AAAAH!!!! Wow it's been that long???
  2. Oh, wow. This is actually really good and useful. Nice!
  3. Six Shooter is a new GUI frontend to Invader. For more information on Invader, visit this topic: What does it do? Six Shooter provides a GUI frontend for invader-build, invader-extract, and invader-bludgeon. It also provides a configurable way to launch invader-edit-qt. Tag extraction is pretty fast and easy. You can choose to extract individual tags or all tags. You can then run the bludgeoner to fix common issues with tags. You can also build maps, too. invader-build has a LOT of error checking tool.exe doesn't have that is incredibly useful, and its errors are actually readable by human beings. Did I mention that settings in the "Build a map" dialog save once you click "Compile map"? That means you can go back to this dialog and not have to retype anything if you want to build with the same settings as before. This screenshot also shows the dark theme (can be enabled in Windows 10 via personalization settings). And of course you can open invader-edit-qt from within the program. invader-edit-qt is the fastest tag editor available for editing Halo Custom Edition tags, and now it's even more configurable. Where do I get it? For Windows users, it is now included with the nightly builds of Invader, which you can get here: https://invader.opencarnage.net/builds/nightly/download-latest.html You can also clone the repo and build from source. Here's the repository: https://github.com/SnowyMouse/six-shooter
  4. This is a small fix. Basically, every April 1st, it'd add a cartridge tilting effect. This originally did it on all maps. However, I've changed it so it only does it on the main menu. Sorry, that was an oversight on my part.
  5. I've been using this monitor for about a week now, so it's time to write a review on it! For reference, this monitor replaces my older Acer G257HU smidpx 25" monitor which I reviewed here: What's good about it? This monitor has a 2560x1440 (quad HD) 144 Hz nano IPS display. Nano IPS is a better version of IPS which cover more than the sRGB color space. You can read a whole article on it on DisplayNinja or ViewSonic, but in a nutshell, it's IPS but better. Anyway, like most IPS displays, the viewing angles are really good. The gray-to-grey (G2G) response time is also pretty low. I wouldn't say it's 1 ms as advertised, though. Sure, you can set the Response Time to "Faster" and you'll technically get an average of 1 ms response time, but the result is tons of inverse ghosting artifacts and trailing due to overshoot, which kind of defeats the point of getting a low response time (less ghosting!). Thankfully, this is not the default setting. In fact, the default settings are pretty good - MUCH better than my previous Acer monitor which maxed out the overdrive setting by default, resulting in LOTS of the aforementioned artifacts. I primarily do programming, so 1440p, while not necessarily required, is extremely useful for what I do, and going back to 1080p would've been a far bigger downgrade than the upgrade of going to 144 Hz. I also play video games, though, and I wanted to try something better than 60 Hz. It also support for variable refresh rate (VRR). This results in the monitor adapting to the frame rate of the game - basically a reverse form of vSync with none of the input lag. The on-screen display controls for the monitor is also pretty good (it uses just one button under the display!). It lets you configure a wide variety of settings, including two custom profiles and a few built-in profiles for various use cases (FPS, RTS, sRGB, "reading") as well as two other settings "HDR Effect" and "Vivid". The custom profiles let you configure most of the settings, while the other ones only let you configure brightness and contrast. sRGB mode is nice for viewing content, and the two custom profiles are really useful, but I'm not sure what the point of the other settings are. The stand is also pretty good, too. You can pivot, tilt, and raise/lower the monitor (but not rotate - you have to rotate the stand, itself). And if you don't care, you can use your own VESA mount, instead. Lastly, the monitor is not terribly expensive. I got mine for about $480 (after tax) which really isn't too bad considering it's a 144 Hz, 1440p, IPS display. Can I use Adaptive-Sync or FreeSync with my PC or console? To use VRR with this monitor on a PC, you need an AMD (GCN 2.0 or newer), Nvidia (1000 series or newer), or Intel (11th gen or newer) GPU to take advantage of this feature. Older Intel, Nvidia, and AMD GPUs do not support the standard. If you're on a console, currently only Xbox One X/S and Xbox Series X/S will work via FreeSync. The Nintendo Switch does not support either standard (it does not use DisplayPort and it uses an Nvidia chipset), but the PlayStation 5 is planned to get support for this in a future update. Also, you cannot use VESA Adaptive-Sync over HDMI. Only DisplayPort actually officially supports variable refresh rate, where with HDMI 2.0, you have to use the proprietary FreeSync standard (only HDMI 2.1 or newer natively supports Variable Refresh Rate - this monitor only has 2.0 ports though!). So, depending on your device (basically any device with a non-AMD GPU), you may have to use DisplayPort to get this feature. And, of course, the game needs to actually run below the refresh rate of the monitor. If it runs at or above the refresh rate, you'll get tearing as usual. At 144 Hz, it's probably not going to be that bad (assuming you even notice it), but it is something to watch out for. Is 144 Hz so much better than 60 Hz? Let me start by saying the difference between 60 Hz and 144 Hz was immediately noticeable. Merely moving the cursor on my desktop was immediately better. Scrolling on pages looks really smooth, too. And, of course, gaming, itself, looked so much better. Of course, I wanted to know if this was placebo! After playing on 144 Hz for a while, I did a blind test where I did not know the refresh rate. To do this, I wrote a Bash script that changed my refresh rate to randomly either 144 Hz or 60 Hz without telling me which one, and then ask me what I thought the refresh rate was. I found I could, indeed, reliably tell the difference between 144 Hz and 60 Hz, even though I had not used this monitor for more than a few hours. But does 144 Hz look twice as good as 60 Hz? After all, 144 is more than twice as high as 60. Personally, I think it's a matter of opinion depending on what you play. First, let's invert the numbers to convert refresh per second to seconds per refresh. 144 Hz is 6.944 milliseconds per refresh 75 Hz is 13.333 milliseconds per refresh, or 6.389 ms worse than 144 Hz. 60 Hz is 16.667 milliseconds per refresh, or 9.722 ms worse than 144 Hz. 30 Hz is 33.333 milliseconds per refresh, or 16.667 ms worse than 60 Hz. While it refreshes more than twice as fast, going from 60 Hz to 144 Hz is really only 58% as much of an improvement as going from 30 Hz to 60 Hz - something mostly seen on consoles. However, smoothness isn't the only improvement of going to a higher refresh rate. Because more information is being presented to you ever second, that also means the time between button input and response is effectively improved. Therefore, 144 Hz not only looks better, but games play better, too. What's not so good? My main gripe is that there is only one DisplayPort port while there are two HDMI ports. This doesn't seem like a very bad thing until you consider the following: You can only get DisplayPort Adaptive-Sync if you use... well... DisplayPort. As stated earlier, HDMI 2.0 does not natively support this technology, thus you have to use a proprietary standard like FreeSync if you want VRR over HDMI, where anything else would have to use DisplayPort. Also, if you use the HDMI port and have FreeSync enabled, the refresh rate is capped at 100 Hz when at 2560x1440 and 120 Hz when at 1920x1080. If I can only fully take advantage of the monitor with ONE of the ports, then the other ports are mostly pointless if you care about variable refresh rate. A second DisplayPort port would've been really nice. So, yeah, I ended up disabling FreeSync on the HDMI ports and just used Adaptive-Sync on the DisplayPort input. The monitor, itself, has no speakers, which, itself, isn't a problem since most monitors' built-in speakers are terrible, anyway. However, the audio quality from the headphone jack on this monitor isn't great. It's noticeably worse than motherboard audio. Also, the black aesthetic of the monitor is really good, but the slight "gamer" red accents on the stand and back of the monitor, while not garrish, feel a bit unnecessary. Maybe I'm just being very picky? At least they're using a matte black for everything facing the front, but the red accents would look weird anywhere except in a home environment. Lastly, do not bother with HDR on this monitor. The contrast ratio is okay, but not really good enough to be called HDR. Forget that it says HDR anywhere on the box. Other notes This monitor has a crosshair you can turn on. If you're playing something like a first-person shooter that has a shoddy reticle, you can use this to compensate for it. You can also use the crosshair in games that intentionally do not show you a crosshair without anyone knowing. However, note that doing so makes you a gigantic tool at the same time, so use with caution!! Conclusion This is a pretty good monitor. In fact, it's certainly the best monitor I've ever personally owned. The display looks nice. The colors and viewing angles are good. The refresh rate provides a really good experience in both gaming and regular desktop usage, and I've finally been able to properly watch the 120 FPS version of that one somewhat popular MCC video I made. The only real drawbacks are that there's only one DisplayPort connector and the HDMI inputs only support up to 1440p @ 100 Hz or 1080p @ 120 Hz if you have Adaptive-Sync turned on. It doesn't matter for stuff like my Nintendo Switch which would only ever support 60 Hz anyway, but if I connect a second PC (which I sometimes do), it actually does matter. And, of course, if your input device doesn't have a built-in audio jack, the monitor's 3.5 mm audio jack doesn't have very good audio quality. Pros IPS display (good viewing angles and color accuracy) 2560x1440 (plenty of pixels for regular usage) 144 Hz (smooth, responsive) 10-bit color support Adaptive-Sync / FreeSync Premium support (with compatible systems) Good grey-to-gray response times Good on-screen display Good stand (and VESA) Cons HDMI ports do not support 144 Hz with FreeSync turned on, only 100 Hz (1440p) or 120 Hz (1080p) Only one DisplayPort input, which makes the above con an even bigger issue Poor audio quality via 3.5 mm headphone jack Does not actually hit 1 ms response time without significant overshoot (but the default setting is pretty good) Not actually HDR If I had to rate this out of five stars, I'd say... it depends. If you only have one DisplayPort-compatible device you plug into your monitor and you have your audio coming from your motherboard, as is the case with most PC gamers, this monitor is easily a five star experience. Otherwise, I'd give it three stars. If you need to use the audio from the video cable (i.e. no direct audio from the system you're plugging in), the audio is terrible. You can probably split the audio from the video feed, but you'll have to buy a separate device for that, and they're usually around $20 for HDMI. I can't find anything on DisplayPort online except using a series of adapters. And if you need Adaptive-Sync support from multiple inputs, switching input to input is a pain. Sure, you can buy a $30 DisplayPort switcher, but it's not going to switch the audio (unless you're okay with the monitor's really bad audio). All in all, it's a good monitor, but having only one DisplayPort input, having a maximum of 100 Hz maximum refresh rate on the HDMI ports with FreeSync on, and, of course, the poor audio quality from the headphone jack all hold it back.
  6. I updated the review a little bit to better distinct Variable Refresh Rate and FreeSync. Basically, FreeSync is AMD's proprietary standard used on both HDMI and DisplayPort. Adaptive-Sync, however, is a DisplayPort standard. Not everything supports FreeSync, but some things support DisplayPort's VESA Adaptive-Sync (for example, non-AMD GPUs). I've also noted that it does claim to support HDR, but it actually isn't really HDR (the contrast ratio, while fine, isn't good enough). It also supports 10-bit color. I found that pretty much all games benefit from it in some way. Obviously genres can play a role, too. An FPS or an RTS is going to benefit a lot more than, say, Tetris. Halo: Combat Evolved look fantastic. Killing Floor 2 looks really good, too, though it's pretty CPU heavy and may dip below 120 FPS sometimes, even when lowered to 1080p. Adaptive-Sync is extremely useful here. Goodness. I haven't tried Minecraft with this, but this is definitely a game I thought would benefit a LOT from the high refresh rate. The Bedrock version (Windows 10, mobile, and console) probably benefits the most from it, as that version gets a very good frame rate even on toasters.
  7. Holy shit. This is amazing.
  8. Today I bought an LG 27GL850. I'm going 144 Hz!
  9. Well, no, of course I wouldn't want to do that. Blender is a good modeling tool, and its Cycles renderer is really good for making lightmaps, but even that requires a lot of set up to get it right. I suppose the tags could be used to import these lighting settings, and I might try writing something that can let you do that in a later date. However, I'd prefer a 'headless' option which just lets you run a command to bake lightmaps into something that resembles traditional Halo lightmaps. This is easier for the user and possibly even less demanding on hardware.
  10. The Halo Editing Kit sucks and everyone knows it. How do we replace it? I made a list of stuff that needs to be done and stuff that has already been done. Why should the Halo Editing Kit be replaced? One of the main issues with the Halo Editing Kit is that is unmaintained and unsupported. Like most Win32 applications, it can run on modern systems thanks to Windows's robust backwards compatibility. However, like many old applications, it hasn't exactly been unscathed by the passage of time. For a start, there are numerous user interface issues in both Sapien and Guerilla that have appeared in semi-recent versions of Windows. Not only that, but it also contains numerous limitations and restrictions that may have made sense with the limited 64 MiB memory of the original Xbox but not a PC game even from this time period. There are various other issues that have become well known by the modding community. None of these issues or concerns have or will ever be patched, officially, as the software is not supported. The Halo Editing Kit is also closed source and nonfree, requiring you to agree to an additional, restrictive license that takes away your freedom to use their software. While it's great that we have an editing kit in the first place, this nonfreedom can be to the detriment in the community in the long run. For any issues that are found, there is no way to fix the software without resorting to actually making changes to the binary, itself (and doing this is quite limiting!). As a result, people end up being stuck with the limitations and bugs of the software. However, since the software at least "exists" despite its issues, few people are inclined to replace the software. There's also another issue when it comes to modding using nonfree modding software: Because the software is closed source and nonfree, you're restricted to whatever the developers intended to allow you to mod. With the Halo Editing Kit, you can only modify Halo Custom Edition, and because it has an inferior renderer, people have resorted to dirty workarounds that sacrifice visuals (e.g. using model shaders instead of environment shaders due to fog). Also, without modifying the tools or creating new tools, you're only allowed to do whatever the tools allow you to do, and this is not everything you could do. Lastly, you're restricted to Windows on 32-bit x86, and while most people have access to that, it's possible that it may not be an option for most people in the distant future. In the end, it is a waste of time to try to fix something that is closed source and nonfree. While it's great that this software at least exists, we should focus our efforts on replacing the binaries, altogether, with better free and open source software. Usage of the Halo Editing Kit or any other "closed" modding tools should be discouraged whenever possible. What needs done? Questions we can answer right now: How do you edit your tags? Use invader-edit-qt. How do you make string list tags? Use invader-string. How do you make HUD message list tags? Use Mozzarilla. How do you make your bitmaps? Use invader-bitmap. How do you make your fonts? Use invader-font. How do you make sprites? Use invader-bitmap. How do you make cubemaps? Use invader-bitmap. How do you make your sounds? Use invader-sound. How do you make physics tags? Use Blender with Halo-Asset-Blender-Development-Toolset (make JMS files) and Mozzarilla (JMS -> physics). How do you make model tags? Use Blender with Halo-Asset-Blender-Development-Toolset (make JMS files) and Invader (JMS -> gbxmodel/model) or Mozzarilla (JMS -> gbxmodel). How do you make animation tags? Use Blender with Halo-Asset-Blender-Development-Toolset (make JMA files) and Mozzarilla (JMA -> animations). How do you build your maps? Use invader-build. Child scenarios with custom scripts do not work, yet, as invader-build cannot compile scripts. Questions we cannot answer right now: How do you compile your scripts? We don't know yet. How do you make .scenario_structure_bsp tags? We don't know yet. Use Blender with Halo-Asset-Blender-Development-Toolset to make the JMS files. How do you make collision model tags? We don't know yet. Use Blender with Halo-Asset-Blender-Development-Toolset to make the JMS files. How do you place your objects? Besides manually placing them in invader-edit-qt or Mozzarilla or placing them in Blender and using an old invader-scenario tool I wrote to apply them to a .scenario tag, we don't know yet. How do you bake lightmaps? We don't know yet. Milestones to achieve? Making a HUD from scratch: Requires being able to edit tag data (use invader-edit-qt) Requires being able to create 2D texture bitmaps (use invader-bitmap) Requires being able to create sprites (use invader-bitmap) Making a simple multiplayer map with stock assets: Requires being able to build a map (use invader-build) Requires being able to create scenario tags (use invader-edit-qt) Requires being able to edit tag data (use invader-edit-qt) Requires being able to compile BSPs (use Blender w/ Halo-Asset-Blender-Development-Toolset and tool.exe from the HEK) Requires being able to place objects (use Sapien from the HEK) Requires being able to bake lightmaps (use tool.exe from the HEK) Making a new object completely from scratch: Requires being able to edit tag data (use invader-edit-qt) Requires being able to make model tags (use Mozzarilla and Blender w/ Halo-Asset-Blender-Development-Toolset) Optionally requires being able to make physics tags (use Mozzarilla and Blender w/ Halo-Asset-Blender-Development-Toolset) Optionally requires being able to make textures (use invader-bitmap) Optionally requires being able to make sprites (use invader-bitmap) Optionally requires being able to make cubemaps (use invader-bitmap) Optionally requires being able to make a HUD for weapons, units, and vehicles (see Making a HUD from scratch...) Requires being able to make animation tags (use Mozzarilla and Blender w/ Halo-Asset-Blender-Development-Toolset) Requires being able to make collision model tags (use Blender w/ Halo-Asset-Blender-Development-Toolset and tool.exe from the HEK) Making a new campaign map with stock assets: Requires being able to edit tag data (use invader-edit-qt) Requires being able to make string tags (use invader-string) Requires being able to create scenario tags (use invader-edit-qt) Optionally requires being able to create sounds for voice acting (using invader-sound) Requires being able to build singleplayer maps (invader-build works, but it cannot compile scripts for child scenarios, yet) Requires being able to compile scripts (use Sapien from the HEK) Requires being able to place objects (use Sapien from the HEK) Requires being able to compile BSPs (use tool.exe from the HEK) Requires being able to bake lightmaps (use tool.exe from the HEK) Making a complete game: Requires being able to edit tag data (use invader-edit-qt) Requires being able to make fonts (use invader-font) Requires being able to make bitmaps for interfaces (use invader-bitmap) Requires being able to create sounds from scratch for various effects (use invader-sound) Requires being able to make multiplayer maps (incomplete) Requires being able to make campaign maps (incomplete) Requires being able to make objects from scratch (incomplete) Where do I get this stuff? Invader (invader-*): https://opencarnage.net/index.php?/topic/7489-invader/ Mozz Editing Kit (Mozzarilla): https://opencarnage.net/index.php?/topic/7877-mozz-editing-kit-mek/ H2V-Blender-JMS-Exporter: https://github.com/Project-Cartographer/Halo-Asset-Blender-Development-Toolset
  11. We are just five features away from replacing the entire Halo Editing Kit with open source software! What we need is the following: A collision model compiler (JMS -> .model_collision_geometry) How hard can it be? A BSP compiler (JMS -> .scenario_structure_bsp) The collision model compiler is required to generate the actual BSP tree, since collision models are also BSP trees. Prepare for utter hell. A 3D scenario editor We need an accurate renderer. Presently, I'm working on a Vulkan renderer, but I can't focus all of my time on this because Chimera desperately needs tended to. Lightmap baking Blender could be leveraged for high quality lightmaps thanks to Cycles, but ideally we should have a command line tool for this so people can essentially mass produce lightmaps. Script compilation Invader needs to do this in order for invader-build to be feature complete, since tool.exe compiles scripts when merging child scenarios.
  12. 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-compress - CLI program for compressing cache files 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-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-sound - CLI program for generating sound 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. ...is slow. This is due to thousands of unnecessary checks as well as the program, itself, not being compiled with optimizations. Building all stock multiplayer maps with tool.exe takes over 4x as long as Invader. ...only works 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):
  13. 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.
  14. Oh my goodness, this is really nice! Personally, I don't really think it'd be a big deal to use it on everything unless it screws up something else. Maybe space might be a concern, but I don't think runtime cost will be that much different, if at all.
  15. This is a small update, but I'm sure you'll like it! You can now specify the maps directory in chimera.ini (thanks, pr0ps!). This may be useful on certain installations of Halo. Bug fixes: Widescreen fix can now be disabled again (Jerry) On some system locales, the chat was invisible. This is fixed. (Jerry) Fixed compressed maps crashing on Halo Trial (me) Maintenance: Updated zstandard (Vaporeon) In other news, I'm getting started on the Lua scripting and I'll be working with Jerry on this soon. He's been responsible for a number of bug fixes and really nice Lua scripting improvements, including porting the old Lua scripting API to Chimera, so I'm really looking forward to this.
  16. It isn't selfish to want these things, but map protection really isn't the answer anymore. Ironically, plenty of forms of map protection can result in irreversible damage to the tags even without extracting the map and just playing the map as-is. This is because map protection, in itself, is a form of corruption. Sure! From querying the HAC2 repo using a protection checker a couple years ago, we found that around 1/3rd of the maps out there end up getting flagged as protected. The HAC2 map repo has 6000 maps today. If the average is the same as it was a year ago, then that's 2000 maps. And if each map, on average, took 10 hours to make, then that's 20000 hours of total effort from hundreds of people. Of course, many of those same protected maps have assets stolen from other maps and are more-or-less just copy-paste rips, and some maps may be outliers with tons of time put into them, so it's difficult to assess how much time was put into designing those maps. All-in-all, it's a lot of maps and some real time put into those maps, and I'm certainly not going to discount that. I never said it was selfish (though I think most reasons are selfish). My argument is that there's no valid reason to do it since maps are trivial to deprotect. What I personally think is selfish is expecting someone like me to write 500+ lines of C code to support a shader tag that might actually be an object or sound tag because the map was protected. You see, Halo doesn't care because, in most tags, it relies on context for when those references are read (e.g. I'm firing a projectile from a weapon I spawned a while ago - the projectile is obviously an object because that's what weapons reference in a trigger, and the weapon is obviously an object because it was spawned) - context a program, script, or mod can't have because it's not a game engine. Therefore, I have to go through every single possible tag in a chain to find all of the shader tags (or tags that can be shader tags), thus I'd basically be writing a map deprotector at this point in every single script if I wanted to query all of the shader tags in a map while supporting protected maps. With the Vulkan renderer I'm working on which contains my exact usecase, I've found this work to be utter hell. So, I've been considering adding behavior that disables it and uses Halo PC's crusty, broken D3D9 renderer if a map is detected to be protected, though it probably won't be feasible, so I'll likely just have to write down in the readme that if you enable this, protected maps may not work anymore. Here's another way to look at it: People who have protected their maps clearly did not want other people to read them. So, by not supporting protected maps in tools, scripts, and mods, we are honoring their wishes. Surely you can appreciate that? Sadly, yeah, if you want to ensure your stuff doesn't get stolen, you don't post it (which kinda makes making maps pointless if you won't share it). Map protection may have only guaranteed this at first, but nowadays, it's not the answer. Having the community look out for each other? I really like this idea!
  17. There is absolutely no valid reason to protect maps, but with protected maps, map makers decided to consciously and deliberately corrupt their maps so that only the stock game can load the map. Because we have tools that trivially defeat all common forms of map protection, then I think it is reasonable for modders and scripters to not be always expected to go through the hassle of adding support for what is basically complete bullshit. This does mean that a backlog of a few hundred maps will not be supported by these mods and tools, but again, these maps are easily fixed. Invader can easily and instantly detect most common forms of map protection, and Refinery can reverse most common forms of map protection. If you want to combat map protection, then these are your best friend.
  18. That's a fair point, and I agree. My two big Halo projects, Invader and Chimera, are open source and publicly available for all the world to see. As for if I'd delete either project's source code, well, I am certain I'd never do that. That being said, I have not been offered a job at any sort of gaming studio that works on Halo in an official capacity, so admittedly, you only have my word (and no proof) to go by at this time regarding that. I always recommend archiving things you care about.
  19. Same. The first party client is shit.
  20. I thought about it! But since I'm one of the judges, there would be an inherent conflict of interest. Using a custom P8 texture crashes the game. Using a custom 16-bit texture results in a black texture. So you can't get it to work with just using a Custom Edition map format like what Invader produces, thus you'd have to replace these files instead if that's the case and use the somewhat different engine version 7 (which is the same as stock Halo PC) formatted MCC map.
  21. This one's a doozy. Let's begin. CEA supports loading Custom Edition maps. However, on further inspection, it does not actually properly support Custom Edition maps, and asking employees from 343 Industries for assistance does not seem to be particularly helpful. At best I’ve been told to “wait for modding support” and at worst, I’ve been… uh… not told anything and just completely ignored. I have my own reservations regarding how this is being done with little to no community interaction and mostly in secret, but that’s not relevant here. We’ve done some of our own research by way of taking custom maps and seeing what happens. We did this to see if we could get the Refined set of maps to look correct on CEA, so here are the results. Getting the maps to even load CEA requires the base maps to be compressed using a chunked zlib format. CEA requires the file size in the map’s respect .fmeta to be correct. CEA requires the map to replace a stock map (note that setting the file name in the map file, itself, is not required - merely renaming and setting the fmeta file is sufficient) CEA also requires Custom Edition’s bitmaps.map, sounds.map, and loc.map to be copied into the maps folder (NOT compressed) Invader supports building MCC maps. When built with invader-build -g mcc-custom, the maps are generated compressed and a matching .fmeta file Bitmap format support CEA does not support 16-bit bitmaps. This is the default setting for lightmaps and is what tool.exe generates. These textures will instead show up as black. CEA does not support P8 bump textures. Custom Edition does not either, but while Custom Edition simply doesn’t render the bitmap, CEA instead crashes. This is worth mentioning because the stock Infinity that came with Halo PC actually has a P8 texture despite being made for an engine that does not support it. Workarounds: Use invader-bitmap to regenerate the bitmap as 32-bit if you have source data OR you are using a tag that wasn’t extracted by a tag extractor and/or modified by last-resort. You may get a quality improvement in this case! Use last-resort to convert the bitmap to 32-bit if you are using extracted or modified tags and you do not have source data. There won’t be any changes in quality, but it’s better than nothing. HUD scaling and positioning CEA has effectively increased the resolution of the HUD from 640x480, but it does so in a way where it tries to be backwards compatible with 640x480 HUD placement Since CEA scales HUDs differently, most elements have to be modified for them to look correct. Also, some HUD elements may be placed differently, since CEA has a widescreen “fix” of its own that tries to turn a 4:3 HUD into 7:3, 16:9, 16:10, etc. Workarounds: You may need to rescale your HUDs by a factor of 2, disable high resolution scaling, etc. to get the HUD elements to be sized correctly You may also need to reposition HUD elements in some cases. CEA may potentially break things like the sniper ticks and numbers which may require further adjustment HUD colors CEA has repurposed the green channel in HUD elements to control things like intensity and alpha, thus they had to make the meters show up as monochrome. Because elements are monochrome, multi-colored elements (e.g. Refined’s Xbox-style heat meters) are not possible in MCC. Also, some colors may appear to be more washed out with lower alpha if the green channel is too high. The empty color may look wrong, too, since this green channel seems to determine the opacity of that (even though empty has an alpha channel?) Workarounds: Monochrome elements: Set the green channel to 0. This will result in your HUD bitmaps appearing to be magenta in your image editor, but they will show up as monochrome in-game. Lower green may result in the empty color not appearing, while higher green may make the colors washed out with lower alpha, so you may need to fiddle with the green channel if you aren’t happy with the result. Colored elements: Create separate HUD elements and bitmaps for each color and use the HUD interface tag to set the color. This may sound like it’ll be complete hell to implement and that it’ll probably also look bad, and that’s because it will. Jackal shields CEA changes the jackal shields to match the Jackal’s rank to attempt to imitate Xbox behavior. This may end up resulting in your own custom shields looking incorrect. Workarounds: Change the tag path of the bitmap (or shader?)? This needs testing. Refined never had this issue, but the issue exists nonetheless since it’s something the stock CEA game does do. Anniversary models In singleplayer, CEA has a separate ‘anniversary’ renderer that replaces all the assets with assets inspired by Halo 3 + Halo Reach (or as we sometimes call Halo Threach or 3ch). This obviously does away with most of the visuals assets used by the base engine besides HUDs. Custom assets may not appear correctly or at all in the new renderer. Level geometry may not look correct assuming it even appears. Workarounds: Doing anything with the CEA anniversary renderer is outside of the scope of Refined, so we have not bothered looking into any potential workarounds. We just recommend not using anniversary graphics while using custom assets… or even stock assets since they also have issues. Wait until some sort of editing tools are released for manipulating Saber3D stuff. We don’t care. Custom sounds CEA replaced the sound system and uses a proprietary engine, FMOD. Custom sounds (or higher quality sounds) will not play or will use the older (or anniversary) sounds from the FSBs. Sound environments don’t work correctly. Reverberation does not work correctly, sounds are not muffled, and distance attenuation is very basic. Workarounds: Halo PC Anticheat MCC uses anticheat which requires that files match a checksum in order to load successfully. Loading these maps while anticheat is enabled will fail. These maps cannot be played on matchmaking (and possibly not on whatever custom games browser 343 Industries is working on) due to it requiring anticheat to be enabled. Workarounds: Disable anticheat and only play singleplayer or with friends. Remind yourself that CEA’s matchmaking is in a broken state even if its many issues can be (and have been) easily fixed, and then cry yourself to sleep each night as nobody does anything about it. See this post for information on disabling anticheat: Conclusion At the time of writing this, it is currently impossible to make the Refined experience on MCC up to par with Refined on Halo PC (both the retail version and even the more broken Custom Edition), and this may be the same for most custom maps. And really, support for MCC in its current state is experimental at best with the latest builds of Refined. It is highly recommended to play the maps on Halo PC as released by Gearbox for the best overall experience unless you want to play co-op. To summarize: The HUD colors will always look slightly washed out due to the shader being different. The Xbox heat meter gradients are infeasible to implement, and even if they were easy to do, they wouldn’t look correct, nor would the rest of the HUD. The sound system is in a pretty broken state. Using custom higher quality or uncompressed sounds is not possible without reverse engineering and replacing the FSBs (FMOD sound bank, not front-side bus), thus it will only be as good as the audio that came with MCC, assuming the sounds did come with it. MCC also has a number of issues on its own ranging from annoyances (banshee engine/contrail audio tied to frame rate, cutscenes locked to 30 FPS and looking even worse with an unlocked camera) to game breaking issues (input issues). Therefore, even if MCC perfectly supported these maps, it would still be an inferior experience, with the only notable redeeming qualities being a fixed water shader and co-op. And, of course, it is also not possible to play the (Semi-)Refined multiplayer maps on matchmaking (and possibly their custom games browser) due to anticheat, thus you will be restricted to custom games with friends. Halo PC does not have this issue (or any of the other issues listed above), and you can play the fixed maps on servers running the original maps. And, to quote myself from another Discord when asked about Refined vs. Halo PC: Considering porting maps is not a simple process and the results are always going to be inferior to the original, one must ask the question if it's even worth doing at this point.
  22. So apparently a potential security vulnerability was discovered and successfully exploited. If you're running a server, I recommend reading this for information on how to safeguard against it. First, let me preface by stating that CD hashes are not private. They are sent in plaintext to every server you join, and there are hundreds of servers, many of which have a database of CD hashes to handles. If you've ever played online, assume everyone knows your CD hash and profile name at this point. Many servers use CD hashes to associate players with administrator privileges. Doing this depends on the fact that the master server can protect against this, but it appears the newer reverse engineered master server does not correctly do this. Since Chimera supports spoofing your CD hash and hashes are obviously not private, you can spoof your hash as someone else's. As a result, it is possible to steal people's administrator permissions if the server is configured to accept only CD hashes as verification. This is not the intended functionality of Chimera, and I do NOT support or condone doing this. But now that this is known, server owners should avoid solely using CD hashes for verification. If you must use this, also use a secondary form of verification such as IP addresses.
  23. I don't. Unfortunately this is a netcode thing and can't actually be increased without breaking compatibility with clients. I suppose since it's rcon, you'd just need a special client in order to send rcon requests and everything else would work fine, but still...
  24. Chimera randomizes your hash by default. It also does this every time you join a server.
  25. Based on what everyone has written here, it seems people define cheating as having something that other people don't have, but not always. Automating your controls to get an upper advantage (aimbotting, auto firing, etc.) and abusing mods to see or do things you shouldn't see or do (wallhacking, turning on motion sensor, making it so you can shoot while holding the flag/oddball, sightjacking enemies you aren't suspecting of cheating, changing your FoV to fake zooming in, etc.) are clear-cut cheating. Changing your settings to get the best chance of seeing players (e.g. turning off particles to see players through explosions, tweaking Halo's config DisableAlphaRenderTargets to make the camo easier to see, etc.) is NOT cheating since anyone can do it in the game, itself, but it is an abuse of settings intended for ancient PCs that can't actually run the game without them, and it isn't how you're supposed to play the game. Abusing bugs is not cheating. However, again, it isn't how you're supposed to play the game. People do it all the time as second-nature, so it may as well be allowed (i.e. "it's not a bug, it's a feature"). Mods CAN exist to fix these bugs, but nobody wants to use them because it strays away from what many have now defined as the core gameplay. Mods that give features or fix things that players don't have may be a gray area, but in most cases, aren't a cheat. For example, changing your field of view to something above 70 degrees (technically ~63 degrees) was never intended by the developer to be a thing, and it absolutely gives you an advantage over players who don't have the mod, even if you use a reasonable field of view (e.g. 90 degrees at 16:9 is reasonable). It can be argued that most people are running mods that have this feature at their disposal, but before hacking the field of view because commonplace, most people were viewing the game at this low field of view, and relatively few people were running a mod that fixed it. Today, there are probably only be a few people actually running the stock game, so it can be reasonable to assume most people have a FoV mod of some kind. Also, some mods fix things that other mods don't. For example, some mods (such as Chimera) fix vehicle camera centering being tied to frame rate but others don't. As a result, driving a vehicle while playing the game at a high frame rate is only possible with these mods, where driving without these mods can be difficult unless you lock the frame rate to 60 or 30 FPS. It can be reasonable to assume that many players do not have such a fix and thus you are at an advantage if you have the fix, and it can be argued that developers never intended for this to be fixed (even if the bug shouldn't have existed). So I suppose the benchmark for determining if X feature is a cheat is: Does everyone playing the game have the option to use it? If so, then it's NOT a cheat. Abusing the game's settings and bugs, while possibly annoying to people wanting to play the game as intended, is not actually cheating. Also, server mods that provide buffs such as increased speed, unlimited ammo, etc. are not cheating provided every player has access to it. Does it provide a gameplay advantage if you have it on? If not, then it's NOT a cheat. Changing the Warthog's texture to be Hot Wheels, while making the game 100x more awesome than everyone else's versions of the game, is not cheating. Is it reasonable for a game like this to have this as a feature? If not, then it's NOT a cheat, but it is more of a gray area since it does still provide an unintended (and technically unfair) advantage. Fixing bugs is not cheating, nor is adding quality of life improvements like adjusting the field of view (within reason). Anything that fails this benchmark is most likely a cheat. This includes actual cheats or abusing mods on the client (or server, such as giving you god mode on your own server). I don't think I can expect much from Gearbox. Several of their ports are well-known dumpster fires. Halo Custom Edition is generally presented and advertised as an 'expansion' or 'add-on' to the game, and if Gearbox had no authority to make it, they didn't care. I suppose the community are to be thanked for keeping the game alive despite all odds. Without the many talented people who developed mods, maps, and fixes for this game, I highly doubt it would've survived this long on its own. Technically, unless there's a legal agreement, no developer is obligated to support their games once they're released. And yes, that even means that it is actually perfectly reasonable for a developer to release a heavily buggy, broken game and call it a day if they want to as long as the game otherwise works as advertised. My example with Warcraft III boils down to the fact that Halo PC did not have to be this way, nor is there any excuse for it to be that way.