\n
A
\n
B
\n
X
\n
Empty
';
- } else _0x3360eb['innerHTML'] = '
Empty
';
- }, function() {});
- }
- return !0x1;
- }), 0x2 === _0x3360eb && _0x1093f4['call'](_0xa88a13, _0x4e898a, 'click', function(_0x395c73) {
- _0x378b5c['quickSaveState'](), _0x2593da['contextMenu']['style']['display'] = 'none';
- }), 0x3 === _0x3360eb && _0x1093f4['call'](_0xa88a13, _0x4e898a, 'click', function(_0x124f69) {
- _0x378b5c['quickLoadState'](), _0x2593da['contextMenu']['style']['display'] = 'none';
- });
- }), _0x1093f4['call'](_0xa88a13, _0xa88a13['elements']['container'], 'savestate', function(_0x25b541) {
- var _0x2c1832 = _0x25b541['detail']['state'];
- if (_0x1e2c68['function'](_0xa88a13['config']['onsavestate'])) _0xa88a13['config']['onsavestate']['call'](null, {
- 'screenshot': _0x25b541['detail']['screenshot'],
+ _0x1093f4.call(_0xa88a13, _0xa88a13.elements.container, 'savestate', function(_0x25b541) {
+ var _0x2c1832 = _0x25b541.detail.state;
+ if (_0x1e2c68.function(_0xa88a13.config.onsavestate)) _0xa88a13.config.onsavestate.call(null, {
+ 'screenshot': _0x25b541.detail.screenshot,
'state': _0x2c1832
});
else {
var _0x2b5fc8 = new Blob([_0x2c1832]),
- _0x152605 = _0xa88a13['startName']['split']('/')['pop']()['split']('.'),
- _0x51d471 = _0x152605['slice'](0x0, _0x152605['length'] - 0x1)['join']('.')
- if (window.EJS_gameName) {
- var _0x51d471 = window.EJS_gameName
+ _0x152605 = _0xa88a13.startName.split('/').pop().split('.'),
+ _0x51d471 = _0x152605.slice(0x0, _0x152605.length - 0x1).join('.')
+ if (typeof _0xa88a13.gameName == 'string') {
+ var _0x51d471 = _0xa88a13.gameName
}
- var _0x49f6b6 = _0x51d471 ? '' ['concat'](_0x51d471, '.state') : 'game.state';
+ var _0x49f6b6 = _0x51d471 ? '' .concat(_0x51d471, '.state') : 'game.state';
_0x4e4ca6()(_0x2b5fc8, _0x49f6b6);
}
- _0xa88a13['elements']['container']['focus']();
+ _0xa88a13.elements.container.focus();
});
- _0xa88a13['game']['stateloadField'] = _0x428003('input'), _0xa88a13['game']['stateloadField']['type'] = 'file', _0xa88a13['game']['stateloadField']['onchange'] = function _0x17edbf(_0xcd4599) {
- var _0xfd246e, _0x3fdd71 = _0xcd4599['target']['files'];
- _0x3fdd71['length'] > 0x0 && ((_0xfd246e = new FileReader())['file_name'] = _0x3fdd71[0x0]['name'], _0xfd246e['onload'] = function() {
- var _0xa88a13 = new Uint8Array(_0xfd246e['result']);
+ _0xa88a13.game.stateloadField = _0x428003('input'), _0xa88a13.game.stateloadField.type = 'file', _0xa88a13.game.stateloadField.onchange = function _0x17edbf(_0xcd4599) {
+ var _0xfd246e, _0x3fdd71 = _0xcd4599.target.files;
+ _0x3fdd71.length > 0x0 && ((_0xfd246e = new FileReader()).file_name = _0x3fdd71[0x0].name, _0xfd246e.onload = function() {
+ var _0xa88a13 = new Uint8Array(_0xfd246e.result);
EJS_loadState(_0xa88a13);
- }, _0xfd246e['readAsArrayBuffer'](_0x3fdd71[0x0])), _0xa88a13['game']['stateloadField'] = _0x428003('input'), _0xa88a13['game']['stateloadField']['type'] = 'file', _0xa88a13['game']['stateloadField']['onchange'] = _0x17edbf;
- }, _0x1093f4['call'](_0xa88a13, _0xa88a13['elements']['container'], 'loadstate', function(_0x13504c) {
- _0x1e2c68['function'](_0xa88a13['config']['onloadstate']) ? _0xa88a13['config']['onloadstate']['call'](null, _0xa88a13['loadState']) : _0xa88a13['game']['stateloadField']['click'](), _0xa88a13['elements']['container']['focus']();
- }), document['addEventListener']('visibilitychange', function() {
- 'hidden' === document['visibilityState'] ? console['log']('hidden') : console['log']('active');
+ }, _0xfd246e.readAsArrayBuffer(_0x3fdd71[0x0])), _0xa88a13.game.stateloadField = _0x428003('input'), _0xa88a13.game.stateloadField.type = 'file', _0xa88a13.game.stateloadField.onchange = _0x17edbf;
+ }, _0x1093f4.call(_0xa88a13, _0xa88a13.elements.container, 'loadstate', function(_0x13504c) {
+ _0x1e2c68.function(_0xa88a13.config.onloadstate) ? _0xa88a13.config.onloadstate.call(null, _0xa88a13.loadState) : _0xa88a13.game.stateloadField.click(), _0xa88a13.elements.container.focus();
+ }), document.addEventListener('visibilitychange', function() {
+ 'hidden' === document.visibilityState ? console.log('hidden') : console.log('active');
});
},
'bindFunction': function() {
var _0xa88a13 = this,
- _0x17edbf = _0xa88a13['system'];
- if (_0x27f4c4['Module'] && _0x27f4c4['Module']['_set_volume']) {
- var _0x2c1832 = _0x27f4c4['Module']['cwrap']('set_volume', 'null', ['number']);
- _0x378b5c['setVolume'] = function() {
+ _0x17edbf = _0xa88a13.system;
+ if (_0x27f4c4.Module && _0x27f4c4.Module._set_volume) {
+ var _0x2c1832 = _0x27f4c4.Module.cwrap('set_volume', 'null', ['number']);
+ _0x378b5c.setVolume = function() {
var _0x17edbf = 0x0;
- _0xa88a13['volume'] < 0x1 && (_0x17edbf = 0x0 === _0xa88a13['volume'] ? -0x50 : 0x1e * _0xa88a13['volume'] - 0x1e, _0x2c1832(_0x17edbf)), _0xa88a13['muted'] && (_0x17edbf = -0x50), _0x2c1832(_0x17edbf);
+ _0xa88a13.volume < 0x1 && (_0x17edbf = 0x0 === _0xa88a13.volume ? -0x50 : 0x1e * _0xa88a13.volume - 0x1e, _0x2c1832(_0x17edbf)), _0xa88a13.muted && (_0x17edbf = -0x50), _0x2c1832(_0x17edbf);
};
}
- _0x378b5c['setVariable'] = _0x27f4c4['Module']['cwrap']('set_variable', 'null', ['string', 'string']), _0x378b5c['simulateInputFn'] = _0x27f4c4['Module']['cwrap']('simulate_input', 'null', ['number', 'number', 'number']);
+ _0x378b5c.setVariable = _0x27f4c4.Module.cwrap('set_variable', 'null', ['string', 'string']), _0x378b5c.simulateInputFn = _0x27f4c4.Module.cwrap('simulate_input', 'null', ['number', 'number', 'number']);
var _0x2c63cc = {
0: null,
1: null,
@@ -17167,102 +17310,102 @@ var EJS = function(_0x574f5e) {
30: null,
31: null
};
- _0x378b5c['simulateInput'] = function(_0x249751, _0x480d05, _0x50f784) {
- if (_0x378b5c['connected']) {
- if (_0xa88a13['playing'] && !_0x378b5c['disableInput']) {
- var _0x35b9c1 = _0x378b5c['connection']['userid'],
- _0x4d96ad = _0x378b5c['roomMaster'] === _0x35b9c1,
- _0xf1bb97 = _0x378b5c['players']['indexOf'](_0x35b9c1),
- _0x52e1f4 = _0x378b5c['currentFrameNum']();
- _0x249751 >> 0x0 == 0x0 && (_0x2c63cc[_0x480d05] !== _0x50f784 && (_0x4d96ad ? (_0x378b5c['inputsData'][_0x52e1f4] || (_0x378b5c['inputsData'][_0x52e1f4] = []), _0x378b5c['inputsData'][_0x52e1f4]['push']({
+ _0x378b5c.simulateInput = function(_0x249751, _0x480d05, _0x50f784) {
+ if (_0x378b5c.connected) {
+ if (_0xa88a13.playing && !_0x378b5c.disableInput) {
+ var _0x35b9c1 = _0x378b5c.connection.userid,
+ _0x4d96ad = _0x378b5c.roomMaster === _0x35b9c1,
+ _0xf1bb97 = _0x378b5c.players.indexOf(_0x35b9c1),
+ _0x52e1f4 = _0x378b5c.currentFrameNum();
+ _0x249751 >> 0x0 == 0x0 && (_0x2c63cc[_0x480d05] !== _0x50f784 && (_0x4d96ad ? (_0x378b5c.inputsData[_0x52e1f4] || (_0x378b5c.inputsData[_0x52e1f4] = []), _0x378b5c.inputsData[_0x52e1f4].push({
'index': _0xf1bb97,
'key': _0x480d05,
'status': _0x50f784,
'frame': _0x52e1f4
- }), _0x378b5c['simulateInputFn'](_0xf1bb97, _0x480d05, _0x50f784)) : _0x378b5c['connection']['send'](JSON['stringify']({
+ }), _0x378b5c.simulateInputFn(_0xf1bb97, _0x480d05, _0x50f784)) : _0x378b5c.connection.send(JSON.stringify({
'act': 'sync-control',
- 'value': ['' ['concat'](_0xf1bb97, '|')['concat'](_0x480d05, '|')['concat'](_0x50f784, '|')['concat'](_0x52e1f4)]
- }), _0x378b5c['roomMaster'])), _0x2c63cc[_0x480d05] = _0x50f784);
+ 'value': ['' .concat(_0xf1bb97, '|').concat(_0x480d05, '|').concat(_0x50f784, '|').concat(_0x52e1f4)]
+ }), _0x378b5c.roomMaster)), _0x2c63cc[_0x480d05] = _0x50f784);
}
- } else _0x378b5c['disableInput'] || _0x378b5c['simulateInputFn'](_0x249751, _0x480d05, _0x50f784);
- }, _0x378b5c['syncInput'] = _0x378b5c['simulateInput'];
- var _0x762355 = _0x27f4c4['Module']['cwrap']('shader_enable', 'null', ['number']);
- _0x378b5c['toggleShader'] = function(_0x433182) {
+ } else _0x378b5c.disableInput || _0x378b5c.simulateInputFn(_0x249751, _0x480d05, _0x50f784);
+ }, _0x378b5c.syncInput = _0x378b5c.simulateInput;
+ var _0x762355 = _0x27f4c4.Module.cwrap('shader_enable', 'null', ['number']);
+ _0x378b5c.toggleShader = function(_0x433182) {
return _0x762355(_0x433182);
- }, _0x378b5c['getStateInfo'] = _0x27f4c4['Module']['cwrap']('get_state_info', 'string', []), _0x378b5c['saveState'] = function() {
- var _0xa88a13, _0x17edbf = _0x378b5c['getStateInfo']()['split']('|'),
+ }, _0x378b5c.getStateInfo = _0x27f4c4.Module.cwrap('get_state_info', 'string', []), _0x378b5c.saveState = function() {
+ var _0xa88a13, _0x17edbf = _0x378b5c.getStateInfo().split('|'),
_0x2c1832 = _0x17edbf[0x0] >> 0x0;
if (_0x2c1832 > 0x0) {
_0xa88a13 = new Uint8Array(_0x2c1832);
- for (var _0x2ef6be = _0x17edbf[0x1] >> 0x0, _0x3cc34b = 0x0; _0x3cc34b < _0x2c1832; _0x3cc34b++) _0xa88a13[_0x3cc34b] = _0x27f4c4['Module']['getValue'](_0x2ef6be + _0x3cc34b);
+ for (var _0x2ef6be = _0x17edbf[0x1] >> 0x0, _0x3cc34b = 0x0; _0x3cc34b < _0x2c1832; _0x3cc34b++) _0xa88a13[_0x3cc34b] = _0x27f4c4.Module.getValue(_0x2ef6be + _0x3cc34b);
}
return _0xa88a13;
};
- var _0x25a7a2 = _0x27f4c4['Module']['cwrap']('load_state', 'number', ['string', 'number']);
- _0x378b5c['loadState'] = function(_0x4389ae, _0x1d4918) {
+ var _0x25a7a2 = _0x27f4c4.Module.cwrap('load_state', 'number', ['string', 'number']);
+ _0x378b5c.loadState = function(_0x4389ae, _0x1d4918) {
var _0x91cd69;
- if (_0x91cd69 = _0x4389ae, _0x27f4c4['FS']['createDataFile']('/', 'game.state', _0x91cd69, !0x0, !0x0), null === _0x1d4918 && (_0x1d4918 = 0x0), _0x25a7a2('game.state', _0x1d4918), 'arcade' === _0x17edbf ? setTimeout(function() {
- _0x378b5c['getStateInfo'](), _0x25a7a2('game.state', _0x1d4918), _0x27f4c4['FS']['unlink']('game.state');
- }, 0xa) : _0x27f4c4['FS']['unlink']('game.state'), _0x378b5c['connected'] && _0x378b5c['connection']['isInitiator']) {
- for (var _0x54607c = _0x378b5c['getStateInfo']()['split']('|'), _0x1ab9c9 = _0x54607c[0x0] >> 0x0, _0xce58ec = (_0x54607c[0x2], new Uint8Array(_0x1ab9c9)), _0x4aff4f = _0x54607c[0x1] >> 0x0, _0x3bfae0 = 0x0; _0x3bfae0 < _0x1ab9c9; _0x3bfae0 += 0x1) _0xce58ec[_0x3bfae0] = _0x27f4c4['Module']['getValue'](_0x4aff4f + _0x3bfae0);
+ if (_0x91cd69 = _0x4389ae, _0x27f4c4.FS.createDataFile('/', 'game.state', _0x91cd69, true, true), null === _0x1d4918 && (_0x1d4918 = 0x0), _0x25a7a2('game.state', _0x1d4918), 'arcade' === _0x17edbf ? setTimeout(function() {
+ _0x378b5c.getStateInfo(), _0x25a7a2('game.state', _0x1d4918), _0x27f4c4.FS.unlink('game.state');
+ }, 0xa) : _0x27f4c4.FS.unlink('game.state'), _0x378b5c.connected && _0x378b5c.connection.isInitiator) {
+ for (var _0x54607c = _0x378b5c.getStateInfo().split('|'), _0x1ab9c9 = _0x54607c[0x0] >> 0x0, _0xce58ec = (_0x54607c[0x2], new Uint8Array(_0x1ab9c9)), _0x4aff4f = _0x54607c[0x1] >> 0x0, _0x3bfae0 = 0x0; _0x3bfae0 < _0x1ab9c9; _0x3bfae0 += 0x1) _0xce58ec[_0x3bfae0] = _0x27f4c4.Module.getValue(_0x4aff4f + _0x3bfae0);
var _0x227419 = new File([_0xce58ec], '0-game.state', {
'type': '',
'lastModified': new Date()
});
- _0x378b5c['connection']['shareFile'](_0x227419), _0x378b5c['inputsData'] = {}, _0x378b5c['wait'] = !0x0, _0x378b5c['systemPause'](0x1), _0x27f4c4['Module']['pauseMainLoop'](), _0x378b5c['disableControl'](!0x0);
+ _0x378b5c.connection.shareFile(_0x227419), _0x378b5c.inputsData = {}, _0x378b5c.wait = true, _0x378b5c.systemPause(0x1), _0x27f4c4.Module.pauseMainLoop(), _0x378b5c.disableControl(true);
}
- _0xa88a13['elements']['container']['focus']();
- }, _0x27f4c4['Module']['_set_cheat'] && (_0x378b5c['setCheat'] = _0x27f4c4['Module']['cwrap']('set_cheat', 'number', ['number', 'number', 'string'])), _0x27f4c4['Module']['_reset_cheat'] && (_0x378b5c['resetCheat'] = _0x27f4c4['Module']['_reset_cheat']), _0x378b5c['quickSaveState'] = function() {
+ _0xa88a13.elements.container.focus();
+ }, _0x27f4c4.Module._set_cheat && (_0x378b5c.setCheat = _0x27f4c4.Module.cwrap('set_cheat', 'number', ['number', 'number', 'string'])), _0x27f4c4.Module._reset_cheat && (_0x378b5c.resetCheat = _0x27f4c4.Module._reset_cheat), _0x378b5c.quickSaveState = function() {
// save state button
- if (_0xa88a13['started'] && !_0x378b5c['connected']) {
- var _0x17edbf = _0x378b5c['saveState']();
+ if (_0xa88a13.started && !_0x378b5c.connected) {
+ var _0x17edbf = _0x378b5c.saveState();
try {
- _0x27f4c4['FS']['unlink']('quick.state');
+ _0x27f4c4.FS.unlink('quick.state');
} catch (_0x4b4d4c) {}
- _0x27f4c4['FS']['createDataFile']('/', 'quick.state', _0x17edbf, !0x0, !0x0);
+ _0x27f4c4.FS.createDataFile('/', 'quick.state', _0x17edbf, true, true);
}
- }, _0x378b5c['quickLoadState'] = function() {
- if (_0xa88a13['started'] && !_0x378b5c['connected']) try {
+ }, _0x378b5c.quickLoadState = function() {
+ if (_0xa88a13.started && !_0x378b5c.connected) try {
_0x25a7a2('quick.state', 0x0), 'arcade' === _0x17edbf && setTimeout(function() {
- _0x378b5c['getStateInfo'](), _0x25a7a2('quick.state', 0x0);
+ _0x378b5c.getStateInfo(), _0x25a7a2('quick.state', 0x0);
}, 0xa);
} catch (_0x4ee386) {}
- }, window['EJS_loadState'] = function(_0x4dd6a5) {
- _0x378b5c['loadState'](_0x4dd6a5, 0x0), setTimeout(function() {
- if (_0x378b5c['connected']) {
+ }, window.EJS_loadState = function(_0x4dd6a5) {
+ _0x378b5c.loadState(_0x4dd6a5, 0x0), setTimeout(function() {
+ if (_0x378b5c.connected) {
var _0x17edbf = new File([_0x4dd6a5], '0-game.state', {
'type': '',
'lastModified': new Date()
});
- _0x378b5c['connection']['shareFile'](_0x17edbf), _0x378b5c['inputsData'] = {}, _0x378b5c['wait'] = !0x0, _0x378b5c['systemPause'](0x1), _0x27f4c4['Module']['pauseMainLoop'](), _0x378b5c['disableControl'](!0x0);
+ _0x378b5c.connection.shareFile(_0x17edbf), _0x378b5c.inputsData = {}, _0x378b5c.wait = true, _0x378b5c.systemPause(0x1), _0x27f4c4.Module.pauseMainLoop(), _0x378b5c.disableControl(true);
}
}, 0x1e);
};
- var _0x840cf4 = _0x27f4c4['Module']['cwrap']('cmd_take_screenshot', '', []);
- _0x378b5c['getScreenData'] = function() {
- return _0x378b5c['toggleShader'](0x0), _0x840cf4(), _0x378b5c['toggleShader'](0x1), _0x27f4c4['FS']['readFile']('screenshot.png');
- }, _0x378b5c['restartGame'] = _0x27f4c4['Module']['cwrap']('system_restart', '', []), _0x378b5c['currentFrameNum'] = _0x27f4c4['Module']['cwrap']('get_current_frame_count', '', []), _0x378b5c['saveSavFiles'] = _0x27f4c4['Module']['cwrap']('cmd_savefiles', '', []), _0x27f4c4['Module']['_get_core_options'] && (_0x378b5c['getGameCoreOptions'] = _0x27f4c4['Module']['cwrap']('get_core_options', 'string', [])), _0x378b5c['systemPause'] = function(_0x29d94a) {
+ var _0x840cf4 = _0x27f4c4.Module.cwrap('cmd_take_screenshot', '', []);
+ _0x378b5c.getScreenData = function() {
+ return _0x378b5c.toggleShader(0x0), _0x840cf4(), _0x378b5c.toggleShader(0x1), _0x27f4c4.FS.readFile('screenshot.png');
+ }, _0x378b5c.restartGame = _0x27f4c4.Module.cwrap('system_restart', '', []), _0x378b5c.currentFrameNum = _0x27f4c4.Module.cwrap('get_current_frame_count', '', []), _0x378b5c.saveSavFiles = _0x27f4c4.Module.cwrap('cmd_savefiles', '', []), _0x27f4c4.Module._get_core_options && (_0x378b5c.getGameCoreOptions = _0x27f4c4.Module.cwrap('get_core_options', 'string', [])), _0x378b5c.systemPause = function(_0x29d94a) {
return !0x1;
- }, _0x378b5c['controllers'] = _0x2593da['storage']['get']('controllers'), _0x378b5c['controllers'] || (_0x378b5c['controllers'] = _0x378b5c['defaultControllers']);
+ }, _0x378b5c.controllers = _0x2593da.storage.get('controllers'), _0x378b5c.controllers || (_0x378b5c.controllers = JSON.parse(JSON.stringify(_0x378b5c.defaultControllers)));
}
},
_0xdcec2a = _0x378b5c;
function _0x5005e6(_0x7f3270, _0x477158) {
return function(_0x20890f) {
- if (Array['isArray'](_0x20890f)) return _0x20890f;
+ if (Array.isArray(_0x20890f)) return _0x20890f;
}(_0x7f3270) || function(_0x557107, _0x409476) {
var _0x2c1832 = [],
- _0x488a47 = !0x0,
+ _0x488a47 = true,
_0x34f76e = !0x1,
_0x19606f = void 0x0;
try {
- for (var _0x328f4d, _0x4d9086 = _0x557107[Symbol['iterator']](); !(_0x488a47 = (_0x328f4d = _0x4d9086['next']())['done']) && (_0x2c1832['push'](_0x328f4d['value']), !_0x409476 || _0x2c1832['length'] !== _0x409476); _0x488a47 = !0x0);
+ for (var _0x328f4d, _0x4d9086 = _0x557107[Symbol.iterator](); !(_0x488a47 = (_0x328f4d = _0x4d9086.next()).done) && (_0x2c1832.push(_0x328f4d.value), !_0x409476 || _0x2c1832.length !== _0x409476); _0x488a47 = true);
} catch (_0x13c09a) {
- _0x34f76e = !0x0, _0x19606f = _0x13c09a;
+ _0x34f76e = true, _0x19606f = _0x13c09a;
} finally {
try {
- _0x488a47 || null == _0x4d9086['return'] || _0x4d9086['return']();
+ _0x488a47 || null == _0x4d9086.return || _0x4d9086.return();
} finally {
if (_0x34f76e) throw _0x19606f;
}
@@ -17300,7 +17443,7 @@ var EJS = function(_0x574f5e) {
},
'defaultCoreOptionsValues': function() {
var _0xa88a13 = {};
- switch (this['system']) {
+ switch (this.system) {
case 'pce':
_0xa88a13 = {
'pce_nospritelimit': 'enabled'
@@ -17322,14 +17465,14 @@ var EJS = function(_0x574f5e) {
return _0xa88a13;
},
'getCoreOptionsValues': function() {
- var _0xa88a13 = _0x7f9f36['storage']['get']('core-options');
- return _0x1e2c68['empty'](_0xa88a13) && (_0xa88a13 = {}), _0xa88a13;
+ var _0xa88a13 = _0x7f9f36.storage.get('core-options');
+ return _0x1e2c68.empty(_0xa88a13) && (_0xa88a13 = {}), _0xa88a13;
},
'getCoreOptions': function() {
var _0xa88a13 = {};
- switch (this['system']) {
+ switch (this.system) {
case 'nes':
- _0xa88a13['fceumm_palette'] = {
+ _0xa88a13.fceumm_palette = {
'label': 'Color Palette',
'options': {
'default': 'Default',
@@ -17351,14 +17494,14 @@ var EJS = function(_0x574f5e) {
'wavebeam': 'wavebeam'
},
'default': 'default'
- }, _0xa88a13['fceumm_nospritelimit'] = {
+ }, _0xa88a13.fceumm_nospritelimit = {
'label': 'No Sprite Limit',
'options': {
'enabled': 'Enabled',
'disabled': 'Disabled'
},
'default': 'disabled'
- }, _0xa88a13['fceumm_sndquality'] = {
+ }, _0xa88a13.fceumm_sndquality = {
'label': 'Sound Quality',
'options': {
'Low': 'Low',
@@ -17366,24 +17509,24 @@ var EJS = function(_0x574f5e) {
'Very High': 'Very High'
},
'default': 'Low'
- }, this['lightgun'] || (_0xa88a13['system_type'] = {
+ }, this.lightgun || (_0xa88a13.system_type = {
'label': '4 Players Support',
'options': {
'nes': 'NES',
'famicom': 'Famicom'
},
'default': 'nes',
- 'netplay': !0x0
- }), _0xa88a13['fceumm_turbo_enable'] = {
+ 'netplay': true
+ }), _0xa88a13.fceumm_turbo_enable = {
'label': 'Turbo Enable',
'options': ['None', 'Player 1', 'Player 2', 'Both'],
'default': 'None',
- 'netplay': !0x0
- }, _0xa88a13['fceumm_region'] = {
+ 'netplay': true
+ }, _0xa88a13.fceumm_region = {
'label': 'Region',
'options': ['Auto', 'NTSC', 'PAL', 'Dendy'],
'default': 'Auto',
- 'netplay': !0x0
+ 'netplay': true
};
break;
case 'snes':
@@ -17398,7 +17541,7 @@ var EJS = function(_0x574f5e) {
'100MHz': '100MHz'
},
'default': 'disabled',
- 'netplay': !0x0
+ 'netplay': true
}
};
break;
@@ -17487,25 +17630,25 @@ var EJS = function(_0x574f5e) {
'label': 'Player 1 Pak',
'options': ['none', 'memory', 'rumble'],
'default': 'none',
- 'netplay': !0x0
+ 'netplay': true
},
'glupen64-pak2': {
'label': 'Player 2 Pak',
'options': ['none', 'memory', 'rumble'],
'default': 'none',
- 'netplay': !0x0
+ 'netplay': true
},
'glupen64-pak3': {
'label': 'Player 3 Pak',
'options': ['none', 'memory', 'rumble'],
'default': 'none',
- 'netplay': !0x0
+ 'netplay': true
},
'glupen64-pak4': {
'label': 'Player 4 Pak',
'options': ['none', 'memory', 'rumble'],
'default': 'none',
- 'netplay': !0x0
+ 'netplay': true
}
};
break;
@@ -17531,7 +17674,7 @@ var EJS = function(_0x574f5e) {
'options': ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
'default': '0'
}
- }, _0x2d904a['wasm'] || delete _0xa88a13['screen_rotation'];
+ }, _0x2d904a.wasm || delete _0xa88a13.screen_rotation;
break;
case 'vb':
case 'pce':
@@ -17551,7 +17694,7 @@ var EJS = function(_0x574f5e) {
'label': 'CPU speed',
'options': ['100%', '125%', '150%', '175%', '200%'],
'default': '100%',
- 'netplay': !0x0
+ 'netplay': true
},
'genesis_plus_gx_sound_output': {
'label': 'Sound output',
@@ -17611,61 +17754,61 @@ var EJS = function(_0x574f5e) {
'label': 'Frameskip',
'options': [0x0, 0x1, 0x2, 0x3],
'default': 0x0,
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_memcard2': {
'label': 'Enable second memory card',
'options': ['enabled', 'disabled'],
'default': 'enabled',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_pad1type': {
'label': 'Pad 1 Type',
'options': ['default', 'none', 'standard', 'analog', 'negcon'],
'default': 'default',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_pad2type': {
'label': 'Pad 2 Type',
'options': ['default', 'none', 'standard', 'analog', 'negcon'],
'default': 'default',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_pad3type': {
'label': 'Pad 3 Type',
'options': ['default', 'none', 'standard', 'analog', 'negcon'],
'default': 'default',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_pad4type': {
'label': 'Pad 4 Type',
'options': ['default', 'none', 'standard', 'analog', 'negcon'],
'default': 'default',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_vibration': {
'label': 'Enable Vibration',
'options': ['enabled', 'disabled'],
'default': 'enabled',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_neon_interlace_enable': {
'label': 'Enable interlacing mode(s)',
'options': ['enabled', 'disabled'],
'default': 'disabled',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_neon_enhancement_enable': {
'label': 'Enhanced resolution (slow)',
'options': ['enabled', 'disabled'],
'default': 'disabled',
- 'netplay': !0x0
+ 'netplay': true
},
'pcsx_rearmed_neon_enhancement_no_main': {
'label': 'Enhanced resolution speed hack',
'options': ['enabled', 'disabled'],
'default': 'disabled',
- 'netplay': !0x0
+ 'netplay': true
}
};
break;
@@ -17681,25 +17824,25 @@ var EJS = function(_0x574f5e) {
'label': 'Frameskip',
'options': ['0', '1', '2', '3', '4', '5'],
'default': '0',
- 'netplay': !0x0
+ 'netplay': true
},
'fba-cpu-speed-adjust': {
'label': 'CPU overclock',
'options': ['100', '110', '120', '130', '140', '150', '160', '170', '180', '190', '200'],
'default': '100',
- 'netplay': !0x0
+ 'netplay': true
},
'fba-diagnostic-input': {
'label': 'Diagnostic Input',
'options': ['None', 'Hold Start', 'Start + A + B', 'Hold Start + A + B', 'Start + L + R', 'Hold Start + L + R', 'Hold Select', 'Select + A + B', 'Hold Select + A + B', 'Select + L + R', 'Hold Select + L + R'],
'default': 'None',
- 'netplay': !0x0
+ 'netplay': true
},
'fba-neogeo-mode': {
'label': 'Force Neo Geo mode',
'options': ['MVS', 'AES', 'UNIBIOS', 'DIPSWITCH'],
'default': 'MVS',
- 'netplay': !0x0
+ 'netplay': true
}
};
break;
@@ -17709,126 +17852,126 @@ var EJS = function(_0x574f5e) {
_0xa88a13 = {};
break;
default:
- _0xa88a13 = {}, console['warn']('Unsupport emulator');
+ _0xa88a13 = {}, console.warn('Unsupport emulator');
}
- _0xdcec2a['getGameCoreOptions'] && _0xdcec2a['getGameCoreOptions']()['split']('\x0a')['forEach'](function(_0x2bef5a, _0x49b64b) {
- var _0x5995db = _0x2bef5a['split']('; '),
+ _0xdcec2a.getGameCoreOptions && _0xdcec2a.getGameCoreOptions().split('\n').forEach(function(_0x2bef5a, _0x49b64b) {
+ var _0x5995db = _0x2bef5a.split('; '),
_0x16274c = _0x5995db[0x0];
- if (0x0 === _0x16274c['indexOf']('fba-dipswitch-')) {
- var _0x757776 = _0x5995db[0x1]['split']('|'),
- _0x1f895e = _0x16274c['replace'](/_/g, ' ')['replace'](/.+\-(.+)/, '$1');
+ if (0x0 === _0x16274c.indexOf('fba-dipswitch-')) {
+ var _0x757776 = _0x5995db[0x1].split('|'),
+ _0x1f895e = _0x16274c.replace(/_/g, ' ').replace(/.+\-(.+)/, '$1');
_0xa88a13[_0x16274c] = {
'label': _0x1f895e,
- 'options': _0x757776['slice'](0x1, -0x1),
- 'default': _0x757776[0x0]['replace']('(Default) ', ''),
- 'netplay': !0x0
+ 'options': _0x757776.slice(0x1, -0x1),
+ 'default': _0x757776[0x0].replace('(Default) ', ''),
+ 'netplay': true
};
}
});
return _0xa88a13;
},
'supportNetPlay': function() {
- if (this['lightgun'] || this['mouse']) return !0x1;
- var _0xa88a13 = window['RTCPeerConnection'] || window['webkitPeerConnection00'] || window['webkitRTCPeerConnection'] || window['mozRTCPeerConnection'],
- _0x17edbf = window['mozRTCIceCandidate'] || window['RTCIceCandidate'],
- _0x2c1832 = window['mozRTCSessionDescription'] || window['RTCSessionDescription'];
- return !!(_0xa88a13 && _0x17edbf && _0x2c1832) && !!(_0xa88a13 && 'createDataChannel' in _0xa88a13['prototype']);
+ if (this.lightgun || this.mouse) return !0x1;
+ var _0xa88a13 = window.RTCPeerConnection || window.webkitPeerConnection00 || window.webkitRTCPeerConnection || window.mozRTCPeerConnection,
+ _0x17edbf = window.mozRTCIceCandidate || window.RTCIceCandidate,
+ _0x2c1832 = window.mozRTCSessionDescription || window.RTCSessionDescription;
+ return !!(_0xa88a13 && _0x17edbf && _0x2c1832) && !!(_0xa88a13 && 'createDataChannel' in _0xa88a13.prototype);
},
'isNetPlay': function() {},
'findElements': function() {
try {
- return this['elements']['controls'] = _0x530042['call'](this, this['config']['selectors']['controls']['wrapper']), this['elements']['buttons'] = {
- 'play': _0x23ffa1['call'](this, this['config']['selectors']['buttons']['play']),
- 'pause': _0x530042['call'](this, this['config']['selectors']['buttons']['pause']),
- 'restart': _0x530042['call'](this, this['config']['selectors']['buttons']['restart']),
- 'mute': _0x530042['call'](this, this['config']['selectors']['buttons']['mute']),
- 'settings': _0x530042['call'](this, this['config']['selectors']['buttons']['settings']),
- 'fullscreen': _0x530042['call'](this, this['config']['selectors']['buttons']['fullscreen']),
- 'saveState': _0x530042['call'](this, this['config']['selectors']['buttons']['saveState']),
- 'screenRecord': _0x530042['call'](this, this['config']['selectors']['buttons']['screenRecord']),
- 'loadState': _0x530042['call'](this, this['config']['selectors']['buttons']['loadState']),
- 'gamepad': _0x530042['call'](this, this['config']['selectors']['buttons']['gamepad']),
- 'netplay': _0x530042['call'](this, this['config']['selectors']['buttons']['netplay']),
- 'cheat': _0x530042['call'](this, this['config']['selectors']['buttons']['cheat'])
- }, this['elements']['inputs'] = {
- 'volume': _0x530042['call'](this, this['config']['selectors']['inputs']['volume'])
- }, !0x0;
+ return this.elements.controls = _0x530042.call(this, this.config.selectors.controls.wrapper), this.elements.buttons = {
+ 'play': _0x23ffa1.call(this, this.config.selectors.buttons.play),
+ 'pause': _0x530042.call(this, this.config.selectors.buttons.pause),
+ 'restart': _0x530042.call(this, this.config.selectors.buttons.restart),
+ 'mute': _0x530042.call(this, this.config.selectors.buttons.mute),
+ 'settings': _0x530042.call(this, this.config.selectors.buttons.settings),
+ 'fullscreen': _0x530042.call(this, this.config.selectors.buttons.fullscreen),
+ 'saveState': _0x530042.call(this, this.config.selectors.buttons.saveState),
+ 'screenRecord': _0x530042.call(this, this.config.selectors.buttons.screenRecord),
+ 'loadState': _0x530042.call(this, this.config.selectors.buttons.loadState),
+ 'gamepad': _0x530042.call(this, this.config.selectors.buttons.gamepad),
+ 'netplay': _0x530042.call(this, this.config.selectors.buttons.netplay),
+ 'cheat': _0x530042.call(this, this.config.selectors.buttons.cheat)
+ }, this.elements.inputs = {
+ 'volume': _0x530042.call(this, this.config.selectors.inputs.volume)
+ }, true;
} catch (_0x527381) {
- return this['debug']['warn']('It looks like there is a problem with your custom controls HTML', _0x527381), !0x1;
+ return this.debug.warn('It looks like there is a problem with your custom controls HTML', _0x527381), !0x1;
}
},
'createIcon': function(_0x43d42f, _0x42a597) {
- var _0x2c1832 = document['createElementNS']('http://www.w3.org/2000/svg', 'svg');
+ var _0x2c1832 = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
_0x154f99(_0x2c1832, _0x5dc0c0(_0x42a597, {
'role': 'presentation',
'focusable': 'false'
}));
- var _0x50b7a7 = document['createElement']('div');
- _0x50b7a7['innerHTML'] = '
' ['concat'](this['icons'][_0x43d42f], ' ');
- for (var _0x373099 = _0x50b7a7['childNodes'][0x0]['childNodes'], _0x804f4d = 0x0; _0x804f4d < _0x373099['length']; _0x804f4d += 0x1) _0x2c1832['appendChild'](_0x373099[_0x804f4d]);
+ var _0x50b7a7 = document.createElement('div');
+ _0x50b7a7.innerHTML = '
' .concat(this.icons[_0x43d42f], ' ');
+ for (var _0x373099 = _0x50b7a7.childNodes[0x0].childNodes, _0x804f4d = 0x0; _0x804f4d < _0x373099.length; _0x804f4d += 0x1) _0x2c1832.appendChild(_0x373099[_0x804f4d]);
return _0x2c1832;
},
'createLabel': function(_0x185043) {
- var _0x17edbf = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : {},
- _0x2c1832 = _0xb9b2ff['get'](_0x185043, this['config']),
+ var _0x17edbf = arguments.length > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : {},
+ _0x2c1832 = _0xb9b2ff.get(_0x185043, this.config),
_0x3d681f = {};
- _0x3d681f[_0x17edbf['class']] = !0x0, _0x3d681f[this['config']['classNames']['hidden']] = !0x0;
- var _0x58a1d4 = Object['assign']({}, _0x17edbf, {
- 'class': [_0x17edbf['class'], this['config']['classNames']['tooltip']]['filter'](Boolean)['join'](' ')
+ _0x3d681f[_0x17edbf.class] = true, _0x3d681f[this.config.classNames.hidden] = true;
+ var _0x58a1d4 = Object.assign({}, _0x17edbf, {
+ 'class': [_0x17edbf.class, this.config.classNames.tooltip].filter(Boolean).join(' ')
});
return _0x428003('span', _0x58a1d4, _0x2c1832);
},
'createBadge': function(_0x415aef) {
- if (_0x1e2c68['empty'](_0x415aef)) return null;
+ if (_0x1e2c68.empty(_0x415aef)) return null;
var _0x17edbf = _0x428003('span', {
- 'class': this['config']['classNames']['menu']['value']
+ 'class': this.config.classNames.menu.value
});
- return _0x17edbf['appendChild'](_0x428003('span', {
- 'class': this['config']['classNames']['menu']['badge']
+ return _0x17edbf.appendChild(_0x428003('span', {
+ 'class': this.config.classNames.menu.badge
}, _0x415aef)), _0x17edbf;
},
'createButton': function(_0x427a85, _0x493eb2) {
var _0x2c1832, _0x325832, _0xcb618b, _0x25c678, _0x58309d = _0x428003('button'),
- _0x183584 = Object['assign']({}, _0x493eb2),
+ _0x183584 = Object.assign({}, _0x493eb2),
_0x2345d2 = _0x9fdcea(_0x427a85),
_0x2ca20d = !0x1;
- 'type' in _0x183584 || (_0x183584['type'] = 'button');
+ 'type' in _0x183584 || (_0x183584.type = 'button');
var _0x34225b = _0x449eac({
- 'ejs__control': !0x0
+ 'ejs__control': true
});
- switch ('class' in _0x183584 ? _0x183584['class']['includes'](_0x34225b) || (_0x183584['class'] += ' ' ['concat'](_0x34225b)) : _0x183584['class'] = _0x34225b, _0x427a85) {
+ switch ('class' in _0x183584 ? _0x183584.class.includes(_0x34225b) || (_0x183584.class += ' ' .concat(_0x34225b)) : _0x183584.class = _0x34225b, _0x427a85) {
case 'play':
- _0x2ca20d = !0x0, _0x2c1832 = 'play', _0xcb618b = 'pause', _0x325832 = 'play', _0x25c678 = 'pause';
+ _0x2ca20d = true, _0x2c1832 = 'play', _0xcb618b = 'pause', _0x325832 = 'play', _0x25c678 = 'pause';
break;
case 'mute':
- _0x2ca20d = !0x0, _0x2c1832 = 'mute', _0xcb618b = 'unmute', _0x325832 = 'volume', _0x25c678 = 'muted';
+ _0x2ca20d = true, _0x2c1832 = 'mute', _0xcb618b = 'unmute', _0x325832 = 'volume', _0x25c678 = 'muted';
break;
case 'fullscreen':
- _0x2ca20d = !0x0, _0x2c1832 = 'enterFullscreen', _0xcb618b = 'exitFullscreen', _0x325832 = 'enter-fullscreen', _0x25c678 = 'exit-fullscreen';
+ _0x2ca20d = true, _0x2c1832 = 'enterFullscreen', _0xcb618b = 'exitFullscreen', _0x325832 = 'enter-fullscreen', _0x25c678 = 'exit-fullscreen';
break;
default:
_0x2c1832 = _0x2345d2, _0x325832 = _0x427a85;
}
- return _0x2ca20d ? (_0x58309d['appendChild'](_0x7f9f36['createIcon']['call'](this, _0x25c678, {
+ return _0x2ca20d ? (_0x58309d.appendChild(_0x7f9f36.createIcon.call(this, _0x25c678, {
'class': _0x449eac({
- 'icon--pressed': !0x0
+ 'icon--pressed': true
})
- })), _0x58309d['appendChild'](_0x7f9f36['createIcon']['call'](this, _0x325832, {
+ })), _0x58309d.appendChild(_0x7f9f36.createIcon.call(this, _0x325832, {
'class': _0x449eac({
- 'icon--not-pressed': !0x0
+ 'icon--not-pressed': true
})
- })), _0x58309d['appendChild'](_0x7f9f36['createLabel']['call'](this, _0xcb618b, {
+ })), _0x58309d.appendChild(_0x7f9f36.createLabel.call(this, _0xcb618b, {
'class': _0x449eac({
- 'icon--pressed': !0x0
+ 'icon--pressed': true
})
- })), _0x58309d['appendChild'](_0x7f9f36['createLabel']['call'](this, _0x2c1832, {
+ })), _0x58309d.appendChild(_0x7f9f36.createLabel.call(this, _0x2c1832, {
'class': _0x449eac({
- 'icon--not-pressed': !0x0
+ 'icon--not-pressed': true
})
- }))) : (_0x58309d['appendChild'](_0x7f9f36['createIcon']['call'](this, _0x325832)), _0x58309d['appendChild'](_0x7f9f36['createLabel']['call'](this, _0x2c1832))), _0x5dc0c0(_0x183584, _0xa949a8(this['config']['selectors']['buttons'][_0x2345d2], _0x183584)), _0x154f99(_0x58309d, _0x183584), 'play' === _0x2345d2 ? (_0x1e2c68['array'](this['elements']['buttons'][_0x2345d2]) || (this['elements']['buttons'][_0x2345d2] = []), this['elements']['buttons'][_0x2345d2]['push'](_0x58309d)) : this['elements']['buttons'][_0x2345d2] = _0x58309d, _0x58309d;
+ }))) : (_0x58309d.appendChild(_0x7f9f36.createIcon.call(this, _0x325832)), _0x58309d.appendChild(_0x7f9f36.createLabel.call(this, _0x2c1832))), _0x5dc0c0(_0x183584, _0xa949a8(this.config.selectors.buttons[_0x2345d2], _0x183584)), _0x154f99(_0x58309d, _0x183584), 'play' === _0x2345d2 ? (_0x1e2c68.array(this.elements.buttons[_0x2345d2]) || (this.elements.buttons[_0x2345d2] = []), this.elements.buttons[_0x2345d2].push(_0x58309d)) : this.elements.buttons[_0x2345d2] = _0x58309d, _0x58309d;
},
'createRange': function(_0x491b4a, _0x5f154a) {
- var _0x2c1832 = _0x428003('input', _0x5dc0c0(_0xa949a8(this['config']['selectors']['inputs'][_0x491b4a]), {
+ var _0x2c1832 = _0x428003('input', _0x5dc0c0(_0xa949a8(this.config.selectors.inputs[_0x491b4a]), {
'type': 'range',
'min': 0x0,
'max': 0x64,
@@ -17836,151 +17979,151 @@ var EJS = function(_0x574f5e) {
'value': 0x0,
'autocomplete': 'off',
'role': 'slider',
- 'aria-label': _0xb9b2ff['get'](_0x491b4a, this['config']),
+ 'aria-label': _0xb9b2ff.get(_0x491b4a, this.config),
'aria-valuemin': 0x0,
'aria-valuemax': 0x64,
'aria-valuenow': 0x0
}, _0x5f154a));
- return this['elements']['inputs'][_0x491b4a] = _0x2c1832, _0x7f9f36['updateRangeFill']['call'](this, _0x2c1832), _0x2c1832;
+ return this.elements.inputs[_0x491b4a] = _0x2c1832, _0x7f9f36.updateRangeFill.call(this, _0x2c1832), _0x2c1832;
},
'bindMenuItemShortcuts': function(_0x1830d1, _0x2770c2) {
var _0x2c1832 = this;
_0x1093f4(_0x1830d1, 'keydown keyup', function(_0x4bb9d6) {
- if ([0x20, 0x26, 0x27, 0x28]['includes'](_0x4bb9d6['which']) && (_0x4bb9d6['preventDefault'](), _0x4bb9d6['stopPropagation'](), 'keydown' !== _0x4bb9d6['type'])) {
+ if ([0x20, 0x26, 0x27, 0x28].includes(_0x4bb9d6.which) && (_0x4bb9d6.preventDefault(), _0x4bb9d6.stopPropagation(), 'keydown' !== _0x4bb9d6.type)) {
var _0x20ac7b, _0x51717d = _0x13f491(_0x1830d1, '[role="menuitemradio"]');
- if (!_0x51717d && [0x20, 0x27]['includes'](_0x4bb9d6['which'])) _0x7f9f36['showMenuPanel']['call'](_0x2c1832, _0x2770c2, !0x0);
- else 0x20 !== _0x4bb9d6['which'] && (0x28 === _0x4bb9d6['which'] || _0x51717d && 0x27 === _0x4bb9d6['which'] ? (_0x20ac7b = _0x1830d1['nextElementSibling'], _0x1e2c68['element'](_0x20ac7b) || (_0x20ac7b = _0x1830d1['parentNode']['firstElementChild'])) : (_0x20ac7b = _0x1830d1['previousElementSibling'], _0x1e2c68['element'](_0x20ac7b) || (_0x20ac7b = _0x1830d1['parentNode']['lastElementChild'])), _0x31cc23['call'](_0x2c1832, _0x20ac7b, !0x0));
+ if (!_0x51717d && [0x20, 0x27].includes(_0x4bb9d6.which)) _0x7f9f36.showMenuPanel.call(_0x2c1832, _0x2770c2, true);
+ else 0x20 !== _0x4bb9d6.which && (0x28 === _0x4bb9d6.which || _0x51717d && 0x27 === _0x4bb9d6.which ? (_0x20ac7b = _0x1830d1.nextElementSibling, _0x1e2c68.element(_0x20ac7b) || (_0x20ac7b = _0x1830d1.parentNode.firstElementChild)) : (_0x20ac7b = _0x1830d1.previousElementSibling, _0x1e2c68.element(_0x20ac7b) || (_0x20ac7b = _0x1830d1.parentNode.lastElementChild)), _0x31cc23.call(_0x2c1832, _0x20ac7b, true));
}
}, !0x1), _0x1093f4(_0x1830d1, 'keyup', function(_0x3844f5) {
- 0xd === _0x3844f5['which'] && _0x7f9f36['focusFirstMenuItem']['call'](_0x2c1832, null, !0x0);
+ 0xd === _0x3844f5.which && _0x7f9f36.focusFirstMenuItem.call(_0x2c1832, null, true);
});
},
'createMenuItem': function(_0x52a95b) {
var _0x17edbf = this,
- _0x2c1832 = _0x52a95b['value'],
- _0x231912 = _0x52a95b['list'],
- _0x57313b = _0x52a95b['type'],
- _0x19be70 = _0x52a95b['title'],
- _0x4ae558 = _0x52a95b['badge'],
+ _0x2c1832 = _0x52a95b.value,
+ _0x231912 = _0x52a95b.list,
+ _0x57313b = _0x52a95b.type,
+ _0x19be70 = _0x52a95b.title,
+ _0x4ae558 = _0x52a95b.badge,
_0x34a012 = void 0x0 === _0x4ae558 ? null : _0x4ae558,
- _0x7dbb2e = _0x52a95b['checked'],
+ _0x7dbb2e = _0x52a95b.checked,
_0x200580 = void 0x0 !== _0x7dbb2e && _0x7dbb2e,
- _0x4bb1a2 = _0xa949a8(this['config']['selectors']['inputs'][_0x57313b]),
+ _0x4bb1a2 = _0xa949a8(this.config.selectors.inputs[_0x57313b]),
_0xb8fbbd = _0x428003('button', _0x5dc0c0(_0x4bb1a2, {
'type': 'button',
'role': 'menuitemradio',
- 'class': '' ['concat'](this['config']['classNames']['control'], ' ')['concat'](_0x4bb1a2['class'] ? _0x4bb1a2['class'] : '')['trim'](),
+ 'class': '' .concat(this.config.classNames.control, ' ').concat(_0x4bb1a2.class ? _0x4bb1a2.class : '').trim(),
'aria-checked': _0x200580,
'value': _0x2c1832
})),
_0x560073 = _0x428003('span');
- _0x560073['innerHTML'] = _0x19be70, _0x1e2c68['element'](_0x34a012) && _0x560073['appendChild'](_0x34a012), _0xb8fbbd['appendChild'](_0x560073), Object['defineProperty'](_0xb8fbbd, 'checked', {
- 'enumerable': !0x0,
+ _0x560073.innerHTML = _0x19be70, _0x1e2c68.element(_0x34a012) && _0x560073.appendChild(_0x34a012), _0xb8fbbd.appendChild(_0x560073), Object.defineProperty(_0xb8fbbd, 'checked', {
+ 'enumerable': true,
'get': function() {
- return 'true' === _0xb8fbbd['getAttribute']('aria-checked');
+ return 'true' === _0xb8fbbd.getAttribute('aria-checked');
},
'set': function(_0x2da7f0) {
- _0x2da7f0 && Array['from'](_0xb8fbbd['parentNode']['children'])['filter'](function(_0x480c16) {
+ _0x2da7f0 && Array.from(_0xb8fbbd.parentNode.children).filter(function(_0x480c16) {
return _0x13f491(_0x480c16, '[role="menuitemradio"]');
- })['forEach'](function(_0x363b12) {
- return _0x363b12['setAttribute']('aria-checked', 'false');
- }), _0xb8fbbd['setAttribute']('aria-checked', _0x2da7f0 ? 'true' : 'false');
+ }).forEach(function(_0x363b12) {
+ return _0x363b12.setAttribute('aria-checked', 'false');
+ }), _0xb8fbbd.setAttribute('aria-checked', _0x2da7f0 ? 'true' : 'false');
}
});
- var _0x449ec7 = _0x7f9f36['getCoreOptions']['call'](this);
- this['listeners']['bind'](_0xb8fbbd, 'click keyup', function(_0x270d0d) {
- _0x1e2c68['keyboardEvent'](_0x270d0d) && 0x20 !== _0x270d0d['which'] || (_0x270d0d['preventDefault'](), _0x270d0d['stopPropagation'](), _0xb8fbbd['checked'] = !0x0, Object['keys'](_0x7f9f36['normalOptions'])['includes'](_0x57313b) && _0x7f9f36['updateNormalOptions']['call'](_0x17edbf, _0x57313b, _0x2c1832), Object['keys'](_0x449ec7)['includes'](_0x57313b) && (_0x449ec7[_0x57313b]['netplay'] && _0xdcec2a['connected'] ? _0xdcec2a['connection']['isInitiator'] && (_0x7f9f36['updateCoreOptions']['call'](_0x17edbf, _0x57313b, _0x2c1832), _0xdcec2a['connection']['send'](JSON['stringify']({
+ var _0x449ec7 = _0x7f9f36.getCoreOptions.call(this);
+ this.listeners.bind(_0xb8fbbd, 'click keyup', function(_0x270d0d) {
+ _0x1e2c68.keyboardEvent(_0x270d0d) && 0x20 !== _0x270d0d.which || (_0x270d0d.preventDefault(), _0x270d0d.stopPropagation(), _0xb8fbbd.checked = true, Object.keys(_0x7f9f36.normalOptions).includes(_0x57313b) && _0x7f9f36.updateNormalOptions.call(_0x17edbf, _0x57313b, _0x2c1832), Object.keys(_0x449ec7).includes(_0x57313b) && (_0x449ec7[_0x57313b].netplay && _0xdcec2a.connected ? _0xdcec2a.connection.isInitiator && (_0x7f9f36.updateCoreOptions.call(_0x17edbf, _0x57313b, _0x2c1832), _0xdcec2a.connection.send(JSON.stringify({
'act': 'update-core-option',
'key': _0x57313b,
'value': _0x2c1832,
- 'frame': _0xdcec2a['currentFrame']
- }))) : _0x7f9f36['updateCoreOptions']['call'](_0x17edbf, _0x57313b, _0x2c1832)), _0x7f9f36['showMenuPanel']['call'](_0x17edbf, 'home', _0x1e2c68['keyboardEvent'](_0x270d0d)));
- }, _0x57313b, !0x1), _0x7f9f36['bindMenuItemShortcuts']['call'](this, _0xb8fbbd, _0x57313b), _0x231912['appendChild'](_0xb8fbbd);
+ 'frame': _0xdcec2a.currentFrame
+ }))) : _0x7f9f36.updateCoreOptions.call(_0x17edbf, _0x57313b, _0x2c1832)), _0x7f9f36.showMenuPanel.call(_0x17edbf, 'home', _0x1e2c68.keyboardEvent(_0x270d0d)));
+ }, _0x57313b, !0x1), _0x7f9f36.bindMenuItemShortcuts.call(this, _0xb8fbbd, _0x57313b), _0x231912.appendChild(_0xb8fbbd);
},
'updateVolume': function() {
- _0x1e2c68['element'](this['elements']['inputs']['volume']) && _0x7f9f36['setRange']['call'](this, this['elements']['inputs']['volume'], this['muted'] ? 0x0 : this['volume']), _0x1e2c68['element'](this['elements']['buttons']['mute']) && (this['elements']['buttons']['mute']['pressed'] = this['muted'] || 0x0 === this['volume']);
+ _0x1e2c68.element(this.elements.inputs.volume) && _0x7f9f36.setRange.call(this, this.elements.inputs.volume, this.muted ? 0x0 : this.volume), _0x1e2c68.element(this.elements.buttons.mute) && (this.elements.buttons.mute.pressed = this.muted || 0x0 === this.volume);
},
'setRange': function(_0x1c075b) {
- var _0x17edbf = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : 0x0;
- _0x1e2c68['element'](_0x1c075b) && (_0x1c075b['value'] = _0x17edbf, _0x7f9f36['updateRangeFill']['call'](this, _0x1c075b));
+ var _0x17edbf = arguments.length > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : 0x0;
+ _0x1e2c68.element(_0x1c075b) && (_0x1c075b.value = _0x17edbf, _0x7f9f36.updateRangeFill.call(this, _0x1c075b));
},
'updateRangeFill': function(_0x2dbde1) {
- var _0x17edbf = _0x1e2c68['event'](_0x2dbde1) ? _0x2dbde1['target'] : _0x2dbde1;
- if (_0x1e2c68['element'](_0x17edbf) && 'range' === _0x17edbf['getAttribute']('type')) {
- if (_0x13f491(_0x17edbf, this['config']['selectors']['inputs']['volume'])) {
- var _0x2c1832 = 0x64 * _0x17edbf['value'];
- _0x17edbf['setAttribute']('aria-valuenow', _0x2c1832), _0x17edbf['setAttribute']('aria-valuetext', '' ['concat'](_0x2c1832['toFixed'](0x1), '%'));
- } else _0x17edbf['setAttribute']('aria-valuenow', _0x17edbf['value']);
- _0x59aa33['isWebkit'] && _0x17edbf['style']['setProperty']('--value', '' ['concat'](_0x17edbf['value'] / _0x17edbf['max'] * 0x64, '%'));
+ var _0x17edbf = _0x1e2c68.event(_0x2dbde1) ? _0x2dbde1.target : _0x2dbde1;
+ if (_0x1e2c68.element(_0x17edbf) && 'range' === _0x17edbf.getAttribute('type')) {
+ if (_0x13f491(_0x17edbf, this.config.selectors.inputs.volume)) {
+ var _0x2c1832 = 0x64 * _0x17edbf.value;
+ _0x17edbf.setAttribute('aria-valuenow', _0x2c1832), _0x17edbf.setAttribute('aria-valuetext', '' .concat(_0x2c1832.toFixed(0x1), '%'));
+ } else _0x17edbf.setAttribute('aria-valuenow', _0x17edbf.value);
+ _0x59aa33.isWebkit && _0x17edbf.style.setProperty('--value', '' .concat(_0x17edbf.value / _0x17edbf.max * 0x64, '%'));
}
},
'toggleMenuButton': function(_0x249814, _0x2948e9) {
- _0x132da7(this['elements']['settings']['buttons'][_0x249814], !_0x2948e9);
+ _0x132da7(this.elements.settings.buttons[_0x249814], !_0x2948e9);
},
'updateNormalOptions': function(_0x255b79, _0x505484) {
- this['elements']['settings']['buttons'][_0x255b79]['querySelector']('.' ['concat'](this['config']['classNames']['menu']['value']))['innerHTML'] = _0x7f9f36['normalOptions'][_0x255b79]['options'][_0x505484];
+ this.elements.settings.buttons[_0x255b79].querySelector('.' .concat(this.config.classNames.menu.value)).innerHTML = _0x7f9f36.normalOptions[_0x255b79].options[_0x505484];
var _0x2c1832 = {};
- _0x2c1832[_0x255b79] = _0x505484, _0x7f9f36['storage']['set'](_0x2c1832), 'shader' === _0x255b79 && _0xdcec2a['setShader'](_0x505484), 'virtual-gamepad' === _0x255b79 && _0xdcec2a['toggleVirtualGamepad']['call'](this, 'enabled' === _0x505484);
+ _0x2c1832[_0x255b79] = _0x505484, _0x7f9f36.storage.set(_0x2c1832), 'shader' === _0x255b79 && _0xdcec2a.setShader(_0x505484), 'virtual-gamepad' === _0x255b79 && _0xdcec2a.toggleVirtualGamepad.call(this, 'enabled' === _0x505484);
},
'updateCoreOptions': function(_0x41c4ad, _0x15823e) {
- if ('nds' == this['system'] && !_0x2d904a['wasm']) return !0x0;
- if (_0x7f9f36['coreOptionsValues'][_0x41c4ad] = _0x15823e, 'psx' === this['system'] && _0x27f4c4['Module']['pauseMainLoop'](), _0xdcec2a['setVariable'](_0x41c4ad, _0x15823e), 'psx' === this['system'] && (setTimeout(function() {
- _0x27f4c4['Module']['resumeMainLoop']();
+ if ('nds' == this.system && !_0x2d904a.wasm) return true;
+ if (_0x7f9f36.coreOptionsValues[_0x41c4ad] = _0x15823e, 'psx' === this.system && _0x27f4c4.Module.pauseMainLoop(), _0xdcec2a.setVariable(_0x41c4ad, _0x15823e), 'psx' === this.system && (setTimeout(function() {
+ _0x27f4c4.Module.resumeMainLoop();
}, 0x64), setTimeout(function() {
- _0x27f4c4['Module']['resumeMainLoop']();
- }, 0xc8)), 'nds' === this['system'] && _0x2d904a['wasm']) {
- var _0x2c1832 = this['elements']['wrapper']['querySelector']('canvas');
- if ('screen_rotation' === _0x41c4ad) switch (_0x2c1832['style']['transform'] = 'rotate(' + _0x15823e + 'deg)', _0x15823e) {
+ _0x27f4c4.Module.resumeMainLoop();
+ }, 0xc8)), 'nds' === this.system && _0x2d904a.wasm) {
+ var _0x2c1832 = this.elements.wrapper.querySelector('canvas');
+ if ('screen_rotation' === _0x41c4ad) switch (_0x2c1832.style.transform = 'rotate(' + _0x15823e + 'deg)', _0x15823e) {
case '0':
- _0xdcec2a['setVariable']('desmume_input_rotation', '0');
+ _0xdcec2a.setVariable('desmume_input_rotation', '0');
break;
case '90':
- _0xdcec2a['setVariable']('desmume_input_rotation', '270');
+ _0xdcec2a.setVariable('desmume_input_rotation', '270');
break;
case '180':
- _0xdcec2a['setVariable']('desmume_input_rotation', '180');
+ _0xdcec2a.setVariable('desmume_input_rotation', '180');
break;
case '270':
- _0xdcec2a['setVariable']('desmume_input_rotation', '90');
+ _0xdcec2a.setVariable('desmume_input_rotation', '90');
}
}
- if ('arcade' === this['system'] || 'fba0.2.97.29' === this['system']) {
- var _0x567ccc = this['elements']['wrapper']['querySelector']('canvas');
- _0x567ccc['height'] = 'fba-aspect' === _0x41c4ad && 'PAR' === _0x15823e ? _0x567ccc['width'] / 0x10 * 0x9 : _0x567ccc['width'] / 0x4 * 0x3;
+ if ('arcade' === this.system || 'fba0.2.97.29' === this.system) {
+ var _0x567ccc = this.elements.wrapper.querySelector('canvas');
+ _0x567ccc.height = 'fba-aspect' === _0x41c4ad && 'PAR' === _0x15823e ? _0x567ccc.width / 0x10 * 0x9 : _0x567ccc.width / 0x4 * 0x3;
}
- var _0x31bdec = _0x7f9f36['getCoreOptions']['call'](this),
- _0x3efd0b = _0x7f9f36['storage']['get']('core-options');
- if (_0x1e2c68['empty'](_0x3efd0b) && (_0x3efd0b = {}), _0x3efd0b[_0x41c4ad] = _0x15823e, _0x7f9f36['storage']['set']({
+ var _0x31bdec = _0x7f9f36.getCoreOptions.call(this),
+ _0x3efd0b = _0x7f9f36.storage.get('core-options');
+ if (_0x1e2c68.empty(_0x3efd0b) && (_0x3efd0b = {}), _0x3efd0b[_0x41c4ad] = _0x15823e, _0x7f9f36.storage.set({
'core-options': _0x3efd0b
- }), this['elements']['settings']['buttons'][_0x41c4ad]) {
- var _0xe95e6a = this['elements']['settings']['buttons'][_0x41c4ad]['querySelector']('.' ['concat'](this['config']['classNames']['menu']['value']));
- _0x1e2c68['object'](_0x31bdec[_0x41c4ad]['options']) ? _0xe95e6a['innerHTML'] = _0x31bdec[_0x41c4ad]['options'][_0x15823e] : _0xe95e6a['innerHTML'] = _0x15823e;
+ }), this.elements.settings.buttons[_0x41c4ad]) {
+ var _0xe95e6a = this.elements.settings.buttons[_0x41c4ad].querySelector('.' .concat(this.config.classNames.menu.value));
+ _0x1e2c68.object(_0x31bdec[_0x41c4ad].options) ? _0xe95e6a.innerHTML = _0x31bdec[_0x41c4ad].options[_0x15823e] : _0xe95e6a.innerHTML = _0x15823e;
}
},
'setOptionMenuItem': function(_0x2f0e6a, _0x85969e) {
var _0x2c1832 = this,
- _0x549dac = this['elements']['settings']['panels']['home']['querySelector']('[role="menu"]'),
- _0x43777f = this['elements']['settings']['popup']['children'][0x0];
- Object['keys'](_0x2f0e6a)['forEach'](function(_0x4fcbcf) {
+ _0x549dac = this.elements.settings.panels.home.querySelector('[role="menu"]'),
+ _0x43777f = this.elements.settings.popup.children[0x0];
+ Object.keys(_0x2f0e6a).forEach(function(_0x4fcbcf) {
var _0x177975 = _0x4fcbcf,
- _0x5f3e0f = _0x428003('button', _0x5dc0c0(_0xa949a8(_0x2c1832['config']['selectors']['buttons']['settings']), {
+ _0x5f3e0f = _0x428003('button', _0x5dc0c0(_0xa949a8(_0x2c1832.config.selectors.buttons.settings), {
'type': 'button',
'class': _0x449eac({
- 'ejs__control': !0x0,
- 'ejs__control--forward': !0x0
+ 'ejs__control': true,
+ 'ejs__control--forward': true
}),
'role': 'menuitem',
'item': _0x4fcbcf,
- 'aria-haspopup': !0x0
+ 'aria-haspopup': true
}));
_0x1093f4(_0x5f3e0f, 'click', function() {
- _0x7f9f36['showMenuPanel']['call'](_0x2c1832, _0x177975, !0x1);
+ _0x7f9f36.showMenuPanel.call(_0x2c1832, _0x177975, !0x1);
});
- var _0x1d5857, _0x1838f9 = _0x428003('span', null, _0x2f0e6a[_0x4fcbcf]['label']),
+ var _0x1d5857, _0x1838f9 = _0x428003('span', null, _0x2f0e6a[_0x4fcbcf].label),
_0x455b20 = _0x428003('span', {
- 'class': _0x2c1832['config']['classNames']['menu']['value']
+ 'class': _0x2c1832.config.classNames.menu.value
});
- _0x1e2c68['object'](_0x85969e) && (_0x1d5857 = _0x85969e[_0x177975]), _0x1e2c68['empty'](_0x1d5857) && (_0x1d5857 = _0x2f0e6a[_0x177975]['default']), _0x1e2c68['object'](_0x2f0e6a[_0x177975]['options']) ? _0x455b20['innerHTML'] = _0x2f0e6a[_0x177975]['options'][_0x1d5857] : _0x455b20['innerHTML'] = _0x1d5857, _0x1838f9['appendChild'](_0x455b20), _0x5f3e0f['appendChild'](_0x1838f9), _0x549dac['appendChild'](_0x5f3e0f);
+ _0x1e2c68.object(_0x85969e) && (_0x1d5857 = _0x85969e[_0x177975]), _0x1e2c68.empty(_0x1d5857) && (_0x1d5857 = _0x2f0e6a[_0x177975].default), _0x1e2c68.object(_0x2f0e6a[_0x177975].options) ? _0x455b20.innerHTML = _0x2f0e6a[_0x177975].options[_0x1d5857] : _0x455b20.innerHTML = _0x1d5857, _0x1838f9.appendChild(_0x455b20), _0x5f3e0f.appendChild(_0x1838f9), _0x549dac.appendChild(_0x5f3e0f);
var _0x3f3775 = _0x428003('div', {
'data-pane': escape(_0x177975),
'hidden': ''
@@ -17988,38 +18131,38 @@ var EJS = function(_0x574f5e) {
_0x288440 = _0x428003('button', {
'type': 'button',
'class': _0x449eac({
- 'ejs__control': !0x0,
- 'ejs__control--back': !0x0
+ 'ejs__control': true,
+ 'ejs__control--back': true
})
});
- _0x288440['appendChild'](_0x428003('span', {
- 'aria-hidden': !0x0
- }, _0x2f0e6a[_0x4fcbcf]['label'])), _0x288440['appendChild'](_0x428003('span', {
+ _0x288440.appendChild(_0x428003('span', {
+ 'aria-hidden': true
+ }, _0x2f0e6a[_0x4fcbcf].label)), _0x288440.appendChild(_0x428003('span', {
'class': _0x449eac({
- 'ejs__sr-only': !0x0
+ 'ejs__sr-only': true
})
- }, _0xb9b2ff['get']('menuBack', _0x2c1832['config']))), _0x1093f4(_0x3f3775, 'keydown', function(_0x462a4d) {
- 0x25 === _0x462a4d['which'] && (_0x462a4d['preventDefault'](), _0x462a4d['stopPropagation'](), _0x7f9f36['showMenuPanel']['call'](_0x2c1832, 'home', !0x0));
+ }, _0xb9b2ff.get('menuBack', _0x2c1832.config))), _0x1093f4(_0x3f3775, 'keydown', function(_0x462a4d) {
+ 0x25 === _0x462a4d.which && (_0x462a4d.preventDefault(), _0x462a4d.stopPropagation(), _0x7f9f36.showMenuPanel.call(_0x2c1832, 'home', true));
}, !0x1), _0x1093f4(_0x288440, 'click', function() {
- _0x7f9f36['showMenuPanel']['call'](_0x2c1832, 'home', !0x1);
- }), _0x3f3775['appendChild'](_0x288440), _0x3f3775['appendChild'](_0x428003('div', {
+ _0x7f9f36.showMenuPanel.call(_0x2c1832, 'home', !0x1);
+ }), _0x3f3775.appendChild(_0x288440), _0x3f3775.appendChild(_0x428003('div', {
'role': 'menu'
- })), _0x43777f['appendChild'](_0x3f3775), _0x2c1832['elements']['settings']['buttons'][_0x177975] = _0x5f3e0f, _0x2c1832['elements']['settings']['panels'][_0x177975] = _0x3f3775;
- var _0x2c172f = _0x3f3775['querySelector']('[role="menu"]');
+ })), _0x43777f.appendChild(_0x3f3775), _0x2c1832.elements.settings.buttons[_0x177975] = _0x5f3e0f, _0x2c1832.elements.settings.panels[_0x177975] = _0x3f3775;
+ var _0x2c172f = _0x3f3775.querySelector('[role="menu"]');
! function(_0x301c01) {
- if (_0x1e2c68['element'](_0x301c01))
- for (var _0x85969e = _0x301c01['childNodes']['length']; _0x85969e > 0x0;) _0x301c01['removeChild'](_0x301c01['lastChild']), _0x85969e -= 0x1;
- }(_0x2c172f), _0x1e2c68['object'](_0x2f0e6a[_0x4fcbcf]['options']) ? Object['keys'](_0x2f0e6a[_0x4fcbcf]['options'])['forEach'](function(_0x281296) {
- _0x7f9f36['createMenuItem']['call'](_0x2c1832, {
+ if (_0x1e2c68.element(_0x301c01))
+ for (var _0x85969e = _0x301c01.childNodes.length; _0x85969e > 0x0;) _0x301c01.removeChild(_0x301c01.lastChild), _0x85969e -= 0x1;
+ }(_0x2c172f), _0x1e2c68.object(_0x2f0e6a[_0x4fcbcf].options) ? Object.keys(_0x2f0e6a[_0x4fcbcf].options).forEach(function(_0x281296) {
+ _0x7f9f36.createMenuItem.call(_0x2c1832, {
'value': _0x281296,
'list': _0x2c172f,
'type': _0x177975,
- 'title': _0x2f0e6a[_0x4fcbcf]['options'][_0x281296],
+ 'title': _0x2f0e6a[_0x4fcbcf].options[_0x281296],
'badge': null,
'checked': Boolean(_0x1d5857 === _0x281296)
});
- }) : _0x1e2c68['array'](_0x2f0e6a[_0x4fcbcf]['options']) && _0x2f0e6a[_0x4fcbcf]['options']['forEach'](function(_0x28a341) {
- _0x7f9f36['createMenuItem']['call'](_0x2c1832, {
+ }) : _0x1e2c68.array(_0x2f0e6a[_0x4fcbcf].options) && _0x2f0e6a[_0x4fcbcf].options.forEach(function(_0x28a341) {
+ _0x7f9f36.createMenuItem.call(_0x2c1832, {
'value': _0x28a341,
'list': _0x2c172f,
'type': _0x177975,
@@ -18034,84 +18177,90 @@ var EJS = function(_0x574f5e) {
var _0xa88a13 = this,
_0x17edbf = this,
_0x2c1832 = {};
- _0x2c1832['orientation'] = _0x7f9f36['storage']['get']('orientation'), _0x2c1832['shader'] = _0x7f9f36['storage']['get']('shader'), _0x17edbf['touch'] ? (_0x2c1832['virtual-gamepad'] = _0x7f9f36['storage']['get']('virtual-gamepad'), _0x1093f4['call'](_0x17edbf, _0x17edbf['elements']['container'], 'start-game', function() {
- ('enabled' === _0x2c1832['virtual-gamepad'] || _0x1e2c68['empty'](_0x2c1832['virtual-gamepad'])) && _0xdcec2a['toggleVirtualGamepad']['call'](_0x17edbf, !0x0);
- })) : delete _0x7f9f36['normalOptions']['virtual-gamepad'], _0x7f9f36['setOptionMenuItem']['call'](this, _0x7f9f36['normalOptions'], _0x2c1832), _0x1093f4['call'](_0x17edbf, _0x17edbf['elements']['container'], 'start-game', function() {
+ _0x2c1832.orientation = _0x7f9f36.storage.get('orientation'), _0x2c1832.shader = _0x7f9f36.storage.get('shader'), _0x17edbf.touch ? (_0x2c1832['virtual-gamepad'] = _0x7f9f36.storage.get('virtual-gamepad'), _0x1093f4.call(_0x17edbf, _0x17edbf.elements.container, 'start-game', function() {
+ ('enabled' === _0x2c1832['virtual-gamepad'] || _0x1e2c68.empty(_0x2c1832['virtual-gamepad'])) && _0xdcec2a.toggleVirtualGamepad.call(_0x17edbf, true);
+ })) : delete _0x7f9f36.normalOptions['virtual-gamepad'], _0x7f9f36.setOptionMenuItem.call(this, _0x7f9f36.normalOptions, _0x2c1832), _0x1093f4.call(_0x17edbf, _0x17edbf.elements.container, 'start-game', function() {
var _0x2c1832 = _0xa88a13,
_0x42a7b1 = {};
- _0xdcec2a['getGameCoreOptions'] && _0xdcec2a['getGameCoreOptions']()['split']('\x0a')['forEach'](function(_0x4a987e, _0x10bd7a) {
- var _0x2c1832 = _0x4a987e['split']('; '),
+ _0xdcec2a.getGameCoreOptions && _0xdcec2a.getGameCoreOptions().split('\n').forEach(function(_0x4a987e, _0x10bd7a) {
+ var _0x2c1832 = _0x4a987e.split('; '),
_0x1ddc5f = _0x2c1832[0x0];
- if (0x0 === _0x1ddc5f['indexOf']('fba-dipswitch-')) {
- var _0xbd808 = _0x2c1832[0x1]['split']('|'),
- _0x3c4b1a = _0x1ddc5f['replace'](/_/g, ' ')['replace'](/.+\-(.+)/, '$1');
+ if (0x0 === _0x1ddc5f.indexOf('fba-dipswitch-')) {
+ var _0xbd808 = _0x2c1832[0x1].split('|'),
+ _0x3c4b1a = _0x1ddc5f.replace(/_/g, ' ').replace(/.+\-(.+)/, '$1');
_0x42a7b1[_0x1ddc5f] = {
'label': _0x3c4b1a,
- 'options': _0xbd808['slice'](0x1, -0x1),
- 'default': _0xbd808[0x0]['replace']('(Default) ', ''),
- 'netplay': !0x0
+ 'options': _0xbd808.slice(0x1, -0x1),
+ 'default': _0xbd808[0x0].replace('(Default) ', ''),
+ 'netplay': true
};
}
});
- var _0x27d859 = _0x7f9f36['storage']['get']('core-options');
- _0x7f9f36['coreOptionsValues'] = _0x27d859 || {}, _0x7f9f36['setOptionMenuItem']['call'](_0x17edbf, _0x42a7b1, _0x7f9f36['coreOptionsValues']), Object['keys'](_0x7f9f36['coreOptionsValues'])['forEach'](function(_0x51fc4e, _0x4b3613) {
- _0x7f9f36['updateCoreOptions']['call'](_0x2c1832, _0x51fc4e, _0x7f9f36['coreOptionsValues'][_0x51fc4e]);
- }), 'nds' == _0x17edbf['system'] && (_0x27f4c4['Module']['_fast_forward_2'] ? _0x27f4c4['Module']['_fast_forward_2'](0x1) : _0x27f4c4['Module']['_fast_forward'] && _0x27f4c4['Module']['_fast_forward'](0x1));
+ var _0x27d859 = _0x7f9f36.storage.get('core-options');
+ _0x7f9f36.coreOptionsValues = _0x27d859 || {}, _0x7f9f36.setOptionMenuItem.call(_0x17edbf, _0x42a7b1, _0x7f9f36.coreOptionsValues), Object.keys(_0x7f9f36.coreOptionsValues).forEach(function(_0x51fc4e, _0x4b3613) {
+ _0x7f9f36.updateCoreOptions.call(_0x2c1832, _0x51fc4e, _0x7f9f36.coreOptionsValues[_0x51fc4e]);
+ }), 'nds' == _0x17edbf.system && (_0x27f4c4.Module._fast_forward_2 ? _0x27f4c4.Module._fast_forward_2(0x1) : _0x27f4c4.Module._fast_forward && _0x27f4c4.Module._fast_forward(0x1));
});
},
'updateCoreOptionMenuItems': function() {
- var _0xa88a13 = this['elements']['settings']['panels']['home']['querySelector']('[role="menu"]'),
- _0x17edbf = _0x7f9f36['getCoreOptions']['call'](this);
- _0xdcec2a['connected'] && !_0xdcec2a['connection']['isInitiator'] ? Object['keys'](_0x17edbf)['forEach'](function(_0x480587) {
- _0x17edbf[_0x480587]['netplay'] && _0xa88a13['querySelector']('[item=\x22' ['concat'](_0x480587, '\x22]'))['setAttribute']('disabled', '');
- }) : Object['keys'](_0x17edbf)['forEach'](function(_0x20e093) {
- _0xa88a13['querySelector']('[item="' ['concat'](_0x20e093, '\x22]'))['removeAttribute']('disabled');
+ var _0xa88a13 = this.elements.settings.panels.home.querySelector('[role="menu"]'),
+ _0x17edbf = _0x7f9f36.getCoreOptions.call(this);
+ _0xdcec2a.connected && !_0xdcec2a.connection.isInitiator ? Object.keys(_0x17edbf).forEach(function(_0x480587) {
+ _0x17edbf[_0x480587].netplay && _0xa88a13.querySelector('[item=\x22' .concat(_0x480587, '\x22]')).setAttribute('disabled', '');
+ }) : Object.keys(_0x17edbf).forEach(function(_0x20e093) {
+ _0xa88a13.querySelector('[item="' .concat(_0x20e093, '\x22]')).removeAttribute('disabled');
});
},
'setCoreOptionsMenu': function() {
- this['elements']['settings']['panels']['home']['querySelector']('[role="menu"]'), this['elements']['settings']['popup']['children'][0x0];
- var _0xa88a13 = _0x7f9f36['getCoreOptions']['call'](this),
- _0x17edbf = _0x7f9f36['storage']['get']('core-options');
- _0x7f9f36['coreOptionsValues'] = _0x17edbf || {}, _0x7f9f36['setOptionMenuItem']['call'](this, _0xa88a13, _0x17edbf);
+ this.elements.settings.panels.home.querySelector('[role="menu"]'), this.elements.settings.popup.children[0x0];
+ var _0xa88a13 = _0x7f9f36.getCoreOptions.call(this),
+ _0x17edbf = _0x7f9f36.storage.get('core-options');
+ _0x7f9f36.coreOptionsValues = _0x17edbf || {}, _0x7f9f36.setOptionMenuItem.call(this, _0xa88a13, _0x17edbf);
},
'checkMenu': function() {
- var _0xa88a13 = this['elements']['settings']['buttons'];
- !_0x1e2c68['empty'](_0xa88a13) && Object['values'](_0xa88a13)['some'](function(_0x200331) {
- return !_0x200331['hidden'];
+ var _0xa88a13 = this.elements.settings.buttons;
+ !_0x1e2c68.empty(_0xa88a13) && Object.values(_0xa88a13).some(function(_0x200331) {
+ return !_0x200331.hidden;
});
- _0x132da7(this['elements']['settings']['menu'], !0x1);
+ _0x132da7(this.elements.settings.menu, !0x1);
},
'focusFirstMenuItem': function(_0x303d68) {
- var _0x17edbf = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] && arguments[0x1];
- if (!this['elements']['settings']['popup']['hidden']) {
+ var _0x17edbf = arguments.length > 0x1 && void 0x0 !== arguments[0x1] && arguments[0x1];
+ if (!this.elements.settings.popup.hidden) {
var _0x2c1832 = _0x303d68;
- _0x1e2c68['element'](_0x2c1832) || (_0x2c1832 = Object['values'](this['elements']['settings']['panels'])['find'](function(_0xe94c5e) {
- return !_0xe94c5e['hidden'];
+ _0x1e2c68.element(_0x2c1832) || (_0x2c1832 = Object.values(this.elements.settings.panels).find(function(_0xe94c5e) {
+ return !_0xe94c5e.hidden;
}));
- var _0x2f3a13 = _0x2c1832['querySelector']('[role^="menuitem"]');
- _0x31cc23['call'](this, _0x2f3a13, _0x17edbf);
+ var _0x2f3a13 = _0x2c1832.querySelector('[role^="menuitem"]');
+ _0x31cc23.call(this, _0x2f3a13, _0x17edbf);
}
},
'toggleMenu': function(_0x28d6c6) {
- var _0x17edbf = this['elements']['settings']['popup'],
- _0x2c1832 = this['elements']['buttons']['settings'];
- if (_0x1e2c68['element'](_0x17edbf) && _0x1e2c68['element'](_0x2c1832)) {
- var _0x614270 = _0x17edbf['hidden'],
+ var _0x17edbf = this.elements.settings.popup,
+ _0x2c1832 = this.elements.buttons.settings;
+ if (_0x1e2c68.element(_0x17edbf) && _0x1e2c68.element(_0x2c1832)) {
+ var _0x614270 = _0x17edbf.hidden,
_0x14f1b5 = _0x614270;
- if (_0x1e2c68['boolean'](_0x28d6c6)) _0x14f1b5 = _0x28d6c6;
- else if (_0x1e2c68['keyboardEvent'](_0x28d6c6) && 0x1b === _0x28d6c6['which']) _0x14f1b5 = !0x1;
- else if (_0x1e2c68['event'](_0x28d6c6)) {
- var _0xcf75ac = _0x17edbf['contains'](_0x28d6c6['target']);
- if (_0xcf75ac || !_0xcf75ac && _0x28d6c6['target'] !== _0x2c1832 && _0x14f1b5) return;
+ if (_0x1e2c68.boolean(_0x28d6c6)) _0x14f1b5 = _0x28d6c6;
+ else if (_0x1e2c68.keyboardEvent(_0x28d6c6) && 0x1b === _0x28d6c6.which) _0x14f1b5 = !0x1;
+ else if (_0x1e2c68.event(_0x28d6c6)) {
+ var _0xcf75ac = _0x17edbf.contains(_0x28d6c6.target);
+ if (_0xcf75ac || !_0xcf75ac && _0x28d6c6.target !== _0x2c1832 && _0x14f1b5) return;
}
- _0x2c1832['setAttribute']('aria-expanded', _0x14f1b5), _0x132da7(_0x17edbf, !_0x14f1b5), _0x3a8e2f(this['elements']['container'], this['config']['classNames']['menu']['open'], _0x14f1b5), _0x14f1b5 && _0x1e2c68['keyboardEvent'](_0x28d6c6) ? _0x7f9f36['focusFirstMenuItem']['call'](this, null, !0x0) : _0x14f1b5 || _0x614270 || _0x31cc23['call'](this, _0x2c1832, _0x1e2c68['keyboardEvent'](_0x28d6c6));
+ _0x2c1832.setAttribute('aria-expanded', _0x14f1b5);
+ _0x132da7(_0x17edbf, !_0x14f1b5);
+ _0x3a8e2f(this.elements.container, this.config.classNames.menu.open, _0x14f1b5);
+ _0x14f1b5 && _0x1e2c68.keyboardEvent(_0x28d6c6) ? _0x7f9f36.focusFirstMenuItem.call(this, null, true) : _0x14f1b5 || _0x614270 || _0x31cc23.call(this, _0x2c1832, _0x1e2c68.keyboardEvent(_0x28d6c6));
}
},
'getMenuSize': function(_0x55fe13) {
- var _0x17edbf = _0x55fe13['cloneNode'](!0x0);
- _0x17edbf['style']['position'] = 'absolute', _0x17edbf['style']['opacity'] = 0x0, _0x17edbf['removeAttribute']('hidden'), _0x55fe13['parentNode']['appendChild'](_0x17edbf);
- var _0x2c1832 = _0x17edbf['scrollWidth'],
- _0x5edd1b = _0x17edbf['scrollHeight'];
+ var _0x17edbf = _0x55fe13.cloneNode(true);
+ _0x17edbf.style.position = 'absolute';
+ _0x17edbf.style.opacity = 0;
+ _0x17edbf.removeAttribute('hidden');
+ _0x55fe13.parentNode.appendChild(_0x17edbf);
+ var _0x2c1832 = _0x17edbf.scrollWidth,
+ _0x5edd1b = _0x17edbf.scrollHeight;
return _0x12a55d(_0x17edbf), {
'width': _0x2c1832,
'height': _0x5edd1b
@@ -18120,214 +18269,316 @@ var EJS = function(_0x574f5e) {
'showLoadStatePanel': function() {},
'showMenuPanel': function() {
var _0xa88a13 = this,
- _0x17edbf = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : '',
- _0x2c1832 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] && arguments[0x1],
- _0x7f4281 = _0x530042['call'](this, '[data-pane="' ['concat'](escape(_0x17edbf), '\x22]'));
- if (_0x1e2c68['element'](_0x7f4281)) {
- var _0x3d6729 = _0x7f4281['parentNode'],
- _0x381f57 = Array['from'](_0x3d6729['children'])['find'](function(_0x57c652) {
- return !_0x57c652['hidden'];
+ _0x17edbf = arguments.length > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : '',
+ _0x2c1832 = arguments.length > 0x1 && void 0x0 !== arguments[0x1] && arguments[0x1],
+ _0x7f4281 = _0x530042.call(this, '[data-pane="' .concat(escape(_0x17edbf), '\x22]'));
+ if (_0x1e2c68.element(_0x7f4281)) {
+ var _0x3d6729 = _0x7f4281.parentNode,
+ _0x381f57 = Array.from(_0x3d6729.children).find(function(_0x57c652) {
+ return !_0x57c652.hidden;
});
- if (_0x2d904a['transitions'] && !_0x2d904a['reducedMotion']) {
- _0x3d6729['style']['width'] = '' ['concat'](_0x381f57['scrollWidth'], 'px'), _0x3d6729['style']['height'] = '' ['concat'](_0x381f57['scrollHeight'], 'px');
- var _0x29dd37 = _0x7f9f36['getMenuSize']['call'](this, _0x7f4281),
+ if (_0x2d904a.transitions && !_0x2d904a.reducedMotion) {
+ _0x3d6729.style.width = '' .concat(_0x381f57.scrollWidth, 'px');
+ _0x3d6729.style.height = '' .concat(_0x381f57.scrollHeight, 'px');
+ var _0x29dd37 = _0x7f9f36.getMenuSize.call(this, _0x7f4281),
_0x37447f = function _0x17edbf(_0x40854f) {
- _0x40854f['target'] === _0x3d6729 && ['width', 'height']['includes'](_0x40854f['propertyName']) && (_0x3d6729['style']['width'] = '', _0x3d6729['style']['height'] = '', _0x20109b['call'](_0xa88a13, _0x3d6729, _0x5a2767, _0x17edbf));
+ _0x40854f.target === _0x3d6729 && ['width', 'height'].includes(_0x40854f.propertyName) && (_0x3d6729.style.width = '', _0x3d6729.style.height = '', _0x20109b.call(_0xa88a13, _0x3d6729, _0x5a2767, _0x17edbf));
};
- _0x1093f4['call'](this, _0x3d6729, _0x5a2767, _0x37447f), _0x3d6729['style']['width'] = '' ['concat'](_0x29dd37['width'], 'px'), _0x3d6729['style']['height'] = '' ['concat'](_0x29dd37['height'], 'px');
+ _0x1093f4.call(this, _0x3d6729, _0x5a2767, _0x37447f), _0x3d6729.style.width = '' .concat(_0x29dd37.width, 'px'), _0x3d6729.style.height = '' .concat(_0x29dd37.height, 'px');
}
- _0x132da7(_0x381f57, !0x0), _0x132da7(_0x7f4281, !0x1), _0x7f9f36['focusFirstMenuItem']['call'](this, _0x7f4281, _0x2c1832);
+ _0x132da7(_0x381f57, true);
+ _0x132da7(_0x7f4281, false);
+ _0x7f9f36.focusFirstMenuItem.call(this, _0x7f4281, _0x2c1832);
}
},
'setLoadState': function(_0x526828, _0x2ce330) {
- _0x526828['appendChild'](_0x7f9f36['createButton']['call'](this, 'load-state', {
- 'aria-haspopup': !0x0,
+ _0x526828.appendChild(_0x7f9f36.createButton.call(this, 'load-state', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1
}));
var _0x2c1832 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialog': !0x0,
- 'ejs__load-state__container': !0x0
+ 'ejs__dialog': true,
+ 'ejs__load-state__container': true
}),
'hidden': ''
}),
_0x2e5e96 = _0x428003('div');
- _0x2c1832['appendChild'](_0x2e5e96), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__dialogs': !0x0
- })))['appendChild'](_0x2c1832), this['elements']['dialogs']['loadState'] = _0x2c1832;
+ _0x2c1832.appendChild(_0x2e5e96);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__dialogs': true
+ }))).appendChild(_0x2c1832);
+ this.elements.dialogs.loadState = _0x2c1832;
},
'setScreenRecord': function(_0x4c3fdd, _0x289259) {
if (! window.MediaRecorder) {
return;
};
- var _0x2c1832 = _0x7f9f36['createButton']['call'](this, 'screen-record', {
- 'aria-haspopup': !0x0,
+ var _0x2c1832 = _0x7f9f36.createButton.call(this, 'screen-record', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1,
'style': 'margin-right:auto;'
});
- _0x4c3fdd['appendChild'](_0x2c1832);
+ _0x4c3fdd.appendChild(_0x2c1832);
var _0x13c0e4 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialog': !0x0,
- 'ejs__screenRecord__container': !0x0
+ 'ejs__dialog': true,
+ 'ejs__screenRecord__container': true
}),
'hidden': ''
}),
_0xe2c02a = _0x428003('div');
- _0x13c0e4['appendChild'](_0xe2c02a), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__dialogs': !0x0
- })))['appendChild'](_0x13c0e4), this['elements']['dialogs']['screenRecord'] = _0x13c0e4;
+ _0x13c0e4.appendChild(_0xe2c02a);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__dialogs': true
+ }))).appendChild(_0x13c0e4);
+ this.elements.dialogs.screenRecord = _0x13c0e4;
},
'setGamepad': function(_0x4c3fdd, _0x289259) {
- var _0x2c1832 = _0x7f9f36['createButton']['call'](this, 'gamepad', {
- 'aria-haspopup': !0x0,
+ var _0x2c1832 = _0x7f9f36.createButton.call(this, 'gamepad', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1,
'style': 'margin-right:auto;'
});
- _0x4c3fdd['appendChild'](_0x2c1832);
+ _0x4c3fdd.appendChild(_0x2c1832);
var _0x13c0e4 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialog': !0x0,
- 'ejs__gamepad__container': !0x0
+ 'ejs__dialog': true,
+ 'ejs__gamepad__container': true
}),
'hidden': ''
}),
_0xe2c02a = _0x428003('div');
- _0x13c0e4['appendChild'](_0xe2c02a), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__dialogs': !0x0
- })))['appendChild'](_0x13c0e4), this['elements']['dialogs']['gamepad'] = _0x13c0e4;
+ _0x13c0e4.appendChild(_0xe2c02a);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__dialogs': true
+ }))).appendChild(_0x13c0e4);
+ this.elements.dialogs.gamepad = _0x13c0e4;
},
'setCheat': function(_0x328075, _0x21ca37) {
- var _0x2c1832 = _0x7f9f36['createButton']['call'](this, 'cheat', {
- 'aria-haspopup': !0x0,
+ var _0x2c1832 = _0x7f9f36.createButton.call(this, 'cheat', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1,
'style': 'margin-right:auto;'
});
- _0x328075['appendChild'](_0x2c1832);
+ _0x328075.appendChild(_0x2c1832);
var _0x173db3 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialog': !0x0,
- 'ejs__cheat__container': !0x0
+ 'ejs__dialog': true,
+ 'ejs__cheat__container': true
}),
'hidden': ''
}),
_0x460961 = _0x428003('div');
- _0x173db3['appendChild'](_0x460961), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__dialogs': !0x0
- })))['appendChild'](_0x173db3), this['elements']['dialogs']['cheat'] = _0x173db3;
+ _0x173db3.appendChild(_0x460961);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__dialogs': true
+ }))).appendChild(_0x173db3);
+ this.elements.dialogs.cheat = _0x173db3;
},
'setNetplayWidgets': function() {
var _0xa88a13 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__widget': !0x0,
- 'ejs__widget_netplay': !0x0
+ 'ejs__widget': true,
+ 'ejs__widget_netplay': true
})
}),
_0x17edbf = _0x428003('div');
- _0xa88a13['appendChild'](_0x17edbf), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__widgets': !0x0
- })))['appendChild'](_0xa88a13), this['elements']['widgets']['netplay'] = _0xa88a13;
+ _0xa88a13.appendChild(_0x17edbf);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__widgets': true
+ }))).appendChild(_0xa88a13);
+ this.elements.widgets.netplay = _0xa88a13;
},
'setNetplay': function(_0x1859f4, _0x50544d) {
- _0x1859f4['appendChild'](_0x7f9f36['createButton']['call'](this, 'netplay', {
- 'aria-haspopup': !0x0,
+ _0x1859f4.appendChild(_0x7f9f36.createButton.call(this, 'netplay', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1
}));
var _0x2c1832 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialog': !0x0,
- 'ejs__netplay__container': !0x0
+ 'ejs__dialog': true,
+ 'ejs__netplay__container': true
}),
'hidden': ''
}),
_0x4f63e0 = _0x428003('div');
- _0x2c1832['appendChild'](_0x4f63e0), _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__dialogs': !0x0
- })))['appendChild'](_0x2c1832), this['elements']['dialogs']['netplay'] = _0x2c1832, _0x7f9f36['setNetplayWidgets']['call'](this);
+ _0x2c1832.appendChild(_0x4f63e0);
+ _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__dialogs': true
+ }))).appendChild(_0x2c1832);
+ this.elements.dialogs.netplay = _0x2c1832;
+ _0x7f9f36.setNetplayWidgets.call(this);
},
'toggleContextMenu': function(_0x24b1f3, _0x4b9d55) {
- if (_0x350d73(_0x24b1f3['target'], _0x449eac({
- 'ejs__dialogs': !0x0
+ if (_0x350d73(_0x24b1f3.target, _0x449eac({
+ 'ejs__dialogs': true
}))) {
- var _0x2c1832 = _0x7f9f36['contextMenu']['timer'];
- if (this['started']) {
- var _0x2a1dda = _0x530042['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__contextmenu': !0x0
+ var _0x2c1832 = _0x7f9f36.contextMenu.timer;
+ if (this.started) {
+ var _0x2a1dda = _0x530042.call(this, '.' .concat(_0x449eac({
+ 'ejs__contextmenu': true
}), ' ul'));
if (_0x4b9d55) {
- _0x7f9f36['contextMenu']['style']['display'] = 'block', _0x7f9f36['contextMenu']['style']['left'] = '' ['concat'](_0x24b1f3['layerX'], 'px'), _0x7f9f36['contextMenu']['style']['top'] = '' ['concat'](_0x24b1f3['layerY'], 'px');
- var _0x1b48e7 = _0x23ffa1['call'](this, '.' ['concat'](_0x449eac({
- 'ejs__contextmenu': !0x0
+ _0x7f9f36.contextMenu.style.display = 'block', _0x7f9f36.contextMenu.style.left = '' .concat(_0x24b1f3.layerX, 'px'), _0x7f9f36.contextMenu.style.top = '' .concat(_0x24b1f3.layerY, 'px');
+ var _0x1b48e7 = _0x23ffa1.call(this, '.' .concat(_0x449eac({
+ 'ejs__contextmenu': true
}), ' ul li'));
- if (Array['from'](_0x1b48e7)['forEach'](function(_0x228a1f, _0x123a07) {}), null === _0x2a1dda['getAttribute']('menu')) {
+ if (Array.from(_0x1b48e7).forEach(function(_0x228a1f, _0x123a07) {}), null === _0x2a1dda.getAttribute('menu')) {
var _0x14264d = _0x428003('li', {});
- _0x14264d['appendChild'](_0x428003('a', {
+ _0x14264d.appendChild(_0x428003('a', {
'target': '_blank',
'href': 'https://github.com/ethanaobrien/emulatorjs'
- }, 'EmulatorJS v' ['concat'](this['version']))), _0x2a1dda['appendChild'](_0x14264d), _0x2a1dda['setAttribute']('menu', '');
+ }, 'EmulatorJS v' .concat(this.version))), _0x2a1dda.appendChild(_0x14264d), _0x2a1dda.setAttribute('menu', '');
}
- _0x2c1832 && clearTimeout(_0x2c1832), _0x2c1832 = setTimeout(function() {}, 0xfa0), _0x7f9f36['contextMenu']['timer'] = _0x2c1832;
- } else _0x7f9f36['contextMenu']['style']['display'] = 'none';
+ _0x2c1832 && clearTimeout(_0x2c1832), _0x2c1832 = setTimeout(function() {}, 0xfa0), _0x7f9f36.contextMenu.timer = _0x2c1832;
+ } else _0x7f9f36.contextMenu.style.display = 'none';
}
}
},
'create': function(_0x42e40d) {
- _0x7f9f36['storage'] = new _0x2f61ba(this, 'ejs_' ['concat'](this['system'], '_settings'));
- var _0x17edbf = _0x428003('div', _0xa949a8(this['config']['selectors']['controls']['wrapper']));
- _0x7f9f36['contextMenu'] = _0x428003('div', {
+ var _0xa88a13 = this;
+ _0x7f9f36.storage = new _0x2f61ba(this, 'ejs_' .concat(this.system, '_settings'));
+ var _0x17edbf = _0x428003('div', _0xa949a8(this.config.selectors.controls.wrapper));
+ _0x7f9f36.contextMenu = _0x428003('div', {
'class': _0x449eac({
- 'ejs__contextmenu': !0x0
+ 'ejs__contextmenu': true
}),
- 'style': 'position: absolute; display:none;z-index:9' // ooh - a hidden button
- }), _0x7f9f36['contextMenu']['innerHTML'] = '
', this['elements']['container']['appendChild'](_0x7f9f36['contextMenu']);
+ 'style': 'position: absolute; display:none;z-index:9'
+ })
+ var contextHtml = ['
']
+ var contextFunctions = []
+ function addContextHtml(title, hidden, functi0n) {
+ if (typeof functi0n == 'function') {
+ contextFunctions.push(functi0n)
+ } else {
+ contextFunctions.push(function(){})
+ }
+ var i = contextHtml.length - 1
+ if (hidden) {
+ contextHtml.splice(i, 0, '
'+title+' ')
+ } else {
+ contextHtml.splice(i, 0, '
'+title+' ')
+ }
+ }
+ addContextHtml('Take Screenshot', false, function(_0x20faaa) {
+ var _0x4e898a = _0x378b5c.getScreenData();
+ _0x4e4ca6()(new Blob([_0x4e898a]), 'game.png');
+ return false;
+ })
+ addContextHtml('Cache Manage', true, function(_0x275730) {
+ if (_0x27f4c4.romdb) {
+ _0x132da7(_0xa88a13.elements.dialogs.cache, !0x1);
+ var _0x3360eb = _0xa88a13.elements.dialogs.cache.querySelector('.' .concat(_0x378b5c.classNames['dialog-content']));
+ _0x3360eb.innerHTML = '
Loading
', _0x27f4c4.romdb.getAll(function(_0x43586d) {
+ if (_0x43586d) {
+ var _0x275730 = _0x428003('table', {
+ 'style': 'width:100%;padding-left:10px;text-align:left'
+ }),
+ _0x1ab9e9 = _0x428003('tbody');
+ _0x43586d.length > 0x0 ? (_0x3360eb.innerHTML = '', _0x43586d.forEach(function(_0x32b0b7, _0x2d0e11) {
+ if (_0x32b0b7.key && !/-part-\d+$/ .test(_0x32b0b7.key)) {
+ for (var _0x3360eb = Math.ceil(_0x32b0b7.filesize / 0x6400000), _0x277c67 = [_0x32b0b7.key], _0x3edb35 = 0x1; _0x3edb35 < _0x3360eb; _0x3edb35 += 0x1) _0x277c67.push('' .concat(_0x32b0b7.key, '-part-').concat(_0x3edb35));
+ var _0x3e31f6 = _0x428003('tr'),
+ _0x5b75bd = _0x428003('td'),
+ _0x227405 = _0x428003('td'),
+ _0xac150b = _0x428003('td');
+ _0x5b75bd.innerHTML = _0x32b0b7.filename, _0x227405.innerHTML = function(_0x1858c1) {
+ var _0x2d0e11 = -0x1;
+ do {
+ _0x1858c1 /= 0x400, _0x2d0e11++;
+ } while (_0x1858c1 > 0x400);
+ return Math.max(_0x1858c1, 0.1).toFixed(0x1) + [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB'][_0x2d0e11];
+ }(_0x32b0b7.filesize), _0xac150b.innerHTML = '
Remove ', _0x3e31f6.appendChild(_0x5b75bd), _0x3e31f6.appendChild(_0x227405), _0x3e31f6.appendChild(_0xac150b), _0x1ab9e9.appendChild(_0x3e31f6), _0xac150b.querySelector('a').onclick = function(_0x16f22a) {
+ _0x27f4c4.romdb.removeBatch(_0x277c67);
+ try {
+ _0x1ab9e9.removeChild(_0x3e31f6);
+ } catch (_0x353628) {}
+ return _0x16f22a.stopPropagation(), !0x1;
+ };
+ }
+ }), _0x275730.appendChild(_0x1ab9e9), _0x3360eb.appendChild(_0x275730)) : _0x3360eb.innerHTML = '
Empty
';
+ } else _0x3360eb.innerHTML = '
Empty
';
+ }, function() {});
+ }
+ return false;
+ })
+ addContextHtml('Quick Save (F2)', false, function(_0x395c73) {
+ _0x378b5c.quickSaveState();
+ _0x2593da.contextMenu.style.display = 'none';
+ })
+ addContextHtml('Quick Load (F4)', false, function(_0x124f69) {
+ _0x378b5c.quickLoadState();
+ _0x2593da.contextMenu.style.display = 'none';
+ })
+
+
+ _0x7f9f36.contextMenu.innerHTML = contextHtml.join('')
+ var a = _0x7f9f36.contextMenu.getElementsByTagName('li')
+ for (var i=0; i
0x0 && _0x7f9f36['setNetplay']['call'](this, _0x17edbf, _0x42e40d), _0x7f9f36['setGamepad']['call'](this, _0x17edbf, _0x42e40d), _0x7f9f36['setCheat']['call'](this, _0x17edbf, _0x42e40d), _0x17edbf['appendChild'](_0x428003('span', {
+ }));
+ _0x7f9f36.setLoadState.call(this, _0x17edbf, _0x42e40d);
+ _0x7f9f36.setScreenRecord.call(this, _0x17edbf, _0x42e40d);
+ _0x7f9f36.supportNetPlay.call(this, _0x17edbf) && parseInt(this.config.gameId, 0xa) > 0x0 && _0x7f9f36.setNetplay.call(this, _0x17edbf, _0x42e40d);
+ _0x7f9f36.setGamepad.call(this, _0x17edbf, _0x42e40d);
+ _0x7f9f36.setCheat.call(this, _0x17edbf, _0x42e40d);
+ _0x17edbf.appendChild(_0x428003('span', {
'style': 'flex:1'
}));
var _0xd299b = _0x428003('div', {
'class': _0x449eac({
- 'ejs__volume': !0x0
+ 'ejs__volume': true
})
});
- _0xd299b['appendChild'](_0x7f9f36['createButton']['call'](this, 'mute'));
+ _0xd299b.appendChild(_0x7f9f36.createButton.call(this, 'mute'));
var _0x4bbcd0 = {
'max': 0x1,
'step': 0.01,
- 'value': this['config']['volume']
+ 'value': this.config.volume
};
- _0xd299b['appendChild'](_0x7f9f36['createRange']['call'](this, 'volume', _0x5dc0c0(_0x4bbcd0, {}))), this['elements']['volume'] = _0xd299b, _0x17edbf['appendChild'](_0xd299b);
+ _0xd299b.appendChild(_0x7f9f36.createRange.call(this, 'volume', _0x5dc0c0(_0x4bbcd0, {}))), this.elements.volume = _0xd299b, _0x17edbf.appendChild(_0xd299b);
var _0x2746ab = _0x428003('div', {
'class': _0x449eac({
- 'ejs__menu': !0x0
+ 'ejs__menu': true
})
});
- _0x2746ab['appendChild'](_0x7f9f36['createButton']['call'](this, 'settings', {
- 'aria-haspopup': !0x0,
+ _0x2746ab.appendChild(_0x7f9f36.createButton.call(this, 'settings', {
+ 'aria-haspopup': true,
'aria-expanded': !0x1
}));
var _0x262fb8 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__menu__container': !0x0
+ 'ejs__menu__container': true
}),
'hidden': ''
}),
@@ -18338,11 +18589,23 @@ var EJS = function(_0x574f5e) {
_0x17f3cb = _0x428003('div', {
'role': 'menu'
});
- return _0x174c46['appendChild'](_0x17f3cb), _0x3f3385['appendChild'](_0x174c46), this['elements']['settings']['panels']['home'] = _0x174c46, _0x262fb8['appendChild'](_0x3f3385), _0x2746ab['appendChild'](_0x262fb8), _0x17edbf['appendChild'](_0x2746ab), this['elements']['settings']['popup'] = _0x262fb8, this['elements']['settings']['menu'] = _0x2746ab, _0x17edbf['appendChild'](_0x7f9f36['createButton']['call'](this, 'fullscreen')), this['elements']['controls'] = _0x17edbf, _0x7f9f36['setNormalOptionsMenu']['call'](this), _0x7f9f36['setCoreOptionsMenu']['call'](this), _0x17edbf;
+ _0x174c46.appendChild(_0x17f3cb)
+ _0x3f3385.appendChild(_0x174c46)
+ this.elements.settings.panels.home = _0x174c46
+ _0x262fb8.appendChild(_0x3f3385)
+ _0x2746ab.appendChild(_0x262fb8)
+ _0x17edbf.appendChild(_0x2746ab)
+ this.elements.settings.popup = _0x262fb8
+ this.elements.settings.menu = _0x2746ab
+ _0x17edbf.appendChild(_0x7f9f36.createButton.call(this, 'fullscreen'))
+ this.elements.controls = _0x17edbf
+ _0x7f9f36.setNormalOptionsMenu.call(this)
+ _0x7f9f36.setCoreOptionsMenu.call(this)
+ return _0x17edbf;
},
'inject': function() {
var _0xa88a13 = this;
- this['icons'] = {
+ this.icons = {
'enter-fullscreen': ' ',
'exit-fullscreen': ' ',
'gamepad': ' ',
@@ -18357,440 +18620,452 @@ var EJS = function(_0x574f5e) {
'settings': ' ',
'volume': ' \n \n ',
'cheat': ' '
- }, this['id'] = Math['floor'](0x2710 * Math['random']());
+ }, this.id = Math.floor(0x2710 * Math.random());
var _0x17edbf = null;
- this['elements']['controls'] = null;
+ this.elements.controls = null;
var _0x2c1832 = {
- 'id': this['id']
+ 'id': this.id
},
- _0x270a9e = !0x0;
- _0x1e2c68['function'](this['config']['controls']) && (this['config']['controls'] = this['config']['controls']['call'](this['props'])), this['config']['controls'] || (this['config']['controls'] = []), _0x1e2c68['element'](this['config']['controls']) || _0x1e2c68['string'](this['config']['controls']) ? _0x17edbf = this['config']['controls'] : (_0x17edbf = _0x7f9f36['create']['call'](this, {
- 'id': this['id'],
- 'seektime': this['config']['seekTime'],
- 'speed': this['speed'],
- 'quality': this['quality']
+ _0x270a9e = true;
+ _0x1e2c68.function(this.config.controls) && (this.config.controls = this.config.controls.call(this.props)), this.config.controls || (this.config.controls = []), _0x1e2c68.element(this.config.controls) || _0x1e2c68.string(this.config.controls) ? _0x17edbf = this.config.controls : (_0x17edbf = _0x7f9f36.create.call(this, {
+ 'id': this.id,
+ 'seektime': this.config.seekTime,
+ 'speed': this.speed,
+ 'quality': this.quality
}), _0x270a9e = !0x1);
var _0x1e6644, _0x3ec218 = function(_0x406126) {
var _0x17edbf = _0x406126;
- return Object['entries'](_0x2c1832)['forEach'](function(_0x3e992c) {
+ return Object.entries(_0x2c1832).forEach(function(_0x3e992c) {
var _0x2c1832 = _0x5005e6(_0x3e992c, 0x2),
_0x47c2ec = _0x2c1832[0x0],
_0x547588 = _0x2c1832[0x1];
- _0x17edbf = _0x1a0e98(_0x17edbf, '{' ['concat'](_0x47c2ec, '}'), _0x547588);
+ _0x17edbf = _0x1a0e98(_0x17edbf, '{' .concat(_0x47c2ec, '}'), _0x547588);
}), _0x17edbf;
};
- if (_0x270a9e && (_0x1e2c68['string'](this['config']['controls']) ? _0x17edbf = _0x3ec218(_0x17edbf) : _0x1e2c68['element'](_0x17edbf) && (_0x17edbf['innerHTML'] = _0x3ec218(_0x17edbf['innerHTML']))), _0x1e2c68['string'](this['config']['selectors']['controls']['container']) && (_0x1e6644 = document['querySelector'](this['config']['selectors']['controls']['container'])), _0x1e2c68['element'](_0x1e6644) || (_0x1e6644 = this['elements']['container']), _0x1e6644[_0x1e2c68['element'](_0x17edbf) ? 'insertAdjacentElement' : 'insertAdjacentHTML']('afterbegin', _0x17edbf), _0x1e2c68['element'](this['elements']['controls']) || _0x7f9f36['findElements']['call'](this), !_0x1e2c68['empty'](this['elements']['buttons'])) {
+ if (_0x270a9e && (_0x1e2c68.string(this.config.controls) ? _0x17edbf = _0x3ec218(_0x17edbf) : _0x1e2c68.element(_0x17edbf) && (_0x17edbf.innerHTML = _0x3ec218(_0x17edbf.innerHTML))), _0x1e2c68.string(this.config.selectors.controls.container) && (_0x1e6644 = document.querySelector(this.config.selectors.controls.container)), _0x1e2c68.element(_0x1e6644) || (_0x1e6644 = this.elements.container), _0x1e6644[_0x1e2c68.element(_0x17edbf) ? 'insertAdjacentElement' : 'insertAdjacentHTML']('afterbegin', _0x17edbf), _0x1e2c68.element(this.elements.controls) || _0x7f9f36.findElements.call(this), !_0x1e2c68.empty(this.elements.buttons)) {
var _0xe8272c = function(_0x176a3e) {
- var _0x2c1832 = _0xa88a13['config']['classNames']['controlPressed'];
- Object['defineProperty'](_0x176a3e, 'pressed', {
- 'enumerable': !0x0,
+ var _0x2c1832 = _0xa88a13.config.classNames.controlPressed;
+ Object.defineProperty(_0x176a3e, 'pressed', {
+ 'enumerable': true,
'get': function() {
return _0x350d73(_0x176a3e, _0x2c1832);
},
'set': function() {
- var _0xa88a13 = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] && arguments[0x0];
+ var _0xa88a13 = arguments.length > 0x0 && void 0x0 !== arguments[0x0] && arguments[0x0];
_0x3a8e2f(_0x176a3e, _0x2c1832, _0xa88a13);
}
});
};
- Object['values'](this['elements']['buttons'])['filter'](Boolean)['forEach'](function(_0x577b9b) {
- _0x1e2c68['array'](_0x577b9b) || _0x1e2c68['nodeList'](_0x577b9b) ? Array['from'](_0x577b9b)['filter'](Boolean)['forEach'](_0xe8272c) : _0xe8272c(_0x577b9b);
+ Object.values(this.elements.buttons).filter(Boolean).forEach(function(_0x577b9b) {
+ _0x1e2c68.array(_0x577b9b) || _0x1e2c68.nodeList(_0x577b9b) ? Array.from(_0x577b9b).filter(Boolean).forEach(_0xe8272c) : _0xe8272c(_0x577b9b);
});
}
- window['navigator']['userAgent']['includes']('Edge') && _0x2b30e0(_0x1e6644);
+ window.navigator.userAgent.includes('Edge') && _0x2b30e0(_0x1e6644);
}
},
_0x2593da = _0x7f9f36;
function _0x28bdca(_0x5c50c3, _0x217698) {
- for (var _0x2c1832 = 0x0; _0x2c1832 < _0x217698['length']; _0x2c1832++) {
+ for (var _0x2c1832 = 0x0; _0x2c1832 < _0x217698.length; _0x2c1832++) {
var _0x172cdb = _0x217698[_0x2c1832];
- _0x172cdb['enumerable'] = _0x172cdb['enumerable'] || !0x1, _0x172cdb['configurable'] = !0x0, 'value' in _0x172cdb && (_0x172cdb['writable'] = !0x0), Object['defineProperty'](_0x5c50c3, _0x172cdb['key'], _0x172cdb);
+ _0x172cdb.enumerable = _0x172cdb.enumerable || !0x1, _0x172cdb.configurable = true, 'value' in _0x172cdb && (_0x172cdb.writable = true), Object.defineProperty(_0x5c50c3, _0x172cdb.key, _0x172cdb);
}
}
function _0x238270() {
- if (this['enabled']) {
- var _0xa88a13 = this['player']['elements']['buttons']['fullscreen'];
- _0x1e2c68['element'](_0xa88a13) && (_0xa88a13['pressed'] = this['active']), _0xbae705['call'](this['player'], this['target'], this['active'] ? 'enterfullscreen' : 'exitfullscreen', !0x0), _0x59aa33['isIos'] || _0x5e0c7d['call'](this['player'], this['target'], this['active']);
+ if (this.enabled) {
+ var _0xa88a13 = this.player.elements.buttons.fullscreen;
+ _0x1e2c68.element(_0xa88a13) && (_0xa88a13.pressed = this.active), _0xbae705.call(this.player, this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true), _0x59aa33.isIos || _0x5e0c7d.call(this.player, this.target, this.active);
}
}
function _0x3c983f() {
- var _0xa88a13 = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] && arguments[0x0];
- _0xa88a13 ? this['scrollPosition'] = {
- 'x': window['scrollX'] || 0x0,
- 'y': window['scrollY'] || 0x0
- } : window['scrollTo'](this['scrollPosition']['x'], this['scrollPosition']['y']), document['body']['style']['overflow'] = _0xa88a13 ? 'hidden' : '', _0x3a8e2f(this['target'], this['player']['config']['classNames']['fullscreen']['fallback'], _0xa88a13), _0x238270['call'](this);
+ var _0xa88a13 = arguments.length > 0x0 && void 0x0 !== arguments[0x0] && arguments[0x0];
+ _0xa88a13 ? this.scrollPosition = {
+ 'x': window.scrollX || 0x0,
+ 'y': window.scrollY || 0x0
+ } : window.scrollTo(this.scrollPosition.x, this.scrollPosition.y), document.body.style.overflow = _0xa88a13 ? 'hidden' : '', _0x3a8e2f(this.target, this.player.config.classNames.fullscreen.fallback, _0xa88a13), _0x238270.call(this);
}
var _0x335854 = function() {
function _0x1339df(_0x5f19c6) {
var _0x2c1832 = this;
! function(_0x143a8a, _0x32a0a1) {
if (!(_0x143a8a instanceof _0x32a0a1)) throw new TypeError('Cannot call a class as a function');
- }(this, _0x1339df), this['player'] = _0x5f19c6, this['prefix'] = _0x1339df['prefix'], this['property'] = _0x1339df['property'], this['scrollPosition'] = {
+ }(this, _0x1339df), this.player = _0x5f19c6, this.prefix = _0x1339df.prefix, this.property = _0x1339df.property, this.scrollPosition = {
'x': 0x0,
'y': 0x0
- }, _0x1093f4['call'](this['player'], document, 'ms' === this['prefix'] ? 'MSFullscreenChange' : '' ['concat'](this['prefix'], 'fullscreenchange'), function() {
- _0x238270['call'](_0x2c1832);
- }), this['update']();
+ }, _0x1093f4.call(this.player, document, 'ms' === this.prefix ? 'MSFullscreenChange' : '' .concat(this.prefix, 'fullscreenchange'), function() {
+ _0x238270.call(_0x2c1832);
+ }), this.update();
}
+
var _0x17edbf, _0x2c1832, _0x50d347;
- return _0x17edbf = _0x1339df, _0x50d347 = [{
+
+ _0x17edbf = _0x1339df
+
+ _0x50d347 = [{
'key': 'native',
'get': function() {
- return !!(document['fullscreenEnabled'] || document['webkitFullscreenEnabled'] || document['mozFullScreenEnabled'] || document['msFullscreenEnabled']);
+ return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);
}
}, {
'key': 'prefix',
'get': function() {
- if (_0x1e2c68['function'](document['exitFullscreen'])) return '';
+ if (_0x1e2c68.function(document.exitFullscreen)) return '';
var _0x1339df = '';
- return ['webkit', 'moz', 'ms']['some'](function(_0xc1e0c3) {
- return !(!_0x1e2c68['function'](document['' ['concat'](_0xc1e0c3, 'ExitFullscreen')]) && !_0x1e2c68['function'](document['' ['concat'](_0xc1e0c3, 'CancelFullScreen')]) || (_0x1339df = _0xc1e0c3, 0x0));
+ return ['webkit', 'moz', 'ms'].some(function(_0xc1e0c3) {
+ return !(!_0x1e2c68.function(document['' .concat(_0xc1e0c3, 'ExitFullscreen')]) && !_0x1e2c68.function(document['' .concat(_0xc1e0c3, 'CancelFullScreen')]) || (_0x1339df = _0xc1e0c3, 0x0));
}), _0x1339df;
}
}, {
'key': 'property',
'get': function() {
- return 'moz' === this['prefix'] ? 'FullScreen' : 'Fullscreen';
+ return 'moz' === this.prefix ? 'FullScreen' : 'Fullscreen';
}
- }], (_0x2c1832 = [{
+ }]
+
+ _0x2c1832 = [{
'key': 'update',
'value': function() {
- this['enabled'], _0x3a8e2f(this['player']['elements']['container'], this['player']['config']['classNames']['fullscreen']['enabled'], this['enabled']);
+ this.enabled, _0x3a8e2f(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.enabled);
}
}, {
'key': 'enter',
'value': function() {
- this['enabled'] && (_0x1339df['native'] ? this['prefix'] ? _0x1e2c68['empty'](this['prefix']) || this['target']['' ['concat'](this['prefix'], 'Request')['concat'](this['property'])]() : this['target']['requestFullscreen']() : _0x3c983f['call'](this, !0x0));
+ this.enabled && (_0x1339df.native ? this.prefix ? _0x1e2c68.empty(this.prefix) || this.target['' .concat(this.prefix, 'Request').concat(this.property)]() : this.target.requestFullscreen() : _0x3c983f.call(this, true));
}
}, {
'key': 'exit',
'value': function() {
- if (this['enabled'])
- if (_0x1339df['native'])
- if (this['prefix']) {
- if (!_0x1e2c68['empty'](this['prefix'])) {
- var _0x17edbf = 'moz' === this['prefix'] ? 'Cancel' : 'Exit';
- document['' ['concat'](this['prefix'])['concat'](_0x17edbf)['concat'](this['property'])]();
+ if (this.enabled)
+ if (_0x1339df.native)
+ if (this.prefix) {
+ if (!_0x1e2c68.empty(this.prefix)) {
+ var _0x17edbf = 'moz' === this.prefix ? 'Cancel' : 'Exit';
+ document['' .concat(this.prefix).concat(_0x17edbf).concat(this.property)]();
}
- } else(document['cancelFullScreen'] || document['exitFullscreen'])['call'](document);
- else _0x3c983f['call'](this, !0x1);
+ } else(document.cancelFullScreen || document.exitFullscreen).call(document);
+ else _0x3c983f.call(this, !0x1);
}
}, {
'key': 'toggle',
'value': function() {
- this['active'] ? this['exit']() : this['enter']();
+ this.active ? this.exit() : this.enter();
}
}, {
'key': 'enabled',
'get': function() {
- return _0x1339df['native'];
+ return _0x1339df.native;
}
}, {
'key': 'active',
'get': function() {
- return !!this['enabled'] && (_0x1339df['native'] ? (this['prefix'] ? document['' ['concat'](this['prefix'])['concat'](this['property'], 'Element')] : document['fullscreenElement']) === this['target'] : _0x350d73(this['target'], this['player']['config']['classNames']['fullscreen']['fallback']));
+ return !!this.enabled && (_0x1339df.native ? (this.prefix ? document['' .concat(this.prefix).concat(this.property, 'Element')] : document.fullscreenElement) === this.target : _0x350d73(this.target, this.player.config.classNames.fullscreen.fallback));
}
}, {
'key': 'target',
'get': function() {
- return _0x59aa33['isEdge'] ? this['player']['game'] : this['player']['elements']['container'];
+ return _0x59aa33.isEdge ? this.player.game : this.player.elements.container;
}
- }]) && _0x28bdca(_0x17edbf['prototype'], _0x2c1832), _0x50d347 && _0x28bdca(_0x17edbf, _0x50d347), _0x1339df;
+ }]
+
+ _0x28bdca(_0x17edbf.prototype, _0x2c1832)
+ _0x50d347 && _0x28bdca(_0x17edbf, _0x50d347)
+ return _0x1339df;
+
}();
function _0x42b437(_0x458e02, _0x5729e1) {
- return function(_0xcc8741) {
- if (Array['isArray'](_0xcc8741)) return _0xcc8741;
- }(_0x458e02) || function(_0x130525, _0x2988dc) {
- var _0x2c1832 = [],
- _0x2e7aa7 = !0x0,
- _0x393a5f = !0x1,
- _0x3b4eca = void 0x0;
+ if (Array.isArray(_0x458e02)) return _0x458e02;
+ var _0x2c1832 = [],
+ _0x2e7aa7 = true,
+ _0x393a5f = false,
+ _0x3b4eca = void 0x0;
+ try {
+ for (var _0x1aca09, _0x1bb8de = _0x458e02[Symbol.iterator](); !(_0x2e7aa7 = (_0x1aca09 = _0x1bb8de.next()).done) && (_0x2c1832.push(_0x1aca09.value), !_0x5729e1 || _0x2c1832.length !== _0x5729e1); _0x2e7aa7 = true);
+ } catch (_0x190997) {
+ _0x393a5f = true, _0x3b4eca = _0x190997;
+ } finally {
try {
- for (var _0x1aca09, _0x1bb8de = _0x130525[Symbol['iterator']](); !(_0x2e7aa7 = (_0x1aca09 = _0x1bb8de['next']())['done']) && (_0x2c1832['push'](_0x1aca09['value']), !_0x2988dc || _0x2c1832['length'] !== _0x2988dc); _0x2e7aa7 = !0x0);
- } catch (_0x190997) {
- _0x393a5f = !0x0, _0x3b4eca = _0x190997;
+ _0x2e7aa7 || null == _0x1bb8de.return || _0x1bb8de.return();
} finally {
- try {
- _0x2e7aa7 || null == _0x1bb8de['return'] || _0x1bb8de['return']();
- } finally {
- if (_0x393a5f) throw _0x3b4eca;
- }
+ if (_0x393a5f) throw _0x3b4eca;
}
- return _0x2c1832;
- }(_0x458e02, _0x5729e1) || function() {
- throw new TypeError('Invalid attempt to destructure non-iterable instance');
- }();
- }
-
- function _0x589db0(_0x417ec9, _0x22e67a) {
- for (var _0x2c1832 = 0x0; _0x2c1832 < _0x22e67a['length']; _0x2c1832++) {
- var _0x4e542d = _0x22e67a[_0x2c1832];
- _0x4e542d['enumerable'] = _0x4e542d['enumerable'] || !0x1, _0x4e542d['configurable'] = !0x0, 'value' in _0x4e542d && (_0x4e542d['writable'] = !0x0), Object['defineProperty'](_0x417ec9, _0x4e542d['key'], _0x4e542d);
}
+ return _0x2c1832;
+ throw new TypeError('Invalid attempt to destructure non-iterable instance');
}
var _0x37093c = function() {
function _0x31e271(_0x948a97) {
! function(_0x3adedc, _0x5952e9) {
if (!(_0x3adedc instanceof _0x5952e9)) throw new TypeError('Cannot call a class as a function');
- }(this, _0x31e271), this['emulator'] = _0x948a97, this['lastKey'] = null, this['focusTimer'] = null, this['lastKeyDown'] = null, this['toggleMenu'] = this['toggleMenu']['bind'](this), this['setTabFocus'] = this['setTabFocus']['bind'](this), this['firstTouch'] = this['firstTouch']['bind'](this);
+ }(this, _0x31e271), this.emulator = _0x948a97, this.lastKey = null, this.focusTimer = null, this.lastKeyDown = null, this.toggleMenu = this.toggleMenu.bind(this), this.setTabFocus = this.setTabFocus.bind(this), this.firstTouch = this.firstTouch.bind(this);
}
- var _0x17edbf, _0x2c1832, _0x44dd9e;
- return _0x17edbf = _0x31e271, (_0x2c1832 = [{
- 'key': 'toggleMenu',
- 'value': function(_0x3156ad) {
- _0x2593da['toggleMenu']['call'](this['emulator'], _0x3156ad);
- }
- }, {
- 'key': 'firstTouch',
- 'value': function() {
- var _0x31e271 = this['emulator'],
- _0x17edbf = _0x31e271['elements'];
- _0x31e271['touch'] = !0x0, _0x3a8e2f(_0x17edbf['container'], _0x31e271['config']['classNames']['isTouch'], !0x0);
- }
- }, {
- 'key': 'setTabFocus',
- 'value': function(_0x20bf1f) {
- var _0x17edbf = this['emulator'],
- _0x2c1832 = _0x17edbf['elements'],
+ _0x31e271.prototype = {
+ toggleMenu: function(_0x3156ad) {
+ _0x2593da.toggleMenu.call(this.emulator, _0x3156ad);
+ },
+ firstTouch: function() {
+ var _0x31e271 = this.emulator,
+ _0x17edbf = _0x31e271.elements;
+ _0x31e271.touch = true, _0x3a8e2f(_0x17edbf.container, _0x31e271.config.classNames.isTouch, true);
+ },
+ setTabFocus: function(_0x20bf1f) {
+ var _0x17edbf = this.emulator,
+ _0x2c1832 = _0x17edbf.elements,
_0x48d087 = _0x17edbf;
- if (clearTimeout(this['focusTimer']), 'keydown' !== _0x20bf1f['type'] || 0x9 === _0x20bf1f['which']) {
- 'keydown' === _0x20bf1f['type'] && (this['lastKeyDown'] = _0x20bf1f['timeStamp']);
- var _0x27d4ad, _0x967a30 = _0x20bf1f['timeStamp'] - this['lastKeyDown'] <= 0x14;
- ('focus' !== _0x20bf1f['type'] || _0x967a30) && (_0x27d4ad = _0x48d087['config']['classNames']['tabFocus'], _0x3a8e2f(_0x23ffa1['call'](_0x48d087, '.' ['concat'](_0x27d4ad)), _0x27d4ad, !0x1), this['focusTimer'] = setTimeout(function() {
- var _0x20bf1f = document['activeElement'];
- _0x2c1832['container']['contains'](_0x20bf1f) && _0x3a8e2f(document['activeElement'], _0x48d087['config']['classNames']['tabFocus'], !0x0);
+ if (clearTimeout(this.focusTimer), 'keydown' !== _0x20bf1f.type || 0x9 === _0x20bf1f.which) {
+ 'keydown' === _0x20bf1f.type && (this.lastKeyDown = _0x20bf1f.timeStamp);
+ var _0x27d4ad, _0x967a30 = _0x20bf1f.timeStamp - this.lastKeyDown <= 0x14;
+ ('focus' !== _0x20bf1f.type || _0x967a30) && (_0x27d4ad = _0x48d087.config.classNames.tabFocus, _0x3a8e2f(_0x23ffa1.call(_0x48d087, '.' .concat(_0x27d4ad)), _0x27d4ad, !0x1), this.focusTimer = setTimeout(function() {
+ var _0x20bf1f = document.activeElement;
+ _0x2c1832.container.contains(_0x20bf1f) && _0x3a8e2f(document.activeElement, _0x48d087.config.classNames.tabFocus, true);
}, 0xa));
}
- }
- }, {
- 'key': 'global',
- 'value': function() {
- var _0x31e271 = !(arguments['length'] > 0x0 && void 0x0 !== arguments[0x0]) || arguments[0x0],
- _0x17edbf = this['emulator'],
+ },
+ global: function() {
+ var _0x31e271 = !(arguments.length > 0x0 && void 0x0 !== arguments[0x0]) || arguments[0x0],
+ _0x17edbf = this.emulator,
_0x2c1832 = _0x17edbf;
- _0x1ef215['call'](_0x2c1832, document['body'], 'click', this['toggleMenu'], _0x31e271), _0x455c85['call'](_0x2c1832, document['body'], 'touchstart', this['firstTouch']), _0x1ef215['call'](_0x2c1832, document['body'], 'keydown focus blur', this['setTabFocus'], _0x31e271, !0x1, !0x0), _0x1093f4['call'](_0x2c1832, document['body'], 'keyup', function(_0x4e289a) {
- _0x2c1832['started'] && (0x71 === _0x4e289a['which'] && (_0x4e289a['shiftKey'] ? null === _0x2c1832['elements']['buttons']['saveState']['getAttribute']('hidden') && _0xbae705['call'](_0x2c1832, _0x2c1832['elements']['buttons']['saveState'], 'click') : _0xdcec2a['quickSaveState']()), 0x73 === _0x4e289a['which'] && (_0x4e289a['shiftKey'] ? null === _0x2c1832['elements']['buttons']['loadState']['getAttribute']('hidden') && _0xbae705['call'](_0x2c1832, _0x2c1832['elements']['buttons']['loadState'], 'click') : _0xdcec2a['quickLoadState']()), 0x78 === _0x4e289a['which'] && _0xbae705['call'](_0x2c1832, _0x2c1832['elements']['buttons']['mute'], 'click'));
+ _0x1ef215.call(_0x2c1832, document.body, 'click', this.toggleMenu, _0x31e271), _0x455c85.call(_0x2c1832, document.body, 'touchstart', this.firstTouch), _0x1ef215.call(_0x2c1832, document.body, 'keydown focus blur', this.setTabFocus, _0x31e271, !0x1, true), _0x1093f4.call(_0x2c1832, document.body, 'keyup', function(_0x4e289a) {
+ _0x2c1832.started && (0x71 === _0x4e289a.which && (_0x4e289a.shiftKey ? null === _0x2c1832.elements.buttons.saveState.getAttribute('hidden') && _0xbae705.call(_0x2c1832, _0x2c1832.elements.buttons.saveState, 'click') : _0xdcec2a.quickSaveState()), 0x73 === _0x4e289a.which && (_0x4e289a.shiftKey ? null === _0x2c1832.elements.buttons.loadState.getAttribute('hidden') && _0xbae705.call(_0x2c1832, _0x2c1832.elements.buttons.loadState, 'click') : _0xdcec2a.quickLoadState()), 0x78 === _0x4e289a.which && _0xbae705.call(_0x2c1832, _0x2c1832.elements.buttons.mute, 'click'));
});
- }
- }, {
- 'key': 'container',
- 'value': function() {
- var _0x31e271, _0x17edbf = this['emulator'],
- _0x2c1832 = _0x17edbf['elements'],
+ },
+ container: function() {
+ var _0x31e271, _0x17edbf = this.emulator,
+ _0x2c1832 = _0x17edbf.elements,
_0x45d275 = _0x17edbf;
- _0x1093f4['call'](_0x45d275, _0x2c1832['container'], 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen start-game', function(_0x1ac81c) {
- var _0x3953b5 = _0x2c1832['controls'];
- _0x3953b5 && 'enterfullscreen' === _0x1ac81c['type'] && (_0x3953b5['pressed'] = !0x1, _0x3953b5['hover'] = !0x1);
+ _0x1093f4.call(_0x45d275, _0x2c1832.container, 'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen start-game', function(_0x1ac81c) {
+ var _0x3953b5 = _0x2c1832.controls;
+ _0x3953b5 && 'enterfullscreen' === _0x1ac81c.type && (_0x3953b5.pressed = !0x1, _0x3953b5.hover = !0x1);
var _0x2c3de3 = 0x0;
- ['touchstart', 'touchmove', 'mousemove', 'start-game']['includes'](_0x1ac81c['type']) && (_0x5ab74d['toggleControls']['call'](_0x45d275, !0x0), _0x2c3de3 = _0x45d275['touch'] ? 0xbb8 : 0x7d0), clearTimeout(_0x31e271), _0x31e271 = setTimeout(function() {
- return _0x5ab74d['toggleControls']['call'](_0x45d275, !0x1);
- }, _0x2c3de3), _0x2c1832['controls']['setAttribute']('data-timer', _0x31e271);
- }), _0x1093f4['call'](_0x45d275, window, 'resize', function(_0x3e2cc5) {
- var _0x17edbf = _0x45d275['elements']['container']['clientHeight'],
- _0x2c1832 = _0x23ffa1['call'](_0x45d275, '.' ['concat'](_0x449eac({
- 'ejs__menu__container': !0x0
+ ['touchstart', 'touchmove', 'mousemove', 'start-game'].includes(_0x1ac81c.type) && (_0x5ab74d.toggleControls.call(_0x45d275, true), _0x2c3de3 = _0x45d275.touch ? 0xbb8 : 0x7d0), clearTimeout(_0x31e271), _0x31e271 = setTimeout(function() {
+ return _0x5ab74d.toggleControls.call(_0x45d275, !0x1);
+ }, _0x2c3de3), _0x2c1832.controls.setAttribute('data-timer', _0x31e271);
+ }), _0x1093f4.call(_0x45d275, window, 'resize', function(_0x3e2cc5) {
+ var _0x17edbf = _0x45d275.elements.container.clientHeight,
+ _0x2c1832 = _0x23ffa1.call(_0x45d275, '.' .concat(_0x449eac({
+ 'ejs__menu__container': true
}), ' [role="menu"]'));
- Array['from'](_0x2c1832)['forEach'](function(_0x43a16d) {
- _0x43a16d['style']['maxHeight'] = '' ['concat'](_0x17edbf - 0x5f, 'px'), _0x43a16d['style']['overflow'] = 'auto';
- }), _0x27f4c4['Module'] && _0x27f4c4['Module']['canvas'], _0x45d275['elements']['container']['clientWidth'] / _0x45d275['elements']['container']['clientHeight'] < 1.3 ? _0x3a8e2f(_0x45d275['elements']['container'], _0x449eac({
- 'portrait': !0x0
- }), !0x0) : _0x3a8e2f(_0x45d275['elements']['container'], _0x449eac({
- 'portrait': !0x0
+ Array.from(_0x2c1832).forEach(function(_0x43a16d) {
+ _0x43a16d.style.maxHeight = '' .concat(_0x17edbf - 0x5f, 'px'), _0x43a16d.style.overflow = 'auto';
+ }), _0x27f4c4.Module && _0x27f4c4.Module.canvas, _0x45d275.elements.container.clientWidth / _0x45d275.elements.container.clientHeight < 1.3 ? _0x3a8e2f(_0x45d275.elements.container, _0x449eac({
+ 'portrait': true
+ }), true) : _0x3a8e2f(_0x45d275.elements.container, _0x449eac({
+ 'portrait': true
}), !0x1);
- }), _0xbae705['call'](_0x45d275, window, 'resize'), _0x1093f4['call'](_0x45d275, _0x45d275['elements']['container'], 'enterfullscreen', function(_0x586586) {
+ }), _0xbae705.call(_0x45d275, window, 'resize'), _0x1093f4.call(_0x45d275, _0x45d275.elements.container, 'enterfullscreen', function(_0x586586) {
setTimeout(function() {
- _0xbae705['call'](_0x45d275, window, 'resize');
+ _0xbae705.call(_0x45d275, window, 'resize');
}, 0x12c);
- }), _0x1093f4['call'](_0x45d275, _0x45d275['elements']['container'], 'exitfullscreen', function(_0x4de2f3) {
+ }), _0x1093f4.call(_0x45d275, _0x45d275.elements.container, 'exitfullscreen', function(_0x4de2f3) {
setTimeout(function() {
- _0xbae705['call'](_0x45d275, window, 'resize');
+ _0xbae705.call(_0x45d275, window, 'resize');
}, 0x12c);
- }), _0x1093f4['call'](_0x45d275, _0x45d275['elements']['container'], 'start-game', function(_0x5b0a00) {
- var _0x17edbf = window['document']['createEvent']('UIEvents');
- _0x17edbf['initUIEvent']('resize', !0x0, !0x1, window, 0x0), window['dispatchEvent'](_0x17edbf), _0x3a8e2f(_0x45d275['elements']['container'], _0x449eac({
- 'game-started': !0x0
- }), !0x0);
- }), _0x1093f4['call'](_0x45d275, _0x45d275['elements']['container'], 'blur', function(_0x893c7a) {
- var _0x17edbf = _0x893c7a['currentTarget'];
+ }), _0x1093f4.call(_0x45d275, _0x45d275.elements.container, 'start-game', function(_0x5b0a00) {
+ var _0x17edbf = window.document.createEvent('UIEvents');
+ _0x17edbf.initUIEvent('resize', true, !0x1, window, 0x0), window.dispatchEvent(_0x17edbf), _0x3a8e2f(_0x45d275.elements.container, _0x449eac({
+ 'game-started': true
+ }), true);
+ }), _0x1093f4.call(_0x45d275, _0x45d275.elements.container, 'blur', function(_0x893c7a) {
+ var _0x17edbf = _0x893c7a.currentTarget;
setTimeout(function() {
- _0x17edbf['contains'](document['activeElement']) || _0xbae705['call'](_0x45d275, _0x45d275['elements'], 'blurgame');
+ _0x17edbf.contains(document.activeElement) || _0xbae705.call(_0x45d275, _0x45d275.elements, 'blurgame');
}, 0x0);
- }), _0x1093f4['call'](_0x45d275, _0x45d275['elements']['container'], 'focus', function(_0xe0dee3) {
- var _0x17edbf = _0xe0dee3['currentTarget'];
+ }), _0x1093f4.call(_0x45d275, _0x45d275.elements.container, 'focus', function(_0xe0dee3) {
+ var _0x17edbf = _0xe0dee3.currentTarget;
setTimeout(function() {
- _0x17edbf['contains'](document['activeElement']) && _0xbae705['call'](_0x45d275, _0x45d275['elements'], 'focusgame');
+ _0x17edbf.contains(document.activeElement) && _0xbae705.call(_0x45d275, _0x45d275.elements, 'focusgame');
}, 0x0);
});
- }
- }, {
- 'key': 'media',
- 'value': function() {
- var _0x31e271 = this['emulator'],
- _0x17edbf = _0x31e271['elements'],
+ },
+ media: function() {
+ var _0x31e271 = this.emulator,
+ _0x17edbf = _0x31e271.elements,
_0x2c1832 = _0x31e271;
- _0x1093f4['call'](_0x2c1832, _0x2c1832['game'], 'volumechange', function(_0x3099fe) {
- return _0x2593da['updateVolume']['call'](_0x2c1832, _0x3099fe);
- }), _0x1093f4['call'](_0x2c1832, _0x17edbf['container'], 'contextmenu', function(_0x5c22bc) {
- _0x2c1832['touch'] || _0x2c1832['lightgun'] || _0x2593da['toggleContextMenu']['call'](_0x2c1832, _0x5c22bc, !0x0), _0x5c22bc['preventDefault']();
- }, !0x1), _0x1093f4['call'](_0x2c1832, _0x17edbf['container'], 'mousewheel', function(_0x49c974) {
- _0x49c974['stopPropagation']();
- }, !0x1), _0x1093f4['call'](_0x2c1832, _0x17edbf['container'], 'mousedown', function(_0x53ee35) {
- _0x2c1832['touch'] || _0x2593da['toggleContextMenu']['call'](_0x2c1832, _0x53ee35, !0x1);
- }, !0x1), _0x1093f4['call'](_0x2c1832, _0x2c1832['game'], 'volumechange', function() {
- _0x2c1832['storage']['set']({
- 'volume': _0x2c1832['volume'],
- 'muted': _0x2c1832['muted']
- }), _0xdcec2a['setVolume'] && _0xdcec2a['setVolume']();
+ _0x1093f4.call(_0x2c1832, _0x2c1832.game, 'volumechange', function(_0x3099fe) {
+ return _0x2593da.updateVolume.call(_0x2c1832, _0x3099fe);
+ }), _0x1093f4.call(_0x2c1832, _0x17edbf.container, 'contextmenu', function(_0x5c22bc) {
+ _0x2c1832.touch || _0x2c1832.lightgun || _0x2593da.toggleContextMenu.call(_0x2c1832, _0x5c22bc, true), _0x5c22bc.preventDefault();
+ }, !0x1), _0x1093f4.call(_0x2c1832, _0x17edbf.container, 'mousewheel', function(_0x49c974) {
+ _0x49c974.stopPropagation();
+ }, !0x1), _0x1093f4.call(_0x2c1832, _0x17edbf.container, 'mousedown', function(_0x53ee35) {
+ _0x2c1832.touch || _0x2593da.toggleContextMenu.call(_0x2c1832, _0x53ee35, !0x1);
+ }, !0x1), _0x1093f4.call(_0x2c1832, _0x2c1832.game, 'volumechange', function() {
+ _0x2c1832.storage.set({
+ 'volume': _0x2c1832.volume,
+ 'muted': _0x2c1832.muted
+ }), _0xdcec2a.setVolume && _0xdcec2a.setVolume();
});
- var _0x38e17f = _0x2c1832['config']['events']['concat'](['keyup', 'keydown'])['join'](' ');
- _0x1093f4['call'](_0x2c1832, _0x2c1832['game'], _0x38e17f, function(_0x38e438) {
- var _0x2b4804 = _0x38e438['detail'],
+ var _0x38e17f = _0x2c1832.config.events.concat(['keyup', 'keydown']).join(' ');
+ _0x1093f4.call(_0x2c1832, _0x2c1832.game, _0x38e17f, function(_0x38e438) {
+ var _0x2b4804 = _0x38e438.detail,
_0x1bfeb2 = void 0x0 === _0x2b4804 ? {} : _0x2b4804;
- 'error' === _0x38e438['type'] && (_0x1bfeb2 = _0x2c1832['game']['error']), _0xbae705['call'](_0x2c1832, _0x17edbf['container'], _0x38e438['type'], !0x0, _0x1bfeb2);
+ 'error' === _0x38e438.type && (_0x1bfeb2 = _0x2c1832.game.error), _0xbae705.call(_0x2c1832, _0x17edbf.container, _0x38e438.type, true, _0x1bfeb2);
});
- }
- }, {
- 'key': 'proxy',
- 'value': function(_0x52d0c2, _0x500f90, _0x175ce5) {
- var _0x4bb44e = this['emulator'],
- _0x584a64 = _0x4bb44e['config']['listeners'][_0x175ce5],
- _0x5269fd = !0x0;
- _0x1e2c68['function'](_0x584a64) && (_0x5269fd = _0x584a64['call'](_0x4bb44e, _0x52d0c2)), _0x5269fd && _0x1e2c68['function'](_0x500f90) && _0x500f90['call'](_0x4bb44e, _0x52d0c2);
- }
- }, {
- 'key': 'bind',
- 'value': function(_0x4a8d46, _0x8f91ad, _0x2affda, _0x41dfb1) {
+ },
+ proxy: function(_0x52d0c2, _0x500f90, _0x175ce5) {
+ var _0x4bb44e = this.emulator,
+ _0x584a64 = _0x4bb44e.config.listeners[_0x175ce5],
+ _0x5269fd = true;
+ _0x1e2c68.function(_0x584a64) && (_0x5269fd = _0x584a64.call(_0x4bb44e, _0x52d0c2)), _0x5269fd && _0x1e2c68.function(_0x500f90) && _0x500f90.call(_0x4bb44e, _0x52d0c2);
+ },
+ bind: function(_0x4a8d46, _0x8f91ad, _0x2affda, _0x41dfb1) {
var _0x1363b1 = this,
- _0x53b9a1 = !(arguments['length'] > 0x4 && void 0x0 !== arguments[0x4]) || arguments[0x4],
- _0x5209a5 = this['emulator'],
+ _0x53b9a1 = !(arguments.length > 0x4 && void 0x0 !== arguments[0x4]) || arguments[0x4],
+ _0x5209a5 = this.emulator,
_0x27b738 = _0x5209a5,
- _0x5d89ff = _0x27b738['config']['listeners'][_0x41dfb1],
- _0x100c9f = _0x1e2c68['function'](_0x5d89ff);
- _0x1093f4['call'](_0x27b738, _0x4a8d46, _0x8f91ad, function(_0x5a03ac) {
- return _0x1363b1['proxy'](_0x5a03ac, _0x2affda, _0x41dfb1);
+ _0x5d89ff = _0x27b738.config.listeners[_0x41dfb1],
+ _0x100c9f = _0x1e2c68.function(_0x5d89ff);
+ _0x1093f4.call(_0x27b738, _0x4a8d46, _0x8f91ad, function(_0x5a03ac) {
+ return _0x1363b1.proxy(_0x5a03ac, _0x2affda, _0x41dfb1);
}, _0x53b9a1 && !_0x100c9f);
- }
- }, {
- 'key': 'controls',
- 'value': function() {
+ },
+ controls: function() {
var _0x31e271 = this,
- _0x17edbf = this['emulator'],
- _0x2c1832 = _0x17edbf['elements'],
- _0x127f22 = _0x59aa33['isIE'] ? 'change' : 'input';
- if (this['bind'](_0x2c1832['buttons']['mute'], 'click', function() {
- _0x17edbf['muted'] = !_0x17edbf['muted'];
- }, 'mute'), this['bind'](_0x2c1832['buttons']['fullscreen'], 'click', function() {
- _0x17edbf['fullscreen']['toggle']();
- }, 'fullscreen'), this['bind'](_0x2c1832['buttons']['gamepad'], 'click', function() {
- _0x5ab74d['toggleControls']['call'](_0x17edbf, !0x1), _0x132da7(_0x2c1832['dialogs']['gamepad'], !0x1);
- }, 'mute'), this['bind'](_0x2c1832['buttons']['saveState'], 'click', function() {
- _0xbae705['call'](_0x17edbf, _0x17edbf['elements']['container'], 'savestate-start', !0x1, {});
- var _0x31e271 = _0xdcec2a['saveState'](),
- _0x2c1832 = _0xdcec2a['getScreenData']();
- _0xbae705['call'](_0x17edbf, _0x17edbf['elements']['container'], 'savestate', !0x1, {
+ _0x17edbf = this.emulator,
+ _0x2c1832 = _0x17edbf.elements,
+ _0x127f22 = _0x59aa33.isIE ? 'change' : 'input';
+ if (this.bind(_0x2c1832.buttons.mute, 'click', function() {
+ _0x17edbf.muted = !_0x17edbf.muted;
+ }, 'mute'), this.bind(_0x2c1832.buttons.fullscreen, 'click', function() {
+ _0x17edbf.fullscreen.toggle();
+ }, 'fullscreen'), this.bind(_0x2c1832.buttons.gamepad, 'click', function() {
+ _0x5ab74d.toggleControls.call(_0x17edbf, !0x1), _0x132da7(_0x2c1832.dialogs.gamepad, !0x1);
+ }, 'mute'), this.bind(_0x2c1832.buttons.saveState, 'click', function() {
+ _0xbae705.call(_0x17edbf, _0x17edbf.elements.container, 'savestate-start', !0x1, {});
+ var _0x31e271 = _0xdcec2a.saveState(),
+ _0x2c1832 = _0xdcec2a.getScreenData();
+ _0xbae705.call(_0x17edbf, _0x17edbf.elements.container, 'savestate', !0x1, {
'state': _0x31e271,
'screenshot': _0x2c1832
});
- }, 'mute'), this['bind'](_0x2c1832['buttons']['loadState'], 'click', function() {
- _0xbae705['call'](_0x17edbf, _0x17edbf['elements']['container'], 'loadstate', !0x1, {});
- }, 'mute'), this['bind'](_0x2c1832['buttons']['settings'], 'click', function(_0x1396ee) {
- _0x1396ee['stopPropagation'](), _0x2593da['toggleMenu']['call'](_0x17edbf, _0x1396ee);
- }), this['bind'](_0x2c1832['buttons']['settings'], 'keyup', function(_0x454936) {
- var _0x2c1832 = _0x454936['which'];
- [0xd, 0x20]['includes'](_0x2c1832) && (0xd !== _0x2c1832 ? (_0x454936['preventDefault'](), _0x454936['stopPropagation'](), _0x2593da['toggleMenu']['call'](_0x17edbf, _0x454936)) : _0x2593da['focusFirstMenuItem']['call'](_0x17edbf, null, !0x0));
- }, null, !0x1), this['bind'](_0x2c1832['settings']['menu'], 'keydown', function(_0x40072c) {
- 0x1b === _0x40072c['which'] && _0x2593da['toggleMenu']['call'](_0x17edbf, _0x40072c);
- }), _0x59aa33['isIos']) {
- var _0x4bd188 = _0x23ffa1['call'](_0x17edbf, 'input[type=\x22range\x22]');
- Array['from'](_0x4bd188)['forEach'](function(_0x345e4c) {
- return _0x31e271['bind'](_0x345e4c, _0x127f22, function(_0x58e6a9) {
- return _0x2b30e0(_0x58e6a9['target']);
+ }, 'mute'), this.bind(_0x2c1832.buttons.loadState, 'click', function() {
+ _0xbae705.call(_0x17edbf, _0x17edbf.elements.container, 'loadstate', !0x1, {});
+ }, 'mute'), this.bind(_0x2c1832.buttons.settings, 'click', function(_0x1396ee) {
+ _0x1396ee.stopPropagation(), _0x2593da.toggleMenu.call(_0x17edbf, _0x1396ee);
+ }), this.bind(_0x2c1832.buttons.settings, 'keyup', function(_0x454936) {
+ var _0x2c1832 = _0x454936.which;
+ [0xd, 0x20].includes(_0x2c1832) && (0xd !== _0x2c1832 ? (_0x454936.preventDefault(), _0x454936.stopPropagation(), _0x2593da.toggleMenu.call(_0x17edbf, _0x454936)) : _0x2593da.focusFirstMenuItem.call(_0x17edbf, null, true));
+ }, null, !0x1), this.bind(_0x2c1832.settings.menu, 'keydown', function(_0x40072c) {
+ 0x1b === _0x40072c.which && _0x2593da.toggleMenu.call(_0x17edbf, _0x40072c);
+ }), _0x59aa33.isIos) {
+ var _0x4bd188 = _0x23ffa1.call(_0x17edbf, 'input[type=\x22range\x22]');
+ Array.from(_0x4bd188).forEach(function(_0x345e4c) {
+ return _0x31e271.bind(_0x345e4c, _0x127f22, function(_0x58e6a9) {
+ return _0x2b30e0(_0x58e6a9.target);
});
});
}
- _0x59aa33['isWebkit'] && Array['from'](_0x23ffa1['call'](_0x17edbf, 'input[type="range"]'))['forEach'](function(_0x45c503) {
- _0x31e271['bind'](_0x45c503, 'input', function(_0x436691) {
- return _0x2593da['updateRangeFill']['call'](_0x17edbf, _0x436691['target']);
+ _0x59aa33.isWebkit && Array.from(_0x23ffa1.call(_0x17edbf, 'input[type="range"]')).forEach(function(_0x45c503) {
+ _0x31e271.bind(_0x45c503, 'input', function(_0x436691) {
+ return _0x2593da.updateRangeFill.call(_0x17edbf, _0x436691.target);
});
- }), this['bind'](_0x2c1832['inputs']['volume'], _0x127f22, function(_0x42307e) {
- _0x17edbf['volume'] = _0x42307e['target']['value'];
- }, 'volume'), this['bind'](_0x2c1832['controls'], 'mouseenter mouseleave', function(_0x10170b) {
- 'mouseleave' === _0x10170b['type'] && null === _0x10170b['toElement'] ? _0x2c1832['controls']['hover'] = !0x0 : _0x2c1832['controls']['hover'] = !_0x17edbf['touch'] && 'mouseenter' === _0x10170b['type'];
- }), this['bind'](_0x2c1832['controls'], 'mousedown mouseup touchstart touchend touchcancel', function(_0x4bfb22) {
- if (['mousedown', 'touchstart']['includes'](_0x4bfb22['type'])) {
- _0x2c1832['controls']['pressed'] = !0x0;
- var _0x17edbf = _0x2c1832['controls']['getAttribute']('data-timer2');
+ }), this.bind(_0x2c1832.inputs.volume, _0x127f22, function(_0x42307e) {
+ _0x17edbf.volume = _0x42307e.target.value;
+ }, 'volume'), this.bind(_0x2c1832.controls, 'mouseenter mouseleave', function(_0x10170b) {
+ 'mouseleave' === _0x10170b.type && null === _0x10170b.toElement ? _0x2c1832.controls.hover = true : _0x2c1832.controls.hover = !_0x17edbf.touch && 'mouseenter' === _0x10170b.type;
+ }), this.bind(_0x2c1832.controls, 'mousedown mouseup touchstart touchend touchcancel', function(_0x4bfb22) {
+ if (['mousedown', 'touchstart'].includes(_0x4bfb22.type)) {
+ _0x2c1832.controls.pressed = true;
+ var _0x17edbf = _0x2c1832.controls.getAttribute('data-timer2');
clearTimeout(_0x17edbf);
} else {
var _0x29ba04 = setTimeout(function() {
- _0x2c1832['controls']['pressed'] = !0x1;
+ _0x2c1832.controls.pressed = !0x1;
}, 0xfa0);
- _0x2c1832['controls']['setAttribute']('data-timer2', _0x29ba04);
+ _0x2c1832.controls.setAttribute('data-timer2', _0x29ba04);
}
- }), this['bind'](_0x2c1832['controls'], 'focusin focusout', function(_0x54e607) {
- var _0x466a37 = _0x17edbf['config'],
- _0x2ab6f3 = _0x17edbf['elements'],
- _0x5f0669 = 'focusin' === _0x54e607['type'],
- _0x11de96 = _0x2ab6f3['controls']['getAttribute']('data-timer');
- if (_0x3a8e2f(_0x2ab6f3['controls'], _0x466a37['classNames']['noTransition'], _0x5f0669), _0x5ab74d['toggleControls']['call'](_0x17edbf, _0x5f0669), _0x5f0669) {
+ }), this.bind(_0x2c1832.controls, 'focusin focusout', function(_0x54e607) {
+ var _0x466a37 = _0x17edbf.config,
+ _0x2ab6f3 = _0x17edbf.elements,
+ _0x5f0669 = 'focusin' === _0x54e607.type,
+ _0x11de96 = _0x2ab6f3.controls.getAttribute('data-timer');
+ if (_0x3a8e2f(_0x2ab6f3.controls, _0x466a37.classNames.noTransition, _0x5f0669), _0x5ab74d.toggleControls.call(_0x17edbf, _0x5f0669), _0x5f0669) {
setTimeout(function() {
- _0x3a8e2f(_0x2ab6f3['controls'], _0x466a37['classNames']['noTransition'], !0x1);
+ _0x3a8e2f(_0x2ab6f3.controls, _0x466a37.classNames.noTransition, !0x1);
}, 0x0);
- var _0x314d11 = _0x31e271['touch'] ? 0xbb8 : 0xfa0;
+ var _0x314d11 = _0x31e271.touch ? 0xbb8 : 0xfa0;
clearTimeout(_0x11de96), _0x11de96 = setTimeout(function() {
- return _0x5ab74d['toggleControls']['call'](_0x17edbf, !0x1);
- }, _0x314d11), _0x2ab6f3['controls']['setAttribute']('data-timer', _0x11de96);
+ return _0x5ab74d.toggleControls.call(_0x17edbf, !0x1);
+ }, _0x314d11), _0x2ab6f3.controls.setAttribute('data-timer', _0x11de96);
}
- }), this['bind'](_0x2c1832['inputs']['volume'], 'wheel', function(_0x28b2d2) {
- var _0x2c1832 = _0x28b2d2['webkitDirectionInvertedFromDevice'],
- _0x12883c = _0x42b437([_0x28b2d2['deltaX'], -_0x28b2d2['deltaY']]['map'](function(_0x1ce956) {
+ }), this.bind(_0x2c1832.inputs.volume, 'wheel', function(_0x28b2d2) {
+ var _0x2c1832 = _0x28b2d2.webkitDirectionInvertedFromDevice,
+ _0x12883c = _0x42b437([_0x28b2d2.deltaX, -_0x28b2d2.deltaY].map(function(_0x1ce956) {
return _0x2c1832 ? -_0x1ce956 : _0x1ce956;
}), 0x2),
_0x247794 = _0x12883c[0x0],
_0x5dcee2 = _0x12883c[0x1],
- _0x5691ae = Math['sign'](Math['abs'](_0x247794) > Math['abs'](_0x5dcee2) ? _0x247794 : _0x5dcee2);
- _0x17edbf['increaseVolume'](_0x5691ae / 0x32);
- var _0x47df17 = _0x17edbf['game']['volume'];
- (0x1 === _0x5691ae && _0x47df17 < 0x1 || -0x1 === _0x5691ae && _0x47df17 > 0x0) && _0x28b2d2['preventDefault']();
- }, 'volume', !0x1), this['bind'](_0x2c1832['controls'], 'contextmenu', function(_0x1db0c5) {
- _0x1db0c5['stopPropagation']();
- }), this['bind'](_0x2c1832['contextMenu'], 'contextmenu', function(_0x37851d) {
- _0x37851d['stopPropagation']();
+ _0x5691ae = Math.sign(Math.abs(_0x247794) > Math.abs(_0x5dcee2) ? _0x247794 : _0x5dcee2);
+ _0x17edbf.increaseVolume(_0x5691ae / 0x32);
+ var _0x47df17 = _0x17edbf.game.volume;
+ (0x1 === _0x5691ae && _0x47df17 < 0x1 || -0x1 === _0x5691ae && _0x47df17 > 0x0) && _0x28b2d2.preventDefault();
+ }, 'volume', !0x1), this.bind(_0x2c1832.controls, 'contextmenu', function(_0x1db0c5) {
+ _0x1db0c5.stopPropagation();
+ }), this.bind(_0x2c1832.contextMenu, 'contextmenu', function(_0x37851d) {
+ _0x37851d.stopPropagation();
});
}
- }]) && _0x589db0(_0x17edbf['prototype'], _0x2c1832), _0x44dd9e && _0x589db0(_0x17edbf, _0x44dd9e), _0x31e271;
+
+ }
+ return _0x31e271;
}();
function _0x1a3a6c(_0x5a5a15, _0x4e2d69) {
- for (var _0x2c1832 = 0x0; _0x2c1832 < _0x4e2d69['length']; _0x2c1832++) {
+ for (var _0x2c1832 = 0x0; _0x2c1832 < _0x4e2d69.length; _0x2c1832++) {
var _0x2e1c57 = _0x4e2d69[_0x2c1832];
- _0x2e1c57['enumerable'] = _0x2e1c57['enumerable'] || !0x1, _0x2e1c57['configurable'] = !0x0, 'value' in _0x2e1c57 && (_0x2e1c57['writable'] = !0x0), Object['defineProperty'](_0x5a5a15, _0x2e1c57['key'], _0x2e1c57);
+ _0x2e1c57.enumerable = _0x2e1c57.enumerable || false, _0x2e1c57.configurable = true, 'value' in _0x2e1c57 && (_0x2e1c57.writable = true), Object.defineProperty(_0x5a5a15, _0x2e1c57.key, _0x2e1c57);
}
}
var _0x3dbc76 = function() {
function _0x6954aa(_0x28cce1, _0x2ba0e6) {
+ //_0x2ba0e6.adUrl = 'https://www.youtube.com/embed/8vkh9UO3PnA'
var _0x5938bc = this;
if (function(_0x154660, _0x15626f) {
if (!(_0x154660 instanceof _0x15626f)) throw new TypeError('Cannot call a class as a function');
- }(this, _0x6954aa), this['version'] = _0x3d61f9['a'], this['system'] = '', this['hash'] = '', this['lightgun'] = !0x1, this['mouse'] = !0x1, this['multitap'] = !0x1, this['ready'] = !0x1, this['paused'] = !0x0, this['started'] = !0x1, this['touch'] = _0x2d904a['touch'], this['game'] = _0x28cce1, _0x1e2c68['string'](this['game']) && (this['game'] = document['querySelectorAll'](this['game'])), (window['jQuery'] && this['game'] instanceof jQuery || _0x1e2c68['nodeList'](this['game']) || _0x1e2c68['array'](this['game'])) && (this['game'] = this['game'][0x0]), this['game'] = this['game'], this['game']['innerHTML'] = '', this['config'] = _0x5dc0c0({}, _0x39ca5e, _0x6954aa['defaults'], _0x2ba0e6 || {}), this['lightgun'] = this['config']['lightgun'], this['mouse'] = this['config']['mouse'], this['multitap'] = this['config']['multitap'], this['cheats'] = this['config']['cheats'], this['cheats'] || (this['cheats'] = []), this['color'] = this['config']['color'], Object['keys'](this['config']['classNames'])['forEach'](function(_0x1d6b41) {
+ }(this, _0x6954aa),
+ this.version = _0x3d61f9.a,
+ this.system = '',
+ this.adUrl = null,
+ this.gameName = null,
+ this.hash = '',
+ this.lightgun = false,
+ this.mouse = false,
+ this.multitap = false,
+ this.ready = false,
+ this.paused = true,
+ this.started = !0x1,
+ this.touch = _0x2d904a.touch,
+ this.game = _0x28cce1,
+ _0x1e2c68.string(this.game) && (this.game = document.querySelectorAll(this.game)),
+ (window.jQuery && this.game instanceof jQuery || _0x1e2c68.nodeList(this.game) || _0x1e2c68.array(this.game)) && (this.game = this.game[0x0]),
+ this.game = this.game,
+ this.game.innerHTML = '',
+ this.config = _0x5dc0c0({}, _0x39ca5e, _0x6954aa.defaults, _0x2ba0e6 || {}),
+ this.lightgun = this.config.lightgun,
+ this.adUrl = this.config.adUrl || null,
+ this.gameName = this.config.gameName || null,
+ this.mouse = this.config.mouse,
+ this.multitap = this.config.multitap,
+ this.cheats = this.config.cheats,
+ this.cheats || (this.cheats = []),
+ this.color = this.config.color,
+ Object.keys(this.config.classNames).forEach(function(_0x1d6b41) {
var _0x28cce1 = _0x5938bc;
- if (_0x1e2c68['object'](_0x28cce1['config']['classNames'][_0x1d6b41])) Object['keys'](_0x28cce1['config']['classNames'][_0x1d6b41])['forEach'](function(_0x42f7f2) {
+ if (_0x1e2c68.object(_0x28cce1.config.classNames[_0x1d6b41])) Object.keys(_0x28cce1.config.classNames[_0x1d6b41]).forEach(function(_0x42f7f2) {
var _0x2ba0e6 = {};
- _0x2ba0e6[_0x5938bc['config']['classNames'][_0x1d6b41][_0x42f7f2]] = !0x0, _0x5938bc['config']['classNames'][_0x1d6b41][_0x42f7f2] = _0x449eac(_0x2ba0e6);
+ _0x2ba0e6[_0x5938bc.config.classNames[_0x1d6b41][_0x42f7f2]] = true, _0x5938bc.config.classNames[_0x1d6b41][_0x42f7f2] = _0x449eac(_0x2ba0e6);
});
else {
var _0x2ba0e6 = {};
- _0x2ba0e6[_0x5938bc['config']['classNames'][_0x1d6b41]] = !0x0, _0x5938bc['config']['classNames'][_0x1d6b41] = _0x449eac(_0x2ba0e6);
+ _0x2ba0e6[_0x5938bc.config.classNames[_0x1d6b41]] = true, _0x5938bc.config.classNames[_0x1d6b41] = _0x449eac(_0x2ba0e6);
}
- }), this['config']['selectors']['controls']['wrapper'] = '.' ['concat'](_0x449eac({
- 'ejs__controls': !0x0
- })), this['config']['selectors']['container'] = '.' ['concat'](_0x449eac({
- 'ejs': !0x0
- })), this['system'] = this['config']['system'], this['elements'] = {
+ }), this.config.selectors.controls.wrapper = '.' .concat(_0x449eac({
+ 'ejs__controls': true
+ })), this.config.selectors.container = '.' .concat(_0x449eac({
+ 'ejs': true
+ })), this.system = this.config.system, this.elements = {
'container': null,
'buttons': {},
'display': {},
@@ -18807,114 +19082,117 @@ var EJS = function(_0x574f5e) {
'netplay': null
},
'widgets': {}
- }, this['fullscreen'] = {
- 'active': !0x1
- }, this['game']['emulator']) console['warn']('Target already setup');
+ }, this.fullscreen = {
+ 'active': false
+ }, this.game.emulator) console.warn('Target already setup');
else {
- this['config']['mute'] = !0x0, this['eventListeners'] = [], this['listeners'] = new _0x37093c(this), this['storage'] = new _0x2f61ba(this, 'ejs_settings'), this['game']['emulator'] = this, _0x1e2c68['element'](this['elements']['container']) || (this['elements']['container'] = _0x428003('div'), _0x580edd(this['game'], this['elements']['container']));
+ this.config.mute = true, this.eventListeners = [], this.listeners = new _0x37093c(this), this.storage = new _0x2f61ba(this, 'ejs_settings'), this.game.emulator = this, _0x1e2c68.element(this.elements.container) || (this.elements.container = _0x428003('div'), _0x580edd(this.game, this.elements.container));
var _0x5e63f0 = _0x428003('div', {
'class': _0x449eac({
- 'ejs__widgets': !0x0
+ 'ejs__widgets': true
})
});
- this['elements']['container']['appendChild'](_0x5e63f0);
+ this.elements.container.appendChild(_0x5e63f0);
var _0x32c8af = _0x428003('div', {
'class': _0x449eac({
- 'ejs__dialogs': !0x0
+ 'ejs__dialogs': true
})
});
- this['elements']['container']['appendChild'](_0x32c8af), _0x5ab74d['addStyleHook']['call'](this), _0xdcec2a['setup']['call'](this), _0x5ab74d['build']['call'](this), this['listeners']['container'](), this['listeners']['global'](), this['fullscreen'] = new _0x335854(this), _0x27f4c4['create']['call'](this);
- var _0x446e06 = document['createElement']('script');
- _0x446e06['src'] = EJS_pathtodata + 'webrtc-adapter.js', document['body']['appendChild'](_0x446e06);
+ this.elements.container.appendChild(_0x32c8af), _0x5ab74d.addStyleHook.call(this), _0xdcec2a.setup.call(this), _0x5ab74d.build.call(this), this.listeners.container(), this.listeners.global(), this.fullscreen = new _0x335854(this), _0x27f4c4.create.call(this);
+ var _0x446e06 = document.createElement('script');
+ _0x446e06.src = EJS_pathtodata + 'webrtc-adapter.js', document.body.appendChild(_0x446e06);
}
}
var _0x17edbf, _0x2c1832, _0x423c42;
- return _0x17edbf = _0x6954aa, _0x423c42 = [{
+ _0x17edbf = _0x6954aa, _0x423c42 = [{
'key': 'setup',
'value': function(_0x3bb461) {
- var _0x2c1832 = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : {},
+ var _0x2c1832 = arguments.length > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : {},
_0x3eda14 = null;
- return _0x1e2c68['string'](_0x3bb461) ? _0x3eda14 = Array['from'](document['querySelectorAll'](_0x3bb461)) : _0x1e2c68['nodeList'](_0x3bb461) ? _0x3eda14 = Array['from'](_0x3bb461) : _0x1e2c68['array'](_0x3bb461) && (_0x3eda14 = _0x3bb461['filter'](_0x1e2c68['element'])), _0x1e2c68['empty'](_0x3eda14) ? null : _0x3eda14['map'](function(_0x176f95) {
+ return _0x1e2c68.string(_0x3bb461) ? _0x3eda14 = Array.from(document.querySelectorAll(_0x3bb461)) : _0x1e2c68.nodeList(_0x3bb461) ? _0x3eda14 = Array.from(_0x3bb461) : _0x1e2c68.array(_0x3bb461) && (_0x3eda14 = _0x3bb461.filter(_0x1e2c68.element)), _0x1e2c68.empty(_0x3eda14) ? null : _0x3eda14.map(function(_0x176f95) {
return new _0x6954aa(_0x176f95, _0x2c1832);
});
}
}], (_0x2c1832 = [{
'key': 'restart',
'value': function() {
- this['currentTime'] = 0x0;
+ this.currentTime = 0x0;
}
}, {
'key': 'increaseVolume',
'value': function(_0x2881c7) {
- var _0x17edbf = this['game']['muted'] ? 0x0 : this['volume'];
- this['volume'] = _0x17edbf + (_0x1e2c68['number'](_0x2881c7) ? _0x2881c7 : 0x0);
+ var _0x17edbf = this.game.muted ? 0x0 : this.volume;
+ this.volume = _0x17edbf + (_0x1e2c68.number(_0x2881c7) ? _0x2881c7 : 0x0);
}
}, {
'key': 'decreaseVolume',
'value': function(_0x492b2e) {
- this['increaseVolume'](-_0x492b2e);
+ this.increaseVolume(-_0x492b2e);
}
}, {
'key': 'toggleControls',
'value': function(_0x1c82b4) {
- if (this['started']) {
+ if (this.started) {
var _0x17edbf = void 0x0 === _0x1c82b4 ? void 0x0 : !_0x1c82b4,
- _0x2c1832 = _0x3a8e2f(this['elements']['container'], this['config']['classNames']['hideControls'], _0x17edbf);
- return _0x2c1832 && _0x2593da['toggleMenu']['call'](this, !0x1), !_0x2c1832;
+ _0x2c1832 = _0x3a8e2f(this.elements.container, this.config.classNames.hideControls, _0x17edbf);
+ return _0x2c1832 && _0x2593da.toggleMenu.call(this, !0x1), !_0x2c1832;
}
return !0x1;
}
}, {
'key': 'loadState',
'value': function(_0x3c6414) {
- _0xdcec2a['loadState'](_0x3c6414, 0x0);
+ _0xdcec2a.loadState(_0x3c6414, 0x0);
}
}, {
'key': 'on',
'value': function(_0x44ca1b, _0x2e6552) {
- _0x1093f4['call'](this, this['elements']['container'], _0x44ca1b, _0x2e6552);
+ _0x1093f4.call(this, this.elements.container, _0x44ca1b, _0x2e6552);
}
}, {
'key': 'once',
'value': function(_0x9f0e03, _0x44b98a) {
- _0x455c85['call'](this, this['elements']['container'], _0x9f0e03, _0x44b98a);
+ _0x455c85.call(this, this.elements.container, _0x9f0e03, _0x44b98a);
}
}, {
'key': 'off',
'value': function(_0x343615, _0x2023ff) {
- _0x20109b(this['elements']['container'], _0x343615, _0x2023ff);
+ _0x20109b(this.elements.container, _0x343615, _0x2023ff);
}
}, {
'key': 'playing',
'set': function() {
- var _0x6954aa = !(arguments['length'] > 0x0 && void 0x0 !== arguments[0x0]) || arguments[0x0];
- Array['from'](this['elements']['buttons']['play'] || [])['forEach'](function(_0x4a27d3) {
- _0x4a27d3['pressed'] = _0x6954aa;
- }), this['paused'] = !_0x6954aa;
+ var _0x6954aa = !(arguments.length > 0x0 && void 0x0 !== arguments[0x0]) || arguments[0x0];
+ Array.from(this.elements.buttons.play || []).forEach(function(_0x4a27d3) {
+ _0x4a27d3.pressed = _0x6954aa;
+ }), this.paused = !_0x6954aa;
},
'get': function() {
- return Boolean(this['ready'] && !this['paused']);
+ return Boolean(this.ready && !this.paused);
}
}, {
'key': 'volume',
'set': function(_0x52441c) {
var _0x17edbf = _0x52441c;
- _0x1e2c68['string'](_0x17edbf) && (_0x17edbf = Number(_0x17edbf)), _0x1e2c68['number'](_0x17edbf) || (_0x17edbf = this['storage']['get']('volume')), _0x1e2c68['number'](_0x17edbf) || (_0x17edbf = this['config']['volume']), _0x17edbf > 0x1 && (_0x17edbf = 0x1), _0x17edbf < 0x0 && (_0x17edbf = 0x0), this['config']['volume'] = _0x17edbf, this['game']['volume'] = _0x17edbf, !_0x1e2c68['empty'](_0x52441c) && this['muted'] && _0x17edbf > 0x0 && (this['muted'] = !0x1);
+ _0x1e2c68.string(_0x17edbf) && (_0x17edbf = Number(_0x17edbf)), _0x1e2c68.number(_0x17edbf) || (_0x17edbf = this.storage.get('volume')), _0x1e2c68.number(_0x17edbf) || (_0x17edbf = this.config.volume), _0x17edbf > 0x1 && (_0x17edbf = 0x1), _0x17edbf < 0x0 && (_0x17edbf = 0x0), this.config.volume = _0x17edbf, this.game.volume = _0x17edbf, !_0x1e2c68.empty(_0x52441c) && this.muted && _0x17edbf > 0x0 && (this.muted = !0x1);
},
'get': function() {
- return Number(this['game']['volume']);
+ return Number(this.game.volume);
}
}, {
'key': 'muted',
'set': function(_0x218306) {
var _0x17edbf = _0x218306;
- _0x1e2c68['boolean'](_0x17edbf) || (_0x17edbf = this['storage']['get']('muted')), _0x1e2c68['boolean'](_0x17edbf) || (_0x17edbf = this['config']['muted']), this['config']['muted'] = _0x17edbf, this['game']['muted'] = _0x17edbf;
+ _0x1e2c68.boolean(_0x17edbf) || (_0x17edbf = this.storage.get('muted')), _0x1e2c68.boolean(_0x17edbf) || (_0x17edbf = this.config.muted), this.config.muted = _0x17edbf, this.game.muted = _0x17edbf;
},
'get': function() {
- return Boolean(this['game']['muted']);
+ return Boolean(this.game.muted);
}
- }]) && _0x1a3a6c(_0x17edbf['prototype'], _0x2c1832), _0x423c42 && _0x1a3a6c(_0x17edbf, _0x423c42), _0x6954aa;
+ }])
+ _0x1a3a6c(_0x17edbf.prototype, _0x2c1832)
+ _0x423c42 && _0x1a3a6c(_0x17edbf, _0x423c42)
+ return _0x6954aa;
}();
- _0x3dbc76['defaults'] = {};
- _0x17edbf['default'] = _0x3dbc76;
-}])['default'];
+ _0x3dbc76.defaults = {};
+ _0x17edbf.default = _0x3dbc76;
+}]).default;
diff --git a/data/loader.js b/data/loader.js
index 3605b2b..eb821ac 100644
--- a/data/loader.js
+++ b/data/loader.js
@@ -2,7 +2,7 @@ fetch('https://raw.githack.com/ethanaobrien/emulatorjs/main/data/version.json').
if (response.ok) {
response.text().then(body => {
var version = JSON.parse(body);
- var usingVersion = '0.4.23-07';
+ var usingVersion = '0.4.24';
if (usingVersion != version.current_version) {
console.log('Using emulatorjs version ' + usingVersion + ' but the newest version is ' + version.current_version + '\n\nopen https://github.com/ethanaobrien/emulatorjs to update');
};
@@ -51,20 +51,6 @@ if (!EJS_pathtodata.endsWith('/')) {
}
console.log('Path to data is set to ' + EJS_pathtodata)
-
-window.getHeadGameInfo = function(normalFunc, url) {
- if (! url.startsWith('blob:')) {
- return normalFunc(url, {})
- } else {
- return async function() {
- //console.log('blob url')
- var a = await fetch(url)
- var a = await a.blob()
- return {headers:{'content-length': a.size, 'content-type': 'text/plain'}}
- }();
- }
-}
-
window.readAsBufferrr = function(fileBlob) {
return new Promise(function(resolve, reject) {
var reader = new FileReader()
@@ -84,63 +70,34 @@ window.EJS_loadStateFromURL = async function() {
EJS_loadState(a)
}
-var loader = function(_0x3f3e4d) {
- var _0x33f0f1 = {};
- function _0x268bfd(_0x6631ec) {
- if (_0x33f0f1[_0x6631ec]) return _0x33f0f1[_0x6631ec]['exports'];
- var _0x50c7e4 = _0x33f0f1[_0x6631ec] = {
- 'i': _0x6631ec,
- 'l': !0x1,
- 'exports': {}
- };
- return _0x3f3e4d[_0x6631ec]['call'](_0x50c7e4['exports'], _0x50c7e4, _0x50c7e4['exports'], _0x268bfd), _0x50c7e4['l'] = !0x0, _0x50c7e4['exports'];
- }
- return _0x268bfd['m'] = _0x3f3e4d, _0x268bfd['c'] = _0x33f0f1, _0x268bfd['d'] = function(_0xf1024d, _0x55284e, _0x262414) {
- _0x268bfd['o'](_0xf1024d, _0x55284e) || Object['defineProperty'](_0xf1024d, _0x55284e, {
- 'enumerable': !0x0,
- 'get': _0x262414
- });
- }, _0x268bfd['r'] = function(_0xa8a7e) {
- 'undefined' != typeof Symbol && Symbol['toStringTag'] && Object['defineProperty'](_0xa8a7e, Symbol['toStringTag'], {
- 'value': 'Module'
- }), Object['defineProperty'](_0xa8a7e, '__esModule', {
- 'value': !0x0
- });
- }, _0x268bfd['t'] = function(_0x5518c9, _0x2d1bbc) {
- if (0x1 & _0x2d1bbc && (_0x5518c9 = _0x268bfd(_0x5518c9)), 0x8 & _0x2d1bbc) return _0x5518c9;
- if (0x4 & _0x2d1bbc && 'object' == typeof _0x5518c9 && _0x5518c9 && _0x5518c9['__esModule']) return _0x5518c9;
- var _0x37347f = Object['create'](null);
- if (_0x268bfd['r'](_0x37347f), Object['defineProperty'](_0x37347f, 'default', {
- 'enumerable': !0x0,
- 'value': _0x5518c9
- }), 0x2 & _0x2d1bbc && 'string' != typeof _0x5518c9)
- for (var _0x2b2a4e in _0x5518c9) _0x268bfd['d'](_0x37347f, _0x2b2a4e, function(_0x466464) {
- return _0x5518c9[_0x466464];
- }['bind'](null, _0x2b2a4e));
- return _0x37347f;
- }, _0x268bfd['n'] = function(_0x25eece) {
- var _0x3f42e9 = _0x25eece && _0x25eece['__esModule'] ? function() {
- return _0x25eece['default'];
- } : function() {
- return _0x25eece;
- };
- return _0x268bfd['d'](_0x3f42e9, 'a', _0x3f42e9), _0x3f42e9;
- }, _0x268bfd['o'] = function(_0x5570d6, _0x5eaf39) {
- return Object['prototype']['hasOwnProperty']['call'](_0x5570d6, _0x5eaf39);
- }, _0x268bfd['p'] = '', _0x268bfd(_0x268bfd['s'] = 0x18b);
-}({
- 395: function(_0x316d65, _0x16e76b, _0x1f8b30) {
- 'use strict';
- _0x1f8b30['r'](_0x16e76b);
- var _0x2fbf67, _0x59b8a1, _0x3c68b9, _0x44b634, _0x2766bb, _0x46b578 = _0x1f8b30(0x38);
- window, _0x2fbf67 = document, _0x59b8a1 = 'script', _0x3c68b9 = [EJS_pathtodata + 'emulator.js?v=', _0x46b578['a']]['join'](''), _0x44b634 = _0x2fbf67['createElement'](_0x59b8a1), _0x2766bb = _0x2fbf67['getElementsByTagName'](_0x59b8a1)[0x0], _0x44b634['async'] = 0x1, _0x44b634['src'] = _0x3c68b9, _0x2766bb['parentNode']['insertBefore'](_0x44b634, _0x2766bb), _0x44b634['onload'] = function() {
- var _0x316d65 = {};
- _0x316d65['gameUrl'] = EJS_gameUrl, 'undefined' != typeof EJS_biosUrl && (_0x316d65['biosUrl'] = EJS_biosUrl), 'undefined' != typeof EJS_gameID && (_0x316d65['gameId'] = EJS_gameID), 'undefined' != typeof EJS_gameParentUrl && (_0x316d65['gameParentUrl'] = EJS_gameParentUrl), 'undefined' != typeof EJS_gamePatchUrl && (_0x316d65['gamePatchUrl'] = EJS_gamePatchUrl), _0x316d65['system'] = EJS_core, _0x316d65['onsavestate'] = null, _0x316d65['onloadstate'] = null, 'undefined' != typeof EJS_onSaveState && (_0x316d65['onsavestate'] = EJS_onSaveState), 'undefined' != typeof EJS_onLoadState && (_0x316d65['onloadstate'] = EJS_onLoadState), 'undefined' != typeof EJS_lightgun && (_0x316d65['lightgun'] = EJS_lightgun), 'undefined' != typeof EJS_mouse && (_0x316d65['mouse'] = EJS_mouse), 'undefined' != typeof EJS_multitap && (_0x316d65['multitap'] = EJS_multitap), 'undefined' != typeof EJS_playerName && (_0x316d65['playerName'] = EJS_playerName), 'undefined' != typeof EJS_cheats && (_0x316d65['cheats'] = EJS_cheats), 'undefined' != typeof EJS_color && (_0x316d65['color'] = EJS_color), window['EJS_emulator'] = new EJS(EJS_player, _0x316d65), 'undefined' != typeof EJS_onGameStart && EJS_emulator['on']('start-game', EJS_onGameStart);
- };
- },
- 56: function(_0x258889, _0x2c8954, _0x2cdd3a) {
- 'use strict';
- _0x2c8954['a'] = '0.4.23';
- }
-})['default'];
+var emulatorjs = document.createElement('script')
+var scriptTag = document.getElementsByTagName('script')[0]
+emulatorjs.async = true
+emulatorjs.src = EJS_pathtodata + 'emulator.js?v=' + '0.4.24'
+scriptTag.parentNode.insertBefore(emulatorjs, scriptTag)
+emulatorjs.onload = function() {
+ var config = {};
+ config.gameUrl = EJS_gameUrl
+
+ 'undefined' != typeof EJS_biosUrl && (config.biosUrl = EJS_biosUrl)
+ 'undefined' != typeof EJS_gameID && (config.gameId = EJS_gameID)
+ 'undefined' != typeof EJS_gameParentUrl && (config.gameParentUrl = EJS_gameParentUrl)
+ 'undefined' != typeof EJS_gamePatchUrl && (config.gamePatchUrl = EJS_gamePatchUrl)
+ 'undefined' != typeof EJS_AdUrl && (config.adUrl = EJS_AdUrl)
+ config.system = EJS_core
+ config.onsavestate = null
+ config.onloadstate = null
+ 'undefined' != typeof EJS_onSaveState && (config.onsavestate = EJS_onSaveState)
+ 'undefined' != typeof EJS_onLoadState && (config.onloadstate = EJS_onLoadState)
+ 'undefined' != typeof EJS_lightgun && (config.lightgun = EJS_lightgun)
+ 'undefined' != typeof EJS_gameName && (config.gameName = EJS_gameName)
+ 'undefined' != typeof EJS_mouse && (config.mouse = EJS_mouse)
+ 'undefined' != typeof EJS_multitap && (config.multitap = EJS_multitap)
+ 'undefined' != typeof EJS_playerName && (config.playerName = EJS_playerName)
+ 'undefined' != typeof EJS_cheats && (config.cheats = EJS_cheats)
+ 'undefined' != typeof EJS_color && (config.color = EJS_color)
+ window.EJS_emulator = new EJS(EJS_player, config)
+ 'undefined' != typeof EJS_onGameStart && EJS_emulator.on('start-game', EJS_onGameStart);
+};
+
diff --git a/data/n64-asmjs.data b/data/n64-asmjs.data
index 6751f2991a522edb6bf5d39923ffa2c2037bc05d..ec1a929c31103bf1776be31a6d8674219f5b185c 100644
GIT binary patch
delta 513648
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
z
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