From 42611d05bb30740c8ffa382374676edd5e066cf2 Mon Sep 17 00:00:00 2001 From: Madhav Kanbur Date: Thu, 14 Jan 2021 20:28:26 +0530 Subject: [PATCH] GetSavestateName : Archive support * Construct ssname from srampath (since rompath has archive name) NOTE: In general, archive name != rom file name !!!!!!!!!! Signed-off-by: Madhav Kanbur --- src/frontend/Util_ROM.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/frontend/Util_ROM.cpp b/src/frontend/Util_ROM.cpp index 62baebb8..66d46d52 100644 --- a/src/frontend/Util_ROM.cpp +++ b/src/frontend/Util_ROM.cpp @@ -570,15 +570,22 @@ void GetSavestateName(int slot, char* filename, int len) } else { - int l = strlen(ROMPath[ROMSlot_NDS]); + char *rompath; + QString _filename(ROMPath[ROMSlot_NDS]); + if(_filename.endsWith(".nds") || _filename.endsWith(".srl") || _filename.endsWith(".dsi")) + rompath = ROMPath[ROMSlot_NDS]; + else + rompath = SRAMPath[ROMSlot_NDS]; // If archive, construct ssname from sram file + + int l = strlen(rompath); pos = l; - while (ROMPath[ROMSlot_NDS][pos] != '.' && pos > 0) pos--; + while (rompath[pos] != '.' && pos > 0) pos--; if (pos == 0) pos = l; // avoid buffer overflow. shoddy if (pos > len-5) pos = len-5; - strncpy(&filename[0], ROMPath[ROMSlot_NDS], pos); + strncpy(&filename[0], rompath, pos); } strcpy(&filename[pos], ".ml"); filename[pos+3] = '0'+slot;