var shell = require("./shell"); var pathlib = require("path"); var os = require("os"); var fs = require("fs"); var EventEmitter = require("events"); exports.run = run; // Reset to default config async function cpconf(from, to) { to = pathlib.join(os.homedir(), to); from = pathlib.join("emuconf", from); await shell.safe("rm", "-rf", "--", to); await shell.safe("cp", "-r", "--", from, to); } async function run_visualboy(path, saves) { await cpconf("vbam", ".vbam"); await shell.safe("vbam", "-F", path); } async function run_desmume(path, saves) { await cpconf("desmume", ".config/desmume"); await shell.safe("desmume", path); } var emus = { nds: run_desmume, gba: run_visualboy, gbc: run_visualboy, }; async function run(path, cb) { var ext = pathlib.extname(path).substr(1); var fn = emus[ext]; if (!fn) throw new Error("Can't run games with extension "+ext+"."); shell.safe("mkdir", "-p", "--", path+".save"); await fn(path, path+".save"); }