tangobattle / tango

Play Mega Man Battle Network online with rollback netcode!
https://tango.n1gp.net
GNU Affero General Public License v3.0
91 stars 15 forks source link
linux macos megaman-battle-network mmbn mmbn2 mmbn3 mmbn4 mmbn5 mmbn6 rust windows

[!WARNING] > Tango is no longer actively supported by the author.

There are no further updates expected to Tango. If you wish to become the maintainer of Tango, please email merry.bowl9875@fastmail.com.

Tango

Tango is rollback netplay for Mega Man Battle Network.

Supported games

Name Gameplay support Save viewer support
Mega Man Battle Network 6: Cybeast Falzar (US) βœ… Works great! 🀷 Folder, NaviCust
Mega Man Battle Network 6: Cybeast Gregar (US) βœ… Works great! 🀷 Folder, NaviCust
Rockman EXE 6: Dennoujuu Falzer (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards
Rockman EXE 6: Dennoujuu Glaga (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards
Mega Man Battle Network 5: Team Protoman (US) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Mega Man Battle Network 5: Team Colonel (US) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Rockman EXE 5: Team of Blues (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Rockman EXE 5: Team of Colonel (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Rockman EXE 4.5: Real Operation (JP) βœ… Works great! βœ… Navi, Folder
Mega Man Battle Network 4: Blue Moon (US) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Mega Man Battle Network 4: Red Sun (US) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Rockman EXE 4: Tournament Blue Moon (Rev 1 only) (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Rockman EXE 4: Tournament Red Sun (Rev 1 only) (JP) βœ… Works great! 🀷 Folder, NaviCust, Patch Cards, Auto Battle Data
Megaman Battle Network 3: Blue (US) βœ… Works great! 🀷 Folder, NaviCust
Megaman Battle Network 3: White (US) βœ… Works great! 🀷 Folder, NaviCust
Battle Network Rockman EXE 3: Black (Rev 1 only) (JP) βœ… Works great! 🀷 Folder, NaviCust
Battle Network Rockman EXE 3 (Rev 1 only) (JP) βœ… Works great! 🀷 Folder, NaviCust
Megaman Battle Network 2 (US) 🀷 Works, with minor issues 🀷 Folder
Battle Network Rockman EXE 2 (AdColle only) (JP) 🀷 Works, with minor issues 🀷 Folder
Megaman Battle Network (US) 🀷 Works, with minor issues 🀷 Folder
Battle Network Rockman EXE (JP) 🀷 Works, with minor issues 🀷 Folder

Building (Linux Binary)

We assume you're using Ubuntu or Debian.

  1. Install Rust.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Install required dependencies.

    sudo apt-get install -y libssl-dev libglib2.0-dev pkg-config cmake build-essential libclang-dev libgtk-3-dev librust-alsa-sys-dev libasound2-dev curl wget git
  3. Run the build script. It will create an AppImage in the dist directory.

    bash ./linux/build.sh
    # or bash ./linux/build_arm64.sh

Building (Windows Binary)

  1. Install Rust.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Install the Rust target and toolchain for x86_64-pc-windows-gnu.

    rustup target add x86_64-pc-windows-gnu
    rustup toolchain install stable-x86_64-pc-windows-gnu
  3. Install mingw-w64.

    sudo apt-get install -y mingw-w64
  4. Ensure mingw-w64 is using the POSIX threading model.

    sudo update-alternatives --install /usr/bin/x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-win32 60 &&
    sudo update-alternatives --install /usr/bin/x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix 90 &&
    sudo update-alternatives --config x86_64-w64-mingw32-gcc &&
    sudo update-alternatives --install /usr/bin/x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-win32 60 &&
    sudo update-alternatives --install /usr/bin/x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix 90 &&
    sudo update-alternatives --config x86_64-w64-mingw32-g++
  5. Build it.

    cargo build --target x86_64-pc-windows-gnu --release --bin tango

Server

The server is the remote HTTP server-based component that Tango connects to. It doesn't actually do very much, so you can run it on absolutely piddly hardware. All it does is provide signaling by sending WebRTC SDPs around.

If you already have Rust and Perl installed (on Windows, try Strawberry Perl), you can build it like so:

cargo build --release --bin tango-signaling-server

Language support

Tango is fully internationalized and supports language switching based on your computer's language settings.

The order of language support is as follows: