Repository navigation
NES and SNES v0.2
NES and SNES netplay for MiSTer v0.2
This release adds Super NES netplay. Two MiSTers run the real SNES core in lockstep over the internet or a LAN. NES netplay works as before.
Download: mister-netplay-v0.2.zip. It contains:
SD card/: the NES and SNES cores, the netplay Main binary, scripts and NetPongServer/: the lobby server for Windows, Linux and Raspberry Pi
New: Super NES
SNES_netplay.rbf: the MiSTer SNES core with lockstep netplay. A checksum of every frame is compared, so a desync stops the session instead of going on silently.- All 12 buttons on both controllers.
- The core's coprocessors stay on: SA-1, Super FX, the DSP chips, Cx4, S-DD1, SPC7110 (without its clock) and Sufami Turbo.
- The SNES core has no pause, so netplay stops the emulated machine's clock while the other player's input is late. HDMI holds the picture; analog video goes black for that moment.
- Same lobby as NES: OSD → Netplay → Host in SNES_netplay. The other player joins from _Netplay/Rooms. Rooms and server games are per core.
- There are no settings to change, but both players need the same OSD settings. The session tells you when one differs.
- Not supported: MSU-1, BS-X/Satellaview, S-RTC, SPC7110 with its clock, the competition carts and SPC files. During netplay, cheats, savestates, multitap, mouse, light guns, turbo and SNAC are off.
Tested on hardware:
- Replays of 37,000+ frames came out identical on Super Mario World, Donkey Kong Country, Kirby Super Star (SA-1), Yoshi's Island (Super FX 2) and Pilotwings (DSP-1).
- Two MiSTers (a DE10-Nano and a MiSTer Pi) played over the internet through the lobby server.
Fixed before release
- Desync after playing other games. A ROM load kept the sound chip's registers from the previous game. The core now clears them on every load.
- SDRAM timing. The path for DMA from ROM to WRAM now meets real one-clock timing. Before, it could fail on some boards and not on others.
Main binary and server
- One
MiSTer_onlineworks with both cores. NES keeps protocol version 1, so NES play with Mesen still works. - New messages:
The other player runs another consoleGame chip not supported in netplayDifferent core build(now shown for both cores)
- Server:
- Games go in
roms/NES(orromsitself) and inroms/SNES. SNES games can be up to 8 MB. - A new status page shows a library per core, room cards and live updates.
- Games go in
Good to know
- To switch between NES_netplay and SNES_netplay, reboot from the MiSTer's menu first. Jumping straight from one core to the other can leave netplay without the ROM reload at the start of a session.
- Both players need the same release. Otherwise netplay shows
Different core build. - The host may wait at
waiting for player 2while the server already shows the other player as joined. If so, the joining MiSTer stopped on an error of its own (on NES, often RAM Clear). Read the message on that MiSTer. - The easiest way to get the same game file on both sides: the host loads it from
_Netplay/Server gamesand the other player joins from_Netplay/Rooms.
Upgrading from v0.1.x
- Copy the new
SD cardfolder onto both MiSTers. - Run Scripts → netplay_on again.
- Replace the server's binary.
netplay.ini and netplay-server.ini stay as they are.
Source: this repository at tag v0.2. ./setup.sh applies the patches to the upstream NES_MiSTer, SNES_MiSTer and Main_MiSTer.