An Emscripten port of RetroArch has existed for years, but until recently, we never had a good opportunity to launch it in a state we felt comfortable with. Well, until now that is.
Web Player
So what is RetroArch Web Player? It’s a port of RetroArch that runs inside your web browser, powered by emscripten and asm.js. Most modern browsers available today should be compatible. That being said, we strongly recommend you use Google Chrome right now for smooth v-synced gameplay with no audio crackling.
You can check it out right here!
Your browser does not support iframes.
Dropbox support may not work in this embedded-player we added to this post, we haven’t enabled SSL on our main site and Dropbox doesn’t allow any sort of wildcard or regex on web apps.
You can also click on ‘Web Player’ in the top-right corner of the libretro.com website and in our itch.io page in order to use it.
Current state of the port
- Over 40+ libretro cores available
- Gamepad support via SDL2
- Hybrid filesystem including cloud syncing courtesy of BrowserFS. This filesystem stores userdata in one of two backends (browser application storage or Dropbox); assets are loaded synchronously from an online repository and cached by the browser for future usage
Known frontend issues
- Player 1 gamepads can sometimes control both player 1 and 2 at the same time in games that support 2 players.
- Guide button mapping is currently not available. We’re not sure if this is a limitation of the SDL2 input driver.
- Recent History doesn’t work yet.
- GLSL shaders don’t work (yet?).
Known core issues
- BlueMSX (MSX) currently doesn’t work.
- Craft core (Minecraft) currently hangs.
- Desmume core (Nintendo DS) currently doesn’t work.
- EasyRPG core (RPG Maker game engine) currently doesn’t work.
- FFmpeg core (Movie/music player) currently doesn’t work.
- Mupen64plus core (Nintendo 64) currently doesn’t work.
- PicoDrive core (Sega Genesis/32X) currently doesn’t work.
- QuickNES core (Nintendo NES) has slightly distorted graphics.
- Tyrquake core (Quake 1 engine) currently hangs at startup loading screen.
Special thanks
- Jvilk — for his excellent BrowserFS implementation and fixing a few bugs for us immediately when they were reported
- RobLoach — for his work on the template
- Twinaphex — for his tireless work on RetroArch and the cores
- ToadKing — for the initial emscripten port and some fixes he sent on our way recently
- Radius — for something? idk I did some work I think
2peteshakur
September 13, 2016 — 9:06 am
awesome, but i can’t seem to get it to work, i can use the arrow keys to navigate up/down but wen i press enter/return on things like load content, there is no response, thx.
Brandon Camilleri
September 13, 2016 — 4:12 pm
Try pressing the X key on your keyboard (and Z to go back).
FREECELL.EXE
September 13, 2016 — 12:26 pm
Pretty neat, but so far all the cores I tested only Genesis Plus GX worked
Squarepusher
September 13, 2016 — 1:14 pm
Which browser?
FREECELL.EXE
September 13, 2016 — 1:32 pm
Chrome Version 53.0.2785.101 m (64-bit)
Windows 10
Squarepusher
September 13, 2016 — 1:36 pm
Which cores didn’t work for you?
FREECELL.EXE
September 13, 2016 — 1:52 pm
Snes9X, 2048, Desmume (although now I’ve seen it currently doesn’t work) and BlueMSX were the ones I tested. I don’t know what EasyRPG is but I tried loading that as well and it just stayed loading forever.
And when I say it doesn’t work I mean I’m presented with a black screen upon loading the ROMs.
Now I tried testing Snes9X 2010 and it works, but Snes9X still does not.
I also disabled the uBlock and Tampermonkey Chrome Extensions just to make sure they weren’t interfering with anything and nothing changed.
Libretro RetroArch
September 13, 2016 — 2:39 pm
2048 – just select Start Core. Works fine.
Snes9x – just use snes9x 2010. I don’t know if mainline snes9x works yet, and even if it does, snes9x 2010 would just be faster anyway.
BlueMSX / Desmume – I think I discussed already in the blog post they don’t work yet. I guess I didn’t mention BlueMSX yet so I will add that.
EasyRPG – Yeah, not ready yet. Also discussed in the blog post.
Victor Berrones
September 13, 2016 — 3:01 pm
I wanted to know about the Dropbox sync do you need to make a rom path? Can you load roms from dropbox?
Radius4
September 13, 2016 — 3:02 pm
just click dropbox once and load retroarch.
Then it should create all the dirs, you can add roms directly from dosbox under RetroArch/content
Victor Berrones
September 13, 2016 — 4:04 pm
I thought I did something wrong because I was getting a error so I deleted access from the app in my settings and it deleted all files now I’m trying to get permission to allow dropox but I cant even get that screen anymore. that is strange.
Victor Berrones
September 14, 2016 — 12:57 pm
Here are my xbox findings so far:
Start and select binding are hard coded to the edge browser I manually had to change them to the Joystick click in buttons. Trying to accomplish this on xbox, it’s more time consuming, the retro menu is a little slower.
Accessing the emu menu when in game doesn’t always work.
Sync with dropbox takes up to 15 minutes before launching an emulator.
Full screen is a complicated task to engage. You need switch to browser mode, then click the icon and attempt to switch back.
The controller is set to have the B button to confirm and the A button to go back but when in browser mode those buttons are reversed. I found myself hitting the wrong button at the wrong time and I would end up having to reload the browser all over again.(15 min sync wait).
When switching to controller the emu frame-rate would drop and sound would Distort.
If you want to accomplish xbox compatibility, I think it would probably need its own version with standard setting altered a little. With that said, I know that xbox is probably not a priority.
As far as the Dropbox sync issue, I am not informed enough to know why it takes so much longer on xbox.
Sucks, cause its almost a win.
Radius4
September 15, 2016 — 5:02 am
Sucks, but it was worth a shot
Yes we want a real port, UWP but that takes time and a dedicated dev.
Victor Berrones
September 15, 2016 — 8:20 pm
You can count on my to test anyone is willing to throw together.
Victor Berrones
September 20, 2016 — 6:20 pm
My dropbox has allot of crap in it 12GIGs. I wonder if I use a fresh smaller account would it be a little faster on syncing.
Radius4
September 13, 2016 — 4:19 pm
hmmm works for me
FREECELL.EXE
September 13, 2016 — 4:35 pm
I actually retested Gambatte GBC on another machine and it’s working there for some ungodly reason. Also Windows 10 64-bit and the same Chrome version, can’t test the other ones since I don’t have the ROMS here. Good luck figuring that one out.
Radius4
September 13, 2016 — 4:22 pm
This too
Radius4
September 13, 2016 — 4:28 pm
and fba too
Anthony Ewers
September 14, 2016 — 9:51 am
The download for the windows retroarch won’t work because I don’t have have dx9 nor can I install it for win10. How do I get around this?
Radius4
September 15, 2016 — 5:04 am
I can install dx9 in win10 just fine.
Anthony Ewers
September 15, 2016 — 7:35 am
What link do you use to download it from? Because the one I get from windows says that I need xp or earlier.
metalex lex
September 15, 2016 — 12:53 am
hola oigan habra version para windows 10/xbox one? pueden utilizar la version de visual studio 2015 que tiene universal si quieren pudo ayudar?
metalex lex
September 15, 2016 — 12:55 am
tengo la version y los sdk para compilar solo faltaria el html o codigo fuente de la version de navegador
Radius4
September 15, 2016 — 5:04 am
no tiene sentido hacer una versión html de la versión web. La versión web ya funciona (aunque lento) en XBONE.
Si quieremos un port nativo UWP, cada usuario tendria que compilar pero no se ha hecho nada aún.
Victor Berrones
September 15, 2016 — 8:18 pm
if Nesbox got kicked back why do you think Retro would make it thru certification on xbox?
SlutMagnet
September 15, 2016 — 12:59 am
Nice. But looks like you’ve got competition: https://nesbox.itch.io/x1
Nicholas Perry
September 15, 2016 — 4:27 am
I wonder if this is part of the reason. I wonder if Nesbox is just another RA rip off.
SlutMagnet
September 16, 2016 — 9:17 am
Lol
Morku
September 26, 2016 — 3:51 pm
At least I can install Nesbox on Windows Phone. RA I can’t.
Radius4
September 26, 2016 — 3:56 pm
you don’t need to install anything…
Victor Berrones
September 15, 2016 — 8:17 pm
I don’t like to think of it as competition. Retro is so much more and I want it so badly to work on XBOX’s edge browser. I know it could emulate arcade games. That’s what i want Final Burn Alpha! and NeoGeo
Rummer
September 16, 2016 — 8:20 pm
i sink thet is works on XBOX one
http://game-gear.ru/onlajn-igry/arcade/teenage-mutant-ninja-turtles-turtles-in-time.html
Neo Geo
http://game-gear.ru/onlajn-igry/neo-geo/metal-slug-3.html
Radius4
September 20, 2016 — 4:46 am
can you try increasing audio latency to 256 and see if it’s any faster then?
Joe Yabuki Da
September 15, 2016 — 7:27 pm
Here it is on XboxOne’s Edge browser with dropbox support 🙂
(setup dropbox and filled the apps/retroarchsync/content with backups manually on pc as its faster )
average of 33.5 fps on genesis gx plus and snes9x 2010.
can’t take native screenshots or vids as cortana doesn’t recognise edge as a game :-/
PS: I hope that with the DesktopAppConverter released today by Microsoft we can have a native performance appx package to install in dev mode through the web remote page on XboxOne in case they refuse a Store release of RetroArch 🙂
Radius4
September 17, 2016 — 2:00 am
thanks for the feedback.
I wonder why is it faster when the page is out of focus…
Gonna add another URL for XBONE, I have an idea, hope you can test it later this weekend
Joe Yabuki Da
September 30, 2016 — 11:48 am
“Gonna add another URL for XBONE, I have an idea, hope you can test it later this weekend” Ready to test whenever needed 🙂
Cabal
September 16, 2016 — 10:34 am
Anyone managed to get MAME 2000 running on this yet?
Marty_SVK
September 17, 2016 — 12:52 pm
Hi,
did you try for example dosbox or PSX ? Because I still have a problem to get it working. Do they need some special settings ?
I tried for example Wolf3D, but after load EXE, I got error in console and black screen.
Thanks for help
Radius4
September 20, 2016 — 4:44 am
those are not working yet.
C-Fu
September 19, 2016 — 6:38 am
This is seriously awesome! Is there a way to host this on our own (local) webserver? How?
I’m imagining…. a DIY NAS that hosts a couple of Windows+Linux OS Virtual Machines, plus your local LAMP server, DLNA/Plex server, and now….. this. I could be going on a trip overseas, and whenever I’m bored I could just open up chrome on my phone and go to my NAS’ ddns url and play some Final Fantasy 6 and my wife could stream some videos at the same time!
Radius4
September 20, 2016 — 4:46 am
Hosting the base version is rather easy.
Everything you need is here: https://bot.libretro.com/web/embed/
Grab a recent one, unzip in the dir and that’s it.
If you want to host your own rawmz and add dropbox integration it’s a bit more involved but not really hard if you’re tech savy.
I added some documentation here: https://github.com/libretro/RetroArch/blob/master/pkg/emscripten/README.md
DaveVoyles
September 22, 2016 — 12:53 pm
Love this project. Also love what you guys are making use of Emscripten! I’ve been scouring the internet for other projects that take advantage of it as well. If you’re looking for an overview of what Emscripten is, I explain here:
https://www.davevoyles.com/2015/10/06/getting-started-with-emscripten/
IamCarbonMan
October 8, 2016 — 7:44 pm
Any plans to package this for web platforms? As a browser extension, Chrome App, or maybe even an NPM package?