WEmulator is a simple way to setup a static site that acts as a game library for EmulatorJS. This has no requirement of a backend server language like PHP or NodeJS since it statically compiles the list of games available to it.
- An ability to run bash scripts on the machine with your rom files to build a map of what games you have.
- Games must be stored in a
romsfolder structure such as:nes/gameTitle.nesnes/gameTitle.nes.jpgsnes/gameTitle.smcsnes/gameTitle.smc.jpgsnes/gameTitle.sfcsnes/gameTitle.sfc.jpgn64/gameTitle.z64n64/gameTitle.z64.jpgnds/gameTitle.ndsnds/gameTitle.nds.jpggb/gameTitle.gbgb/gameTitle.gb.jpggba/gameTitle.gbagba/gameTitle.gba.jpggbc/gameTitle.gbcgbc/gameTitle.gbc.jpgpsx/gameTitle.psx.zippsx/gameTitle.psx.jpgsegaMD/gameTitle.mdsegaMD/gameTitle.md.jpg
- Each game needs a corresponding jpeg image file for the games cover art used in the arcade game list page.
- Consoles that need bios should have their bios zipped up and named by their console name and stored in a
biosdirectory - An understanding of how to restrict access to your self hosted site with your games as no auth will be provided. I recommend using a VPN to your webserver and block public access with a firewall.
- Download or clone the repo
- Use the
$ ./mapper.shfile to build the requiredmap.jsonfile of your roms directory. Note: themapper.shfile depends on tree being available from your shell, If you are using a mac use$ brew install treeto setup tree - start a web server or disable your web browsers local file restrictions.
- Or use
$ docker compose up -dand point your web browser tohttp://localhost:8087 - Or use the Lamdi App by Blaine Miller on iOS to load the Wemulator folder from your iCloud Drive.
- Search for a game and click it to launch the EmulatorJS Player
Manually update EmulatorJS
- goto the EmulatorJS Github Repo and download the latest release.
- Delete all the files in the WEmulator
emufolder - Copy the files from the EmulatorJS Release
datafolder into the WEmulatoremufolder
- Build Electron App so bash and tree are not required to build map.json file
- Use SubModule for EmulatorJS instead of a static copy of those files.
- Add support for multiple cover art image formats
- Add remaining systems supported by EmulatorJS
- Make the System menu dynamically built based on the results of the map.json file and not a static list
- Make search extra fuzzy to make finding games easier
- Use EncRelay to support encrypting game library as a crude form of authentication
- Add webserver feature to Electron App
- Launch webpage where people can download the Electron App for their system to quickly start playing their games.
I will always welcome constructive PRs that help move this project towards my final goals for it being easier to setup and use. I want this to be completely open source and I do not wish to make money on this project. I like classic games and so I hope to provide a means for preserving home access to games for future generations.
- If you do not know what a ROM is this project is not for you.
- If you do not have your own game library this project will be of no use to you.
- I will not provide any instructions on where you can legally obtain your own ROMS or BIOS, that is for you to figure out ;)
- If you do not protect your installation of this, that is on yourself for breaking copyright laws and you are solely responsible for your own bad choices, I provide no warranty and by using this project you agree that you are liable for your own actions entirely.
