nton


Namenton JSON
Version 2.1.1 PyPI version JSON
download
home_pagehttps://github.com/rlaphoenix/nton
SummaryNintendo Switch NRO to NSP Forwarder.
upload_time2024-01-20 00:42:01
maintainer
docs_urlNone
authorrlaphoenix
requires_python>=3.8,<3.13
licenseGPL-3.0-only
keywords nintendo switch homebrew forwarder
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # NTON

[![Build status](https://github.com/rlaphoenix/nton/actions/workflows/ci.yml/badge.svg)](https://github.com/rlaphoenix/nton/actions/workflows/ci.yml)
[![PyPI version](https://img.shields.io/pypi/v/nton)](https://pypi.python.org/pypi/nton)
[![Python versions](https://img.shields.io/pypi/pyversions/nton)](https://pypi.python.org/pypi/nton)
<a href="https://github.com/rlaphoenix/nton/blob/master/LICENSE">
  <img align="right" src="https://img.shields.io/badge/license-GPLv3-blue" alt="License (GPLv3)"/>
</a>

<img src="https://github.com/rlaphoenix/nton/assets/17136956/c6306192-9a57-41f2-8840-cc8db03fef93" style="width:300px" align="right" />

NTON is a Nintendo Switch NRO to NSP Forwarder for firmware 12.0.0 and newer.

A forwarder lets you open Homebrew files from your SD card through the Nintendo Switch Home Screen instead
of the Homebrew Launcher.

<img src="https://user-images.githubusercontent.com/17136956/206882948-4f05cace-16a3-4300-9047-8cba33106a64.jpg" style="width:505px" />

## Features

- ⚙ Firmware 12.0.0+ Support
- 🛡️ Title ID Conflict Checks
- 🤖 Automatically Extracts Title Information and Icon from NRO
- 🕹️ Direct Game Forwarding
- 🎥 Enable or Disable Video Capture and Screenshots
- 💾 1MB NSP Install Size
- 🖼️ Custom Icons
- 🧩 Plug-and-play
- ✨ GUI and CLI Interfaces
- ❤️ Forever FOSS!

## Installation

*Windows Installers for the GUI version is available on the [Releases] page.*

Alternatively you can download and install NTON from PIP/PyPI:

```shell
$ pip install nton[gui]
```

*(Exclude `[gui]` if you do not plan on using the GUI)*

> **Note**
If pip gives you a warning about a path not being in your PATH environment variable then promptly add that path then
close all open command prompt Windows, or running `nton` won't work as it will not be recognized as a program.

You now have the `nton` package installed - Voilà 🎉!  
Launch the GUI by running `nton` without another subcommand in your Terminal or Windows Run.  
Otherwise, use the CLI by checking out `nton --help`.

  [Releases]: <https://github.com/rlaphoenix/nton/releases>

### Keys

Proprietary Keys known as `prod.keys` are required. You can obtain them from your own personal Switch using
Lockpick_RCM.

It must be placed at `C:\Users\<User>\.switch\prod.keys`, in your current working directory, or in
NTON's installation directory for NTON to be able to find and use the keys.

## Usage

NTON is quite simple, just give it the path to the NRO on your microSD card!

*For example, to create a forwarder for the Daybreak Homebrew included with Atmosphere, it's as simple as:*

```shell
nton build "D:/switch/daybreak.nro"
```

This will build a forwarder with the Title Name, Publisher, Version, and Icon automatically extracted from the NRO.
The Title ID will be a randomly assigned value within generally conformed bounds. You may manually set a value with
`--name`, `--publisher`, `--version`, `--icon`, and `--id` respectively.

The Title ID is automatically checked against a periodically updated list of pre-existing System and Software Title IDs
to ensure a collision does not occur. However, you should still be cautious and verify the Title ID is not already used
by other Software before using. 

> **Note**<br>
> While NTON can be used on NRO files stored on your PC, it was designed to be used directly from your Switch's
> microSD card. If you prefer to create forwarders with NRO files on your PC, or for batch purposes, you can specify
> the path that the NRO file will reside on your microSD card during generation with `--sdmc`.

For example, to make a forwarder for an NRO that is on your PC:

```shell
nton build "C:/Users/rlaphoenix/Downloads/haze.nro" --sdmc "/switch/haze.nro"
```

### Direct RetroArch Game forwarding

Use a RetroArch Game Core as the NRO path and provide the path to the ROM on your Switch's microSD card with `--rom`.  
This will then load the Core directly under RetroArch and provide the path to the ROM as a startup argument to the
RetroArch Core.

> **Note**
> - You must use a path to a RetroArch Game Core NRO, not the path to the RetroArch NRO itself.
> - Do not move, delete, or rename the ROM or the Core NRO files that are on your microSD card, or it will break.

## Storage Sizes

On Installation an NSP can allocate storage for specific purposes. There's three primary types of Storage:

- User Account Save Data: Storage allocated to each User profile. Most titles use this to save game progress.
- Device Save Data: Storage allocated to the Device itself. Typically used for data or information that should be set 
  to and used by all User profiles. For example, Animal Crossing: New Horizons uses this to store the Island data for
  all profiles to use.
- Cache Storage: Storage allocated for temporary data. Data stored here will be wiped without warning.

The NSP can specify how much data to allocate initially, as well as the maximum amount of storage that data can occupy
over time. Furthermore, the initial and maximimum size allocated for Journaling (a form of recovery and data integrity)
can also be specified.

A Forwarder like the ROM NTON uses does not need any form of storage or save data. Therefore, NTON automatically sets
all storage sizes to `0` to reduce storage usage.

## Troubleshooting

Before continuing try running the homebrew from the Homebrew Launcher and see if it works through there.
If it does not work through the Homebrew launcher either, then it was never the forwarder's fault, and you should
check on your NRO or application installation.

Please note that using Forwarders others have created has a good chance of not working on your system.
The location of the NRO on their system may differ from the location on your system, hence the NSP won't be able
to load the homebrew. I will not provide support if you are having an issue with a Forwarder you did not build
yourself.

### The forwarder does not launch, "The software was closed because an error occurred."

Your "sigpatches" (signature patches) that allow unsigned titles to launch is likely outdated or not set up correctly.
Sigpatches can go outdated from Horizon OS firmware updates, Atmosphere updates (as well as silent updates). It is
recommended to use the [sys-patch](https://github.com/ITotalJustice/sys-patch) sys-module to automatically patch your
system from signature checks as well as other useful patches. The default configuration is fine for the majority of
systems and is a simple copy & paste to your microSD card to install.

It's also possible the `prod.keys` you used with NTON is outdated for your firmware. Get new ones with Lockpick_RCM
and make sure you choose to get keys from the SysMMC or EmuMMC that you will be installing the forwarder on (or
whichever has a newer firmware version).

### The forwarder starts loading but then crashes

The NRO path set when building the forwarder is incorrect or the NRO file is currently missing (or your microSD card is
not inserted). Make sure the path you choose starts with `/` and is an absolute path to an existing NRO file on your
Switch's microSD card (not your PC).

### The forwarder's icon is a '?'

This happens when the `icon_AmericanEnglish.dat` within the built forwarder is not to the spec that Nintendo likes, in
some way. This is usually caused by the format of the image not being JPEG, or it has EXIF data or other unnecessary
extra metadata.

> **Note**<br>
This is considered a bug if it happens to you after using NTON as it should automatically sanitize the
images when building the forwarder. If this happens to you, please report what image you chose to use, or give
information on what exact NRO you were making a forwarder from.

### The forwarder's icon is a loading circle, opening fails

The installation of the Forwarder NSP failed in some way and the result is a corrupt title under that Title ID.
This may have happened when trying to install data to the Title ID you chose or had randomly assigned to your forwarder
NSP on an unsupported firmware version. This also happens when trying to install DLC to a Title without having the
minimum required Game Update for that DLC (i.e. Installing the DLC Courses while on Mario Kart 8 Deluxe v1.0). However,
since this happened on your Forwarder NSP you can likely rule that out.

When this happens deleting and reinstalling the same NSP likely won't fix it or do anything. You may need to reinstall
the NSP via Goldleaf and hit "Proceed" when it warns yo uthat the title is already installed. Goldleaf will deal with
the pre-existing files properly unlike Tinfoil (where you likely had the corruption in the first place). DBI may also
help you resolve this issue as it has tools to remove partial installs and leftover files.

### The forwarder randomly stopped working, I've read everything so far

You most likely updated Atmosphere or Horizon OS's Firmware and need to update your Sigpatches. If that hasn't fixed
it, make sure you haven't deleted or moved the NRO on your Switch's microSD card. It cannot be moved as the built
forwarder has a hardcoded file path that it loads the NRO from when launched.

If it still does not work, it's possible a firmware update has broken the [forwarder ROM][ROM] that is used and needs
to be updated. Both Firmware 9.0.0 and 12.0.0 have previously broken different forwarder ROMs requiring updates. If
you believe this to be the case then please make an Issue.

## Development

The following steps are basic instructions on downloading and working on the code under a [Poetry] environment.

1. Follow Poetry's Docs to [Install Poetry].
2. Download NTON's latest code, `git clone https://github.com/rlaphoenix/nton`
3. Navigate to the downloaded code repository, `cd nton`
4. _Optionally_ have Poetry install the virtual-env in the project, `poetry config virtualenvs.in-project true` 
5. Install NTON's dependencies and development tools, `poetry install -E gui`
6. Run NTON from within the Poetry venv, `poetry run nton --help`

> **Note** If you plan to work on or use the GUI during development, then add `-E gui` during Step 5.

As shown, running the `nton` executable is somewhat different to a normal installation. This is because Poetry installs
all dependencies and the `nton` shim itself within a virtual-environment, which is like a clone of your Python install
stripped clean, with only NTON's dependencies installed. That way you don't mess around with any dependencies from any
other installed Python applications, nor the other way around. A secluded environment.

I recommend taking a look at [Poetry's Docs] for further information, why not get started by reading Poetry's guide on
[Using Your Virtual Environment].

  [Poetry]: <https://python-poetry.org>
  [Install Poetry]: <https://python-poetry.org/docs/#installation>
  [Poetry's Docs]: <https://python-poetry.org/docs>
  [Using Your Virtual Environment]: <https://python-poetry.org/docs/basic-usage/#using-your-virtual-environment>

## Credit

- [meliodas2255] for their [Open-Source forwarder ROM][ROM] supporting v12.0.0+ with both direct RetroArch Forwarding
  and general forwarding both supported.
- [vgmoose] for the [sdl-hello-world] NRO that is used in CI/CD testing.

  [meliodas2255]: <https://gbatemp.net/members/meliodas2255.410353>
  [vgmoose]: <https://github.com/vgmoose>
  [ROM]: <https://github.com/Skywalker25/Forwarder-Mod>
  [sdl-hello-world]: <https://github.com/vgmoose/sdl-hello-world>

## Licensing

This software is licensed under the terms of [GNU General Public License, Version 3.0](LICENSE).
You can find a copy of the license in the LICENSE file in the root folder

This project uses the following software:

- hacBrewPack licensed under GPL-v2 for packing the NSP: https://github.com/The-4n/hacBrewPack
- nstool licensed under MIT for NRO extraction and verification: https://github.com/jakcron/nstool
- hptnacp from hacPack licensed under GPL-v2 for creating new NACP partitions if the NRO did not have one:
  https://github.com/The-4n/hacPack/tree/master/hacPack-Tools/hacPackTools-NACP

No changes were made to any of the aforementioned software and copies of their licenses can be found next to their
binaries within the bin folder.

- [Open folder icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/open-folder)
- [Close icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/close)
- [Delete icons created by Pixel perfect - Flaticon](https://www.flaticon.com/free-icons/delete)

* * *

© rlaphoenix 2022-2024

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rlaphoenix/nton",
    "name": "nton",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<3.13",
    "maintainer_email": "",
    "keywords": "nintendo,switch,homebrew,forwarder",
    "author": "rlaphoenix",
    "author_email": "rlaphoenix@pm.me",
    "download_url": "https://files.pythonhosted.org/packages/2d/59/0cf133038764817a8a67e234d4e7b4145dd6ad95d1c8c1cccfbe2c79d04f/nton-2.1.1.tar.gz",
    "platform": null,
    "description": "# NTON\n\n[![Build status](https://github.com/rlaphoenix/nton/actions/workflows/ci.yml/badge.svg)](https://github.com/rlaphoenix/nton/actions/workflows/ci.yml)\n[![PyPI version](https://img.shields.io/pypi/v/nton)](https://pypi.python.org/pypi/nton)\n[![Python versions](https://img.shields.io/pypi/pyversions/nton)](https://pypi.python.org/pypi/nton)\n<a href=\"https://github.com/rlaphoenix/nton/blob/master/LICENSE\">\n  <img align=\"right\" src=\"https://img.shields.io/badge/license-GPLv3-blue\" alt=\"License (GPLv3)\"/>\n</a>\n\n<img src=\"https://github.com/rlaphoenix/nton/assets/17136956/c6306192-9a57-41f2-8840-cc8db03fef93\" style=\"width:300px\" align=\"right\" />\n\nNTON is a Nintendo Switch NRO to NSP Forwarder for firmware 12.0.0 and newer.\n\nA forwarder lets you open Homebrew files from your SD card through the Nintendo Switch Home Screen instead\nof the Homebrew Launcher.\n\n<img src=\"https://user-images.githubusercontent.com/17136956/206882948-4f05cace-16a3-4300-9047-8cba33106a64.jpg\" style=\"width:505px\" />\n\n## Features\n\n- \u2699 Firmware 12.0.0+ Support\n- \ud83d\udee1\ufe0f Title ID Conflict Checks\n- \ud83e\udd16 Automatically Extracts Title Information and Icon from NRO\n- \ud83d\udd79\ufe0f Direct Game Forwarding\n- \ud83c\udfa5 Enable or Disable Video Capture and Screenshots\n- \ud83d\udcbe 1MB NSP Install Size\n- \ud83d\uddbc\ufe0f Custom Icons\n- \ud83e\udde9 Plug-and-play\n- \u2728 GUI and CLI Interfaces\n- \u2764\ufe0f Forever FOSS!\n\n## Installation\n\n*Windows Installers for the GUI version is available on the [Releases] page.*\n\nAlternatively you can download and install NTON from PIP/PyPI:\n\n```shell\n$ pip install nton[gui]\n```\n\n*(Exclude `[gui]` if you do not plan on using the GUI)*\n\n> **Note**\nIf pip gives you a warning about a path not being in your PATH environment variable then promptly add that path then\nclose all open command prompt Windows, or running `nton` won't work as it will not be recognized as a program.\n\nYou now have the `nton` package installed - Voil\u00e0 \ud83c\udf89!  \nLaunch the GUI by running `nton` without another subcommand in your Terminal or Windows Run.  \nOtherwise, use the CLI by checking out `nton --help`.\n\n  [Releases]: <https://github.com/rlaphoenix/nton/releases>\n\n### Keys\n\nProprietary Keys known as `prod.keys` are required. You can obtain them from your own personal Switch using\nLockpick_RCM.\n\nIt must be placed at `C:\\Users\\<User>\\.switch\\prod.keys`, in your current working directory, or in\nNTON's installation directory for NTON to be able to find and use the keys.\n\n## Usage\n\nNTON is quite simple, just give it the path to the NRO on your microSD card!\n\n*For example, to create a forwarder for the Daybreak Homebrew included with Atmosphere, it's as simple as:*\n\n```shell\nnton build \"D:/switch/daybreak.nro\"\n```\n\nThis will build a forwarder with the Title Name, Publisher, Version, and Icon automatically extracted from the NRO.\nThe Title ID will be a randomly assigned value within generally conformed bounds. You may manually set a value with\n`--name`, `--publisher`, `--version`, `--icon`, and `--id` respectively.\n\nThe Title ID is automatically checked against a periodically updated list of pre-existing System and Software Title IDs\nto ensure a collision does not occur. However, you should still be cautious and verify the Title ID is not already used\nby other Software before using. \n\n> **Note**<br>\n> While NTON can be used on NRO files stored on your PC, it was designed to be used directly from your Switch's\n> microSD card. If you prefer to create forwarders with NRO files on your PC, or for batch purposes, you can specify\n> the path that the NRO file will reside on your microSD card during generation with `--sdmc`.\n\nFor example, to make a forwarder for an NRO that is on your PC:\n\n```shell\nnton build \"C:/Users/rlaphoenix/Downloads/haze.nro\" --sdmc \"/switch/haze.nro\"\n```\n\n### Direct RetroArch Game forwarding\n\nUse a RetroArch Game Core as the NRO path and provide the path to the ROM on your Switch's microSD card with `--rom`.  \nThis will then load the Core directly under RetroArch and provide the path to the ROM as a startup argument to the\nRetroArch Core.\n\n> **Note**\n> - You must use a path to a RetroArch Game Core NRO, not the path to the RetroArch NRO itself.\n> - Do not move, delete, or rename the ROM or the Core NRO files that are on your microSD card, or it will break.\n\n## Storage Sizes\n\nOn Installation an NSP can allocate storage for specific purposes. There's three primary types of Storage:\n\n- User Account Save Data: Storage allocated to each User profile. Most titles use this to save game progress.\n- Device Save Data: Storage allocated to the Device itself. Typically used for data or information that should be set \n  to and used by all User profiles. For example, Animal Crossing: New Horizons uses this to store the Island data for\n  all profiles to use.\n- Cache Storage: Storage allocated for temporary data. Data stored here will be wiped without warning.\n\nThe NSP can specify how much data to allocate initially, as well as the maximum amount of storage that data can occupy\nover time. Furthermore, the initial and maximimum size allocated for Journaling (a form of recovery and data integrity)\ncan also be specified.\n\nA Forwarder like the ROM NTON uses does not need any form of storage or save data. Therefore, NTON automatically sets\nall storage sizes to `0` to reduce storage usage.\n\n## Troubleshooting\n\nBefore continuing try running the homebrew from the Homebrew Launcher and see if it works through there.\nIf it does not work through the Homebrew launcher either, then it was never the forwarder's fault, and you should\ncheck on your NRO or application installation.\n\nPlease note that using Forwarders others have created has a good chance of not working on your system.\nThe location of the NRO on their system may differ from the location on your system, hence the NSP won't be able\nto load the homebrew. I will not provide support if you are having an issue with a Forwarder you did not build\nyourself.\n\n### The forwarder does not launch, \"The software was closed because an error occurred.\"\n\nYour \"sigpatches\" (signature patches) that allow unsigned titles to launch is likely outdated or not set up correctly.\nSigpatches can go outdated from Horizon OS firmware updates, Atmosphere updates (as well as silent updates). It is\nrecommended to use the [sys-patch](https://github.com/ITotalJustice/sys-patch) sys-module to automatically patch your\nsystem from signature checks as well as other useful patches. The default configuration is fine for the majority of\nsystems and is a simple copy & paste to your microSD card to install.\n\nIt's also possible the `prod.keys` you used with NTON is outdated for your firmware. Get new ones with Lockpick_RCM\nand make sure you choose to get keys from the SysMMC or EmuMMC that you will be installing the forwarder on (or\nwhichever has a newer firmware version).\n\n### The forwarder starts loading but then crashes\n\nThe NRO path set when building the forwarder is incorrect or the NRO file is currently missing (or your microSD card is\nnot inserted). Make sure the path you choose starts with `/` and is an absolute path to an existing NRO file on your\nSwitch's microSD card (not your PC).\n\n### The forwarder's icon is a '?'\n\nThis happens when the `icon_AmericanEnglish.dat` within the built forwarder is not to the spec that Nintendo likes, in\nsome way. This is usually caused by the format of the image not being JPEG, or it has EXIF data or other unnecessary\nextra metadata.\n\n> **Note**<br>\nThis is considered a bug if it happens to you after using NTON as it should automatically sanitize the\nimages when building the forwarder. If this happens to you, please report what image you chose to use, or give\ninformation on what exact NRO you were making a forwarder from.\n\n### The forwarder's icon is a loading circle, opening fails\n\nThe installation of the Forwarder NSP failed in some way and the result is a corrupt title under that Title ID.\nThis may have happened when trying to install data to the Title ID you chose or had randomly assigned to your forwarder\nNSP on an unsupported firmware version. This also happens when trying to install DLC to a Title without having the\nminimum required Game Update for that DLC (i.e. Installing the DLC Courses while on Mario Kart 8 Deluxe v1.0). However,\nsince this happened on your Forwarder NSP you can likely rule that out.\n\nWhen this happens deleting and reinstalling the same NSP likely won't fix it or do anything. You may need to reinstall\nthe NSP via Goldleaf and hit \"Proceed\" when it warns yo uthat the title is already installed. Goldleaf will deal with\nthe pre-existing files properly unlike Tinfoil (where you likely had the corruption in the first place). DBI may also\nhelp you resolve this issue as it has tools to remove partial installs and leftover files.\n\n### The forwarder randomly stopped working, I've read everything so far\n\nYou most likely updated Atmosphere or Horizon OS's Firmware and need to update your Sigpatches. If that hasn't fixed\nit, make sure you haven't deleted or moved the NRO on your Switch's microSD card. It cannot be moved as the built\nforwarder has a hardcoded file path that it loads the NRO from when launched.\n\nIf it still does not work, it's possible a firmware update has broken the [forwarder ROM][ROM] that is used and needs\nto be updated. Both Firmware 9.0.0 and 12.0.0 have previously broken different forwarder ROMs requiring updates. If\nyou believe this to be the case then please make an Issue.\n\n## Development\n\nThe following steps are basic instructions on downloading and working on the code under a [Poetry] environment.\n\n1. Follow Poetry's Docs to [Install Poetry].\n2. Download NTON's latest code, `git clone https://github.com/rlaphoenix/nton`\n3. Navigate to the downloaded code repository, `cd nton`\n4. _Optionally_ have Poetry install the virtual-env in the project, `poetry config virtualenvs.in-project true` \n5. Install NTON's dependencies and development tools, `poetry install -E gui`\n6. Run NTON from within the Poetry venv, `poetry run nton --help`\n\n> **Note** If you plan to work on or use the GUI during development, then add `-E gui` during Step 5.\n\nAs shown, running the `nton` executable is somewhat different to a normal installation. This is because Poetry installs\nall dependencies and the `nton` shim itself within a virtual-environment, which is like a clone of your Python install\nstripped clean, with only NTON's dependencies installed. That way you don't mess around with any dependencies from any\nother installed Python applications, nor the other way around. A secluded environment.\n\nI recommend taking a look at [Poetry's Docs] for further information, why not get started by reading Poetry's guide on\n[Using Your Virtual Environment].\n\n  [Poetry]: <https://python-poetry.org>\n  [Install Poetry]: <https://python-poetry.org/docs/#installation>\n  [Poetry's Docs]: <https://python-poetry.org/docs>\n  [Using Your Virtual Environment]: <https://python-poetry.org/docs/basic-usage/#using-your-virtual-environment>\n\n## Credit\n\n- [meliodas2255] for their [Open-Source forwarder ROM][ROM] supporting v12.0.0+ with both direct RetroArch Forwarding\n  and general forwarding both supported.\n- [vgmoose] for the [sdl-hello-world] NRO that is used in CI/CD testing.\n\n  [meliodas2255]: <https://gbatemp.net/members/meliodas2255.410353>\n  [vgmoose]: <https://github.com/vgmoose>\n  [ROM]: <https://github.com/Skywalker25/Forwarder-Mod>\n  [sdl-hello-world]: <https://github.com/vgmoose/sdl-hello-world>\n\n## Licensing\n\nThis software is licensed under the terms of [GNU General Public License, Version 3.0](LICENSE).\nYou can find a copy of the license in the LICENSE file in the root folder\n\nThis project uses the following software:\n\n- hacBrewPack licensed under GPL-v2 for packing the NSP: https://github.com/The-4n/hacBrewPack\n- nstool licensed under MIT for NRO extraction and verification: https://github.com/jakcron/nstool\n- hptnacp from hacPack licensed under GPL-v2 for creating new NACP partitions if the NRO did not have one:\n  https://github.com/The-4n/hacPack/tree/master/hacPack-Tools/hacPackTools-NACP\n\nNo changes were made to any of the aforementioned software and copies of their licenses can be found next to their\nbinaries within the bin folder.\n\n- [Open folder icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/open-folder)\n- [Close icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/close)\n- [Delete icons created by Pixel perfect - Flaticon](https://www.flaticon.com/free-icons/delete)\n\n* * *\n\n\u00a9 rlaphoenix 2022-2024\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-only",
    "summary": "Nintendo Switch NRO to NSP Forwarder.",
    "version": "2.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/rlaphoenix/nton/issues",
        "Changelog": "https://github.com/rlaphoenix/nton/blob/master/CHANGELOG.md",
        "Forums": "https://github.com/rlaphoenix/nton/discussions",
        "Homepage": "https://github.com/rlaphoenix/nton",
        "Repository": "https://github.com/rlaphoenix/nton"
    },
    "split_keywords": [
        "nintendo",
        "switch",
        "homebrew",
        "forwarder"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aef763a6544a1f0ad5fe2ac4d7f5b08131fe55c6590a488368582ca6cd5593cb",
                "md5": "72d82e2fdc4ddeaa1b26f7dddc5eab96",
                "sha256": "fda1ef7721a30e7f8615906f1646a9a1ef7869d661584bbbffaef13878c51991"
            },
            "downloads": -1,
            "filename": "nton-2.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "72d82e2fdc4ddeaa1b26f7dddc5eab96",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<3.13",
            "size": 2089131,
            "upload_time": "2024-01-20T00:41:58",
            "upload_time_iso_8601": "2024-01-20T00:41:58.980534Z",
            "url": "https://files.pythonhosted.org/packages/ae/f7/63a6544a1f0ad5fe2ac4d7f5b08131fe55c6590a488368582ca6cd5593cb/nton-2.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d590cf133038764817a8a67e234d4e7b4145dd6ad95d1c8c1cccfbe2c79d04f",
                "md5": "8f6640614223a90311fd307e6589ca45",
                "sha256": "1d020a534ea661a1985642ff9e0bb04429c45a3ffc2115d3476c725c4ed62900"
            },
            "downloads": -1,
            "filename": "nton-2.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "8f6640614223a90311fd307e6589ca45",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<3.13",
            "size": 2066973,
            "upload_time": "2024-01-20T00:42:01",
            "upload_time_iso_8601": "2024-01-20T00:42:01.301763Z",
            "url": "https://files.pythonhosted.org/packages/2d/59/0cf133038764817a8a67e234d4e7b4145dd6ad95d1c8c1cccfbe2c79d04f/nton-2.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-20 00:42:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rlaphoenix",
    "github_project": "nton",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "nton"
}
        
Elapsed time: 2.91420s