Skip to content

πŸš€ GUI payload chainloader for Nintendo Swtich.

License

Notifications You must be signed in to change notification settings

geneccx/argon-nx

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

  • Autolaunch/autochainload the payload named payload.bin inside argon directory in your sd card root.
  • If argon/payload.bin is not found or VOLUME_DOWN_BUTTON is held during ArgonNX injection, ArgonNX will list all the payloads located at argon/payloads, so you can select one of them to launch it.
  • Customize payloads' logos. Logos must be smaller or equal than 280x280 (See About BMP format section). Example:
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
  • Custom backgrounds can be added by placing background.bmp file inside argon directory. The background must be smaller or equal than 1280x720.
  • Take screenshots to share your ArgonNX gui. To capture ArgonNX screen tap anywhere with two or more fingers.
  • Touch support. Thanks to @pixel-stuck
  • Simple tools. (Don't expect tools like the onew built in hekate, argon tools are much more lightweighted and simple, such as reboot options)
  • Command Line Interface (CLI) to facilitate the procedure to create bmp files for custom logos and backgrounds.

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

  • devkitPro for the devkitA64 toolchain.
  • naehrwert and st4rk for the original hekate project and its hwinit code base.
  • CTCaer for the continued hekate and his minerva project.
  • xalgovia and Retrogamer 74 for the splash and logos. Also thanks them to use ArgonNX in RetroReloaded.
  • langerhans and stuck-pixel for their implementation of touch support.
  • LittlevGL for being such a good embedded graphics library.
  • D3fau4 for touch support testing.

About

πŸš€ GUI payload chainloader for Nintendo Swtich.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.1%
  • C++ 3.4%
  • Other 0.5%