I actually found what may be the single one of these changes that did have a change in game! Finding the exact version, and then the exact commit that introduced the regression was a little...
Followers of our changelogs may have gotten rather bored of the repetitive line “Code cleanup. No expected changes in games”, but this is the explanation.
I actually found what may be the single one of these changes that did have a change in game! Finding the exact version, and then the exact commit that introduced the regression was a little challenging owing to the massive number of changes in that commit to master, but to their credit the Ryujinx team implemented a fix very quickly (less than 24 hours between discovery on our end and a new version being released by the Ryujinx team).
For anyone curious, they added in a check that an int parse returned successfully, but sometimes (and in one game I'm involved with through a fan project) that function is called with a null pointer instead of a string. You can't parse a null pointer, so with the check in place that function call failed, but without the check it just parsed it as zero and it was fine. Was an easy fix for them, they just had to check "did the int parse correctly, or was the argument a null pointer" instead of just checking if the parse succeeded.
I actually found what may be the single one of these changes that did have a change in game! Finding the exact version, and then the exact commit that introduced the regression was a little challenging owing to the massive number of changes in that commit to master, but to their credit the Ryujinx team implemented a fix very quickly (less than 24 hours between discovery on our end and a new version being released by the Ryujinx team).
For anyone curious, they added in a check that an int parse returned successfully, but sometimes (and in one game I'm involved with through a fan project) that function is called with a null pointer instead of a string. You can't parse a null pointer, so with the check in place that function call failed, but without the check it just parsed it as zero and it was fine. Was an easy fix for them, they just had to check "did the int parse correctly, or was the argument a null pointer" instead of just checking if the parse succeeded.