Skip to content

Burnt-o/mcc-cgb-dumper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mcc-cgb-dumper

Halo: The Master Chief Collection (aka MCC) is a PC game with a multiplayer custom-game browser (aka CGB) that looks something like this. The goal of this tool is to turn that custom-game list into computer-readable json data like this (aka dumping).

This might be useful for say, hooking this data up into a discord bot or some other web-api so users could easily check if there are any custom-games they're interested in playing without having to go boot up MCC themselves. But that is a seperate project.

How's it work?

We use some simple dll injection to have our code run inside the MCC process, this makes life a lot easier. To force refreshes, we simply call a MCC defined function that does just that. SafetyHook is used to attach to the MCC function that actually loads in the CGB data - letting it run first obviously then telling our AutoDumper thread to queue a dump. The dumping itself just involves parsing the Array of CustomGameInfo objects, which to be fair, it took a tad of reverse engineering to figure out the structure there (and particularly how MCC does it's short-string-optimizations - I didn't even know that was a thing before this project). Pointer data is built in at the moment so any MCC updates will break this tool until I get around to updating it.

Includes: SafetyHook, Plog, json, date.h

How do I use it?

This tool needs MCC to be running with EAC disabled - unfortunately EAC disabled mode also disables the CGB. So first we need to fix this: copy the easyanticheat_xXX.dll's to "%MCCinstalldir%/easyanticheat". Make sure to back them up for when you want to play with EAC on.

Boot up MCC and navigate to the CGB menu. Inject mcc-cgb-dumper with either the provided injector or any dll injector of your choice. A console will open up, if initialization is successful then you should see a list of commands you can enter, such as forcing a refresh or setting up a timer to automatically refresh the CGB every however-many seconds. Whenever the CGB is refreshed, the data will be automatically dumped to a json file in the injector's directory, named "CustomGameBrowser.json". You can change this path with set_dump_dir.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages