Giter Site home page Giter Site logo

pokegen / sys-botbaseplus Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 2.0 325 KB

sys-module to remote controll your nintendo switch and build automated bots/applications using http

License: GNU General Public License v3.0

Makefile 0.68% C++ 96.62% C 2.70%
sys-botbase sys-botbaseplus sys-netcheat atmosphere cfw homebrew sys-module switch nintendo nintendo-homebrew

sys-botbaseplus's Introduction

sys-botbaseplus

This is a modified C++ port of olliz0r sys-botbase which is also based on jakibakis sys-netcheat

This sysmodule adds optional HTTP support, which has a few advantages over raw tcp:

  • HTTP is a standardized protocol with well defined uses
  • Simple & Easy implementation on the client side
  • Usable from almost everywhere (e.g. Browsers, Apps, Server Applications etc.)

Prerequisites

If you wanna run this you need a switch with cfw installed (preferably Atmosphere)

Getting Started

This sys-module was only tested on Atmosphere 1.2.4, so if you use another version or cfw your experience might vary

Using the .zip

  1. Extract the content of the zip file
  2. Copy content to sdmc://
  3. Optional, create a password.txt in sdmc://config/sys-botbaseplus containing a password used for http communication

Using the .nsp

  1. Copy the sys-botbaseplus.nsp file to sdmc://atmosphere/contents/430000000000000C rename it to exefs.nsp
  2. Optional, create a password.txt in sdmc://config/sys-botbaseplus containing a password used for http communication
  3. Create a new folder in sdmc://atmosphere/contents/430000000000000C names "flags"
  4. Create a empty file called boot2.flag inside this folder
  5. Restart your switch

Connecting

  • sys-botbase compatible TCP server running on port 6000
  • http server running on port 9999

Http Routes

All Endpoints expect a Authorization header with the specified password from the password.txt, if not present defaults to youshallnotpass.

Get

  • /version Get current version of sys-botbaseplus
  • /healthz Health check to see if the http server is running
  • /metadata Metadata about Switch (current titleId & buildId)

Post

  • / Main Command endpoint, expects JSON body see below

Request & Response format

All request data is expected to be JSON format, all response will be in JSON format.

command & button values are case insensetive.

Examples

{
	"command": "CLICK",
	"button": "a"
}
{
	"command": "press",
	"button": "A"
}
{
	"command": "release",
	"button": "a"
}
{
	"command": "peek",
	"offset": "0x4293D8B0",
	"size": 344
}
{
	"command": "poke",
	"offset": "0x4293D8B0",
	"value": "0x41964b8b0000df79b90c04dbce1ef730d83539c2cf6098790106e859eb4f9eba60fa881eae9cd5f25383e8e49873bfa8cb73e17c67005dfb21be932602298b221968dd866bbeab80dda6ecd64fbe51d19e0105a4e40c7fa5eecb9a085f767c6f7c9de5281ff787cfcaac76bda692cf1d113278d36537a55754efb6fd757ce7f19c4b369d0718713c379eb61164e8cf4c969084d8cbabb4a479bad206733a4a0748dcd19a9062ee319e5b5c86ffbb546cb1e63481ad9dd122e6606ffb920da002e87d4fbdcaa2fc4755b1db2a4dbceb2bd94fa36de6d861bb9e082657d7dc5b4181355c58c82bf88803617a9caa3f6b1fba383ede8e5109fbb0d96b0e95172eaddceeb74ea542ced7373d9215e20d442bef8e4887feb3ae61d10eca5d9b84cba7638a08d88fa3cb29902ea1fd2fb469b72cb21d56d0f475b2b60531788a8e97bef9f04b563f1db5e1010ed8db252e73e4ec2b91c2de609979"
}

Contributing

Building

  1. Install gcc (needs support for C++20) & make
  2. Install dependencies needed to build Atmosphere-libs
  3. Clone repo and init all submodules
  4. Execute the Makefile

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • jakibaki - Creation of sys-netcheat - jakibaki
  • olliz0r - Creation of sys-botbase - olliz0r
  • yhirose - Creation of cpp-httplib - yhirose
  • zaksabeast - Creation of sys-http & modification of cpp-httplib to work with Switch - zaksabeast
  • DevYukine - Initial work - DevYukine

See also the list of contributors who participated in this project.

Also a big thanks to the people on the ReSwitched Discord Server (especially SciresM & Behemoth) and olliz0r who helped me during development ๐Ÿ˜Š

License

This project is licensed under the GPL-3.0 License - see the LICENSE.md file for details

sys-botbaseplus's People

Contributors

devyukine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

x4317350 z1r343l

sys-botbaseplus's Issues

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.