Another cause of mysterious core-specific malfunctions upon updating (especially if you update infrequently, as I do) is changes in the config bits for the core. These generally correspond to changes in the number, order, or defaults of the core-specific configuration options. The framework isn't smart enough to migrate these when changes are made in the core (and I know that seems like a simple problem to solve, but I'm telling you there are engineers who legitimately have nightmares about configuration migration going wrong).
In other words, you might try going right once from the core menu and selecting "Reset settings" before loading a ROM and see if that fixes it. If so, your best bet is probably to then "Save settings" and re-apply any of your personalized tweaks afterward.
If that's too scary, maybe drill into the "Input Options" submenu and see if any of the settings there seem surprising (most of them should be "Disabled"/"Off"/"None"/"No" unless you know why they shouldn't be).