int main(int argc, char *argv[]) { io_openlinkeddatafile(datafile); loadconfig(); initstuff(); mainloop(); saveconfig(); return 0; }
EXPORT bool asar_patch(const char * patchloc, char * romdata_, int buflen, int * romlen_) { if (!libdir) { // default to ./lib/ from caller's working directory (hopefully) libdir = "./lib/"; } if (buflen!=maxromsize) { romdata_r=(unsigned char*)malloc(maxromsize); memcpy((char*)romdata_r/*we just allocated this, it's safe to violate its const*/, romdata_, *romlen_); } else romdata_r=(unsigned char*)romdata_; romdata=(unsigned char*)malloc(maxromsize); memcpy(romdata, romdata_, *romlen_); resetdllstuff(); romlen=*romlen_; romlen_r=*romlen_; try { for (pass=0;pass<3;pass++) { initstuff(); assemblefile(patchloc, true); finishpass(); } } catch(errfatal&){} if (romdata_!=(char*)romdata_r) free((char*)romdata_r); if (buflen<romlen) error<errnull>(pass, "The given buffer is too small to contain the resulting ROM."); if (errored) { free(romdata); return false; } *romlen_=romlen; memcpy(romdata_, romdata, romlen); free(romdata); return true; }