PortNX
Nintendo Switch Homebrew · v2.1.0

Instale ports no Switch
com uma UI moderna

Homebrew para Nintendo Switch que navega, baixa e instala ports com interface Plutonium, visual em grid/list view e fila inteligente.

⬇ Download NRO v2.1.0 ⌥ Ver no GitHub
C++20 Plutonium SDL2 Atmosphere CFW Stream install Queue manager Open Source

Tudo que você precisa

Interface moderna e intuitiva para instalar ports de forma rápida e organizada.

🏠

Home screen intuitiva

Três cards SNES-palette (Browse, Fila, Ajustes) com navegação por analog stick e touch.

📊

Grid ou List view

Browse em grade 3×2 (256×256 ícones) ou lista full-width. Toggle com botão Y, L/R para paginar.

Stream install

Instala ports direto pelo sistema do console, sem armazenamento intermediário no SD.

📥

Fila inteligente

Adicione vários títulos à fila. Pressione X para pular o item atual — próximo começa automaticamente. Re-adicione a qualquer hora.

🎮

Controles completos

Navegação por D-Pad, analog sticks, botões e touch em todas as telas principais.

Cache inteligente

Ícones são cacheados localmente. Índices remotos suportam JSON puro ou criptografado (TINFOIL).

O fluxo do app

Desde o launch até a instalação, entenda cada tela e o que você controla.

🏠 Home Screen

Ao abrir o PortNX, você vê três cards coloridos:

  • Browse (vermelho): navegue catálogos
  • Fila (azul): acompanhe downloads/installs
  • Ajustes (verde): configure destino e opções de instalação

Navegue com D-Pad / Sticks ou toque. Pressione A para entrar.

⚙️ Ajustes

Configure o app uma única vez:

  • Destino da instalação: SD card ou NAND

Navegue com Up/Down ou toque. Pressione A para editar.

🗂 Browse

Veja todos os ports disponíveis no seu catálogo:

  • Grid (3×2): visualização por ícone com nome e metadata
  • List: visualização em linhas, compacta com ícone pequeno
  • Toggle entre os dois com Y
  • Pagine com L/R ou Up/Down (wrap automático)

Selecione um title com A para queuer download + instalação.

📥 Fila

Acompanhe downloads e instalações em tempo real:

  • Mostra o item atual com barra de progresso e porcentagem
  • Lista os títulos ainda na fila (máximo 5 visíveis)
  • Histórico de instalações bem-sucedidas
  • Pressione X para cancelar o item atual (próximo inicia automaticamente)

Voltando ao Browse, você pode re-adicionar um item cancelado.

Pronto em 4 passos

Requer um Nintendo Switch com Atmosphere CFW instalado.

1

Baixe o PortNX.nro

Na página de releases do GitHub, baixe a versão mais recente do PortNX.nro.

2

Copie para o SD

Coloque o arquivo em sdmc:/switch/PortNX/PortNX.nro.

3

Abra pelo hbmenu

No hbmenu do Switch (segure R + rode um jogo), selecione PortNX.

4

Navegue e instale

Abra o Browse, escolha um port e acompanhe tudo pela Fila.

sdmc:/switch/
PortNX/
├── PortNX.nro
├── config.json      # gerado automaticamente
└── icons/           # cache de ícones
    └── *.jpg
⚠ Requisitos

  • Nintendo Switch com Atmosphere CFW
  • prod.keys acessível ao homebrew

Formato do índice JSON

O PortNX usa o formato padrão do Tinfoil. Qualquer servidor compatível com Tinfoil funciona. Abaixo um exemplo mínimo e um completo.

Mínimo

index.json
{
  "files": [
    {
      "url": "https://example.com/Port.pkg",
      "size": 1234567890
    }
  ]
}

Completo

index.json
{
  "files": [
    {
      "url": "https://cdn.example.com/Port.pkg",
      "name": "Game Name",
      "size": 1234567890,
      "version": "1.0.0",
      "icon_url": "https://cdn.example.com/icon.jpg"
    }
  ],
  "directories": [
    "https://cdn.example.com/action/"
  ]
}
🔐 Índice criptografado  —  O PortNX também aceita índices no formato TINFOIL (binário com cabeçalho TINFOIL). Para gerar índices criptografados compatíveis, use as ferramentas em tools/.

Criptografar seu índice

Se você quer servir um catálogo privado ou seguro, use o script Python em tools/ para encriptar seu índice JSON.

Dependências

bash
pip install cryptography zstandard

Encriptar

bash
# Com zstd (recomendado)
python encrypt_index.py \
  index.json --compress zstd \
  --out index.tfl

Como usar:

  1. Coloque public_key.pem na mesma pasta do script
  2. Execute python encrypt_index.py seu_index.json ou com flags --compress e --out
  3. Escolha o formato: zstd (melhor ratio), zlib (compatível) ou none (apenas criptografia)
  4. Upload o arquivo .tfl ao seu servidor HTTP/HTTPS

Compilar do fonte

Requer devkitPro com as toolchains do Switch.

bash
# Clone com submodules
git clone --recurse-submodules \
  https://github.com/CostelaCNX/PortNX.git

# Build
cd PortNX
make -j$(nproc)

# Output
 PortNX.nro