waves/public/assets/g/emulatorjs/data/controls.js
2025-04-09 17:11:14 -05:00

358 lines
17 KiB
JavaScript

let controls_ = "controller, keyboard\n";
let controls = [];
let keyMap;
let x = 0;
let buttons;
function checkLoaded() {
if (typeof(EJS_emulator) == "object") {
const end1 = Date.now();
console.log(`Load time: ${end1 - start1} ms`);
loadControls();
} else {
setTimeout(() => {
checkLoaded();
}, 20);
}
}
const start1 = Date.now();
checkLoaded();
function loadControls() {
const start = Date.now();
controlscheme = EJS_emulator.getControlScheme();
if (["nes", "gb"].includes(controlscheme)) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("snes" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 9, label: EJS_emulator.localization("X") },
{ id: 1, label: EJS_emulator.localization("Y") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
];
} else if ("n64" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("A") },
{ id: 1, label: EJS_emulator.localization("B") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("D-PAD UP") },
{ id: 5, label: EJS_emulator.localization("D-PAD DOWN") },
{ id: 6, label: EJS_emulator.localization("D-PAD LEFT") },
{ id: 7, label: EJS_emulator.localization("D-PAD RIGHT") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 12, label: EJS_emulator.localization("Z") },
{ id: 19, label: EJS_emulator.localization("STICK UP") },
{ id: 18, label: EJS_emulator.localization("STICK DOWN") },
{ id: 17, label: EJS_emulator.localization("STICK LEFT") },
{ id: 16, label: EJS_emulator.localization("STICK RIGHT") },
{ id: 23, label: EJS_emulator.localization("C-PAD UP") },
{ id: 22, label: EJS_emulator.localization("C-PAD DOWN") },
{ id: 21, label: EJS_emulator.localization("C-PAD LEFT") },
{ id: 20, label: EJS_emulator.localization("C-PAD RIGHT") },
];
} else if ("gba" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("nds" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 9, label: EJS_emulator.localization("X") },
{ id: 1, label: EJS_emulator.localization("Y") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 14, label: EJS_emulator.localization("Microphone") },
];
} else if ("vb" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("LEFT D-PAD UP") },
{ id: 5, label: EJS_emulator.localization("LEFT D-PAD DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT D-PAD LEFT") },
{ id: 7, label: EJS_emulator.localization("LEFT D-PAD RIGHT") },
{ id: 19, label: EJS_emulator.localization("RIGHT D-PAD UP") },
{ id: 18, label: EJS_emulator.localization("RIGHT D-PAD DOWN") },
{ id: 17, label: EJS_emulator.localization("RIGHT D-PAD LEFT") },
{ id: 16, label: EJS_emulator.localization("RIGHT D-PAD RIGHT") },
];
} else if (["segaMD", "segaCD", "sega32x"].includes(controlscheme)) {
buttons = [
{ id: 1, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 8, label: EJS_emulator.localization("C") },
{ id: 10, label: EJS_emulator.localization("X") },
{ id: 9, label: EJS_emulator.localization("Y") },
{ id: 11, label: EJS_emulator.localization("Z") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 2, label: EJS_emulator.localization("MODE") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("segaMS" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("BUTTON 1 / START") },
{ id: 8, label: EJS_emulator.localization("BUTTON 2") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("segaGG" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("BUTTON 1") },
{ id: 8, label: EJS_emulator.localization("BUTTON 2") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("segaSaturn" === controlscheme) {
buttons = [
{ id: 1, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 8, label: EJS_emulator.localization("C") },
{ id: 9, label: EJS_emulator.localization("X") },
{ id: 10, label: EJS_emulator.localization("Y") },
{ id: 11, label: EJS_emulator.localization("Z") },
{ id: 12, label: EJS_emulator.localization("L") },
{ id: 13, label: EJS_emulator.localization("R") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("3do" === controlscheme) {
buttons = [
{ id: 1, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 8, label: EJS_emulator.localization("C") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 2, label: EJS_emulator.localization("X") },
{ id: 3, label: EJS_emulator.localization("P") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("atari2600" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("FIRE") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("RESET") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
{ id: 10, label: EJS_emulator.localization("LEFT DIFFICULTY A") },
{ id: 12, label: EJS_emulator.localization("LEFT DIFFICULTY B") },
{ id: 11, label: EJS_emulator.localization("RIGHT DIFFICULTY A") },
{ id: 13, label: EJS_emulator.localization("RIGHT DIFFICULTY B") },
{ id: 14, label: EJS_emulator.localization("COLOR") },
{ id: 15, label: EJS_emulator.localization("B/W") },
];
} else if ("atari7800" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("BUTTON 1") },
{ id: 8, label: EJS_emulator.localization("BUTTON 2") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("PAUSE") },
{ id: 9, label: EJS_emulator.localization("RESET") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
{ id: 10, label: EJS_emulator.localization("LEFT DIFFICULTY") },
{ id: 11, label: EJS_emulator.localization("RIGHT DIFFICULTY") },
];
} else if ("lynx" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 10, label: EJS_emulator.localization("OPTION 1") },
{ id: 11, label: EJS_emulator.localization("OPTION 2") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("jaguar" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 1, label: EJS_emulator.localization("C") },
{ id: 2, label: EJS_emulator.localization("PAUSE") },
{ id: 3, label: EJS_emulator.localization("OPTION") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("pce" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("I") },
{ id: 0, label: EJS_emulator.localization("II") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("RUN") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("ngp" === controlscheme) {
buttons = [
{ id: 0, label: EJS_emulator.localization("A") },
{ id: 8, label: EJS_emulator.localization("B") },
{ id: 3, label: EJS_emulator.localization("OPTION") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("ws" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("X UP") },
{ id: 5, label: EJS_emulator.localization("X DOWN") },
{ id: 6, label: EJS_emulator.localization("X LEFT") },
{ id: 7, label: EJS_emulator.localization("X RIGHT") },
{ id: 13, label: EJS_emulator.localization("Y UP") },
{ id: 12, label: EJS_emulator.localization("Y DOWN") },
{ id: 10, label: EJS_emulator.localization("Y LEFT") },
{ id: 11, label: EJS_emulator.localization("Y RIGHT") },
];
} else if ("coleco" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("LEFT BUTTON") },
{ id: 0, label: EJS_emulator.localization("RIGHT BUTTON") },
{ id: 9, label: EJS_emulator.localization("1") },
{ id: 1, label: EJS_emulator.localization("2") },
{ id: 11, label: EJS_emulator.localization("3") },
{ id: 10, label: EJS_emulator.localization("4") },
{ id: 13, label: EJS_emulator.localization("5") },
{ id: 12, label: EJS_emulator.localization("6") },
{ id: 15, label: EJS_emulator.localization("7") },
{ id: 14, label: EJS_emulator.localization("8") },
{ id: 2, label: EJS_emulator.localization("*") },
{ id: 3, label: EJS_emulator.localization("#") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else if ("pcfx" === controlscheme) {
buttons = [
{ id: 8, label: EJS_emulator.localization("I") },
{ id: 0, label: EJS_emulator.localization("II") },
{ id: 9, label: EJS_emulator.localization("III") },
{ id: 1, label: EJS_emulator.localization("IV") },
{ id: 10, label: EJS_emulator.localization("V") },
{ id: 11, label: EJS_emulator.localization("VI") },
{ id: 3, label: EJS_emulator.localization("RUN") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 12, label: EJS_emulator.localization("MODE1") },
{ id: 13, label: EJS_emulator.localization("MODE2") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
];
} else {
buttons = [
{ id: 0, label: EJS_emulator.localization("B") },
{ id: 1, label: EJS_emulator.localization("Y") },
{ id: 2, label: EJS_emulator.localization("SELECT") },
{ id: 3, label: EJS_emulator.localization("START") },
{ id: 4, label: EJS_emulator.localization("UP") },
{ id: 5, label: EJS_emulator.localization("DOWN") },
{ id: 6, label: EJS_emulator.localization("LEFT") },
{ id: 7, label: EJS_emulator.localization("RIGHT") },
{ id: 8, label: EJS_emulator.localization("A") },
{ id: 9, label: EJS_emulator.localization("X") },
{ id: 10, label: EJS_emulator.localization("L") },
{ id: 11, label: EJS_emulator.localization("R") },
{ id: 12, label: EJS_emulator.localization("L2") },
{ id: 13, label: EJS_emulator.localization("R2") },
{ id: 14, label: EJS_emulator.localization("L3") },
{ id: 15, label: EJS_emulator.localization("R3") },
{ id: 19, label: EJS_emulator.localization("L STICK UP") },
{ id: 18, label: EJS_emulator.localization("L STICK DOWN") },
{ id: 17, label: EJS_emulator.localization("L STICK LEFT") },
{ id: 16, label: EJS_emulator.localization("L STICK RIGHT") },
{ id: 23, label: EJS_emulator.localization("R STICK UP") },
{ id: 22, label: EJS_emulator.localization("R STICK DOWN") },
{ id: 21, label: EJS_emulator.localization("R STICK LEFT") },
{ id: 20, label: EJS_emulator.localization("R STICK RIGHT") },
];
}
buttons.push({ id: 24, label: EJS_emulator.localization("QUICK SAVE STATE") }, { id: 25, label: EJS_emulator.localization("QUICK LOAD STATE") }, { id: 26, label: EJS_emulator.localization("CHANGE STATE SLOT") }, { id: 27, label: EJS_emulator.localization("FAST FORWARD") }, { id: 29, label: EJS_emulator.localization("SLOW MOTION") }, { id: 28, label: EJS_emulator.localization("REWIND") });
for (let i = 0; i < buttons.length; i++) {
let temparray = [];
temparray.push(Object.values(buttons[i])[1]);
temparray.push(keyLookup(Object.values(EJS_emulator.controls[0][Object.values(buttons[i])[0]])[0]));
controls.push(temparray);
}
for (i = 0; i < controls.length; i++) {
controls_ = controls_ + controls[i][0] + ", " + controls[i][1] + "\n";
}
console.log("loaded controls");
const end = Date.now();
console.log(`Execution time: ${end - start} ms`);
if(confirm("Do you want to see the controls?")) {
alert(controls_);
}
}
function keyLookup(controllerkey) {
keyMap = Object.entries(EJS_emulator.keyMap);
for (let i = 0; i < keyMap.length; i++) {
if (keyMap[i][0] == controllerkey) {
return keyMap[i][1];
}
}
return -1;
}