Adjustments for use in the web frontend
This commit is contained in:
+36
-1
@@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
import { Constants } from "./Constants.js";
|
||||
import Constants from /***/"./Constants.js";
|
||||
|
||||
|
||||
|
||||
@@ -258,6 +258,41 @@ new class Core {
|
||||
});
|
||||
}
|
||||
|
||||
// Attempt to produce a ROM from an ISX debugger file
|
||||
fromISX(message) {
|
||||
|
||||
// Transfer the input data into WebAssembly memory
|
||||
let input = new Uint8Array(message.data);
|
||||
let inPtr = this.Realloc(0, input.length);
|
||||
let inMem = new Uint8Array(this.memory.buffer, inPtr, input.length);
|
||||
for (let x = 0; x < input.length; x++)
|
||||
inMem[x] = input[x];
|
||||
|
||||
// Attempt to decode the ISX file as a ROM
|
||||
let outPtr = this.FromISX(inPtr, input.length);
|
||||
this.Realloc(inPtr, 0);
|
||||
|
||||
// The data is not an ISX file
|
||||
if (outPtr == 0) {
|
||||
this.dom.postMessage({ promised: true, data: null });
|
||||
return;
|
||||
}
|
||||
|
||||
// Transfer the decoded ROM from WebAssembly memory
|
||||
let output = new Uint8Array(this.GetISXLength(outPtr));
|
||||
let outMem = new Uint8Array(this.memory.buffer,
|
||||
this.GetISXROM(outPtr), output.length);
|
||||
for (let x = 0; x < output.length; x++)
|
||||
output[x] = outMem[x];
|
||||
this.Realloc(outPtr, 0);
|
||||
|
||||
// Notify DOM thread
|
||||
this.dom.postMessage({
|
||||
promised: true,
|
||||
data : output.buffer
|
||||
}, [ output.buffer ]);
|
||||
}
|
||||
|
||||
// Specify anaglyph colors
|
||||
setAnaglyph(message) {
|
||||
this.SetAnaglyph(message.sim, message.left, message.right);
|
||||
|
||||
Reference in New Issue
Block a user