Nur für den Hinweis, hier ist der Scanner-Code, die ich verwendet habe
class MemoryScanner {
constructor(target) {
this.set = new Set();
this.target = target;
}
search(value) {
let target = this.target, length = target.length, set = this.set;
for (let i = 0; i < length; i++) {
if (target[i] === value) {
set.add(i);
}
}
}
search2(value1, value2) {
let target = this.target, length = target.length, set = this.set;
for (let i = 0; i < length; i++) {
if (target[i] === value1 && target[i + 1] === value2) {
set.add(i);
}
}
}
search4(value1, value2, value3, value4) {
let target = this.target, length = target.length, set = this.set;
for (let i = 0; i < length; i++) {
if (target[i + 0] === value1 &&
target[i + 1] === value2 &&
target[i + 2] === value3 &&
target[i + 3] === value4) {
set.add(i);
}
}
}
search8(value1, value2, value3, value4, value5, value6, value7, value8) {
let target = this.target, length = target.length, set = this.set;
for (let i = 0; i < length; i++) {
if (target[i + 0] === value1 &&
target[i + 1] === value2 &&
target[i + 2] === value3 &&
target[i + 3] === value4 &&
target[i + 4] === value5 &&
target[i + 5] === value6 &&
target[i + 6] === value7 &&
target[i + 7] === value8) {
set.add(i);
}
}
}
intersect(value) {
let target = this.target, length = target.length, set = this.set;
for (let index of this.set) {
if (target[index] !== value) {
set.delete(index)
}
}
}
intersect2(value1, value2) {
let target = this.target, length = target.length, set = this.set;
for (let index of this.set) {
if (target[index] !== value1 || target[index + 1] !== value2) {
set.delete(index)
}
}
}
intersect4(value1, value2, value3, value4) {
let target = this.target, length = target.length, set = this.set;
for (let index of this.set) {
if (target[index + 0] !== value1 ||
target[index + 1] !== value2 ||
target[index + 2] !== value3 ||
target[index + 3] !== value4) {
set.delete(index)
}
}
}
intersect8(value1, value2, value3, value4, value5, value6, value7, value8) {
let target = this.target, length = target.length, set = this.set;
for (let index of this.set) {
if (target[index + 0] !== value1 ||
target[index + 1] !== value2 ||
target[index + 2] !== value3 ||
target[index + 3] !== value4 ||
target[index + 4] !== value5 ||
target[index + 5] !== value6 ||
target[index + 6] !== value7 ||
target[index + 7] !== value8) {
set.delete(index)
}
}
}
}
Ich war auf der Suche nach https: //archive.org/details/msdos_One_Must_Fall_2097_1994 Es hat diese Variablen auf Fensterobjekt veröffentlicht – Lu4
@ Lu4 Ich habe das Gefühl, dass neuere Versionen von Emscripten nicht alle diese Variablen auf den globalen Bereich, nur das Modul Objekt (/ Funktion, wenn Sie Verwenden Sie die Option MODULARIZE). –
Ok, ich habe einen Kommentar zu Ihrer Information hinterlassen (anybodies) – Lu4