Skip to content

Commit a6727a7

Browse files
committed
0.5.8 broken hashkey
1 parent fcb3c22 commit a6727a7

File tree

6 files changed

+68
-23
lines changed

6 files changed

+68
-23
lines changed

emu_decode_058.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6188,6 +6188,7 @@ Output file checksu` + 'm: ' + padZeroes(_0x5e8f08['checksumOutput'], 0x4);
61886188
_0x2cba0a ? (window['Module']['TOTAL_MEMORY'] = 0x0, ['jaguar']['includes'](E['system']) && (window['Module']['TOTAL_MEMORY'] = 0x10000000), ['nds', 'nes', 'snes', 'arcade', 'mame']['includes'](E['system']) && (window['Module']['TOTAL_MEMORY'] = 0x0), ['snes2002', 'snes2005', 'snes2010']['includes'](E['system']) && (window['Module']['TOTAL_MEMORY'] = 0x0), 'gba' == E['system'] && (window['Module']['TOTAL_MEMORY'] = 0x0), '3do' == E['system'] && (window['Module']['TOTAL_MEMORY'] = 0x0), 'n64' == E['system'] && (window['Module']['TOTAL_MEMORY'] = 0x0)) : ('nes' === E['system'] && (window['Module']['TOTAL_MEMORY'] = 0x8000000), window['Module']['TOTAL_MEMORY'] = _0x256faf + 0x4000000, _0xb3d5b3['arcadeCores']['includes'](E['system']) && (window['Module']['TOTAL_MEMORY'] = _0x256faf + 0x10000000, _0xb3d5b3['isMobileDevice'] && (window['Module']['TOTAL_MEMORY'] = 0x12c00000)), ['n64', 'nds', 'jaguar']['includes'](E['system']) && (window['Module']['TOTAL_MEMORY'] = _0x256faf + 0x10000000, _0xb3d5b3['isMobileDevice'] && (window['Module']['TOTAL_MEMORY'] = 0x12c00000)), 'gba' == E['system'] && (window['Module']['TOTAL_MEMORY'] = 0x10000000)), 'undefined' != typeof EJS_MEMORY && (window['Module']['TOTAL_MEMORY'] = EJS_MEMORY);
61896189
}
61906190
async function start_rooms(_0x16da6b) {
6191+
console.log(_0x16da6b);
61916192
try {
61926193
REST_MEMORY();
61936194
//_0x356200(E),
@@ -6201,8 +6202,15 @@ Output file checksu` + 'm: ' + padZeroes(_0x5e8f08['checksumOutput'], 0x4);
62016202
_0xb3d5b3['newCore'] && (_0x404b09 = [E['startName'], _0xb3d5b3['newCoreKey']]);
62026203
_0xb3d5b3['Module']['_get_content_crc'] && (_0x404b09 = [E['startName'], _0xb3d5b3['newCoreKey2']]);
62036204
_0xb3d5b3['Module']['specialHTMLTargets'] && (_0xb3d5b3['Module']['specialHTMLTargets']['#canvas'] = _0xb3d5b3['Module']['canvas'], _0xb3d5b3['Module']['specialHTMLTargets']['#canvas-input'] = _0xb3d5b3['Module']['canvas']['parentElement']['querySelector']('input'), _0xb3d5b3['Module']['specialHTMLTargets']['#canvas-mouse'] = E['elements']['wrapper']);
6204-
'undefined' != typeof EJS_DEBUG_ && !0x0 === EJS_DEBUG_ && (_0x404b09['unshift']('-v'), console['log'](_0x404b09)), 'openbor' == E['system'] && (_0x404b09 = [_0xb3d5b3['newCoreKey2']]);
6205+
'openbor' == E['system'] && (_0x404b09 = [_0xb3d5b3['newCoreKey2']]);
62056206
var _0xba82bb = _0xb3d5b3['loading']['querySelector']('.' ['concat'](_0x58c6c3['p3']));
6207+
if(_0x404b09[1]==E['key']){
6208+
_0x404b09 = _0x404b09[0];
6209+
}else{
6210+
_0x404b09['unshift']('-v');
6211+
6212+
}
6213+
console.log(_0x404b09);
62066214
_0xb3d5b3['Module']['callMain'](_0x404b09);
62076215
E['started'] = !0;
62086216
setTimeout(function () {
@@ -6257,8 +6265,9 @@ Output file checksu` + 'm: ' + padZeroes(_0x5e8f08['checksumOutput'], 0x4);
62576265
}
62586266
}
62596267
});
6260-
start_rooms(gamename);
62616268
}
6269+
6270+
start_rooms(gamename);
62626271

62636272
},
62646273
error() {
@@ -6649,6 +6658,11 @@ Output file checksu` + 'm: ' + padZeroes(_0x5e8f08['checksumOutput'], 0x4);
66496658
CREATE.initCoreData()
66506659
},
66516660
});
6661+
/**
6662+
* hash key
6663+
*/
6664+
WASM_JS = I.decode(WASM_JS);
6665+
WASM_JS = WASM_JS.replace(/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,'function _gettimeofday(ptr) {var now = 1690674045574;').replace(/function\s*callMain\(args\)\s*{/,'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);');
66526666
await T.addJS(WASM_JS);
66536667
if (typeof EmulatorJS_ != 'undefined') {
66546668
await EmulatorJS_(_0x440c41);
@@ -7001,7 +7015,7 @@ Output file checksu` + 'm: ' + padZeroes(_0x5e8f08['checksumOutput'], 0x4);
70017015
mode = 0x2;
70027016
version = '0.5.8';
70037017
//4bf51c875c23238fba5f9aa0bb80ac3c 32d57c66d2f3ea56d2af90bef14773f0
7004-
//key = '7e311922f3ebb2828be430121192f88a32d57c66d2f3ea56d2af90bef14773f0';
7018+
key = 'c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0';
70057019
//key = '54f99f60'+'901cd32e'+'65c5ef32'+'3c27d0e3'+'32d57c66d2f3ea56d2af90bef14773f0';
70067020
basekey = '32d57c66d2f3ea56d2af90bef14773f0';
70077021
system = '';

readme.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
- how to work
2+
- [index.html](index.html)
3+
- gb.html [gb.js](run/gb.js)
4+
- hash key fix
5+
- retroarch.js
6+
```javascript
7+
function _gettimeofday(ptr) {
8+
var now = Date.now();
9+
HEAP32[ptr >> 2] = now / 1e3 | 0;
10+
HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;
11+
return 0
12+
}
13+
//make the now = 1690674045574
14+
//c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0
15+
//demo fix
16+
var T= Nenge,I=T.I,F=T.F;
17+
let files = await T.FetchItem({
18+
url:'cores/gb-wasm.7z?'+T.time,
19+
unpack:!0
20+
});
21+
files['retroarch.js'] = I.decode(
22+
files['retroarch.js']
23+
).replace(
24+
/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,
25+
'function _gettimeofday(ptr) {var now = 1690674045574;'
26+
).replace(
27+
/function\s*callMain\(args\)\s*{/,
28+
'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);'
29+
);
30+
await T.addJS(files['retroarch.js']);
31+
/* ... */
32+
Module.callMain('test.gb');
33+
```

run/arcade.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,17 @@ var Module = {};
1414
unpack:!0
1515
});
1616
console.log(files,games,game);
17+
files['retroarch.js'] = I.decode(files['retroarch.js']).replace(/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,'function _gettimeofday(ptr) {var now = 1690674045574;').replace(/function\s*callMain\(args\)\s*{/,'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);');
1718
await T.addJS(files['retroarch.js']);
1819
//await T.addJS('./gb.js?'+T.time);
1920
Module = {
2021
wasmBinary : files['retroarch.wasm'],
2122
canvas:T.$('canvas'),
2223
hash:'2b35cacf70aef5cbb3f38c0bb20e488cc8ad0c350400499a0',
2324
onRuntimeInitialized(){
24-
let args = ['-v','kof97.zip',this.hash];
25+
let args = 'kof97.zip';
2526
I.toArr(bios,v=>this.writeFile(v[0],v[1]));
26-
this.writeFile(args[1],games);
27+
this.writeFile(args,games);
2728
if(this.specialHTMLTargets){
2829
I[1].assign(this.specialHTMLTargets,{
2930
'#canvas':this.canvas,

run/gb.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@ var Module = {};
1717
});
1818
*/
1919
console.log(files,games,game);
20+
21+
files['retroarch.js'] = I.decode(files['retroarch.js']).replace(/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,'function _gettimeofday(ptr) {var now = 1690674045574;').replace(/function\s*callMain\(args\)\s*{/,'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);');
2022
await T.addJS(files['retroarch.js']);
2123
//await T.addJS('./gb.js?'+T.time);
2224
Module = {
2325
wasmBinary : files['retroarch.wasm'],
2426
canvas:T.$('canvas'),
2527
hash:'2b35cacf70aef5cbb3f38c0bb20e488cc8ad0c350400499a0',
2628
onRuntimeInitialized(){
27-
let args = ['-v','test.gbc',this.hash];
28-
this.writeFile(args[1],games['test.gb']);
29+
let args = 'test.gbc';
30+
this.writeFile(args,games['test.gb']);
2931
if(this.specialHTMLTargets){
3032
I[1].assign(this.specialHTMLTargets,{
3133
'#canvas':this.canvas,
@@ -69,8 +71,10 @@ var Module = {};
6971
//a75d7994cbfc3bfd7f61c328e42a064d7d4c43e0f2069d6c85ff2c6517f6403f
7072
//console.log(headers);
7173
//if(headers.key)args[2] = headers.key;
74+
await T.loadLibjs('spark-md5.min.zip');
7275
if(Module._get_content_crc){
73-
args[2] = 'c8b683b2e3b8417696ca6026b160c7a332d57c66d2f3ea56d2af90bef14773f0';
76+
let k = SparkMD5.hash((T.time/100000).toFixed(0));
77+
args[2] = SparkMD5.hash(k)+'32d57c66d2f3ea56d2af90bef14773f0';
7478
//args[2] = '961a64459508e2435a5ef45e1fc816d232d57c66d2f3ea56d2af90bef14773f0';
7579
}
7680
Module.callMain(args);

run/gba.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ var Module = {};
1414
url:'bios/gba.zip',
1515
unpack:!0
1616
});
17-
console.log(files,games);
18-
//await T.addJS(files['retroarch.js']);
19-
await T.addJS('./emu_gba.js?'+T.time);
17+
console.log(files,games);files['retroarch.js'] = I.decode(files['retroarch.js']).replace(/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,'function _gettimeofday(ptr) {var now = 1690674045574;').replace(/function\s*callMain\(args\)\s*{/,'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);');
18+
await T.addJS(files['retroarch.js']);
19+
//await T.addJS('./emu_gba.js?'+T.time);
2020
Module = {
2121
wasmBinary : files['retroarch.wasm'],
2222
canvas:T.$('canvas'),
@@ -28,7 +28,7 @@ var Module = {};
2828
'postRun': [],
2929
'totalDependencies': 0x0,
3030
onRuntimeInitialized(){
31-
let args = ['-v','test.gb',Module.hash];
31+
let args = 'test.gb';
3232
if(Module.specialHTMLTargets){
3333
I[1].assign(Module.specialHTMLTargets,{
3434
'#canvas':Module.canvas,
@@ -42,7 +42,7 @@ var Module = {};
4242
this.mkdir('/etc/mGBA');
4343
this.mkdir('/shader');
4444
this.mkdir('/saves');
45-
FS.writeFile('test.gb',games['test.gb']);
45+
FS.writeFile(args,games['test.gb']);
4646
I.toArr(bios,v=>Module.writeFile(v[0],v[1]));
4747
this.writeFile('/etc/retroarch-core-options.cfg', 'mgba_gb_model = "Game Boy Advance";\nmgba_use_bios = "ON";\nmgba_skip_bios = "OFF"\nmgba_gb_colors = "Grayscale"\nmgba_gb_colors_preset = "3"\nmgba_sgb_borders = "OFF"\nmgba_color_correction = "OFF"\nmgba_interframe_blending = "OFF"\nmgba_audio_low_pass_filter = "enabled"\nmgba_audio_low_pass_range = "60"\nmgba_allow_opposing_directions = "no"\nmgba_solar_sensor_level = "0"\nmgba_force_gbp = "OFF"\nmgba_idle_optimization = ""\nmgba_frameskip = "disabled"\nmgba_frameskip_threshold = ""\nmgba_frameskip_interval = "0"\n');
4848
this.writeFile('/etc/retroarch.cfg', 'savefile_directory = "/saves"' +
@@ -62,14 +62,6 @@ var Module = {};
6262
'\n');
6363
//savefile_directory = /data/saves/gba\nsystem_directory = /\nvideo_vsync = true\nscreenshot_directory = /\nvideo_shader = /shader/shader.glslp\nvideo_shader_enable = true\nvideo_font_enable = false\nvideo_scale = 1.0\nvideo_gpu_screenshot = false\nvideo_smooth = false\n
6464
T.once(T.$('canvas'),'click',async e=>{
65-
//let headers = (await T.FetchItem({url:'https://www.emulatorjs.com/api/v?name=gba',type:'head'}));
66-
//a75d7994cbfc3bfd7f61c328e42a064d7d4c43e0f2069d6c85ff2c6517f6403f
67-
//console.log(headers);
68-
//if(headers.key)args[2] = headers.key;
69-
if(Module._get_content_crc){
70-
//args[2] = headers['key2'];
71-
args[2] = 'c8b683b2e3b8417696ca6026b160c7a332d57c66d2f3ea56d2af90bef14773f0';
72-
}
7365
Module.callMain(args);
7466
console.log('click',args,Module.getCore());
7567

run/psx.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@ var Module = {};
1616
});
1717
*/
1818
console.log(files,games,game);
19+
files['retroarch.js'] = I.decode(files['retroarch.js']).replace(/function\s*_gettimeofday\(ptr\)\s*\{\n?\s*?var\s*now\s*=\s*/,'function _gettimeofday(ptr) {var now = 1690674045574;').replace(/function\s*callMain\(args\)\s*{/,'function callMain(args) {if(typeof args==="string"){args = ["-v",args,"c37f5e84f377fb892c851b364c55251132d57c66d2f3ea56d2af90bef14773f0"];}console.log(args);');
1920
await T.addJS(files['retroarch.js']);
2021
//await T.addJS('./gb.js?'+T.time);
2122
Module = {
2223
wasmBinary : files['retroarch.wasm'],
2324
canvas:T.$('canvas'),
2425
hash:'2b35cacf70aef5cbb3f38c0bb20e488cc8ad0c350400499a0',
2526
onRuntimeInitialized(){
26-
let args = ['-v','test.img',this.hash];
27-
this.writeFile(args[1],games);
27+
let args = 'test.img';
28+
this.writeFile(args,games);
2829
if(this.specialHTMLTargets){
2930
I[1].assign(this.specialHTMLTargets,{
3031
'#canvas':this.canvas,

0 commit comments

Comments
 (0)