Time |
Nickname |
Message |
00:20
🔗
|
|
DFJustin has joined #jsmess |
04:46
🔗
|
SketchCo2 |
I've got the Arcade Repair set down to 223 and dropping. |
10:10
🔗
|
|
Sgeo has quit IRC (Read error: Connection reset by peer) |
16:03
🔗
|
|
dboard420 has quit IRC (Read error: Operation timed out) |
16:03
🔗
|
|
dboard420 has joined #jsmess |
18:48
🔗
|
|
Sgeo has joined #jsmess |
20:01
🔗
|
SketchCo2 |
Sharing for DFJustin and others: |
20:01
🔗
|
SketchCo2 |
https://docs.google.com/spreadsheets/d/1v5PgyIEDkXbK8jtBNSKTW-nmPTwqdNUQ8_ElKWF1jsk/edit?usp=sharing |
20:07
🔗
|
SketchCo2 |
Uncaught in Promise are the straight-up blow-ups. |
20:07
🔗
|
SketchCo2 |
If I fix them, they leave this list. |
20:42
🔗
|
DFJustin |
so there is some discussion about enabling threading in the mame emscripten build, that would require some server side changes to send the correct cross origin headers as per https://emscripten.org/docs/porting/pthreads.html |
20:43
🔗
|
DFJustin |
could provide some speed benefits |
22:18
🔗
|
SketchCo2 |
We can always do 39in1 as a test, and then talk to the devs when it works out to see what's being blocked |
22:26
🔗
|
SketchCo2 |
I'm continuing to find working CHDs and the amount of brokes in that google docs continues. |
22:26
🔗
|
SketchCo2 |
Hopefully you will see trends in what's causing the promises |
22:26
🔗
|
SketchCo2 |
Happy to recompile via whatever tricks you want |
22:27
🔗
|
DFJustin |
I'd have to make some changes to the codebase first |
22:33
🔗
|
balrog |
DFJustin, SketchCo2: gtfore06 (or anything that uses the mips3 drc) will not work without -nodrc, and with -nodrc performance will be terrible |
22:33
🔗
|
balrog |
I've been trying to track down the bugs that cause the C DRC interpreter to fail, but it's ... difficult |
22:33
🔗
|
balrog |
even with the C DRC interpreter, performance will likely still be just as bad as with -nodrc, though |
22:38
🔗
|
SketchCo2 |
So, feel free to look over the list of what I've put up, and add a note in the D column |
22:39
🔗
|
SketchCo2 |
I mean, first, there are SLOW machines, which is one issue, and then there are CRASHING machines. |
22:39
🔗
|
SketchCo2 |
For the record, the most "important" to me are the blitz machines, as I'm close friends with the lead dev, and he would love to see this emulated. |
22:42
🔗
|
balrog |
yeah, and those use mips3. :( |
22:43
🔗
|
SketchCo2 |
so, you're saying they need the -nodrc line or they'll crash |
22:43
🔗
|
balrog |
almost certainly. I'm chasing this bug and am not getting very far (so far) |
22:43
🔗
|
balrog |
this CPU core relies on recompiling instructions to x86 for performance; I'll do a quick performance test on my M1 Mac (where there is no DRC) to see what speeds I get |
22:44
🔗
|
balrog |
CPU emulation core** |
22:44
🔗
|
SketchCo2 |
I mean, tha'ts fine |
22:44
🔗
|
balrog |
yeah, can't really do that in emscripten |
22:44
🔗
|
SketchCo2 |
I'm fine with all of it. I'm trying to just limit DFJustin chasing pain |
22:44
🔗
|
balrog |
(the DRC part) |
22:44
🔗
|
balrog |
I'll at least give y'all a performance baseline |
22:44
🔗
|
SketchCo2 |
If you could go on that list on the google doc and add to Column D "add -nodrc" |
22:45
🔗
|
balrog |
I just did |
22:45
🔗
|
balrog |
for the two that I know off the top of my head |
22:46
🔗
|
SketchCo2 |
Doing a blitz test |
22:56
🔗
|
balrog |
blitz, using an optimized release build: without -nodrc I get a hard lock, with it I get performance around 50-60% |
22:57
🔗
|
SketchCo2 |
So is there something in the code I can find that tells me which of these locks I have can use NODRC |
22:57
🔗
|
DFJustin |
you can probably just add -nodrc always, it has no effect if the CPU has no DRC like a Z80 |
22:58
🔗
|
balrog |
it depends — drc c interpreter may be faster than -nodrc for some systems |
22:58
🔗
|
balrog |
but ... it's completely broken for mips3 |
22:58
🔗
|
DFJustin |
it's been slower in my experience but I suppose there could be one out there |
22:58
🔗
|
SketchCo2 |
Well, again, I'm trying to reduce your time wasted |
22:58
🔗
|
balrog |
if the driver has a #include "cpu/mips/mips3.h" — yeah, you'll need -nodrc |
22:59
🔗
|
SketchCo2 |
So if after I'm done, I have a pile of nodrc to add, or even looking for mips in the driver, that works. |
22:59
🔗
|
balrog |
DFJustin: hmmmm, good to know |
23:00
🔗
|
SketchCo2 |
aleck64.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
atlantis.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
caprcyc.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
crimson.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
decstation.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
hng64.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
iteagle.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
kinst.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
kpython.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
magictg.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
n64.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
namcops2.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
namcos23.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
ncdmips.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
o2.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
octane.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
ps2sony.cpp:#include "cpu/mips/mips3.h" |
23:00
🔗
|
SketchCo2 |
seattle.cpp:#include "cpu/mips/mips3.h" |
23:01
🔗
|
SketchCo2 |
vegas.cpp:#include "cpu/mips/mips3.h" |
23:01
🔗
|
SketchCo2 |
vp101.cpp:#include "cpu/mips/mips3.h" |
23:01
🔗
|
SketchCo2 |
And from that |
23:01
🔗
|
SketchCo2 |
biofreak.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
blitz2k.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
blitz99.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
blitz.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
calspeed.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
carnevil.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
hyprdriv.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
mace.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
sfrush.json: "wasm_filename": "mameseattle.wasm.gz", |
23:01
🔗
|
SketchCo2 |
sfrushrk.json: "wasm_filename": "mameseattle.wasm.gz", |
23:02
🔗
|
SketchCo2 |
vaportrx.json: "wasm_filename": "mameseattle.wasm.gz", |
23:02
🔗
|
SketchCo2 |
wg3dh.json: "wasm_filename": "mameseattle.wasm.gz", |
23:02
🔗
|
SketchCo2 |
So we start to solve the mysteries. That's all I want to do. |
23:04
🔗
|
balrog |
chances are these machines work at a playable rate... on native x86_64. |
23:30
🔗
|
SketchCo2 |
Are you sure it's "-nodrc" |
23:32
🔗
|
SketchCo2 |
{ |
23:32
🔗
|
SketchCo2 |
"name": "wg3dh", |
23:32
🔗
|
SketchCo2 |
"arcade": "1", |
23:32
🔗
|
SketchCo2 |
"bios_filenames": [ |
23:32
🔗
|
SketchCo2 |
"" |
23:32
🔗
|
SketchCo2 |
], |
23:32
🔗
|
SketchCo2 |
"peripherals": [ |
23:32
🔗
|
SketchCo2 |
"" |
23:32
🔗
|
SketchCo2 |
], |
23:32
🔗
|
SketchCo2 |
"native_resolution": [ |
23:32
🔗
|
SketchCo2 |
640, |
23:32
🔗
|
SketchCo2 |
480 |
23:32
🔗
|
SketchCo2 |
], |
23:32
🔗
|
SketchCo2 |
"extra_args=": [ |
23:32
🔗
|
SketchCo2 |
"" |
23:32
🔗
|
SketchCo2 |
], |
23:32
🔗
|
SketchCo2 |
"driver": "wg3dh", |
23:32
🔗
|
SketchCo2 |
"wasmjs_filename": "mameseattle.js.gz", |
23:32
🔗
|
SketchCo2 |
"wasm_filename": "mameseattle.wasm.gz", |
23:33
🔗
|
SketchCo2 |
"file_locations": { |
23:33
🔗
|
SketchCo2 |
"mamesegag80r.wasm": "mameseattle.wasm.gz" |
23:33
🔗
|
SketchCo2 |
} |
23:33
🔗
|
SketchCo2 |
} |
23:33
🔗
|
SketchCo2 |
So, here, I was putting -nodrc in the extra_args |
23:33
🔗
|
SketchCo2 |
https://archive.org/details/arcade_wg3dh is clearly the best test, with a mere 87mb of CHD |
23:35
🔗
|
SketchCo2 |
"extra_args=": [ |
23:35
🔗
|
SketchCo2 |
"-nodrc" |
23:35
🔗
|
SketchCo2 |
], |
23:35
🔗
|
SketchCo2 |
I used this, and it is still blowing up |
23:35
🔗
|
SketchCo2 |
The new blowup is definitely different. |
23:36
🔗
|
DFJustin |
extra_args shouldn't have an = |
23:36
🔗
|
DFJustin |
I feel like we've been through this a few times |
23:36
🔗
|
SketchCo2 |
Well |
23:37
🔗
|
SketchCo2 |
The main reason here is that these are all the CHD-ified machines that I just literally dropped the tools and tooling on to walk over to where effort was really needed. |
23:37
🔗
|
SketchCo2 |
Like, some of these were just the CHD uploaded and then walked away when we couldn't get CHDs to load |
23:37
🔗
|
SketchCo2 |
So I'm already forwarding 10-20 steps before you see them |
23:37
🔗
|
SketchCo2 |
(adding ROMs, getting other configs right, etc.) |
23:37
🔗
|
SketchCo2 |
But when they hit the promise, I have to stop |
23:38
🔗
|
SketchCo2 |
That's mostly why. Luckily, we're down to, like, 200 items and even these are falling |
23:45
🔗
|
SketchCo2 |
emularity_engine_v1 is definitely in need of a cleanup. |