Guillem96 / argon-nx

πŸš€ GUI payload chainloader for Nintendo Swtich.
GNU General Public License v2.0
169 stars 35 forks source link
banner

License badge Homebrew Store

What Argon is?

Argon is a noble gas. "Argon" comes from Greek "Argon", neuter of "argos" meaning lazy , idle or inactive. Argon recieved this name because of its chemical inactivity.

Argon NX is an immutable payload which is injected to your Nintendo Switch via Fusee Gelee exploit.

Purpose

The purpose of Argon NX is to stay immutable, so you can always inject it, without caring about other payloads getting updated (Always use ArgonNX for TegraSmash, TegraGUI, TrinkedM0...).

How can it be immutable?

When Argon NX is injected, it automatically launches the payload.bin loacted at argon directory on your SD Card root.

If payload.bin is not present or VOLUME DOWN button is pressed on payload injection, Argon NX will list all payloads located at argon/payloads, and you will be able to select one of them to launch it.

Features

argon
  β”œβ”€β”€β”€logos
  β”‚     fusee-primary.bmp # Logo for fusee-primary.bin payload
  β”‚     ReiNX.bmp # Logo for ReiNX.bin payload
  β”‚
  └───payloads
        fusee-primary.bin
        ReiNX.bin         
        hekate.bin # Will be rendered using default logo

About BMP format

The only format supported is BMP 32 bit ARGB color. ArgonNX recommends using a solid background without alpha channel (alpha channel set to 0xFF). Payloads' logos support alpha channel.

Generate new logos and background

ArgonNX provides a useful Command Line Interface (CLI) to create new logos and backgrounds for your payloads using a jpg or png images.

CLI installation

The Argon CLI is written in Python. To install python follow the instructions listed here. Once you have python3 installed just type the following commands (These will install the requirements for running the CLI):

$ cd scripts
$ pip install -r requirements.txt
$ sudo apt-get install libmagickwand-dev

If you are using Windows visit Wand's installation page and follow the steps to install libmagikcwand on Windows.

CLI Usage

To generate a new logo use the following command.

$ cd scripts
$ python argon.py img-to-logo <path-to-png-jpg-img>

To generate a new background use the following command.

$ cd scripts
$ python argon.py generate-background <path-to-png-jpg-img>

The CLI stores the outputs of the commands at the recently created (also by the CLI) sd-files/argon directory (This directory simulates an sd-card argon structure).

To learn more about the CLI options type:

$ python argon.py --help

GUI

These images were captured with the screenshot feature.

example example example example

As you can see in the pictures, payloads are displayed in groups of 4 and each group is displayed in a different payloads tab.

You can find the logos used in the pictures inside this directory and backgrounds here.

ArgonNX sd card tree

How a full running ArgonNX example looks inside the sd card:

argon
β”œβ”€β”€β”€ payloads
β”‚       Atmosphere.bin
β”‚       ReiNX.bin
β”‚       fusee-gelee.bin
β”‚       hekate.bin
β”‚       SXOS.bin
β”‚
β”œβ”€β”€β”€ logos
|       Atmosphere.bmp
|       Reinx.bmp
|       hekate.bmp
|       SXOS.bmp
|
β”œβ”€β”€β”€ sys
|       minerva.bso # IMPORTANT if you want a good UX experience
|       resources.argon # IMPORTANT. Binary file containing all render resources except the background and logos
|
└─── background.bmp

Improve performance

ArgonNX can use minerva training cell to improve performance. The use of minerva is optional but recommended. To use minerva just place the compiled minerva.bso inside argon/sys. The directory argon/sys with minerva, is included in sd-files.zip in the release section.

To learn more about Minerva Training Cell check its official repo.

Compatibility

This payload will chainload any CFW or payload.

Some users reported issuses when chainloading SX OS. But with Atmosphere out there... who wants SXOS? πŸ™„

Roadmap

  1. Config file to manage tabs titles and argon sd card directory tree.
  2. More tools inside tools tab.

Credits