diff --git a/docs/gbaconv-web-frontend.js b/docs/gbaconv-web-frontend.js index ce4f9b2..266d52c 100644 --- a/docs/gbaconv-web-frontend.js +++ b/docs/gbaconv-web-frontend.js @@ -3,8 +3,7 @@ savpicker.addEventListener('change', myClick); function myClick(e){ // replace 4gs with srm // replace whatever the file name is with "savedata", c can't handle paths with spaces !!!! - // emscripten can't write to any directory other than the mounted one !!!! - var filename=e.target.files[0].name.replace(/.*\.(.*)/, "data/savedata.$1").replace(".4gs", ".srm").replace(".4gz", ".srm").replace(".44gbasav",".srm") + var filename=e.target.files[0].name.replace(/.*\.(.*)/, "home/web_user/savedata.$1").replace(".4gs", ".srm").replace(".4gz", ".srm").replace(".44gbasav",".srm") console.log(filename) const reader=new FileReader(); reader.readAsArrayBuffer(e.target.files[0]); @@ -18,51 +17,50 @@ function myClick(e){ for (let i=0; i<10; i++) { console.log(data[i]) } - FS.syncfs(true, function (err) { - // handle callback - console.log("syncfs error: "+err); - FS.mkdir('/data'); - FS.mount(IDBFS, {}, '/data'); - FS.writeFile("/"+filename, data, {flags:"w+"}) - Module.ccall( - "GBAConv", - "number", - ["string"], - ["/"+filename] - ) - FS.syncfs(false, function (err) { - // handle callback - console.log("syncFS 2 error: "+err); - if (filename.includes(".srm")){filename=filename.replace(".srm", ".sav")} else {filename=filename.replace(".sav", ".srm")} - let db; - const request = indexedDB.open("/data"); - request.onsuccess = (event) => { - db = event.target.result; - db.transaction("FILE_DATA").objectStore("FILE_DATA").get( "/"+filename ).onsuccess = (event) => { - var savedataObj=event.target.result.contents - savedataValues=Object.values(savedataObj) // array - //const buffer=new ArrayBuffer(romdataValues.length) - //const view = new Uint8Array(buffer); - const savedata8array = Uint8Array.from(savedataValues); - - const file = new File([savedata8array], e.target.files[0].name.replace(/\.\w\w\w/, "."+filename.slice(-3) ) ) - download(file) - //var req = indexedDB.deleteDatabase("/data"); - //req.onsuccess = function () { - // console.log("Deleted database successfully"); - //}; - //FS.unlink("/data/savedata.sav") - //FS.unlink("/data/savedata.srm") - //FS.unmount('/data'); - //FS.rmdir("/data") - if (typeof DebugOn === 'undefined') { - window.location.reload(); // I tried so hard to make this app work without reloading, but all of my attempts to delete the contents of memfs failed. - } - }; - }; - }) - - }); + //FS.mount(IDBFS, {}, '/data'); + FS.writeFile("/"+filename, data, {flags:"w+"}) + Module.ccall( + "GBAConv", + "number", + ["string"], + ["/"+filename] + ) + if (filename.includes(".srm")){filename=filename.replace(".srm", ".sav")} else {filename=filename.replace(".sav", ".srm")} + //const request = indexedDB.open("/data"); + //request.onsuccess = (event) => { + // db = event.target.result; + // db.transaction("FILE_DATA").objectStore("FILE_DATA").get( "/"+filename ).onsuccess = (event) => { + // var savedataObj=event.target.result.contents + // savedataValues=Object.values(savedataObj) // array + // //const buffer=new ArrayBuffer(romdataValues.length) + // //const view = new Uint8Array(buffer); + // const savedata8array = Uint8Array.from(savedataValues); + // + // const file = new File([savedata8array], e.target.files[0].name.replace(/\.\w\w\w/, "."+filename.slice(-3) ) ) + // download(file) + // //var req = indexedDB.deleteDatabase("/data"); + // //req.onsuccess = function () { + // // console.log("Deleted database successfully"); + // //}; + // //FS.unlink("/data/savedata.sav") + // //FS.unlink("/data/savedata.srm") + // //FS.unmount('/data'); + // //FS.rmdir("/data") + // if (typeof DebugOn === 'undefined') { + // window.location.reload(); // I tried so hard to make this app work without reloading, but all of my attempts to delete the contents of memfs failed. + // } + // }; + //}; + console.log("filename: "+filename) + //stream = FS.open(filename, "r") + //FS.close(stream) + savedata8array=FS.readFile('/'+filename) // is opts optional? + const file = new File([savedata8array], e.target.files[0].name.replace(/\.\w*$/, "."+filename.slice(-3) ) ) + download(file) + FS.unlink('/'+filename); + //if (typeof DebugOn === 'undefined') { + // window.location.reload(); // I tried so hard to make this app work without reloading, but all of my attempts to delete the contents of memfs failed. + //} } } diff --git a/docs/index.html b/docs/index.html index 42bac23..500ef34 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ GBA 4gz, 4gs, srm and sav Converter - +