From: notaz Date: Sun, 10 Sep 2023 19:06:56 +0000 (+0300) Subject: libretro: allow unlimited cheat length X-Git-Tag: r24~158 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e93efc0aa8dd1666f485663199cd0dbf8d10f1c;p=pcsx_rearmed.git libretro: allow unlimited cheat length notaz/pcsx_rearmed#306 --- diff --git a/frontend/libretro.c b/frontend/libretro.c index b1af9f15..f275ca32 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -991,12 +991,13 @@ void retro_cheat_reset(void) void retro_cheat_set(unsigned index, bool enabled, const char *code) { - char buf[256]; - int ret; + int ret = -1; + char *buf; - // cheat funcs are destructive, need a copy.. - strncpy(buf, code, sizeof(buf)); - buf[sizeof(buf) - 1] = 0; + // cheat funcs are destructive, need a copy... + buf = strdup(code); + if (buf == NULL) + goto finish; //Prepare buffered cheat for PCSX's AddCheat fucntion. int cursor = 0; @@ -1022,10 +1023,12 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) else ret = AddCheat("", buf); +finish: if (ret != 0) SysPrintf("Failed to set cheat %#u\n", index); else if (index < NumCheats) Cheats[index].Enabled = enabled; + free(buf); } // just in case, maybe a win-rt port in the future?