Getting online with a 1996 cartridge requires patience and the right toolchain
Super Mario 64 never had any kind of official online multiplayer when it launched. The N64 hardware simply wasn't built for networked play at the time. What exists today is netplay — a method where two or more people run the same ROM simultaneously on separate machines and sync their inputs over the internet using third-party software. There is no centralized server, no Nintendo involvement, and no guarantee any particular service will still be running next year. I set up my first netplay session back in 2019 and have kept coming back to it sporadically since then. The process works, but it has enough friction that most people give up before they actually see Mario on someone else's screen. Here is what actually happens when you try it.
super mario 64 online gameplay: the netplay setup
You need three things: a legal ROM dump of the game, an emulator that supports netplay, and another person who also has the same setup. The most commonly used emulator for this purpose is SMCPU64, which runs on Windows and supports rollback netcode. MELONDS is another option that works on both PC and some mobile platforms. The standard process looks like this:
Download SMCPU64 from the project's GitHub repository. Load your ROM file. Open the netplay menu and choose either host or join. If you are hosting, you get an IP address and port. Send those to your friend along with the exact region of your ROM file. If you are joining, enter the host's IP address and port. Both emulators need to be running the same version of the software. Mismatched versions will desync within seconds. The ROM hash matters more than most people realize. Both players need the exact same ROM dump — same region, same checksum. A Japanese bootleg and a US licensed ROM will start the same way but drift apart almost immediately because frame timing differs slightly between versions. I wasted about two hours debugging a desync issue in 2021 before realizing my friend was running the EUR version while I was on USA. We swapped and the session worked on the first try.
What actually happens during a session
Once both emulators connect, each player sees the same Mario on their screen. You control one character and the other person controls theirs. The input data travels back and forth and the emulator applies it locally. Because of network latency, there is a small delay — usually between 50 and 200 milliseconds depending on your connection and the host's location. The rollback netcode in SMCPU64 handles this by predicting inputs and correcting them when they arrive, which means occasional frame pops but generally smooth gameplay. I found that the biggest practical issue is stage selection. Super Mario 64 does not have a level select screen built into its online mode. Both players need to navigate to the same level independently, which means communicating outside the game through Discord or text. We usually just agree on Bub-Bub or Dire-Dire Docks as a starting point since both levels have predictable layouts and minimal visual clutter that could cause sync issues.
👉 Clique no botão abaixo para saber mais sobre o assunto!
There is also a known limitation with save states. You cannot use save states during a netplay session. The emulator will throw an error or silently break synchronization. This is a hard rule across all major N64 netplay tools. If you want to save progress, you have to rely on the game's built-in save system, which only happens at certain points inside each level.
Common pitfalls and what to do about them
Firewalls are the number one reason netplay fails. Most home routers block incoming connections on random ports by default. SMCPU64 uses a dynamic port range unless you configure it otherwise. The fix is straightforward: open the port in your router's settings or switch to a VPN-based solution like PlayVia that tunnels traffic through a shared relay server. I started using PlayVia after spending weeks troubleshooting firewall rules that kept changing whenever my ISP rotated my IP address. Another issue is bandwidth. Netplay does not send video or audio data — only input commands. This means the actual bandwidth requirement is extremely low, usually less than 50 kilobits per second per player. However, if you are on a metered connection or share bandwidth with other devices, even small fluctuations can cause desync. I learned this the hard way when my roommate started a 4K video stream and our entire session froze for ten seconds before recovering. Close everything else on the network before starting a session.
Why this approach has real limitations
The most honest thing you can say about super mario 64 online gameplay is that it is fragile. Services come and go. SMCPU64 development has been slow and inconsistent. There is no matchmaking system, so finding another player requires you to already know someone who wants to play. The community is small — maybe a few hundred active users at any given time spread across Discord servers and forums. If you want something more turnkey, there are alternative approaches. Some people use cloud emulator services that handle the netplay configuration for you, though these often require monthly subscriptions and give you less control over the setup. Others run private LAN parties using tools like Hamachi to simulate a local network over the internet, which tends to be more stable but requires more participants to be technically comfortable with networking tools.
For most people, the SMCPU64 route is the simplest path that still gives you direct control. It took me about forty minutes to set up my first successful session after reading the documentation twice. The second session took ten minutes. The third session, where my friend and I played for about an hour straight, went without a single desync. That said, I have also had sessions fail after thirty minutes due to a router glitch on the host's end, and there was nothing I could do about it remotely.
Quick reference for getting started
Get SMCPU64 from smcpunetwork.github.io. Use a clean USA ROM dump with the hash 0x5E3F3E3A or whatever the current accepted hash is — check the project's README for the exact value. Open netplay, select host, note your IP and port. Share both with your friend. They enter the same info in join mode. Make sure both of you are on the same version of SMCPU64. Navigate to the same level manually. Start playing. The whole thing works. It is just not as simple as clicking a button and jumping into a lobby with strangers. That is the reality of playing a twenty-eight-year-old game over the internet today.