Releases: jonnylitten/MissionControl-GRID-edition
v0.15.2-grid-1 — rebased on upstream 0.15.2 (firmware 22.5.0)
Maintenance release. Rebased the trigger-stick-mapping feature on top of ndeadly/MissionControl 0.15.2, which adds support for Switch firmware 22.5.0 and bumps the Atmosphère requirement to ≥ 1.11.2.
What's new
- Firmware 22.5.0 support (inherited from upstream).
- Updated Atmosphère-libs submodule pin.
Feature surface unchanged
Same configurable analog-trigger → right-stick mapping shipped in v0.15.1-grid-3, including the safe background-thread hot-reload of per-title/per-controller override files. Grid Autosport still works out of the box.
Install
Drop the contents of the zip onto your SD card root (overwriting /atmosphere/contents/010000000000bd00/), reboot. If you're upgrading from grid-3, only atmosphere/contents/010000000000bd00/exefs.nsp needs replacing — your config files don't change.
Atmosphère 1.11.2 or later is required. Older Atmosphère will crash on boot under firmware 22.5.0+.
v0.15.2-grid-1-beta1 — multi-controller (rebased on upstream 0.15.2)
Beta build on the new v0.15.2-grid-1 base. Adds opt-in for Xbox One (BR/EDR Bluetooth), DualShock 3, and DualSense — code is untested on hardware.
If you only use a DS4, stick with grid-1 — that one is hardware-verified. This beta is for community testers with the additional controllers.
Same feature set as the previous beta, just rebased on top of upstream 0.15.2 (firmware 22.5.0 / Atmosphère 1.11.2 support).
v0.15.1-grid-3 — safe hot-reload of override profiles
Replaces the broken v0.15.1-grid-2 with a properly-engineered hot-reload of per-title and per-controller override files.
What's new vs. grid-1
- Safe hot-reload. Drop a new
<program-id>.iniintosdmc:/config/MissionControl/titles/and the mapping takes effect on the next time you launch that game — no reboot. Same for per-controller files.
Everything else is identical to grid-1.
What was wrong with grid-2
That release drove the rescan from inside the per-packet bluetooth input path and used std::mutex instead of Atmosphere's os::SdkMutex. Result: intermittent mc_mitm fatal_errors (result code 0xFFD) on boot and during normal use. Don't install grid-2.
How grid-3 fixes it
A dedicated low-priority background thread waits on the existing mcmitm_process_monitor process-switch event and re-runs the directory scan there. All filesystem I/O happens off the input path. State is protected by os::SdkMutex (matching the rest of mc_mitm's threading conventions). Hardware-verified on DS4 — clean cold boot, no faults during gameplay, and the hot-reload demonstrably picks up new ini files on title switch.
Install
Drop the contents of the zip onto your SD card root (overwriting /atmosphere/contents/010000000000bd00/), reboot once to load the new binary, and from there new game profiles can be dropped in live.
If you're on grid-1, only atmosphere/contents/010000000000bd00/exefs.nsp needs replacing — your config files don't change.
v0.15.1-grid-2 — DO NOT INSTALL (hot-reload panic regression)
The hot-reload feature introduced here can cause an Atmosphere fatal error / mc_mitm crash on first cold boot (mc_mitm program id 0100000000000bd00, result code 0x0FFD, module 509). Suspected cause: fs::OpenDirectory being called from the Bluetooth input thread, plus the use of std::mutex instead of os::SdkMutex in sysmodule context.
A revised hot-reload implementation is in progress (background thread on GetProcessSwitchEvent, Atmosphere-native mutex). Until then, please use grid-1 — the only thing you give up is having to reboot once when you add a new game profile.
The grid-1 release is hardware-verified and unaffected.
v0.15.1-grid-1 — analog trigger fork
First public build of the analog-trigger fork — a one-feature add on top of ndeadly/MissionControl 0.15.1 that lets you map the analog triggers of a Bluetooth controller onto the right stick's Y axis. Useful for any game that reads throttle / brake off the right stick analog rather than from ZR/ZL — e.g. Grid Autosport.
Works out of the box for Grid Autosport
The release ships with a per-title profile for Grid (config/MissionControl/titles/0100dc800a602000.ini), so analog throttle/brake on the right-stick Y is enabled the moment you reboot. Every other game falls through to stock MissionControl behaviour.
Highlights
- New
[trigger_map]section inmissioncontrol.ini(mode = rstick_y_split). - Per-title overrides at
sdmc:/config/MissionControl/titles/<programID>.ini. - Per-controller overrides at
sdmc:/config/MissionControl/controllers/<MAC>.ini. - Optional "physical right-stick Y → digital ZR/ZL" mode for gear shifts on the same thumb.
- Defaults are conservative (
mode = offglobal) so games other than Grid behave exactly like vanilla MissionControl.
Status
- Hardware-tested: DualShock 4 (via a GameSir G8 Galileo Plus in handheld mode).
- All other controllers pass through to stock MissionControl behaviour. PRs welcome to opt them in.
Install
- Download the
.zipbelow, merge its contents onto your Switch's SD card root (overwriting/atmosphere/contents/010000000000bd00/). - Reboot.
- Launch Grid — that's it. To enable for other games, drop a per-title file into
sdmc:/config/MissionControl/titles/; see the README for the schema.
v0.15.1-grid-1-beta1 — multi-controller (community testing wanted)
Beta build — community testing wanted. Identical to v0.15.1-grid-1 plus opt-in for three additional controllers.
What's different
- Xbox One (BR/EDR Bluetooth, not Series X/S) — analog triggers wired to the trigger-map post-hook.
- DualShock 3 — same.
- DualSense (PS5) — same. Both report formats (0x01 and 0x31) covered.
The DS4 path is unchanged from the stable release. If you only use a DS4, stick with v0.15.1-grid-1 — that one is hardware-verified, this one is best-effort code I haven't been able to test.
What I'd love feedback on
If you have any of Xbox One BT, DS3, or DualSense, I'd appreciate a sanity check that:
- Vanilla behaviour still works. Pair the controller, launch a game other than Grid Autosport (which has a bundled override). Triggers should behave like ZR/ZL exactly the way upstream MissionControl does.
- Grid Autosport works. Launch Grid. Pulling RT should rev the throttle (right stick deflects up), LT should brake. Pushing the right stick up/down by hand should fire ZR/ZL for gear shifts.
- Anything weird that I haven't thought of.
Comments welcome here or wherever you saw the link.
Install
Same as the stable release — drop the zip onto your SD card, reboot, launch Grid. No ini editing required for the default Grid setup.
If you've already installed v0.15.1-grid-1, just overwrite atmosphere/contents/010000000000bd00/exefs.nsp with the one from this zip — config files don't need to change.
Known caveat
Xbox Series X/S controllers use a different protocol (BLE) than Xbox One BT — vanilla MissionControl doesn't support them today and this fork doesn't change that. If your "Xbox controller" is a Series X/S, this build won't help. Older Xbox One S / Elite 2 / Adaptive controllers connecting via BR/EDR Bluetooth should be in scope.