sync sound registers to sound thread

This commit is contained in:
2022-03-07 09:35:11 +01:00
parent 2033f9a172
commit 780caf965a
4 changed files with 61 additions and 5 deletions

View File

@@ -8,8 +8,8 @@ class AudioNode extends AudioWorkletNode {
}
}
let U8 = (d) => new Uint8Array(d);
let U32 = (d) => new Uint32Array(d);
let U8 = (...a) => new Uint8Array(...a);
let U32 = (...a) => new Uint32Array(...a);
export default function MicroW8(screen, config = {}) {
if(!config.setMessage) {
@@ -272,8 +272,12 @@ export default function MicroW8(screen, config = {}) {
instance.exports.upd();
}
platform_instance.exports.endFrame();
let soundRegisters = new ArrayBuffer(32);
U8(soundRegisters).set(U8(memory.buffer, 80, 32));
audioNode.port.postMessage(soundRegisters, [soundRegisters]);
let palette = U32(memory.buffer.slice(0x13000, 0x13000 + 1024));
let palette = U32(memory.buffer, 0x13000, 1024);
for (let i = 0; i < 320 * 240; ++i) {
buffer[i] = palette[memU8[i + 120]] | 0xff000000;
}