Skip to content

Display local scores of Slippi-based instances of Super Smash Brothers Melee on an LED matrix.

License

Notifications You must be signed in to change notification settings

ttroy1/meleetrix

Repository files navigation

Meleetrix v1.0

Display local scores of Slippi-based instances of Super Smash Brothers Melee on an LED matrix.


Meleetrix is a lightweight Python script to display information received from vinceau's slp-realtime library on a 64x64 LED Matrix. The character, color, percentage, and number of stocks are presented in a scoreboard-style layout. Games played on consoles running Slippi Nintendont or through Slippi Dolphin are supported.

Running this project requires a Raspberry Pi and a 64x64 LED display.

The hardware this project was developed and tested with is listed below. Where applicable, links to the product's page on Adafruit have been listed. As of writing (August 2023), you may have difficulty finding the Pi 3/Pi 4 available for sale outside of the secondary market.

Display States

4P Games (Grid)

alt text

4P Games (List): Image
3P Games: Image
2P Games: Image
Winner Screen: Image
Pregame and Postgame: Image

Installation

Hardware Assembly

For a great guide on the parts required and their assembly, see the wiki provided in the mlb-led-scoreboard library, linked here.

Note that the guide mentions 32x32 and 64x32 displays, while this project only supports 64x64 displays. Using a 64x64 display with the Adafruit bonnet does require a small amount of soldering; specific instructions for this are available on Adafruit. Adafruit has several different versions of 64x64 displays available, each with varying space between each pixel (called 'pitch'), which changes the overall size of the display. Consider choosing a pitch based on your expected viewing distance from the display - the closer you are, the smaller your pitch should be.

Hardware Pictured

Outside of the linked microSD card, these are the parts used for the example photos provided:

Software Installation

Installing repository and required libraries

The files included in this repo are designed to run directly on your Pi. Using your Pi directly or through SSH, enter the following commands into bash as needed.

If Git is not already installed on your machine, install it now:

sudo apt-get update
sudo apt-get install git python3-pip

Next, install this repository and its requirements:

git clone https://github.com/ttroy1/meleetrix
cd meleetrix
pip install -r requirements.txt

To run index.js, install slp-realtime. rxjs and @slippi/slippi-js are both peer dependencies of slp-realtime. See instructions regarding slp-realtime installation here.

Once repositories are installed

Dolphin

  • Find the IP address of your personal computer. If unsure on how to do this, consider using an application such as Angry IP Scanner to see all of the devices on your network.

Console

  • If using a console, see Nikki's Slippi Console Mirroring Guide. Installations of Homebrew and Nintendont Slippi on your Wii are prerequisites for mirroring. Separate documents on how to set these up are linked to from the mirroring guide.

Once you've obtained the IP address of your device, add it as the Console Address or Slippi Dolphin Address in Meleetrix's config.json file, located in the repo's home directory.

Be sure to update the Active Connection Type field to the appropriate value as well. For more information on config.json and customization, see the Customization section of this document.

Usage

Two small shell scripts have been provided to get started, both of which are located in the library's main folder. You may want to modify the stop.sh script if it will interfere with similarly named processes from other applications.

I recommend against starting the script while a game is in progress - while slp-realtime will generally catch up to the current game state, there can also be unexpected behavior.

Start Meleetrix

bash run.sh

Stop Meleetrix

bash stop.sh

Customization

There are several elements within Meleetrix available to be customized by the user. In the project's home directory, an example config.json file has been provided that contains each of these fields. The options available for each of these elements are outlined below:

Name Description Path Type Example
Backgrounds Active (General) Toggles whether background colors are enabled as a whole, which includes the default character/color-specific backgrounds. colors:backgrounds_active Bool true
Custom Backgrounds Active Toggles whether character/color specific background colors are enabled. The provided default background colors will be disabled as well. colors:custom_backgrounds_active Bool false
Background Colors (Character/Color Specific) A dictionary of character/color specific background colors. The full list of character/color names can be found in the meleetrix/assets/icons folder. colors:custom_char_bgs Dict {"falcon-green": [14, 74, 46]}
Custom Foregrounds Active Toggles whether character/color specific background colors are enabled. colors:custom_foregrounds_active Bool false
Foreground Colors (Character/Color Specific) A dictionary of character/color specific foreground colors. The full list of character/color names can be found in the meleetrix/assets/icons folder. colors:custom_char_fgs Dict {"falcon-green": [255, 255, 255]}
Toggle Border (General) While in list view, toggles whether borders are displayed around each player's section. colors:borders_active List false
Border Color (General) If borders are active, the color provided here is what will be displayed. colors:borders_rgb Array [255, 255, 255]
Toggle 4P Grid View Toggles whether list view or grid view is used for 4P gameplay. By default, grid view is enabled. grid_view_4p Bool true
Active Connection Type Used to determine whether you're using a console or Dolphin-based connection. active_conn_type String "dolphin" or "console"
Console Address The IP address of your console running Slippi Nintendont. console_address String "192.168.0.0"
Slippi Dolphin Address The IP address of your PC running Slippi Dolphin. slippi_dolphin_address String "192.168.0.0"

Pull requests / Issues

This project is pretty barebones as is - there's a lot more that could be done with the information provided by Slippi. As such, pull requests and issue submissions are welcome.

Acknowledgements

If you like this project, consider supporting those in the Melee community who made it possible:

slp-realtime

project-slippi

Licensing

This project uses the MIT License.

About

Display local scores of Slippi-based instances of Super Smash Brothers Melee on an LED matrix.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published