From 97e9e52d34b47e1e3b498baadacc3dbdc6d600b7 Mon Sep 17 00:00:00 2001 From: Alexey Nurgaliev Date: Sat, 5 Aug 2023 16:20:13 +0300 Subject: [PATCH] virtual gamepads for atari2600, atari7800, lynx, jaguar, vb, 3do + updated virtual gamepad for nes (switched a and b) + updated virtual gamepad for segaSaturn (l and r buttons) --- data/emulator.js | 124 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 114 insertions(+), 10 deletions(-) diff --git a/data/emulator.js b/data/emulator.js index b459250..2039f45 100644 --- a/data/emulator.js +++ b/data/emulator.js @@ -2054,7 +2054,7 @@ class EmulatorJS { {id: 26, label: this.localization('CHANGE STATE SLOT')}, ]; } - if (['arcade', 'mame'].includes(this.getCore(true))) { + if (['arcade', 'mame'].includes(this.getControlScheme())) { for (const buttonIdx in buttons) { if (buttons[buttonIdx].id === 2) { buttons[buttonIdx].label = this.localization('INSERT COIN'); @@ -2493,17 +2493,70 @@ class EmulatorJS { }(this.config.VirtualGamepadSettings)) { info = this.config.VirtualGamepadSettings; } else if ("gba" === this.getControlScheme()) { - info = [{"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8},{"type":"button","text":"B","id":"b","location":"right","left":10,"top":70,"bold":true,"input_value":0},{"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2},{"type":"button","text":"L","id":"l","location":"left","left":3,"top":-100,"bold":true,"block":true,"input_value":10},{"type":"button","text":"R","id":"r","location":"right","right":3,"top":-100,"bold":true,"block":true,"input_value":11}]; + info = [ + {"type":"button","text":"B","id":"b","location":"right","left":10,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-90,"bold":true,"block":true,"input_value":10}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-90,"bold":true,"block":true,"input_value":11} + ]; } else if ("gb" === this.getControlScheme()) { - info = [{"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8},{"type":"button","text":"B","id":"b","location":"right","left":10,"top":70,"bold":true,"input_value":0},{"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2}]; - } else if (['vb', 'nes'].includes(this.getControlScheme())) { - info = [{"type":"button","text":"B","id":"b","location":"right","right":-10,"top":70,"bold":true,"input_value":0},{"type":"button","text":"A","id":"a","location":"right","right":60,"top":70,"bold":true,"input_value":8},{"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2}]; + info = [ + {"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8}, + {"type":"button","text":"B","id":"b","location":"right","left":10,"top":70,"bold":true,"input_value":0}, + {"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2} + ]; + } else if ('nes' === this.getControlScheme()) { + info = [ + {"type":"button","text":"B","id":"b","location":"right","right":75,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"A","id":"a","location":"right","right":5,"top":70,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2} + ]; } else if ('n64' === this.getControlScheme()) { - info = [{"type":"button","text":"B","id":"b","location":"right","left":-10,"top":95,"input_value":1,"bold":true},{"type":"button","text":"A","id":"a","location":"right","left":40,"top":150,"input_value":0,"bold":true},{"type":"zone","location":"left","left":"50%","top":"100%","joystickInput":true,"inputValues":[16, 17, 18, 19]},{"type":"zone","location":"left","left":"50%","top":"0%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":30,"top":-10,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"L","id":"l","block":true,"location":"top","left":10,"top":-40,"bold":true,"input_value":10},{"type":"button","text":"R","id":"r","block":true,"location":"top","right":10,"top":-40,"bold":true,"input_value":11},{"type":"button","text":"Z","id":"z","block":true,"location":"top","left":10,"bold":true,"input_value":12},{"fontSize":20,"type":"button","text":"CU","id":"cu","location":"right","left":25,"top":-65,"input_value":23},{"fontSize":20,"type":"button","text":"CD","id":"cd","location":"right","left":25,"top":15,"input_value":22},{"fontSize":20,"type":"button","text":"CL","id":"cl","location":"right","left":-15,"top":-25,"input_value":21},{"fontSize":20,"type":"button","text":"CR","id":"cr","location":"right","left":65,"top":-25,"input_value":20}]; + info = [ + {"type":"button","text":"B","id":"b","location":"right","left":-10,"top":95,"input_value":1,"bold":true}, + {"type":"button","text":"A","id":"a","location":"right","left":40,"top":150,"input_value":0,"bold":true}, + {"type":"zone","location":"left","left":"50%","top":"100%","joystickInput":true,"inputValues":[16, 17, 18, 19]}, + {"type":"zone","location":"left","left":"50%","top":"0%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":30,"top":-10,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"L","id":"l","block":true,"location":"top","left":10,"top":-40,"bold":true,"input_value":10}, + {"type":"button","text":"R","id":"r","block":true,"location":"top","right":10,"top":-40,"bold":true,"input_value":11}, + {"type":"button","text":"Z","id":"z","block":true,"location":"top","left":10,"bold":true,"input_value":12}, + {"fontSize":20,"type":"button","text":"CU","id":"cu","location":"right","left":25,"top":-65,"input_value":23}, + {"fontSize":20,"type":"button","text":"CD","id":"cd","location":"right","left":25,"top":15,"input_value":22}, + {"fontSize":20,"type":"button","text":"CL","id":"cl","location":"right","left":-15,"top":-25,"input_value":21}, + {"fontSize":20,"type":"button","text":"CR","id":"cr","location":"right","left":65,"top":-25,"input_value":20} + ]; } else if ("nds" === this.getControlScheme()) { - info = [{"type":"button","text":"X","id":"x","location":"right","left":40,"bold":true,"input_value":9},{"type":"button","text":"Y","id":"y","location":"right","top":40,"bold":true,"input_value":1},{"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8},{"type":"button","text":"B","id":"b","location":"right","left":40,"top":80,"bold":true,"input_value":0},{"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2},{"type":"button","text":"L","id":"l","location":"left","left":3,"top":-100,"bold":true,"block":true,"input_value":10},{"type":"button","text":"R","id":"r","location":"right","right":3,"top":-100,"bold":true,"block":true,"input_value":11}]; + info = [ + {"type":"button","text":"X","id":"x","location":"right","left":40,"bold":true,"input_value":9}, + {"type":"button","text":"Y","id":"y","location":"right","top":40,"bold":true,"input_value":1}, + {"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8}, + {"type":"button","text":"B","id":"b","location":"right","left":40,"top":80,"bold":true,"input_value":0}, + {"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-100,"bold":true,"block":true,"input_value":10}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-100,"bold":true,"block":true,"input_value":11} + ]; } else if ("snes" === this.getControlScheme()) { - info = [{"type":"button","text":"X","id":"x","location":"right","left":40,"bold":true,"input_value":9},{"type":"button","text":"Y","id":"y","location":"right","top":40,"bold":true,"input_value":1},{"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8},{"type":"button","text":"B","id":"b","location":"right","left":40,"top":80,"bold":true,"input_value":0},{"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]},{"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3},{"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2},{"type":"button","text":"L","id":"l","location":"left","left":3,"top":-100,"bold":true,"block":true,"input_value":10},{"type":"button","text":"R","id":"r","location":"right","right":3,"top":-100,"bold":true,"block":true,"input_value":11}]; + info = [ + {"type":"button","text":"X","id":"x","location":"right","left":40,"bold":true,"input_value":9}, + {"type":"button","text":"Y","id":"y","location":"right","top":40,"bold":true,"input_value":1}, + {"type":"button","text":"A","id":"a","location":"right","left":81,"top":40,"bold":true,"input_value":8}, + {"type":"button","text":"B","id":"b","location":"right","left":40,"top":80,"bold":true,"input_value":0}, + {"type":"dpad","location":"left","left":"50%","top":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-100,"bold":true,"block":true,"input_value":10}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-100,"bold":true,"block":true,"input_value":11} + ]; } else if (['segaMD', 'segaCD', 'sega32x'].includes(this.getControlScheme())) { info = [ {"type":"button","text":"A","id":"a","location":"right","right":145,"top":70,"bold":true,"input_value":9}, @@ -2538,10 +2591,61 @@ class EmulatorJS { {"type":"button","text":"Y","id":"y","location":"right","right":75,"top":0,"bold":true,"input_value":10}, {"type":"button","text":"Z","id":"z","location":"right","right":5,"top":0,"bold":true,"input_value":11}, {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, - {"type":"button","text":"L","id":"l","location":"center","left":-60,"top":-10,"bold":true,"input_value":12}, - {"type":"button","text":"R","id":"r","location":"center","left":120,"top":-10,"bold":true,"input_value":13}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-90,"bold":true,"block":true,"input_value":12}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-90,"bold":true,"block":true,"input_value":13}, {"type":"button","text":"Start","id":"start","location":"center","left":30,"fontSize":15,"block":true,"input_value":3} ]; + } else if ("atari2600" === this.getControlScheme()) { + info = [ + {"type":"button","text":"","id":"button1","location":"right","right":10,"top":70,"bold":true,"input_value":0}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + ]; + } else if ("atari7800" === this.getControlScheme()) { + info = [ + {"type":"button","text":"1","id":"button1","location":"right","right":75,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"2","id":"button2","location":"right","right":5,"top":70,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + ]; + } else if ("lynx" === this.getControlScheme()) { + info = [ + {"type":"button","text":"B","id":"button1","location":"right","right":75,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"A","id":"button2","location":"right","right":5,"top":70,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Opt 1","id":"option1","location":"center","left":-30,"fontSize":15,"block":true,"input_value":10}, + {"type":"button","text":"Opt 2","id":"option2","location":"center","left":90,"fontSize":15,"block":true,"input_value":11}, + {"type":"button","text":"Start","id":"start","location":"center","left":30,"fontSize":15,"block":true,"input_value":3} + ]; + } else if ("jaguar" === this.getControlScheme()) { + info = [ + {"type":"button","text":"A","id":"a","location":"right","right":145,"top":70,"bold":true,"input_value":8}, + {"type":"button","text":"B","id":"b","location":"right","right":75,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"C","id":"c","location":"right","right":5,"top":70,"bold":true,"input_value":1}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"Option","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Pause","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2} + ]; + } else if ("vb" === this.getControlScheme()) { + info = [ + {"type":"button","text":"B","id":"b","location":"right","right":75,"top":150,"bold":true,"input_value":0}, + {"type":"button","text":"A","id":"a","location":"right","right":5,"top":150,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"dpad","location":"right","left":"50%","right":"50%","joystickInput":false,"inputValues":[19,18,17,16]}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-90,"bold":true,"block":true,"input_value":10}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-90,"bold":true,"block":true,"input_value":11}, + {"type":"button","text":"Start","id":"start","location":"center","left":60,"fontSize":15,"block":true,"input_value":3}, + {"type":"button","text":"Select","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"input_value":2} + ]; + } else if ("3do" === this.getControlScheme()) { + info = [ + {"type":"button","text":"A","id":"a","location":"right","right":145,"top":70,"bold":true,"input_value":1}, + {"type":"button","text":"B","id":"b","location":"right","right":75,"top":70,"bold":true,"input_value":0}, + {"type":"button","text":"C","id":"c","location":"right","right":5,"top":70,"bold":true,"input_value":8}, + {"type":"dpad","location":"left","left":"50%","right":"50%","joystickInput":false,"inputValues":[4,5,6,7]}, + {"type":"button","text":"L","id":"l","location":"left","left":3,"top":-90,"bold":true,"block":true,"input_value":10}, + {"type":"button","text":"R","id":"r","location":"right","right":3,"top":-90,"bold":true,"block":true,"input_value":11}, + {"type":"button","text":"X","id":"select","location":"center","left":-5,"fontSize":15,"block":true,"bold":true,"input_value":2}, + {"type":"button","text":"P","id":"start","location":"center","left":60,"fontSize":15,"block":true,"bold":true,"input_value":3} + ]; } else { info = [ {"type":"button","text":"Y","id":"y","location":"right","left":40,"bold":true,"input_value":9},