Posted March 10 Demon is a reverse engineering project that aims to reimplement the Halo PC demo (AKA Halo Trial) executable as an open source and free reimplementation for anyone to use, modify, and learn from. The project repo is here: https://github.com/Aerocatia/demon Java, ST34MF0X, mouseboyx and 3 others like this Share this post Link to post Share on other sites
Posted March 13 We get asked this a lot: Why Halo Trial? Why not Custom Edition? Or the retail CD version? Or the Xbox version? Halo Trial is not only free to distribute with no DRM, but it contains the full gamut of Halo's features, NOT just those required for Blood Gulch or The Silent Cartographer. All levels are fully playable when rebuilt with Invader, and most custom maps can be ported, too. The other PC releases contain some pretty nasty DRM and require a CD key which is becoming increasingly more difficult to get. Not even Custom Edition is safe from this. The Xbox version is a bit out of scope for what we want, being that it is not a PC game and thus requires emulation. There is an Xbox decomp in progress if a reimplementation of the classic Xbox version is more to your liking: https://blam.info/ Being easy to share and set up made Halo Trial the best choice. Takka, ST34MF0X and Sunstriker7 like this Share this post Link to post Share on other sites
Posted March 14 Let's be honest, Halo Trial was always the superior release anyway. We all have special places in our hearts for health pack teleporters. Outstanding move, though. Kavawuvi, ST34MF0X and Sceny like this Share this post Link to post Share on other sites
Posted March 19 This weekend, a few things were done. The function for checking if a command is visible/allowed was more thoroughly decompiled. This helps in reverse engineering Halo's scripting system. Next, a couple of replace options were added to hook.json: forbid and stub. The "stub" replacement option will simply make the function do nothing if it is called. This should be used sparingly and only when the original functionality is not desired and we specifically do not want to reverse engineer this function. For example, a function whose sole purpose is to set things in the Windows registry should be stubbed out. The "forbid" replacement option will crash the game if it's called, and an error message will be logged. Unlike the stub function, this should be used whenever possible. If a function (and every caller to that function) has been reverse engineered, then there is no need to hook into the original function. Therefore, we can assert that the game does not call this function anywhere using this option. Next, calculate_lod_pixels was added, and this determines how many "pixels" a model takes up in order to facilitate Halo's model level-of-detail. Lastly, all functions pertaining to gamma were stubbed out. This means the registry is no longer touched by this, and the OS gamma is no longer modified by the game. We are intending on adding a gamma setting to the game as a shader in the future rather than having the game mess with your OS, as the game, upon crashing, may not fix your gamma setting. As a result, Halo Trial with Demon generally no longer touches the registry at all, now. There are still some code paths where it does touch the registry, but those do not seem to be hit typically. Eventually those will be reverse engineered as well, so stay tuned. Takka, Sunstriker7 and ST34MF0X like this Share this post Link to post Share on other sites
Posted April 18 This week, a few things were fixed! Also, a lot more HSC things have been implemented, and so we're getting closer to figuring out how to implement custom scripting globals. I've also learned a bit more about how bitmap tags are used in the process. Hopefully that, regardless of if Demon gets finished, it will be a good reference and documentation for future CE modding. Java, ST34MF0X, Vaporeon and 3 others like this Share this post Link to post Share on other sites