Welcome to Open Carnage

A resource for modders and technology enthusiasts; have a wander to see why we're worth the time! EST. 2012

Kavawuvi

Chimera (build 49)

204 posts in this topic

Members of Open Carnage never see off-site ads.

Something I'm working on is loading Halo maps directly into RAM. The benefit to doing this is mostly performance, but it will also allow for compressed maps as well as not having to worry about the 23 MiB tag data limit outside of BSPs. However, to do this, you will need a slightly modified haloce.exe file. This isn't a modification in Halo's code but rather a flag in the .exe header, LARGEADDRESSAWARE. This is required in order to allocate such a large amount of RAM.

 

To lay it out for you, here are the pros and cons:

 

Pros

  • Performance can be significantly improved even on high end PCs. This is because all of the disk reading is all done on load, removing the need to read from disk, removing hitches when loading assets.
  • BSP transitions are now nearly instantaneous. Again, all of the disk reading is done on load.
  • Map compression means that maps now take up a lot less space. To put it in perspective, @Vaporeon, using the compression tool I wrote, managed to compress over 3000 maps down to under 100 GB. I'll repost those map compression tables for you to see.
  • Monochrome bitmaps can be used, drastically reducing the file size of bitmaps such as those used in HUDs without any loss in quality (lossless).
  • The 23 MiB tag data limit is no longer an issue (outside of BSP tags which can now take almost all of the 23 MiB uncontested though I might even make those not limited), allowing for more complex maps with more content than ever. Because I've allocated a whole GiB, you can use as much as you want of that GiB for your maps.

Cons

  • You need a haloce.exe file that is patched to support LARGEADDRESSAWARE. This will allow Chimera to allocate larger chunks of RAM than what is normally possible.
  • Loading times for Halo maps are increased to around 0.5-3 seconds depending on your PC specifications. This is because the entire map has to be loaded into RAM, and compressed maps have to be decompressed.
  • Halo may use over 1 GiB of RAM. Loading 700+ MiB maps directly into RAM uses a lot of RAM.

 

Map Compression Benchmarks

Here are some familiar tables you've probably seen before.

 

MwmDrIj.png

 

As you can see, the whole Refined campaign takes up nearly 2.65 GiB. When compressed, the Refined campaign takes up under 1 GiB (1024 MiB = 1 GiB). Compression ratios are usually at or under 40%, and with features like monochrome bitmaps, they can be dropped even further. On a mid-ranged CPU like the Ryzen 5 2600, these maps do not take that long to decompress.

 

Here's another table containing some popular maps. Obviously compression ratio varies from map to map, but LZMA's compression ratios are really good.

 

AzxHV2x.png

ShikuTeshi and Tucker933 like this

Share this post


Link to post
Share on other sites

I've also written a patcher. Simply place this program in your Halo Custom Edition directory next to haloce.exe and haloceded.exe and run it.

 

If you don't have write access to Halo Custom Edition, you should give yourself write access, or you can try running this program as an administrator.

 

Download: laa-patch.zip

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.