All Projects → BinBashBanana → webretro

BinBashBanana / webretro

Licence: MIT License
RetroArch in your browser

Programming Languages

c
50402 projects - #5 most used programming language
GLSL
2045 projects
javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to webretro

Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-39.47%)
Mutual labels:  emulator, retroarch, libretro
Retroarch
Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
Stars: ✭ 6,093 (+15934.21%)
Mutual labels:  retroarch, libretro
ShaderGlass
Overlay for running GPU shaders on top of Windows desktop
Stars: ✭ 417 (+997.37%)
Mutual labels:  retroarch, libretro
retro-home
Retro Home; your home for retro-gaming 🕹
Stars: ✭ 76 (+100%)
Mutual labels:  retroarch, libretro
SquirrelJME
SquirrelJME is a Java ME 8 Virtual Machine for embedded and Internet of Things devices. It has the ultimate goal of being 99.9% compatible with the Java ME standard.
Stars: ✭ 148 (+289.47%)
Mutual labels:  retroarch, libretro
retropie-overlays
Console overlays set for Retropie & Recalbox
Stars: ✭ 54 (+42.11%)
Mutual labels:  retroarch, libretro
rombundler
A tiny libretro frontend to release homebrews as executables
Stars: ✭ 49 (+28.95%)
Mutual labels:  emulator, libretro
gameboyGO
Gameboy emulator in go
Stars: ✭ 24 (-36.84%)
Mutual labels:  emulator
CocoaMSX
MSX Emulator for macOS
Stars: ✭ 72 (+89.47%)
Mutual labels:  emulator
google-datastore-emulator
Google Datastore Emulator wrapper to nodejs
Stars: ✭ 17 (-55.26%)
Mutual labels:  emulator
nolimix86
LLVM-based x86 emulator with support for unlimited virtual registers, used before the register allocation pass
Stars: ✭ 19 (-50%)
Mutual labels:  emulator
ts-c99-compiler
ANSI C 16bit Compiler + NASM Assembler + Intel 8086 / 80186 + X87 emulator written entirely in TypeScript
Stars: ✭ 78 (+105.26%)
Mutual labels:  emulator
go6502
6502 CPU emulator, assembler and disassembler written in Go
Stars: ✭ 31 (-18.42%)
Mutual labels:  emulator
emul8080r
An Intel 8080 emulator written in Swift
Stars: ✭ 17 (-55.26%)
Mutual labels:  emulator
libretro-dats
Build some of the libretro-database DATs
Stars: ✭ 13 (-65.79%)
Mutual labels:  libretro
NostalgiaLite
Three game emulators: FC(Nes), GG, GBC for Android
Stars: ✭ 85 (+123.68%)
Mutual labels:  emulator
chip8
CHIP-8 emulator and (dis)assembler
Stars: ✭ 15 (-60.53%)
Mutual labels:  emulator
Chip8Java
A Super Chip 8 emulator written in Java
Stars: ✭ 23 (-39.47%)
Mutual labels:  emulator
emu
cybozu labs youth 7th
Stars: ✭ 50 (+31.58%)
Mutual labels:  emulator
cloudterm
Cloud Web Terminal Emulator. Opens your terminal to Web.
Stars: ✭ 58 (+52.63%)
Mutual labels:  emulator

webretro

RetroArch ported to WASM with emscripten!
Demo

This was initially part of gfiles, but I decided to split it off.

These 5 cores are included with the repository (ROMs NOT included):

  • Genesis Plus GX (Genesis / MD)
  • mGBA (GBA, GB, GBC)
  • Mupen64plus Next (N64, broken but playable)
  • Nestopia (NES)
  • Snes9x (SNES)

How to use

The asset bundle will be fetched from GitHub using jsdelivr by default. You can change this option on line 10 and 11 of assets/base.js (example alternate value: "./").

Query string options:

  • core - specify the libretro core to use, i.e. genesis_plus_gx, mgba, mupen64plus_next, nestopia, snes9x. autodetect can also be used, which attempts to find the correct core for the ROM (slower to load because the core is loaded after the ROM) (if not specified, the user will be shown a list of the default cores).
  • system - same as above, but will attempt to detect the core based on the specified system, i.e. gba, genesis, nes, nintendo 64, snes. If both core and system are specified, core will override system.
  • rom - will attempt to fetch a ROM from the ./roms/ directory on the server, or an absolute url (including protocol), e.g. mario3.nes (if not specified, the user will be prompted to upload a ROM).
  • nobundle if this exists, the bundle fetch will be skipped.
  • console if this exists, the console window will open on load.

Example OK query uris:

  • ?core=snes9x&rom=dkc.smc&nobundle&console
  • ?core=mgba&rom=https://example.com/marioadvance3.zip
  • ?core=autodetect&rom=supermarioworld.sfc
  • ?core=autodetect&nobundle
  • ?core=genesis_plus_gx
  • ?

Embed API

You can easily embed webretro on your site by using the api provided in embed/embed.js. You can see an example of it here.

How to use: webretroEmbed(domNodeToAppendTo, webretroPath, queries) (returns the new iframe node that it creates)

  • domNodeToAppendTo - the element that you want webretro to appear in.
  • webretroPath - the path to the index of the webretro instance.
  • queries - object containing the query string options shown above.

Additional

  • The user can upload their ROM directly, or using Google Drive/Dropbox/OneDrive.
  • Importing/Exporting of save states and SRAM is supported.
  • States and SRAM are saved to indexedDB per ROM name. (SRAM autosaves every 5 minutes by default)
  • ROMs can be inside of zip files (The ROM file name is used in this case, instead of the zip file name).
  • Users can take screenshots, and download them individually, or all at once.
  • Users can recover saves or states from roms that were lost or renamed.
  • Cheat codes are supported.
  • SMAS brick fix should automatically be softpatched to SMAS ROMs.
  • The keybinds are remapped so that all the inputs should be supported by a normal keyboard, but can be changed by the user. The default keybinds can be changed on line 12 of assets/base.js:

Controller Layout Map

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].