Giter Site home page Giter Site logo

webrcade's Introduction

webЯcade: Feed-driven gaming

Actions Status License Docker Build Status

WebЯcade consists of an intuitive web-based front end that enables playing popular gaming content entirely within the context of the browser across a wide variety of platforms (Xbox Series X|S, iOS, Android, Windows, macOS). Gamepads are supported (Bluetooth and USB) for both front-end navigation and while playing games.

The content for playing games (binaries, etc.) and populating the front-end (images, etc.) is collected from cloud-based resources based on user-defined feeds. Each feed item (game, etc.) has an associated application type. Application types include emulators (Atari, Sega, Nintendo) and game engines (Classic Doom).


webЯcade on Safari for iOS (iPhone)

Play Now.

Play webЯcade now at play.webrcade.com.

Documentation

The webЯcade Documentation consists of a User Guide, instructions specific to each Platform (OS, devices) supported by webЯcade, detailed information (button mappings, etc.) for the various Application Types (emulators, etc.), and guidance for developing your own Feeds.

The following steps are recommended for getting started with webЯcade:

  • Review the User Guide in order to familiarize yourself with the webЯcade front-end.
  • Read the documentation for the Platform (OS, device) you will be using with webЯcade to learn platform-specific details such as how to optimize the experience and how to connect gamepads.
  • Review the documentation for each Application that is launched to determine its keyboard and gamepad mappings as well as any other application-specific notes (an application is the emulator or engine being used to play a particular game, etc.).

Default Feed

The default feed consists of high-quality publicly available games and demos across the various application types (emulators, engines, etc.) that are supported by webЯcade.

The default feed AUTHORS page includes the list of titles that are included in the default feed, their respective authors, and related links.

What is (and is not) webЯcade?

The following lists further describe webЯcade in terms of its focus.

Primary focus:

  • Runs entirely within the web browser leveraging JavaScript, WebAssembly, and the HTML5 gamepad and audio interfaces
  • Adaptive user interface that supports a wide variety of platforms (Xbox Series X|S, iOS, Android, Windows, macOS)
  • Native gamepad support (Bluetooth and USB) for both front-end navigation and while playing games
  • User-defined cloud-based feeds identify the resources (images, etc.) required to populate the front-end as well as the content (binaries, etc.) required to play games
  • Each feed item (game, etc.) has an associated application type. Application types include emulators (Atari, Sega, Nintendo) and game engines (Classic Doom). The quantity and types of applications will continue to expand over time.

Not focused on:

  • Directly playing locally stored game content (ROMs, etc.)
    (Technically possible by using a local web server, but not a primary use case)
  • The "latest and greatest" emulator features and compatibility
    (Primary emphasis is on compatibility with popular game content across a variety of platforms while minimizing resource requirements)
  • Touch-based (virtual) gamepad controls
    (The focus is on native gamepad support via Bluetooth and USB)

LICENSE

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

webrcade's People

Contributors

raz0red avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webrcade's Issues

Add own WADS, IWADs to prBoom

Hi!

Will it be possible to load other games/mods into prboom using a weblink like with the other applications within webrcade?

Favorites, last played, multi users

Make the application able to write in a different "data.json" in the same network locations as the future save files that should be per-user as well.

  • last played time
  • play counts
  • favorited
  • game-specific settings/overrides if needed in the future

So we can have the user selection, recents and favorites section.
Moreover a button to remove the user without deleting its data from the cloud.

Request: Build instructions

It would be great to have build instructions for building locally! Or potentially a docker container would be great as well!

EasyRPG Support

EasyRPG is an open Source engine that runs RPG Maker 2000/2003 games.
Page: https://easyrpg.org/
Source Code: https://github.com/EasyRPG/
Retroarch Lib: https://store.steampowered.com/app/1222638/RetroArch__EasyRPG/

It has an web player:

image
https://easyrpg.org/play/


The Player is also used on Niconico gaming, the japanese youtube-equivalent page:

image
https://game.nicovideo.jp/atsumaru/search/tag/RPG%E3%83%84%E3%82%AF%E3%83%BC%E3%83%AB2003?link_in=gamepage_tag


People can find scrape details and even direct links on the RMarchiv page:

image
https://rmarchiv.de/games/1860


There is even a project that transforms the Single Player webengine into a MMO engine:

image

https://gaming.yumeboo.ru/2kki/ or https://ynoproject.net/2kki/

PlayStation Emulation

Several browser-based PlayStation emulators already exist online. Making this system available on webЯcade would help bring 3D games to the platform.

Alleyway Gameboy

I have tried this game on several different computers/browsers and when ever it starts it acts like the start button is being pressed goes right through the start screen launches the first ball and then the paddle pushes all the way left and pauses the game you can press start to unpause but the game is unresponsive at that point. I have tried all the settings GB/GBC/GBA/SGB/SGB2 and all have the same effect. I have also tried different copies of the Rom and have the same effect
Alleyway_stuck
.

