This means if I split the save data based on what the card reports, it can generate filenames that don't match what the MCP expects based on the game disc it booted. I expect the game itself to look on the memory card for the correct codes so it's literally just the filename that is wrong.
Minimal evidence suggests only F-Zero GX so far is affected. Fix should be to just maintain a static mapping table from memory card to disc; on a match use the replacement for any filenames.
Based on https://github.com/emukidid/swiss-gc/blob/59218b94a16b3690e9a2e32426e2d4925f032e77/cube/swiss/source/nkit.c#L770-L773 F-Zero GX apparently reports its combined game and publisher code as
GFZP01
yet my memory card shows the save data usesGFZP8P
.This means if I split the save data based on what the card reports, it can generate filenames that don't match what the MCP expects based on the game disc it booted. I expect the game itself to look on the memory card for the correct codes so it's literally just the filename that is wrong.
Minimal evidence suggests only F-Zero GX so far is affected. Fix should be to just maintain a static mapping table from memory card to disc; on a match use the replacement for any filenames.