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.