diff --git a/source/ngc/filebrowser.cpp b/source/ngc/filebrowser.cpp index 7bf2e64..6849a2f 100644 --- a/source/ngc/filebrowser.cpp +++ b/source/ngc/filebrowser.cpp @@ -477,10 +477,15 @@ int BrowserLoadFile(int method) StripExt(ROMFilename, browserList[browser.selIndex].filename); ROMLoaded = LoadVBAROM(method); - inSz = false; if (!ROMLoaded) { + if(inSz) + { + browser.selIndex = 0; + BrowserChangeFolder(method); + } + ErrorPrompt("Error loading ROM!"); } else diff --git a/source/ngc/gcunzip.cpp b/source/ngc/gcunzip.cpp index d1aa198..ae54264 100644 --- a/source/ngc/gcunzip.cpp +++ b/source/ngc/gcunzip.cpp @@ -265,7 +265,7 @@ typedef struct _SzFileInStream } SzFileInStream; // 7zip error list -static char szerrormsg[][50] = { +static char szerrormsg[][100] = { "File is corrupt.", // 7z: Data error "Archive contains too many files.", // 7z: Out of memory "File is corrupt (CRC mismatch).", // 7z: CRC Error @@ -273,7 +273,7 @@ static char szerrormsg[][50] = { "File is corrupt.", // 7z: Fail "Failed to read file data.", // 7z: Data read failure "File is corrupt.", // 7z: Archive error - "File uses too high of compression settings.", // 7z: Dictionary too large + "File uses too high of compression settings (dictionary size is too large).", // 7z: Dictionary too large }; static SZ_RESULT SzRes; @@ -451,7 +451,7 @@ int SzParse(char * filepath, int method) ResetBrowser(); // add '..' folder in case the user wants exit the 7z - strncpy(browserList[0].displayname, "..", 2); + sprintf(browserList[0].displayname, "Up One Level"); browserList[0].isdir = 1; browserList[0].offset = fileoff; browserList[0].length = filelen; @@ -499,6 +499,8 @@ int SzParse(char * filepath, int method) } } + CancelAction(); + // close file switch (method) { diff --git a/source/sz/7zDecode.c b/source/sz/7zDecode.c index 12198ee..a120724 100644 --- a/source/sz/7zDecode.c +++ b/source/sz/7zDecode.c @@ -236,7 +236,7 @@ SZ_RESULT SzDecode2(const CFileSize *packSizes, const CFolder *folder, if (state.Dictionary == 0) { allocMain->Free(state.Probs); - return SZE_OUTOFMEMORY; + return SZE_OUTOFMEMORYDIC; } } LzmaDecoderInit(&state);