Skip to content

afska/nestation

Repository files navigation

NEStation

NEStation is a web NES emulator frontend (based on jsnes), which supports two-player Net Play via WebRTC's p2p data channels.

rlabs Created by [r]labs.

Screenshots

nestation-iddle nestation-playing nestation-settings

Key features

  • 🐎 Fullspeed NES Emulation
  • 🌐 Low-latency online play
  • 📦 ROM Drag & Drop - Easy UX
  • 🔀 Swap P1 and P2 at any time
  • ⌨️ Configurable controls
  • 🎮 Gamepad support
  • 📺 CRT TV emulation

Open-source libraries involved

  • jsnes: The core of the emulator
  • quickp2p: A library to quickly connect two peers through WebRTC
  • React: The well-known UI framework
  • NES.css: An awesome NES-themed css library

Troubleshooting

I can't connect to my friend's party!

WebRTC does everything it can to connect you with your partner, but things may fail on rare network configurations. In those cases, a quick workaround could be enabling a DMZ on one side.

I have stuttering issues!

Then you may want to increase the Buffer size, in Settings. Lower values offer less input lag, but they can produce stuttering if network latency is not low enough. Try increasing it until it works well.

Some games don't work!

Well, not all the NES mappers are supported. Feel free to raise an issue here with the game you're trying to run.

There's a crackling sound!

Make sure you have your speakers' default format set as 96000Hz at most:

sound

Developing

Install

nvm use
npm install

Run the app

npm start

Build

npm run build