mirror of
https://github.com/rommapp/romm.git
synced 2026-01-09 06:21:05 +08:00
get it to run in worker
This commit is contained in:
parent
4f5ae322b9
commit
995efedcbe
@ -48,8 +48,6 @@ lint:
|
||||
ignore:
|
||||
- linters: [ALL]
|
||||
paths:
|
||||
- frontend/assets/patcherjs/**
|
||||
- frontend/public/assets/patcherjs/patcher.worker.js
|
||||
- frontend/src/__generated__/**
|
||||
- docker/Dockerfile
|
||||
- docker/nginx/js/**
|
||||
|
||||
@ -1,33 +1,40 @@
|
||||
/// <reference lib="webworker" />
|
||||
|
||||
// Web Worker for ROM patching
|
||||
const PATCHER_BASE_PATH = "/assets/patcherjs";
|
||||
const CORE_SCRIPTS = [
|
||||
`${PATCHER_BASE_PATH}/modules/HashCalculator.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/BinFile.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.ips.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.ups.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.aps_n64.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.aps_gba.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.bps.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.rup.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.ppf.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.bdf.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.pmsr.js`,
|
||||
`${PATCHER_BASE_PATH}/modules/RomPatcher.format.vcdiff.js`,
|
||||
`${PATCHER_BASE_PATH}/RomPatcher.js`,
|
||||
];
|
||||
|
||||
// Load all patcher scripts
|
||||
let scriptsLoaded = false;
|
||||
|
||||
async function loadScripts() {
|
||||
if (scriptsLoaded) return;
|
||||
|
||||
self.BinFile =
|
||||
self.IPS =
|
||||
self.UPS =
|
||||
self.APS =
|
||||
self.APSGBA =
|
||||
self.BPS =
|
||||
self.RUP =
|
||||
self.PPF =
|
||||
self.BDF =
|
||||
self.PMSR =
|
||||
self.VCDIFF =
|
||||
null;
|
||||
|
||||
try {
|
||||
for (const script of CORE_SCRIPTS) {
|
||||
importScripts(script);
|
||||
}
|
||||
importScripts(
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/BinFile.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/HashCalculator.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.aps_gba.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.aps_n64.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.bdf.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.bps.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.ips.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.pmsr.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.ppf.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.rup.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.ups.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/modules/RomPatcher.format.vcdiff.js",
|
||||
"/node_modules/rom-patcher/rom-patcher-js/RomPatcher.js",
|
||||
);
|
||||
scriptsLoaded = true;
|
||||
return true;
|
||||
} catch (error) {
|
||||
|
||||
@ -217,7 +217,7 @@ async function patchRom() {
|
||||
const romArrayBuffer = await romFile.value.arrayBuffer();
|
||||
const patchArrayBuffer = await patchFile.value.arrayBuffer();
|
||||
|
||||
// Create and use Web Worker for patching
|
||||
// Create and use web worker for patching
|
||||
const worker = new Worker("/assets/patcherjs/patcher.worker.js");
|
||||
|
||||
const patchedResult = await new Promise<{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user