Syriinge is a framework and API for injecting C++ code into Super Smash Bros. Brawl at runtime via plugin loading. Plugins are built into Nintendo Relocatable Module (.rel) files and loaded by Syriinge. Syriinge itself is loaded via gecko codes, which can be found in Syringe.asm and is a standard GCTRM assembly file.
You can always find the latest docs at https://syriinge.sammihusky.com
Documentation is built using Material MkDocs. You can find the markdown files used to generated the live documentation in the /docs folder.
Contributions here are always needed.
In order to build the project, the user should satisfy the following requirements:
- DevkitPro
- Optionally, the user should have
devkitPro/msys2/usr/binin their system path- lets you run make from CLI instead of an MSYS2 window
Following these steps will produce a .rel file to place on your SD card inside the module folder.
git clone --recursive https://github.com/Sammi-Husky/Syriinge.gitcd Syriingemake
- Download or build the project
- Add
sy_core.relto your mod/modpack'smodulefolder - Copy
Syringe.asmto your build's source files and.includeit at the top ofRSBE01.txt - Download or create plugins and add them to a folder called
pluginsinside your/pffolder. (create this directory if it doesn't exist)
Syriinge on it's own does not do anything meaningful. Syriinge simply provides an API for hooking and injecting C++ code into the game at runtime. You'll need to download or create plugins to add custom functionality to your game. To see example plugins, refer to this repository.
For creating your own plugins, you may find the Template Repository helpful.
This project makes use of the work of several other open-source projects:
-
OpenRVL, an open source reimplementation of the Revolution SDK
-
BrawlHeaders, an open source collaborative repository for Brawl header files
-
elf2rel, a utility for converting
.elffiles to.relfiles while linking them against a symbol map. -
Material MkDocs, a popular documentation site generator.
The code contained in this repository, not including the external libraries, is licensed under the MIT license. For more information, see the file LICENSE on the root of the repository.
For license information on the external libraries / repositories used by this project, please see the respective project's repository listed in the CREDITS section.