Feature Request: grouping duplicate games with different versions

Currently if a feed contains multiple versions of a game (regional variations or cartridge revisions) the slider becomes cluttered.

I'd suggest that all games in a feed with the same title could be grouped into one item on the slider, and then a dropdown menu could be added somewhere in the app-details-content section that allows selection of a version by longTitle.

Global settings for categories...

For example... I have separate categories for Game Boy, Game Boy Color, etc. It would be nice to set all my Game Boy games (which are all in the same category) to use the same color palette, without having to go into the properties of each game. Is there a way to do that already? Cuz I haven't found it. Maybe a section for settings on a per-hardware basis would be nice. Thanks!

Theming & Customisation

While the current look of the front-end is nice, it would be good to give the user as much control over its design as possible.
Implementing colour customisation would be great.

A user could be given the option to set colours for a feed in the "Edit Feed" options of the editor.
Alternatively. a user could define a custom CSS file URL which would automatically change colours as the feed is loaded. A CSS template could be provided which the user can edit to their content.

Nintendo Switch browser Support

NSW is one of the best retro handheld out there and it does have a hidden browser that can be used.

From what I saw the switch browser works in a perma-incognito mode, so I suppose that the saves will be clean after the browser as I had to re-add the feed every time.
So maybe it will not be really enjoyable until the cloud saves will be introduced.

However I couldn't fully test any game as the browser is closing during the loading, I think because it "thinks" that the page is stucked and the switch browser is there only to show the login pages for the wifi access point acutally.

Quoting GlitchyGeoff on Discord: "According to a press release, the Switch uses the NetFront Browser NX made by Access, which also made browsers for 3DS and Wii U. Which is based on something called WebKit browser."

How to load roms from local directory hosted on the webrcade server

I have hosted webrcade on my local server at home. I want to point to a directory on the host machine to the roms location. (Instead of using Dropbox folder). How to achieve this? Adding one rom at a time is pain. I want to simply point to local directory and webrcade should process the metadata and add all the roms to json.

My roms collection is located on the same machine as the webrcade web server Linux.

Sound delay on all platforms

I’m experiencing a very noticeable lag for sound with all emulators. I’m using the site via iOS on an iPhone 13 pro max. Controls are spot on with my mfi controller, but sounds emit almost a half second after they should.

I’ve played with other emulators in the browser before and don’t see this issue.

Adding NEO•GEO roms / Only identifies 3 games...

So NEO•GEO rom files look like most MAME rom files, with extremely abbreviated file names. I don't think I have ever come across a NEO•GEO rom set with "correct" file names. This has never been an issue for me; Not with my retro handhelds or RetroArch or LaunchBox, etc. WebRcade seems to have a problem matching those rom file names to the corresponding games. Am I gonna have to rename over a hundred files to make this work??

Crackling/choppy sound on Xbox Series X

Hi,

Followed the user guide on setting everything up on the Xbox Series X and most seem to be working fine. However, for some reason the sound is crackling/choppy for all the games I've tested so far for NES, SNES and SEGA.

Have tried changing the sound output settings on Xbox Series X, but nothing seems to fix the issue.

Is this a known issue with a fix perhaps?

Create direct link in editor

Provide ability to create a shareable
link directly to a game within the editor.

The link will go directly to the game, avoiding the player and editor.

SNES Super Multitap

Is there a way to build the SNES application backend with support for the Super Multitap? There may only be a handful of games that support it but they are awesome.

Unmute screen shows multiple times for N64

If you click the unmute screen on iOS immediately on N64, it will show again once the game is fully loaded.

The unmute screen should not be displayed until the game is fully loaded.

Idea - feed in the frontend link

I think it would be nice to be able to optionally upload your own feeds by placing a link directly on the front end link

example: localhost:8080/feed=https://pastebin.com/2yfYHZKi

I don't know if this is possible, it's just an idea
In any case, I really appreciate your project!

Docker - Add ARM Support

Would be great so I could run it on my m1 mac. And my other m1 mac running Linux. And my Raspberry Pi running ARM

7z Format Support

Currently, the only supported compressed file format is zip.
7z can offer much higher compression ratios than zip, for example, with the Hyper Street Fighter II - The Anniversary Edition ROM:

Compression Type File Size
None 44.2 MB
zip 20.0 MB
7z 10.3 MB

7z is able to reduce the file size to less than 25% of its uncompressed size.
Native 7z support will help minimise data transfer and therefore reduce loading times.
This is important for ROMs with larger file sizes (Arcade, Nintendo 64, etc), where wait times can be 20s+ depending on the file host and internet speed.

Where cloud storage options may be limited by capacity (e.g. the 2GB free-tier Dropbox limit), smaller file sizes will also allow users to store a greater number of ROMs before reaching hard limits.

