Halo: The Master Chief Collection

Halo: The Master Chief Collection

25 ratings
The Ark theater manager v1.0
By AquaDuck and 1 collaborators
The Ark is a Theater manager written in C# that will ensure the safety of your films. It's a quick and easy way to store films as well as bring them back to the game from the archive.

Not only that, The Ark also saves the Carnage reports and then matches the reports with what it thinks is the matching film. This makes it even easier to keep track of what film has that awesome Killionaire.
   
Award
Favorite
Favorited
Unfavorite
Updates
MCC Arkiver is now available!



MCC Arkiver brings Linux (and thereby Steam Deck) support and backs up more files

[url=https://github.com/AQDuck97/MCCArkiver]Github link[/url] It's also b

MCC Arkiver brings Linux (and thereby Steam Deck) support and backs up more files

Github link[github.com]

It's also backwards compatible with Greater Ark, just add your legacy ark archive and import it.
How it works
The Ark first finds its way to the relevant AppData directories by using your Windows username (relax, just stored in memory) then, if you have enabled auto-refresh, it will continue to scan the directories until films starts to show up (as you play). Once the total amount of these films have reached 12, it will move over all films over to the archive to prevent the game from overwriting the files.

To enable auto-refres, tick the box in the top left. The grey text below the AppData lists will change to green to let you know it's enabled. It's a very light feature so won't cause any lag.

The Ark loves organizing stuff, so you can find the files sorted neatly in a tree.
You may have to dig deep to get to a specific file, but it beats going through hundreds of gibberish-files in a single folder.
Order of folders: Game > year > date(month-day) > files



The Ark also has a translation feature where it both shortens the names and makes it actually human readable, this completely solves the absolute gibberish that is theater film naming. More on this in the "wort wort wort" section.

Also whenever it finds a new film file, it will copy over the latest carnage report so that you won't lose it either. This is a bit unpredictable though, see the workarounds section for how to ensure these gets saved as well.

If The Ark finds a carnage report that was made within 2 minutes of a film, The Ark will pair these together and you will then see an arrow next to the name, if you click this it will be expanded with some details from the match.
Wort wort wort
Let's talk about what I think is the real selling point of The Ark: Translation!

In the "Library" folder you can see a bunch of .txt files named after games (in lowercase) and some others. The reason why I went with a bunch of text files instead of just one json or xml file is because it should be easy for anyone to change these files, without having to deal with tags and formatting.

Once ODST drops (hah), you can simply create a new file called "halo3odst.txt" (has to be lowercase) and start decoding map names.





Film name structure:

At first glance, the file names makes absolutely no sense and was clearly designed for a computer. But looking closer you can see that each file name has a tiny bit of "decodable" string in its name that tells you exactly what map (and in some cases, even base mode) the film is.

Can you guess what map this is: asq_mglo-1_dlc_mediu_D952537C.mov

Spoiler: it's Tempest

All files starts with "asq", then an underscore. This is where the games separate from eachother. For Halo 2A, Reach, and probably 4 (modified Reach engine and same engine H2A uses), you will see "mglo-X" where "X" is a number. This number is for the base gamemode (Slayer, CTF, KoTH, Infection, etc.). The rest of the name is the same in all games. The weird number at the end is probably just to ensure it's not going to be overwritten if you play on the same map again.

The next string is for the map. Some are really easy to decode (like "lockou" or "warehouse") while others are more difficult (like the example above).

The way The Ark looks at these files is it checks if the name contains one of the strings in the corresponding translation file. It only compares the left-most string of the comma and then applies the right-most string to the matching string. This renames the file ONLY in The Ark. The actual file name is still the same old unrecognizable gibberish (because that's probably important to get it visible in the game).

Adding a new translation is super easy, simply type the string you can decode, then set a comma and type the string you want to replace the filmname with. Make sure there's no whitespace before the comma.

Most library files are optional and won't break anything, but one very important file is "mpGame.txt". This is for carnage reports because they don't have the traditional name of the games, instead they have game IDs.

You can find this ID pretty high up in the report, but unfortunately it doesn't follow the same structure for all types of reports.





On MP reports you will find it in the "GameEnum" element

And in the "GeneralData" element on Firefight("survival") reports and campaign
If you don't include this translation file, carnages will be moved to whatever number the game has. It won't break anything, the files will still be intact, they just won't get paired since there is no game called "6". If you have issues with this, just open the archive, go back one step then into "Carnages" and you should see a list of the games.


Medals

Medals is a bit different, but I will still put it in here.

There are 383 total medals in multiplayer and firefight, so obviously I haven't been able to decode them all.
I decided to take a different approach with medals so instead of separating the ID and replacement string with a comma, it simply checks the index for internal check and shows the text on that index on the UI. In other words: Replace "62" with "Double Kill" and you will see "Double Kill" and The Ark will see "62", everyone's happy.


IMPORTANT: Do NOT remove a line in the medals file, if you're unsure what medal it is just leave it as it is. Also remember that medals are stored in an array. Arrays starts at 0.

In The Ark you can choose what medal to show on all reports, simply pick a medal from this drop-down list. It reads from the medals file but only way to refresh it is to restart the program.

Not gonna lie, adding new medals is a bit of a pain. You have to go into the carnage report XML and painstakingly read through the 383 lines long medal list to then try to figure out what medal is what. Medals seems to be stored in alphabetical order, so that should make it a bit easier for you, but it's still a pain.

First step: Find your gamertag. This is easy, just CTRL+F

Next step: Scroll a bit down and you should see a really long list of medals, again just with IDs as "names". Best way to figure a medal out is compare to what it says ingame. If you got 3 Double Kills, look for a medal with an "mCount" of 3 and double check so no other medal has that, otherwise you could just gamble at it.









To put into perspective just how ridiculously long this list is, Sublime Text lets you see the entire file zoomed out, here's an entire player's portion of an MP report:

The Ark v2.0 will have a feature that makes finding medals A LOT easier and not require a global setting of filtering.
Workarounds
Because The Ark isn't interacting with the game, there are unfortunately some less convenient issues it cannot solve.

The game sometimes takes a few minutes to properly save the film to file once a game is over, since auto-refresh only checks for films it means that it may miss to save the carnage report.

For multiplayer this is very easy to work with, simply make a habit to force the game to create the film file by going to: Options > My Files

For campaign it's a bit different since post-game the only button you have is "Back", which takes you to the next mission. I tried to make it look for carnages too, but was running into some issues and didn't want to add a second timer just for campaign so I decided to skip that and added a new button instead.

"Simply" alt-tab the game in the post-game and press the "Carnage Save" button.

Film files are completely safe, they are just put on a "backlog" for a few minutes. Though this could impact the auto-move function since The Ark has to see 12 files or more before it starts the move and purge the directory (to make room for more files, it only wipes it if all files are safely backed up in The Ark), so I still recommend checking "My Files" every now and again).

There was a bug when Theater first released with H2A where films would get overwritten, but 343 seems to have fixed that bug.

Halo font

If you want the Halo font, you will need to install it from Dafont[www.dafont.com]
Gitlab and download
Gitlab release page here[gitlab.com]

The code is open source, so feel free to download it and compile your own version. I am, again, working on a new version with the OOP stuff you'd expect from an OOP language, just thought I'd share this version both as a lesson for myself, and just get this out there because I really think this program is useful for just about everyone. No matter how spaghetti-like the code is.

Windows will probably complain that it's not signed, click on "Advanced" and then "Run Anyway" (or something like that).
I don't have a PC that doesn't have .NET 4.7 installed, so you may need to install the .NET 4.7 Runtime, but I'm pretty sure that's included in Windows updates.

TheArk.zip has all the files you need to start using The Ark, just extract it and set an archive path and if you want set your GamerTag (case sensitive).
There's also a Virus Total link and of course the code itself if you're super paranoid and want to compile it yourself (requires .NET Framework 4.7.2 SDK).

If you choose to build it yourself, you need the Library folder to make sure the carnage reports are saved properly.
18 Comments
CMG 18 Jul @ 6:00pm 
Ok I haven’t tried it yet. Been chasing other issues with software
AquaDuck  [author] 1 Jun @ 1:16pm 
Did some more investigating, CE and H2 saves for me if I finish a game proper, H3 you can quit whenever.
AquaDuck  [author] 1 Jun @ 9:56am 
Actually yeah... Carnagereports aren't generated anymore for CE and H2... H3 works fine though
AquaDuck  [author] 31 May @ 5:55am 
Although I still haven't battle-tested the Windows version, please let me know if it crashes or in some other way doesn't work right.
AquaDuck  [author] 31 May @ 5:51am 
It should still work as well as before, although I found that you have to go into "My Files" a lot more often now than earlier versions of the game (for films/maps/modes files to be properly generated).
I had to take a break from the project to focus on other things, but have been working on a new update on and off. (It's going to be a big one)

Most of this "guide" is irrelevant with MCCArkiver, it does the same job in the backend (and more).
CMG 30 May @ 8:12pm 
Is this still working? Or did one of the recent updates break it?
AquaDuck  [author] 11 Jul, 2024 @ 4:02pm 
I ended up rewriting most stuff, but here it is:

MCC Arkiver [github.com]
AquaDuck  [author] 28 Jun, 2024 @ 3:31am 
Unfortunately 343 made it so you can't see films from previous seasonal updates, they says it's because of tag changes with new armor, skins, etc. but sometimes it may work, but usually it fails to start or doesn't show up at all. If you absolutelky need to watch it, you can downgrade the version using SteamDB Depot (personally never done it, but there are guides).

I'm working on a completely new version that's almost finished, it won't solve this problem unfortunately, but it saves more files (maps and modes which should work on any update), more exact map/mode names, a lot more stats, etc.
It's also going to be crossplatform with full Linux support and self-contained so no need to install any dependencies.
Currently rewriting the UI to make it work well with Steam Deck in gaming mode as well.
Sapphirush 7 Jun, 2024 @ 8:43pm 
Greater Ark can't seem to bring back my films from 2020. They show up in the archive and seem to successfully copy over to MCC's temporary files folder, but they won't appear in the in-game theater film selector. Am I doing something wrong? Or can I not restore files from that long ago?
Dino 5 Dec, 2020 @ 5:45am 
Anyway, really nice work man