mirror of https://github.com/snes9xgit/snes9x.git
Ensure ROMId is safe
This commit is contained in:
parent
7a268ef91c
commit
b7f56efccc
18
memmap.cpp
18
memmap.cpp
|
@ -2424,6 +2424,7 @@ void CMemory::InitROM (void)
|
||||||
|
|
||||||
//// Show ROM information
|
//// Show ROM information
|
||||||
ROMId[4] = 0;
|
ROMId[4] = 0;
|
||||||
|
strcpy(ROMId, SafeString(ROMId).c_str());
|
||||||
|
|
||||||
sprintf(String, "\"%s\" [%s] %s, %s, %s, %s, SRAM:%s, ID:%s, CRC32:%08X",
|
sprintf(String, "\"%s\" [%s] %s, %s, %s, %s, SRAM:%s, ID:%s, CRC32:%08X",
|
||||||
ROMName, isChecksumOK ? "checksum ok" : ((Multi.cartType == 4) ? "no checksum" : "bad checksum"),
|
ROMName, isChecksumOK ? "checksum ok" : ((Multi.cartType == 4) ? "no checksum" : "bad checksum"),
|
||||||
|
@ -3500,6 +3501,23 @@ void CMemory::ApplyROMFixes (void)
|
||||||
Timings.RenderPos = 32;
|
Timings.RenderPos = 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string CMemory::SafeString(std::string s, bool allow_jis /*=false*/)
|
||||||
|
{
|
||||||
|
std::string safe;
|
||||||
|
for (int i = 0; i < s.length(); i++)
|
||||||
|
{
|
||||||
|
if (s[i] >= 32 && s[i] < 127) // ASCII
|
||||||
|
safe += s[i];
|
||||||
|
else
|
||||||
|
if (allow_jis && ROMRegion == 0 && ((uint8)s[i] >= 0xa0 && (uint8)s[i] < 0xe0)) // JIS X 201 - Katakana
|
||||||
|
safe += s[i];
|
||||||
|
else
|
||||||
|
safe += '_';
|
||||||
|
}
|
||||||
|
|
||||||
|
return safe;
|
||||||
|
}
|
||||||
|
|
||||||
// BPS % UPS % IPS
|
// BPS % UPS % IPS
|
||||||
|
|
||||||
// number decoding used for both BPS and UPS
|
// number decoding used for both BPS and UPS
|
||||||
|
|
1
memmap.h
1
memmap.h
|
@ -170,6 +170,7 @@ struct CMemory
|
||||||
bool8 match_nc (const char *);
|
bool8 match_nc (const char *);
|
||||||
bool8 match_id (const char *);
|
bool8 match_id (const char *);
|
||||||
void ApplyROMFixes (void);
|
void ApplyROMFixes (void);
|
||||||
|
std::string SafeString(std::string s, bool allow_jis = false);
|
||||||
void CheckForAnyPatch (const char *, bool8, int32 &);
|
void CheckForAnyPatch (const char *, bool8, int32 &);
|
||||||
|
|
||||||
void MakeRomInfoText (char *);
|
void MakeRomInfoText (char *);
|
||||||
|
|
Loading…
Reference in New Issue