RetroAchievement support?

Hi,

Great idea and thanks for this! Is there a roadmap for this project? Are features like RetroAchievements planned in the future?

Higher Resolution Support

When opening the webЯcade UI on a device with a resolution higher than 1920 x 1080, a black border appears.
image
Automatic scaling with higher resolutions would help to overcome this.

Feature Request: Volume control, latest played category

I would love if there was a way to be able to change the volume of the game. Would make it so I don't have to lower the volume for the entire browser/computer.
Also, would be cool if we could add an automatic category that would keep the latest x amount of games that was played for that browser. That way for larger collections it would be easy to hop into a game you have been playing

Search function & CRT shaders

Hi,

First of all, big props to the team for creating this marvellous project.
I'm extremely excited to see what the future holds and look forward to experience the progress.

The two functions I'd really love to see implemented are the following:

  1. Search Function. A simple game search function so you don't have to scroll through the whole game library each time you want to play a specific game.

  2. CRT shaders. Would love to see an option to apply a simple CRT shader or scanlines so the games will look better when playing them on bigger screens or on TVs. A lightweight shader would be ideal so it's not so taxing on the performance on lower end devices.

Keep up the awesome work everyone, cheers!

Feature Request: Cloud-based save storage

I'd love to see cloud-based saves so I can play a game on one browser, save that save state to Dropbox or my NAS, then go to another device and continue playing that same save state.

To me, this is my must-have feature that's missing right now, besides support for N64 and Gamecube.

Additionally, thanks for making this work well with Dropbox! I do work at Dropbox, and if you run into issues with Dropbox integrations, I may be able to find someone who could help (though, not me, I work on the iOS app :P), so feel free to reach out.

Create Items From URLs doesn't accept new lines as stated

Description
The Create Items from URLs wizard states that you should provide URLs, 1 on each line, but it doesn't actually accept new lines. I've attempted to both copy in URLs that are already new line separated, as well as manually insert them in the modal. Instead, it appears to accept / require space separated URLs.

This screenshot shows it properly parsing space separated URLs (I used garbage text here, but the same behavior occurred with real URLs), but I wasn't able to add in new lines.

image

[Feature Request] Choosing Roms by Letter

This is a fantastic app/site! thank you... :-)
Some systems have more than a few hundred titles and having only 10 or so titles visible is a bit cumbersome when trying to locate a particular game. A simple A,B,C,D, etc... Z. below the visible titles (at the bottom of the screen) would allow quick navigation.

local links

This looks good. Can you make the links relative. I am trying to run via a proxy, and not having all links relative is messing thigs up. Seems much faster than emulatorjs

Unable to connect to docker build

Hey there,

So just tried to run the docker build, and it seems to have built successfully, but I can't access the service.
I composed it with port 87 exposed, but when I navigate to server.ip:87 it just throws back site cannot be reached.

I have several other apps running from this server no worries and can all be accessed this way, so hoping for a little help to get this up and running :)

Home Computer Emulation

There are several home computers that would be great to have available on the webЯcade platform. Here's a few that I'd love to see.

Western

  • Commodore 64
  • Commodore Amiga
  • Amstrad CPC
  • ZX Spectrum

Japanese

  • NEC PC-88
  • NEC PC-98
  • Fujitsu FM-Towns
  • Sharp X68000

Feature Request: Better navigation in items view

Current, trying to find a game in a category with a large amount of items can take a bit of time. A few things could possibly be added to mitigate this. One that is fairly common to find is a button that lets you skip to the first game starting with the next letter of the alphabet. For example, if you are currently hovering over a game that starts with A, pressing a button would bring you to the first game that starts with B. Also, if possible, would love to see the addition of a search bar in items view to be able to quickly find a specific game or series of games.

Will Samba shares be supported?

I tried to make webrcade work with smb shares on a local NAS but it didn't work.
Error message : A failure occurred attempting to add 1 item.

Famicom Disk System & Satellaview

As the option to play NES & cartridge-based Famicom games is already available, opening access to FDS exclusives and revisions (e.g. Super Mario Bros. 2 and Metroid/The Legend of Zelda with FM sound) would be fantastic.

In addition, the majority of the Satellaview catalogue does not work despite snes9x support for the add-on.
All games either stutter, hang or display garbled graphics.

Issue, GBA saves not keeping between sessions.

I’m running Metroid fusion for GBA and it’s working great. Except for saves. They seemed to be working fine at first, but now when I save, the save point isn’t updated. The next time I load the save I’m back to the same point before my last save. I lose all my progress. Any thoughts?

Add validate option in editor

Provide the ability to validate all of the links in a feed via the editor.

it will report any urls that are broken (images, roms, etc.)

Nintendo DS Emulation

Another great system with a tremendous catalogue of games.
Most titles are 2D-based which should make emulation possible on the majority of devices with good performance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.