NetPlay
This release introduces NetPlay: play the same game together over Wi-Fi or the internet, built from scratch as a native part of MAME4droid rather than bolted on.
Two sync modes:
- Rollback — save-state resimulation for near-zero input lag, ideal for fighting games and fast action titles. Boot is fully deterministic (RTC, samplerate, disk/NVRAM state pinned), so only inputs ever cross the network — nothing bulky to transfer at connect time.
- Lockstep — simple guaranteed sync for titles where rollback doesn't apply cleanly.
- A CRC desync detector watches the session and warns you the moment two machines drift apart, and a one-tap Resync recovers a live session without having to disconnect and start over.
- Adaptive input delay reacts to sustained changes in latency rather than every ping blip, and frameskip stays network-aware to absorb the rough edges automatically.
Connect over the internet with zero setup
No account, no lobby, no relay server, no dedicated matchmaking service to run or trust — the app negotiates the connection itself:
- A native STUN client (with proper symmetric-NAT detection, tuned to catch CGNAT/mobile carriers that other simple checks miss) discovers your public address.
- Automatic UPnP port mapping asks your router to open the game port for you the moment you host — no manual configuration, no forwarding rules to remember. It's cleaned up automatically when the session ends.
- If UPnP isn't available, built-in UDP hole punching gets two peers talking directly through most home NATs anyway.
- As a last resort, plain manual port forwarding still works, same as ever.
Getting connected is just... sharing a message
- Hit Share and send your addresses (local + internet) to the other player through any messenger app you already use — no more reading digits off a screen and typing them in by hand.
- Pasting a shared address back in is tolerant of the whole message, not just the raw IP.
- A small connection stats overlay (ping/delay) is available during play, and audio automatically re-buffers around rollback stalls so hiccups don't turn into crackles.
Both players need the same MAME4droid build and the same game; a mismatched build is rejected cleanly at connect time instead of desyncing later.