mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 19:26:43 +01:00
implement upkr unpacker in wasm, use to load compressed base
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import loaderUrl from "data-url:../../platform/loader.wasm";
|
||||
import platformUrl from "data-url:../../platform/platform.wasm";
|
||||
import baseUrl from "data-url:../../uw8-tool/base1.wasm";
|
||||
import baseUrl from "data-url:../../uw8-tool/base.upk";
|
||||
|
||||
async function loadWasm(url, imports) {
|
||||
let wasm_module = await (await fetch(url)).arrayBuffer();
|
||||
@@ -66,9 +66,13 @@ async function runModule(data) {
|
||||
let loadMem = loaderImport.env.memory.buffer;
|
||||
let loader = await loadWasm(loaderUrl, loaderImport);
|
||||
|
||||
let baseModule = await (await fetch(baseUrl)).arrayBuffer();
|
||||
let packedBaseModule = await (await fetch(baseUrl)).arrayBuffer();
|
||||
|
||||
if (dataU8Array[0] != 0) {
|
||||
new Uint8Array(loadMem).set(new Uint8Array(packedBaseModule));
|
||||
let baseEnd = loader.exports.uncompress(0, 0x84000);
|
||||
let baseModule = loadMem.slice(0x84000, baseEnd);
|
||||
|
||||
new Uint8Array(loadMem).set(dataU8Array);
|
||||
new Uint8Array(loadMem).set(new Uint8Array(baseModule), data.byteLength);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user