Retroarch: (Docs) Add Emscripten Docs

Created on 1 Feb 2017  Â·  13Comments  Â·  Source: libretro/RetroArch

Description

We're missing some documentation on how to get up and running with Emscripten.

Expected behavior

Should have a clear method in which to load and run emscripten locally.

Actual behavior

[What is actually happening]

Steps to reproduce the bug

  1. [First step]
  2. [Second step]
  3. [and so on...]

Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

  • RetroArch: [version/commit]

Environment information

  • OS: [The operating system you're running]
  • Compiler: [In case you are running local builds]


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

documentation emscripten

Most helpful comment

  • You compile the cores normally except that you use emmake
    emmake make -f whatever -j8
  • Copy the resulting bc files to the dist-scripts folder under retroarch's source tree
  • Run emmake dist-cores.sh emscripten
  • Copy the pkg/emscripten cores (js) and memory initialization modules (js.mem) to a folder
  • Copy the rest of the stuff to the same folder
  • publish with nginx or whatever... even file:/// might work

References:
https://github.com/libretro/libretro-super/blob/master/libretro-buildbot-recipe.sh#L1838
https://github.com/libretro/libretro-buildbot/blob/master/buildbot-emscripten#L63

All 13 comments

  • You compile the cores normally except that you use emmake
    emmake make -f whatever -j8
  • Copy the resulting bc files to the dist-scripts folder under retroarch's source tree
  • Run emmake dist-cores.sh emscripten
  • Copy the pkg/emscripten cores (js) and memory initialization modules (js.mem) to a folder
  • Copy the rest of the stuff to the same folder
  • publish with nginx or whatever... even file:/// might work

References:
https://github.com/libretro/libretro-super/blob/master/libretro-buildbot-recipe.sh#L1838
https://github.com/libretro/libretro-buildbot/blob/master/buildbot-emscripten#L63

Hi,
Re the documenting of emscripten version,
I've read: https://github.com/libretro/RetroArch/blob/7d64fdabf959da91ec2574333cd7fd531f976959/pkg/emscripten/README.md

Just not sure how the configuration works? I have my ps1 project that I want to server on my site.
I've gotten the json file via XHRIndexer.coffee , just not sure what this means:
("--your-assets-index-file-name--", "--your-index-url--");

I'm also getting a error there:
Uncaught TypeError: Cannot read property 'FileSystem' of undefined
at idbfsInit (embed.js:117)
at Object.success (embed.js:389)
at i (jquery-3.1.0.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.1.0.min.js:2)
at A (jquery-3.1.0.min.js:4)
at XMLHttpRequest. (jquery-3.1.0.min.js:4)

Any help would be great :D

if you didn't make any changes it should just work, the embed template works for me

The XHR stuff is just so you can use html as a read only file system to source content, or assets or whatever you need

https://github.com/libretro/RetroArch/blob/7d64fdabf959da91ec2574333cd7fd531f976959/pkg/emscripten/libretro/libretro.js

You use that coffee script to generate directory indexes and upload such indexes
https://bot.libretro.com/assets/frontend/bundle/.index-xhr

For instance load our web player
https://bot.libretro.com/web/

Change the menu driver to XMB, save config and refresh the page, press F12 in firefox and you'll see it preloading all the assets required for the menu driver to work.

thanks for the reply, i'm piecing through this..
browserfs.js didn't work for me using the official RetroArch emscripten build using apache (LAMPP)
I found https://github.com/r-type/r-type.github.io using a local copy and it worked for me also.

I found your post https://forums.libretro.com/t/host-retroarch-web-player/5837/5
"reading cue+bins is currently failing, and dosbox is failing too, the cores need major work to work there"

So, there's no chance of getting my homebrew ps1 game (single exe file) working on retroarch emscripten ?

yes, single exe works

On Wed, Apr 19, 2017 at 6:06 PM, gwald notifications@github.com wrote:

thanks for the reply, i'm piecing through this..
browserfs.js didn't work for me using the official RetroArch emscripten
build using apache (LAMPP)
I found https://github.com/r-type/r-type.github.io using a local copy and
it worked for me also.

I found your post https://forums.libretro.com/t/host-retroarch-web-player/
5837/5
"reading cue+bins is currently failing, and dosbox is failing too, the
cores need major work to work there"

So, there's no chance of getting a ps1 game working on retroarch
emscripten (single exe file)?

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/libretro/RetroArch/issues/4539#issuecomment-295484795,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABpC0AdWeBN7PaLGiwZaaXh6oMhw5SU9ks5rxpOMgaJpZM4LzV7f
.

Cool :)
Any tips where I can look for info on configuring webplay to load it automatically?

webplay? netplay doesn't work on emscripten, there is no sockets support in the browser sandbox.
I guess you can tinker with the arguments in the js file to load automatically, I haven't done that but other people have.

Sorry for bugging you, I meant the web player (emscripten)
Any tips on configuring it to launch into ps1 and run a exe?

Hi @fr500 ,

what does it mean "whatever" in "emmake make -f whatever -j8"
Can you write me a full example of this command please?

Another question. It is possible to change .mem file directory or disable autoload this file after .js file loaded? I would like to load .mem file in my way with my custom url.

Where I can find some directory dependencies which I need to create with BrowserFS before emulator load (I would like to create my own loader)?

Thanks.

$ emmake make -f Makefile.emscripten -j8
make: *** No rule to make target 'libretro_emscripten.bc', needed by 'retroarch.js'.  Stop.

To build RetroArch is something else missing?

We still need this documentation on docs.libretro.com - I suggest we get this done sooner rather than later now.

@RobLoach could you take the initiative?

Would love to, if I manage to figure it out :wink:

The minimal documentation is here, this can be closed.

There are still some issues:
I haven't figured out why embed.html and index.html are the same in https://buildbot.libretro.com/stable/1.7.6/emscripten/RetroArch.7z
I've searched in the Makefiles and dist-cores.sh.
That's too bad because there are a lot or emulators missing in embed.html compared to index.html

I have also noticed that media/canvas.png and media/retroarch.ico don't exist, but canvas.png and retroarch.ico do.
Notes also analytics.js produces a 404, touch analytics.js solves the issue.

I can open a PR for this improvements, excluding the index.html/embed.hml issue.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

wrldwzrd89 picture wrldwzrd89  Â·  3Comments

orbea picture orbea  Â·  3Comments

parkerlreed picture parkerlreed  Â·  3Comments

ghost picture ghost  Â·  3Comments

alki-apps picture alki-apps  Â·  3Comments