#jsmess 2018-01-11,Thu

↑back Search ←Prev date Next date→ Show only urls(Click on time to select a line by its url)

WhoWhatWhen
SketchCowI don't have the link to the google doc offhand [00:00]
fzzzyok no problem [00:00]
baifzzzy: https://docs.google.com/document/d/1FHmn1kO3PGYYCRJejZsZMFk_BxWer_pOaTUANRFroM8/edit
basically it's a difference between how many native apps are structured and how webapps generally work - ative apps tend to have a main loop which runs in a blocking fashion, while webapps want everything to be asynchronous and take as little time as possible
and then, emulators and games fundamentally rely on tings like usleep() to guarantee frame-perfect timing, but in JS there's no equivalent, apart from a blocking loop saying, while (Date.now() < sleeptime) { /* do nothing */ }
which is a horrible unnecessary waste of cpu :D
[00:02]
fzzzyah, yeah, js can't block. that's definitely An Issue [00:11]
am i understanding correctly from this doc that mame's main loop has already been converted into continuation passing style?
and just the sleep issue needs tackling?
emterpreter's gotta be way too slow
hooking a v8 to a blender, haha
hmm, using a webworker with sharedarraybuffer for output seems like a good option. but i think that just got turned off temporarily because of spectre
[00:19]
baiyeah, that was frustrating but at least we hadn't already bet the farm on that solution :D
yeah the work's already been done to make it run in asynchronous blocks, so in theory yeah, it's just a matter of getting mame to not call sleep() and instead rely on the browser's requestAnimationFrame to keep 60fps timing
[00:26]
fzzzyhmm, sharedarraybuffer would be perfect, because high-resolution timers is why they turned it off :) [00:28]
***godane has quit IRC (Quit: Leaving.) [00:28]
baianyway, we've ot one of the main MAME devs on that issue now, so hopefully he should make short work of it
got*
[00:29]
fzzzythat'll be amazing. [00:30]
baiyeah, that's been a blocker for lots of different stuff [00:31]
fzzzyit is a very hard problem. [00:32]
baiindeed. we're trying to make two very different worlds play together [00:37]
............. (idle for 1h3mn)
fzzzywow, i got a normal build of mame compiled no problem :) now to install emscripten [01:40]
.......... (idle for 45mn)
***godane has joined #jsmess [02:25]
DFJustin<bai> you'll need a full native build anyway in order to determine which drivers to compile when doing per-system asmjs builds
this isn't true anymore
[02:30]
SketchCowHooray
Also, db48x is back from vacation, he said hi to me
Hopefully, he'll be in here WASMing it up and so on
[02:31]
baiDFJustin: oh yeah? that's good news, how is it done now? [02:31]
DFJustinmame now uses a build system called genie which generates the actual makefiles and is smart enough / has enough information in the build files to work out the dependencies for a single driver build
re: <fzzzy> am i understanding correctly from this doc that mame's main loop has already been converted into continuation passing style?
"converted" is a strong word
it's been monkey-patched to sort of work but not properly rearchitected
[02:32]
fzzzyheh fair enough :)
that doc doesn't mention how to build mame with emscripten -- i guessed that it was `emmake make` and it seems to be working
i found the docs on the main mame site now
[02:34]
DFJustin`emmake make` with no SOURCES parameter will probably blow up because the object file is too gigantic [02:40]
baioh ok, didn't know genie could do this directly now. so what's the command to build, say, pacman now? [02:47]
DFJustinemmake make SUBTARGET=pacman SOURCES=src/mame/drivers/pacman.cpp [02:54]
baiso that hasn't changed, but then how do you use genie to get the proper source file? [02:55]
DFJustinoh that's what you meant
genie doesn't do that no
[03:00]
you can pull it from the xml download at http://mamedev.org/release.html though [03:08]
baiah ok [03:15]
........ (idle for 39mn)
fzzzywow, I was able to get the exidy driver compiled with emscripten and run targ with emularity. I thought it would be a lot harder! [03:54]
baithis is always great to hear :D
the process has streamlined so much since we startd
emscripten is way more mature and stable now, and mame has fully incorporated all our work and cleaned it up even further
[03:54]
fzzzywhat are the keybindings though hehe [03:56]
baidepends on the system....for arcade stuff, the important ones are usually 5/6 to insert coin 1/2, and 1/2 for player 1/2 start...f3 to restart system...
if you hit tab there's a menu and you can view most of the keybindings there
as well as explore all the system internals
[03:57]
fzzzyoh ok i thought 1/2 were insert coin [03:58]
i suck at targ [04:05]
......... (idle for 44mn)
well i got the mac driver compiling, added macplus.zip and MSBASIC3.image to the emularity example, but I just get exception thrown: 12105992
still, satisfied with the progress i made.
[04:49]
.... (idle for 19mn)
hehe thank you
whoops
[05:08]
...... (idle for 26mn)
***db48x has joined #jsmess [05:35]
DFJustinyeah that's one of the reasons why the archive.org mac isn't mame [05:37]
...... (idle for 27mn)
SketchCowHey hey db48x has added some new drivers.
DFJustin: Would like your opinion on their shape
aa4101 c64 hbf700f ibmpcjr pc8801 snes svi738 tg16 trs80l2 vic20
I recall us thinking c64 was too slow, right
[06:04]
..... (idle for 23mn)
Princess Maker 2 it is.
I already have to make a second json item to make it a CD
[06:27]
https://archive.org/details/Nine-princes-in-amber-game [06:41]
db48xFirefox froze slightly, but other than that it seems to be working
22:52:06.251 325302-01.uab4 NOT FOUND (tried in c64 c1541)
mamec64.js.gz:1:3016191
22:52:06.251 901229-06 aa.uab5 NOT FOUND (tried in c64 c1541)
mamec64.js.gz:1:3016191
22:52:06.252 exception thrown: 11475168
[06:52]
SketchCowYep
Needed for the disk drive
Adding
https://archive.org/details/Nine-princes-in-amber-game works
Well "works
[06:58]
I mean, it boots!
That's something
[07:04]
..... (idle for 21mn)
db48x:) [07:25]
.... (idle for 18mn)
***godane has quit IRC (Read error: Operation timed out) [07:43]
DFJustinthose should be fine except snes and c64 are on the slow side
I don't think the aa4101 is fully working and it's probably also slow but worth a try I guess
pc8801 is a big one as far as major platforms missing currently, a lot of the library is x-rated though
mame's c64 sid emulation is still pretty dire so the enthusiasts would probably be disappointed
[07:55]
Vito`we should try porting vice, that would help [08:04]
.......................................................................... (idle for 6h7mn)
***bwn has quit IRC (Read error: Operation timed out) [14:11]
..... (idle for 20mn)
fzzzythe mame codebase is the cleanest code i have ever seen. mad props. also very stable, which is really refreshing after working on js frontends for the last few years where there are breaking library changes every few weeks [14:31]
***bwn has joined #jsmess [14:39]
................................................................... (idle for 5h32mn)
godane has joined #jsmess [20:11]
...... (idle for 29mn)
SketchCowI heard when you port vice, your programmer goes fucking insane [20:40]
DFJustinporting whatever the good sid engine is these days to mame would be better
that used to not be possible because license issues but now it's just nobody has bothered
[20:42]

↑back Search ←Prev date Next date→ Show only urls(Click on time to select a line by its url)