diff --git a/desmume/src/mc.cpp b/desmume/src/mc.cpp index 1a6474536..6e525046b 100644 --- a/desmume/src/mc.cpp +++ b/desmume/src/mc.cpp @@ -1451,6 +1451,8 @@ u32 ADVANsCEne::convertDB(const char *in_filaname) u32 crc32 = 0; u32 reserved = 0; + lastImportErrorMessage = ""; + printf("Converting DB...\n"); if (getXMLConfig(in_filaname)) { @@ -1492,13 +1494,20 @@ u32 ADVANsCEne::convertDB(const char *in_filaname) } else { fclose(fp); return 0; } - //zero 28-apr-2013 - serial doesnt seem to be present anymore - //el_serial = el->FirstChildElement("serial"); - //if (!el_serial || fwrite(el_serial->GetText(), 1, 8, fp) != 8) - //{ - // fclose(fp); return 0; - //} - fwrite("nothere",1,8,fp); + el_serial = el->FirstChildElement("serial"); + + if(!el_serial) + { + lastImportErrorMessage = "Missing element. Did you use the right xml file? We need the RtoolDS one."; + fclose(fp); + return 0; + } + if (fwrite(el_serial->GetText(), 1, 8, fp) != 8) + { + lastImportErrorMessage = "Error writing output file"; + fclose(fp); return 0; + } + // CRC32 el_crc32 = el->FirstChildElement("files"); diff --git a/desmume/src/mc.h b/desmume/src/mc.h index 5dbc7a549..d72c71f0a 100644 --- a/desmume/src/mc.h +++ b/desmume/src/mc.h @@ -73,6 +73,7 @@ private: std::string urlVersion; std::string urlDat; bool getXMLConfig(const char *in_filaname); + public: ADVANsCEne() : saveType(0xFF), crc32(0), @@ -93,6 +94,7 @@ public: if(foundAsSerial) return "Serial"; return ""; } + std::string lastImportErrorMessage; }; diff --git a/desmume/src/windows/main.cpp b/desmume/src/windows/main.cpp index 0fb1f14b3..f30f861e1 100644 --- a/desmume/src/windows/main.cpp +++ b/desmume/src/windows/main.cpp @@ -5363,7 +5363,10 @@ DOKEYDOWN: MessageBox(hwnd,buffer,"DeSmuME",MB_OK|MB_ICONINFORMATION); } else - MessageBox(hwnd,"ADVANsCEne database was not successfully imported","DeSmuME",MB_OK|MB_ICONERROR); + { + MessageBox(hwnd,"ADVANsCEne database was not successfully imported.","DeSmuME",MB_OK|MB_ICONERROR); + if(advsc.lastImportErrorMessage != "") MessageBox(hwnd,advsc.lastImportErrorMessage.c_str(),"DeSmuME",MB_OK|MB_ICONERROR); + } NDS_UnPause(); return 0; }