What happened to OC? - CLOSED Carnage?!
Sign in to follow this  
Followers 0
Kavawuvi

[OUTDATED] Porting Refined (and other maps) to MCC: CEA

UPDATE (2022-02-08): Most of this information is outdated and has been outdated for a while, as a number of fixes have been implemented in Halo: CEA. This is left here for historic reasons, but it should no longer be referred to anymore.


Basically, these are the changes to CEA:

  • CEA no longer uses a chunked zlib format
  • CEA does not require the use of editing a .fmeta file
  • CEA now includes Custom Edition's bitmaps.map, sounds.map, and loc.map for loading Custom Edition maps
  • CEA now fully supports 16-bit textures and P8 bitmaps
  • CEA now supports custom sounds
  • CEA HUDs now work like Xbox
  • Sound environments now work correctly
  • mcc-custom is no longer a build target for Invader. Instead, use gbx-custom or mcc-cea, instead.

In a nutshell, Custom Edition maps work mostly like they do on regular Custom Edition, besides these things you should consider:

  • The shaders and shader behavior are fixed (this will cause the maps to look somewhat different!)
  • You need to swap map files.
  • You need to load custom maps with EAC off
  • Custom fonts do not render

There may be more changes in the future that I won't put here.

 

Again, disregard everything else this guide says, because it's no longer relevant (but maybe still cool to read?). Thanks!

 


 

Original post:

 

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:

Quote

If you want to play co-op, it's obviously the only way to do it. However, if you don't play co-op, it's hardly worth playing unless you play controller, lock the game to 30 FPS, never pick up plasma weapons, and only play The Silent Cartographer and no other level in the game. Because there's no other way I can think of where it'd be better to play Refined on MCC 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.

Zatarita, DSalimander, Takka and 1 other like this

Share this post


Link to post
Share on other sites

Tiddy-bits:

5 minutes ago, Zatarita said:

Add a tc21 tag and you could win some cash c:

I thought about it! But since I'm one of the judges, there would be an inherent conflict of interest.

 

Quote

 ALSO! Iirc there does seem to be support for 16 bit textures, and p8 textures in the ipak; however, I dunno if there is a corresponding imeta value. 

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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.