A multiplayer networking framework for Zelda 64: Recompiled that enables Actor synchronization across different game instances.
[!WARNING] This project is still in active development and the API is subject to change. It represents an experimental implementation of networking capabilities and should be considered a work-in-progress.
This project consists of several components that work together to provide network functionality:
network-sync) - An API mod that exposes networking functionality to other modsnetwork-sync-runtime) - A Rust-based dynamic library that implements the networking logicnetwork-sync-server) - A webSocket server that handles player connections and data relaynetwork-sync-test) - A sample implementation that demonstrates the networking functionalitySee the full API Documentation for detailed information about available functions and data structures.
The Network Play API provides functionality for:
The system uses a client-server architecture where:
The test mod demonstrates:
Clone this repository:
git clone https://github.com/yourusername/mm-network-sync.git
cd mm-network-sync
Build the runtime, C API mod, and test mod:
make
This will:
Copy the built files to your Zelda 64: Recompiled mods directory:
make install
Or manually copy build/main/mm_network_sync.nrm, build/test/mm_network_sync_test.nrm, and the compiled build/network_sync_runtime.dylib (or .so/.dll) to your mods folder.
Run the server: Using Cargo:
cd network-server
cargo run
Using Docker Compose:
docker compose up -d
This will start the network server in a detached mode, which is useful for running it in the background.
Launch Zelda 64: Recompiled with the mods enabled.