Giter VIP home page Giter VIP logo

Project Slippi

Mission

The focus of this project is around the sport of Super Smash Bros Melee. There are a variety of actors involved in the sport, these include the competitor, streamer, caster, fan, spectator, and more. We are trying to create features for these people to enhance their experience when doing anything Melee related.

The primary means of doing this introduced by this project is by creating a data-rich replay infrastructure. Replay files have the potential to expand the competitive Melee experience in many ways including:

  1. Generating complex stats far beyond what is currently possible with video analysis tools
  2. Archiving a much larger percentage of tournament matches (all setups can be recording setups)
  3. Enabling new methods of streaming
  4. Enhancing streams and commentary discussion with detailed information about the games

More Information

Support Development: https://www.patreon.com/fizzi36

Release Blog Post: https://medium.com/project-slippi/project-public-release-4080c81d7205

Release Demo Video: https://www.youtube.com/watch?v=1OYS5JSZepQ

Discord Server: https://discord.gg/XpHZex6

.slp Parsing Libraries

Javascript [Official]

slp-parser-js: https://github.com/project-slippi/slp-parser-js

Python [Community]

py-slippi: https://github.com/hohav/py-slippi

Rust [Community]

peppi: https://github.com/hohav/peppi

How to Contribute

If you're interested in making Melee better than it already is, you should consider contributing!

Follow these steps to contribute:

  1. Fork the repository you're interested in contributing to (see Project Structure section below for the breakdown of the project)
  2. Checkout your fork
  3. Make changes
  4. Commit and push your changes
  5. Submit a pull request into the upstream project
  6. I will review the pull request and decide if it's worth merging. Please note that there's no guarantee what you work on will get merged into the main branch. That said, you can increase your chances by talking about it in the discord!

Project Structure

The project is composed of many different parts and projects that work together. This section will detail what those parts are, where they are, and how they can be contributed to.

ASM Gecko Codes (Assembly)

There are two main distributed codes: Slippi Recording and Slippi Playback.

The recording code will write data out of the game through Port B of the console. In order to do anything with this data, something must receive it. In the current case, the system receiving it is Dolphin, this will be addressed later.

The playback code requests and reads data from Port B of the console. It will request data it needs in order to play back a replay. Once again something must respond to these requests with the correct data and Dolphin currently serves that purpose.

The codes can be found at https://github.com/project-slippi/slippi-ssbm-asm. They can be compiled using the gecko tool in this project: https://github.com/JLaferri/gecko. See project readme for more info.

Faster Melee (C++)

All the code to make Dolphin support the assembly codes were built on top of Faster Melee. This code can be found at https://github.com/project-slippi/Ishiiruka/tree/slippi. Make sure to use the slippi branch. For info about how to build Dolphin, look here: https://github.com/dolphin-emu/dolphin/wiki.

To find the Slippi-specific stuff in the codebase, search for "Slippi".

Replay File

Dolphin currently serves the purpose of receiving data from the game and writing a replay file. To understand the structure and format of the replay file, please read the spec here: https://github.com/project-slippi/slippi-wiki/blob/master/SPEC.md

Slippi Launcher (TypeScript/React/Material-UI)

The desktop application is maintained in the repo found here: https://github.com/project-slippi/slippi-launcher.

This application is the one stop shop for Slippi users. Acts as a Netplay Launcher, Dolphin Auto Updater, Replay Viewer and Analyzer, and more.

.slp Tools Library (Javascript)

Replay files are read and stats are computed by a separate library that can be found here: https://github.com/project-slippi/slippi-js. This was split out from the desktop app in order to allow people to read replays and display stats in their own applications.

Nintendont (C)

We have also created a custom build of Nintendont which emulates a Slippi hardware device in a similar way to Dolphin. It is still currently a WIP but it can be found here: https://github.com/project-slippi/Nintendont/tree/slippi

Project Slippi's Projects

cpal icon cpal

Cross-platform audio I/O library in pure Rust

dockerfile icon dockerfile

A repo for managing and updating our devkitpro docker image

dolphin icon dolphin

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

libogc icon libogc

C Library for Wii and Gamecube homebrew

libwdi icon libwdi

Windows Driver Installer library for USB devices

project-slippi icon project-slippi

Project for building a replay/metadata infrastructure for Super Smash Bros Melee

slippi-fm-installer icon slippi-fm-installer

Linux cross-distro compatible installer/builder for the Project Slippi fork of Faster Melee

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.