diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index f2c1fc0a9..52a8124e0 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -1007,6 +1007,13 @@ bool DivEngine::load(unsigned char* f, size_t slen) { } SafeWriter* DivEngine::save() { + // fail if this is an YMU759 song + if (song.system==DIV_SYSTEM_YMU759) { + logE("cannot save YMU759 song!\n"); + lastError="YMU759 song saving is not supported"; + return NULL; + } + SafeWriter* w=new SafeWriter; w->init(); // write magic diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index aca3147da..853f1f8c0 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -2383,6 +2383,11 @@ int FurnaceGUI::save(String path) { return 1; } SafeWriter* w=e->save(); + if (w==NULL) { + lastError=e->getLastError(); + fclose(outFile); + return 3; + } #ifdef FURNACE_ZLIB_COMPRESS unsigned char zbuf[131072]; int ret;