Sounds interesting! I'm all for getting SoF working better.
I did notice I left a quickie hack in the code that should be cleaned up.
This line...
Code:
size_t len = strlen(emu->lastName);
...should be moved up to this block, which should be changed to refer to it...
Code:
char code = emu->lastName[1];
+ size_t len = strlen(emu->lastName);
- char* sep = (char*)memchr(&emu->lastName[2], '=', 10);
+ char* sep = (char*)memchr(&emu->lastName[2], '=', len - 2);
uint32 ofs;
This prevents reading beyond the end of lastName in case it's fewer than 10 characters including the null.