ArgonNX Switch

From GameBrew
Argon NX
Argonnx.png
General
AuthorGuillem96
TypePayload (Binaries)
Version1.1-alpha
LicenseGPL-2.0
Last Updated2019/09/07
Links
Download
Website
Source

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.

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...).

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).
  • 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.

Installation

Download and unzip argon-nx.zip, it contains all the needed resources to run argon.

Drag and drop argon folder on the sd card root.

(Optional) Remember you can add your custom logos and payloads inside argon/logos and argon/payloads.

Inject the argon-nx.bin payload to your switch in RCM mode using tegrasmash or TegraGUI.

User guide

Folder structure:

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.

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

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.

FAQ

Q. 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.

Screenshots

argonnx2.pngargonnx3.png

argonnx4.pngargonnx5.png

Compatibility

This payload will chainload any CFW or payload.

Changelog

v1.1-alpha

  • Fixing critical bug. Now ArgonNX launches using any payload sender.
  • Argon now is composed by 2 payloads (2 stages).
    • First stage configures hardware.
    • Second stage loads the GUI.
  • Bootlogo/splash and wait until GUI is loaded.
  • Improve system stability to enhance user experience.

v1.0-alpha

  • ArgonNX's UI has been rewritten using LittlevGL library. This rewrite has a lot of benefits. Some benefits include:
    • Prettier font.
    • Faster rendering.
    • Better touch support.
    • In general terms improves UX.
  • Now payloads are listed inside tabviews where each tab contains a group of 4 payloads.
  • New tab of tools. By now tools only are related to reboot stuff (reboot to rcm, power off, reboot to ofw).
  • Background size back to 1280*720. No more weird image flippings.
  • ArgonNX Command Line Interface to simplify the process to create logos and backgrounds.
  • Now there is no need to declare a default.bmp logo inside the argon/logos directory.
  • Improve system stability to enhance user experience.

v0.3

  • Now background must be in a vertical position. New background size must be smaller or equal than 720x1280. (Performance reasons).
  • Using double buffering for rendering in order to avoid flickering and also improve performance.
  • Fully touch support. Thanks to @pixel-stuck.
  • Now payloads are sorted by name.
  • Correctly deallocate argon-nx from memory when launching payloads.
  • Improve system stability to enhance user experience.

v0.2

  • Cancel autolaunch/autochainloading of argon/payload.bin by holding VOL_DOWN_BUTTON when ArgonNX is booting.
  • Minerva training to improve performance.
  • Custom background. Just place your custom background inside argon directory and name it background.bmp. Use of custom background is optional.
  • Custom title. Just place your custom title inside argon directory and name it title.bmp. Use of custom title is optional.
  • By default ArgonNX uses dark background instead of the white one in v0.1.
  • Payloads' names now are centred below the logo.
  • Partial touch support. To enable touch support create an empty file called touch inside argon directory.
  • Take Screenshots to share your argon configuration.
  • Improve system stability to enhance user experience.

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.

External links

Advertising: