[HN Gopher] webIacade - WASM based retro emulation on any device
___________________________________________________________________
webIacade - WASM based retro emulation on any device
Author : rcarmo
Score : 329 points
Date : 2022-09-24 21:55 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| netsharc wrote:
| Curious that the description seems to be laden with buzzword-
| bingo words.
|
| It could be made less Corporate-Powerpoint, for example:
|
| > WebIacade is a web-based front end for playing games within the
| browser on many platforms (Xbox Series X|S, iOS, Android,
| Windows, macOS), with gamepad (Bluetooth and USB) support.
| emptysea wrote:
| I dig the Netflix style navigation, I'm curious if there are
| plans to support arbitrary ROMs for classic games. Probably can't
| host them, but maybe an easy way to load one from local?
|
| edit: should have scrolled down in the readme more, they say in
| the non-goals section:
|
| Directly playing locally stored game content (ROMs, etc.)
| (Technically possible by using a local web server, but not a
| primary use case)
| kmlben65 wrote:
| if game controls feel odd to you compared the original console -
| enable vrr support in windows settings and in gpu driver for
| desktop programs.
|
| you can also use specialK injector independent flip against
| browser.
|
| this is as much as you can do to reduce browser output latency
| (it has 1-2 frames of internal latency compared to emulator).
| db48x wrote:
| Possibly they meant "emulation".
| rcarmo wrote:
| My bad, was trying to type it up on the crummy Android I was
| testing this in...
| db48x wrote:
| No need to apologize; tyops happen to us all.
| kebman wrote:
| I read webYacade...
| gadtfly wrote:
| Almost certainly a reference, take it up with Atari
| https://tetris.wiki/images/6/68/Tetris_%28Atari%29_flyer.jpg
| codetrotter wrote:
| From a cyrillic point of view that would be the right way to
| read it, and I did too.
|
| I suppose they have the "Toys R Us" kind of thing in mind with
| it.
| q-big wrote:
| > I suppose they have the "Toys R Us" kind of thing in mind
| with it.
|
| The German Wikipedia page explicitly mentions that the Ia in
| Toys R Us is _not_ supposed to be a cyrillic letter:
|
| > https://de.wikipedia.org/w/index.php?title=Toys_%E2%80%9CR%
| E...
|
| It is highly likely that quite some people in particular in
| East Germany considered the Ia to be the Ya letter since they
| learned Russian in school.
|
| But this is not the only confusion: As a child when I was
| learning English in school, the first association that the
| "Toys [a]R[e] Us" brand awaked was "wrong grammar". Don't the
| _native_ speakers of English who came up with this brand name
| know the grammar of their mother tongue?! No wonder that the
| German Wikipedia article about Toys R Us also explains this
| point.
| kebman wrote:
| I'm not Russian or Slavic. But I'm interested in typography
| and hence learned the Cyrillic alphabet. Helped me loads
| when I travelled through Slavic countries! But ever since,
| posters with "Russian" word plays have been ruined for me
| lol.
| grishka wrote:
| And this one I also always read as "Toys Ya Us". Just native
| language things -\\_(tsu)_/-
| [deleted]
| nfriedly wrote:
| Retro Game Corps has a couple of good videos on how to set up and
| use webRcade
|
| Original setup guide: https://youtu.be/ROlxLLtR3nE
|
| More recent update: https://youtu.be/CtPtDszpq-0
| londons_explore wrote:
| This urgently needs shareable URL's for each game...
|
| Otherwise when someone finds a cool game, they can't tell friends
| about it without that friend having to hunt through menus.
|
| Also, search engine indexing ought to be possible so that you can
| search a game name on Google/DDG and go direct to it.
| oblak wrote:
| Sounds great. It really does. Question is who would be brave
| enough to provide such a cool thing. I don't think even 30+
| year old MAME roms are not considered abandonware, as
| obtainable as they've been for the last 20+ years.
| kyriakos wrote:
| You can host your "own" roms on a Web server and feed them to
| it. I don't think that an emulator should provide the
| content.
| imtringued wrote:
| Put the ROMs on IPFS.
| jonny_eh wrote:
| The site is mainly freeware games.
| system2 wrote:
| ROM gaming is very similar to HAM radio. It is difficult to
| understand, share, and use.
| anthk wrote:
| Eh, maybe for Gen-Z ers not used to thinker. My non-geek GF
| was playing with MAME32 in mid 2000's.
| system2 wrote:
| Your GF was doing that really doesn't change what's going
| on today. Back in 90's I was able to download FULL mame
| without writing and begging on strange forums to find out
| what's needed for the particular game. It is a gatekeeping
| community and hard to play mame games today. I bet your GF
| cannot download a single game by googling today and can
| start to play from scratch within 1 hour after downloading
| mame. Or not even the same day. It takes time to find these
| things today.
| nfriedly wrote:
| They recently added shareable links:
|
| > Stand-alone links (shareable direct links to games)
|
| https://github.com/webrcade/webrcade/releases/tag/0.0.5
|
| However, with the exception of a few indie games, you have to
| provide them yourself. So the search engine idea probably won't
| work.
| gatane wrote:
| This is a bit tangential, but remember that some old (and not so
| old) games have new web interfaces.
|
| Think about Lode Runner,or THAT (looked like Atari) flying bird
| game. Also the infamous Nethack, you can even telnet to the
| server:
|
| https://alt.org/nethack/
|
| telnet alt.org
|
| ssh nethack@alt.org
| nynx wrote:
| This looks sick. Would love to have a version that uses ROMs on
| the local file system
| hauxir wrote:
| you can try https://nes.party or https://snes.party offers
| online multiplayer as well :)
| NortySpock wrote:
| EmulatorJS seems nearly identical, though it requires a bit of
| initial care and feeding via the backend admin page to find all
| the menu art.
|
| an example docker compose file: version: "2.4"
| services: emulatorjs: #from the
| linuxserver.io fleet image:
| lscr.io/linuxserver/emulatorjs:latest container_name:
| emulatorjs mem_limit: 1g cpus: 3
| environment: - PUID=1000 - PGID=1000
| - TZ=America/Chicago volumes: # must
| declare inner folders before the global data folder
| - "/path/to/folder/NES:/data/nes/roms:ro" -
| "/path/to/folder/SNES:/data/snes/roms:ro" -
| "/path/to/folder/Atari_2600:/data/atari2600/roms:ro"
| - ./data:/data - ./config:/config
| ports: #admin and config page -
| 3000:3000 #frontend - 80:80
| jonny_eh wrote:
| Is there a browser API that can list files in a directory?
| TedDoesntTalk wrote:
| No
| londons_explore wrote:
| When navigating the menus, the browser back button doesn't seem
| to work, and nor is the way to go out of a particular menu
| obvious. I ended up just refreshing the page to get out of stuff.
| b0ner_t0ner wrote:
| Remember back in the 90s with full Macromedia Flash websites
| and trying to link to specific sections of a site?
| p1necone wrote:
| Same here - feels very unintuitive to have to click the name of
| the page you're _currently_ on to go back to the parent - feels
| like it should display 'Parent > Current' rather than just
| 'Current'. And probably respect browser back behaviour if
| possible.
| keyle wrote:
| Thanks! Bruce Lee on the master systems brought me back to my
| youth. Clearly a remake from the Spectrum version :)
|
| I forgot how brutally hard that game was.
| anikom15 wrote:
| Not a comment on the quality of this application, but rather a
| tangential topic: there should be some way of auditing the
| accuracy of emulators in general. If a genuine homebrew scene
| wants to exist (not just getting old games to work), new
| programmers who have little-to-no access to the original hardware
| need some practical way of knowing their software will work
| properly across different emulators. In the old days, most
| platforms had one good emulator that everyone used, and these
| emulators were supported by communities like AtariAge. In the Web
| 2.0 world, those communities are fractured or even gone
| completely, and often not easy to find in search engines. There
| are now much more platforms that emulators can be run on.
|
| Hardware emulation isn't a solution. An FPGA emulator isn't
| intrinsically more accurate than a software one, and
| documentation and schematics that are used to implement emulators
| can be incorrect and don't specify 'undefined behavior' which was
| very much used reliably by software developers.
|
| The approach adopted by MAME has proven to be the only reliable:
| you have to _measure_ some output on a real working system and
| compare it to the emulator behavior, but this can be impractical
| and becomes moreso over time as systems become more difficult to
| operate. (E.g. I can't even operate most 8-bit computers without
| some kind of mod because I don't have a CRT television anymore).
| yarg wrote:
| > there should be some way of auditing the accuracy of
| emulators in general.
|
| Not really (and you don't always want perfect accuracy anyway).
|
| You don't only need to validate the operations of the machine,
| but also the timing with which it operates.
|
| And I don't mean just the clock/frequency/operations-per-second
| - it's everything.
|
| Every little chip that performs a calculation, every little
| wire that sends a message.
| anikom15 wrote:
| Timing can only be as accurate and precise as the system that
| is running the emulation. Accuracy can be expressed in
| relation to limited bounds. For example, loading software
| through a filesystem instead of a physical cartridge slot is
| inaccurate, but practically meaningless, so we don't take
| that account in a metric for accuracy.
| squeaky-clean wrote:
| Until you find that one weird game that relied on some
| obscure or undefined behavior that only exists with the
| cartridge ;p
|
| Not a popular game, but the cartridge for Morita Shogi 64
| had a built in RJ-11 jack and allowed online multiplayer.
|
| Plenty of SNES games included a SuperFX graphics
| coprocessor in the cartridge. Star Fox is probably the most
| popular example. SuperFX games were popular enough that it
| was quickly emulated successfully. But you can't treat the
| cartridge as just a file system abstraction on SNES.
| anikom15 wrote:
| Whether the cartridge contains ROM, a processor, or a
| connector, we can't emulate the physical aspects of it
| (unless we use some kind of VR). Loading a file is a
| simulation of inserting a cartridge. There _is_
| fundamentally a difference. That's what I was trying to
| get at. The question is if the difference matters. We
| usually can't answer that. For example, we are finding
| that many video systems have to be displayed on the
| scanline level, rather than as a framebuffer, to be
| correct. Something like the Apple II will probably have
| to be done on the pixel clock level (at least). There
| always seem to be corner cases that require you to go
| 'lower level'.
| alrlroipsp wrote:
| Your observations is correct, but it also depends on
| other factors.
|
| The instruction timing and such fiddly low-level details
| is most visible in systems programmed in low level, such
| as older consoles.
|
| Modern systems tend to be programmed in higher level
| languages, which works much better to HLE (high-level
| emulate), since they tend to be programmed in a way that
| cares less/not at all about underlying hardware fiddly
| details.
|
| So when you are emulating the NES, these details matter
| way more than when you are emulating the Switch for
| example.
| [deleted]
| ohgodplsno wrote:
| Web 2.0 has made it so fractured that massive communities exist
| on /r/EmuDev, Emulator 101 is a well known source for new
| learners, nesdev.org is the reference for NES stuff, a shitton
| of the data we have is from the Web 1.0 days and is just as
| fractured, and we even have repos like
| https://github.com/marethyu/awesome-emu-resources that collect
| a shitload of useful stuff (including the test ROMs that other
| commenters have mentioned, that will only work if you perfectly
| emulate the target system).
|
| As well as that, many people are decapping entire chips and
| games, just for exact emulation. So, no, you're talking out
| your ass, sorry.
| distantsounds wrote:
| there are emulation test suites. the fact you throw out 'there
| should be auditing' without acknowledging the literal _years_
| of documentation and research leads me to believe you know
| nothing on the topic, rather just want complain on hacker news
| about something you have no involvement in.
|
| MAME literally scans the dies to read the chips and understand
| their logic. FPGAs faithfully recreate this as well. and no,
| you can still run a 8bit micro on whatever display you want.
| Projects like dolphin and BSNES documented the hell out of
| everything they do with a goal of accuracy in mind.
| soulofmischief wrote:
| Rest in peace, Near
| flatiron wrote:
| There are roms that test accuracy. Hardware will return 100%
| and emulators will receive less.
|
| I believe there are some psx test Roms that no emulator gets
| 100%. I know for a fact there are n64 test Roms that don't get
| close on an emulator.
|
| You point on hardware emulation stands regarding it doesn't
| automatically mean more accurate emulation. Although it lends
| itself to be more accurate due to you "can't make a software
| thread for each discrete component" software problem as well as
| "how do I take controller input and when" as well which are
| wayyyy easier on fpga than software.
| JFKKFJ wrote:
| setij wrote:
| utopcell wrote:
| That's a refreshingly modern ui, especially compared to
| retrogames.cc.
| normaler wrote:
| This doesn't seem to work in graphenos. Gonna try it again with
| Firefox at home.
| easrng wrote:
| Try enabling JIT, AFAIK on Chromium you need JIT on to run
| WASM. Not sure if the grapheneos browser has it off, but it
| seems like the kind of thing they'd do.
| normaler wrote:
| Thanks this fixxed it. Somehow I interpretet the default as
| in.
| tomcam wrote:
| Sick af. I'm hoping this leads to a Cambrian explosion of new
| games based on the retro devices.
| rcarmo wrote:
| There are open tickets for a self-hosted option (there's
| already a Dockerfile, etc.), and requests for multiple
| platforms. And yes, the demos on the public site
| (https://play.webrcade.com) seem to be ports and indie games.
| Pretty amazing altogether.
| Linda703 wrote:
| DustinBrett wrote:
| I recently integrated the self-hosted EmulatorJS
| (https://github.com/EmulatorJS/EmulatorJS) into my Web Desktop
| daedalOS (https://github.com/DustinBrett/daedalOS). Has worked
| really well with controls on mobile and added a ton of emulator
| support to my "OS". All the emulators are wasm/asmjs ports from
| Libretro, I believe.
___________________________________________________________________
(page generated 2022-09-25 23:02 UTC)