|
123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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");
- }
|