Initial Settings Functionality - #1
Conversation
megabitt01
commented
Jan 13, 2026
- added JSON interface and settings.json
- added save/load functionality for spltiscreen settings (splitscreen enabled, use player1 profile, etc...)
- added save/load functionality for profile settings (armor customization, name, tag, etc...)
RoastCabose
left a comment
There was a problem hiding this comment.
I haven't downloaded these latest controller remapping changes, they look super promising. The work in general here on this PR is great, and it looks like there might simply be a new maintainer? Good to see, I was about to try and fork this myself.
I did see one bug, I couldn't get colors to apply to spartans in Halo 3. I haven't yet foudn the source of it, so I didn't label it in this review, but I'm pretty sure the bug predates this PR anyways.
Things I want to look into in the future is utilizing the detecting in game state, and loading game specific customizations.
I really appreciate all yall work, this is such a great utility, and these are some tasty changes for an upcoming Halo LAN bachelor party that would be way more annoying if we couldn't just use the PCs we already own lol.
| ImGui::EndDisabled(); | ||
|
|
||
| if (ImGui::Button("Load Profile")) { | ||
| if (ImGui::Button("Apply Profile")) { |
There was a problem hiding this comment.
I think this should be a more clear "Load Profile from Game", and then the tooltip I redid as "Loads current player profile; can only be used in a match!".
| } | ||
| if (ImGui::IsItemHovered()) | ||
| ImGui::SetTooltip("Use this in game!!!"); | ||
| if (ImGui::Button("Save Profile")) { |
There was a problem hiding this comment.
Correspondingly, I labeled this as "Save Profile to File" & added a tool tip that said "This will be loaded on next startup."
|
I also just realized that I started writing this review literally minutes after an update was pushed lmao. |
| if (state.Gamepad.wButtons & XINPUT_GAMEPAD_A) return CGamepadMapping::A; | ||
| if (state.Gamepad.wButtons & XINPUT_GAMEPAD_B) return CGamepadMapping::B; | ||
| if (state.Gamepad.wButtons & XINPUT_GAMEPAD_X) return CGamepadMapping::X; | ||
| if (state.Gamepad.wButtons & XINPUT_GAMEPAD_Y) return CGamepadMapping::Y; |
There was a problem hiding this comment.
This leaves out equipment/armor abilities/sprint binds, as well as all the default controls for stuff like vehicles.
|
This seems like some really good additions and fixes, especially with kirklandsig's changes being merged now that should mean I can use it on proton. However I don't have a windows pc to build based on your steps, so I have attempted to cross compile with a similar setup to what kadrim's AlphaRing #2 PR uses. It compiles successfully however actually running the game causes the mod to fail to load properly. I was able to successfully run kadrim's Linux PR previously. I am unsure if this is an issue of merging kirklandsig's changes with yours or a failure in my cross compile set-up. Would it be at all possible to provide an updated binary in your forks releases that was built on windows so I can check if the issue persists or if I setup my cross compilation wrong. Thanks. |
|
Where is your discord ? I cannot install your lastest fix https://github.com/thejackbitt/AlphaRing/tree/master-chief on linux (may be related to vcredit?) |
|
@softyoda I'm going to be honest, I forgot I raised an MR with the original repo. I don't know if this fork should be merged with main because the new UI is radically different from the original design. As far as the issue you're seeing, yes it probably is related to C++ Redistributable version. If you're on Linux. You'll need to download the 2015-2022 VS C++ Redistributable installer and install via Protontricks. Here is my Discord server (it looks like the old one got nuked). This one is actively maintained and moderated. |
* fix: fixed UI scaling issues * fix: resolved missing bindings issue
* fix: prevent debug menu flicker when holding F1 * added black bars H3, ODST, H4, H Reach * fix: HaloReach 2p loadout invisible in stretched splitscreen Root cause: the loadout menu's own layout-lookup function only ever recognized resolution values 0, 2 and 3 - any other value (including 1, used for fully-stretched no-black-bar splitscreen) fell through to "no layout", so the loadout screen never got built. Added a hook that makes resolution=1 reuse resolution=3's known-good layout instead. This also surfaced a pre-existing wiring gap: HaloReach's CModule was never given its EntrySet (passed nullptr), so none of its function hooks (including the new one) were ever actually installed - fixed by wiring in HaloReachEntrySet(). Also carries forward earlier changes from this investigation: - fix F1 debug menu mouse cursor not auto-showing, and background mouse/keyboard input being fed to ImGui when no menu is open - remove redundant player-count control from the splitscreen window (now set exclusively via the F4 Xbox menu) - live Splitscreen Config Editor (Game -> Patch -> haloreach) for testing config table values without rebuilding - HaloReach black-bar patch byte-length/resolution-value fixes and a new (disabled by default) vertical-split experiment patch * feat: safe, clearly-scoped black-bar removal for HaloReach splitscreen Replaces the three raw "Remove Black Bar1/2/3" checkboxes (Dev Tools -> haloreach) with two controls scoped by which player/slot they actually affect: - "Player 1 (Top, 2 or 3 Player)" - toggles the 2p and 3p top slots together, since they're the same shape either way. Both now write the validated x0=0/x1=1/resolution=1 combo (previously 0.05/0.95/res=3), matching the resolution=1 loadout fix from the previous commit. - "Player 2 (Bottom, 2 Player Only)" - only affects 2-player's bottom slot; disabled until Player 1 is also on, since the game's black-bar overlay painter only ever reads Player 1's bounds and can't visually remove Player 2's bar on its own. Auto-disables if Player 1 is turned back off, so it can't get stuck in that broken combination. Also renames the "Patch" window to "Dev Tools" (still under Game), matching its actual purpose better as it grows.