Skip to content

v0.15.1-grid-3 — safe hot-reload of override profiles

Choose a tag to compare

@jonnylitten jonnylitten released this 11 May 23:08
· 11 commits to feat/trigger-stick-mapping since this release

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>.ini into sdmc:/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.