MrBean35000vr / netslug-wii

Netplay mod for Wii based on BrainSlug
GNU General Public License v2.0
29 stars 13 forks source link

Wii NetPlay (working title) by MrBean35000vr and Chadderz

This is a Wii homebrew app that attempts to add online gameplay to Wii games that feature local multiplayer. It is based off BrainSlug Wii, the original README can be seen below. (Repository of BrainSlug can be found at https://github.com/Chadderz121/brainslug-wii).

It is designed primarily to add online multiplayer to New Super Mario Bros. Wii, but may be functional with other games.

The connection procedure is performed by a modified version of BrainSlug that has been outfitted with networking capabilities. It loads a single BrainSlug module (netplay_main.mod) that does the majority of the work in-game, including controller synchronisation, maintaining the connection, and other similar tasks.

It's worth noting that all of this is still, as Chadderz describes it, "hacky". The current code only supports 2 players, and synchronisation is not guaranteed on any game at all, including New Super Mario Bros. Wii (but it is pretty good), and input latency on the guest can be very high. There's a lot of static code such as controller assignments and input buffer size which cannot be adjusted from the Wii itself, but could be changed at the source if necessary.

In order to build the app and all required parts, run "make -j" followed by "make release" at the root level. It will create a "release" folder, whose contents can be copied directly to the SD card and should work immediately. Host IP/port assignment must be done manually, and can be done by changing the config.ini file which will be put at SD:/apps/netslug/config.ini. See BUILDING for more info.

Original BrainSlug readme to follow:

BrainSlug Wii by Chadderz

BrainSlug is a specialised Wii disc loader which is designed to allow the loaded game's functions to be patched. What sets BrainSlug apart is that the patches it applies are not just simple copying patches, but in fact relocatable ELF files. The idea is that a C programmer who is unfamiliar with the intricacies of assembly code can write C code as normal and have BrainSlug take care of linking this into the game. Thus the process of adding functionality to Wii games is made much easier and more enjoyable for all.

The compiled code for adding modifications to the game are called BrainSlug modules. These modules must be made in quite a specific way, so a template module is provided in modules/template. More information about getting started with module development can be found in modules/README.

This project is in several parts: bslug_include - Header files used by BrainSlug modules. modules - A collection of premade BrainSlug modules. src - The BrainSlug Wii channel, which actually does the patching. symbols - Symbol information needed by the channel to perform linking. test - Regression testing for the Wii channel.

The game's symbols are found by a simple search which is explained in symbols/README.

See BUILDING for information about building the channel itself.

See USAGE for information aimed at end users of the channel.

See CHANGELOG for version information.