Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

emulate.js 973B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var shell = require("./shell");
  2. var pathlib = require("path");
  3. var os = require("os");
  4. var fs = require("fs");
  5. var EventEmitter = require("events");
  6. exports.run = run;
  7. // Reset to default config
  8. async function cpconf(from, to) {
  9. to = pathlib.join(os.homedir(), to);
  10. from = pathlib.join("emuconf", from);
  11. await shell.safe("rm", "-rf", "--", to);
  12. await shell.safe("cp", "-r", "--", from, to);
  13. }
  14. async function run_visualboy(path, saves) {
  15. await cpconf("vbam", ".vbam");
  16. await shell.safe("vbam", "-F", path);
  17. }
  18. async function run_desmume(path, saves) {
  19. await cpconf("desmume", ".config/desmume");
  20. await shell.safe("desmume", path);
  21. }
  22. var emus = {
  23. nds: run_desmume,
  24. gba: run_visualboy,
  25. gbc: run_visualboy,
  26. };
  27. async function run(path, cb) {
  28. var ext = pathlib.extname(path).substr(1);
  29. var fn = emus[ext];
  30. if (!fn)
  31. throw new Error("Can't run games with extension "+ext+".");
  32. shell.safe("mkdir", "-p", "--", path+".save");
  33. await fn(path, path+".save");
  34. }