Git Product home page Git Product logo

smash-chars's Introduction

skyline-rs-template

A template for writing skyline plugins for modding switch games using Rust and skyline-rs.

Documentation for skyline-rs

Setup

Local

Prerequisites

  • Rust - make sure rustup, cargo, and rustc (preferrably nightly) are installed.
  • git

Install cargo skyline.

# inside a folder where you will dev all of your plugins going forward
cargo install cargo-skyline
cargo skyline new [your_plugin_name]

VS Code with Docker

Prerequisites

Simply run Remote Containers: Reopen in Container in the Command Palette.

Creating and building a plugin

To compile your plugin use the following command in the root of the project (beside the Cargo.toml file):

cargo skyline build

Your resulting plugin will be the .nro found in the folder

[plugin name]/target/aarch64-skyline-switch

To install (you must already have skyline installed on your switch), put the plugin on your SD at:

sd:/atmosphere/contents/[title id]/romfs/skyline/plugins

So, for example, smash plugins go in the following folder:

sd:/atmosphere/contents/01006A800016E000/romfs/skyline/plugins

cargo skyline can also automate some of this process via FTP. If you have an FTP client on your Switch, you can run:

cargo skyline set-ip [Switch IP]
# install to the correct plugin folder on the Switch and listen for logs
cargo skyline run 

Troubleshooting

"Cannot be used on stable"

First, make sure you have a nightly installed:

rustup install nightly

Second, make sure it is your default channel:

rustup default nightly

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/bin/cargo-nro.rs:280:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Make sure you are inside the root of the plugin you created before running cargo skyline build

Have a problem/solution that is missing here? Create an issue or a PR!

Updating

For updating your dependencies such as skyline-rs:

cargo update

For updating your version of rust-std-skyline-squashed:

# From inside your plugins folder

cargo skyline self-update

smash-chars's People

Contributors

ellaow avatar

Watchers

 avatar

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.