HAC-001: Nintendo SwitchHAC-001-01: Nintendo Switch V2 (versión con batería mejorada)HAC-002: adaptador de corrienteHAC-003: batería de la consolaHAC-006: batería del Joy-ConHAC-007: dockHAC-008: cartucho de juegoHAC-009: caja de los cartuchosHAC-011: soporte para Joy-ConHAC-012: soporte de carga para Joy-ConHAC-013: mando proHAC-010: cable usb de cargaHAC-014: correa para Joy-ConHAC-015: Joy-Con izquierdoHAC-016: Joy-Con derechoHAC-017: joy-con handleHAC-018: protector de pantallaHAC-019: batería extendida de Joy-Con izquierdoHAC-020: batería extendida de Joy-Con derechoHAC-021: carcasa de transporteHAC-022: Ring-conHAC-023: Correa para la piernaPermite conectar la consola a una televisión y cargarla al disponer de conexiones HDMI, USB tipo A y USB tipo C
Si queremos conectar por cable Ethernet el adaptador USB debe tener los chipset AX8817X o 88772 de ASIX.
Mandos inalámbricos que vienen con la consola. Se pueden desacoplar de ella (si no se trata de la Nintendo Switch Lite).
Los Joy-Con utilizan tecnología Bluetooth. El Joy-Con derecho tiene un chip NFC para usar, por ejemplo, en juegos compatibles con amiibo. El Joy-Con derecho también tiene una cámara infrarroja de movimiento
Hay diferentes planes para poder jugar online con una cuenta de Nintendo. La más completa es la que tiene el pack de expansión que incluye:
El proceso de jailbreak consiste en tener acceso completo a la consola. Esto permitirá instalar cualquier software en ella. En las primeras versiones es posible vía software. En las posteriores, solo se puede mediante la instalación de un implante hardware.
Introduciendo el número de serie en webs como Checker o Is my Switch Patched?, podemos saber si la Nintendo Switch está parcheada o no. Lo normal es que las que salieron en 2017 lo sean. En caso de que estén parcheadas, quedaría recurrir a la instalación de chips (HWFLY, por ejemplo).
Otras páginas donde comprobar el número de serie:
Necesitamos tener:
El Custom Firmware no es permanente actualmente, así que cada vez que reiniciemos la consola, se eliminará
Debemos tener la consola con suficiente carga
Si la consola muestra el logo de Nintendo y enciende con normalidad o se apaga repentinamente, no hemos entrado en modo RCM. En otro caso, si la consola no se enciende y la pantalla queda apagada, la consola está en RCM.
Con la consola en modo RCM, necesitamos cargarle un payload.
Si usamos Windows:
Abrimos TegraRcmGUI, vamos a Settings y pulsamos en Install Driver.
Conectamos la Switch, en modo RCM, al PC a través de cable USB.
En TegraRcmGUI, vamos a la pestaña Payload. La consola debe aparecer detectada en la parte inferior izquierda. Pulsamos el botón que hay al lado de Inject payload y elegimos (la primera vez) el payload de TegraExplorer. Pulsamos en Inject payload para enviar el payload a la consola.
Si usamos Android:
Instalamos Rekado descargándonos el .apk en el terminal Android e instalándolo.
Rekado ya incluye los payloads Fusee y Hekate.
Si usamos Linux:
Homebrew SD Setup es una aplicación web que permite elegir las aplicaciones homebrew y los CFW que queramos para crear un fichero zip que luego extraeremos en la tarjeta SD con todo lo necesario para nuestra consola.
En definitiva, nos ahorra la recolección de ficheros necesarios para meter comenzar en el Homebrew de la Nintendo Switch.
Para poder instalar un Custom Firmware (CFW) en una Nintendo Switch sin parchear, necesitaremos:
Los pasos que daremos serán:
Antes de empezar, conviene tener la Switch actualizada a la última versión del firmware oficial (System → System Update)
Formatearemos la tarjeta micro SD en FAT32.
Tenemos que meter en la tarjeta:
Usamos el programa TegraRcmGUI (https://github.com/eliboa/TegraRcmGUI) para inyectar el payload que permitirá arrancar atmosphère. Sin embargo, para evitar el ban y otras cosas, lo que queremos es que la NIntendo Switch primero arranque en hekate (menú de arranque). Antes de proceder:
Si lo hemos hecho bien, TegraRcmGUI mostrará RCM O.K. Podemos retirar el RCM jig. Ya podemos usar el mismo programa para inyectar el payload de hekate.
Para inyectar payloads sin usar un ordenador, podemos usar el RCMloader. Se pueden encontrar en Aliexpress por unos 10 €. También es posible hacerlo desde un dispositivo Android con Rekado
El payload también se puede instalar desde equipos Linux o macOS mediante fusee-interfacee-tk
Una vez en hekate, lo primero será hacer un backup:
Cuando termine: Tools → Backup eMMC → eMMC BOOT0 & BOOT1
Ya hemos hecho un backup de la SysNAND (ocupa como 30 GB).
Ahora vamos a Tools → USB Tools → SD Card. Esto permitirá ver el contenido la tarjeta SD de la Switch desde el PC. Podremos ver un nuevo directorio llamado backup que contiene la copia que hicimos a la SysNAND. Podemos llevarlo a otro sitio más seguro.
Necesitamos particionar la tarjeta SD
Dentro de hekate: Tools → Partition SD card. Elegimos un esquema de particionado:
Luego pulsamos en Next Step → Start. Si queremos hacer antes una copia del contenido de la tarjeta SD (porque se eliminará todo), podemos pulsar el botón SD UMS para ver la SD de la Switch desde el PC
Cuando termine el proceso, vamos al menú Home → emuMMC → Create emuMMC → SD Partition → Part 1
Al terminar y volver a emuMMC MAnage, veremos que en la parte de emuMMC Info & Selection pone “Enabled!”
Vamos a Tools → USB Tools → SD Card para ver la SD de la Switch desde el PC. Veremos una partición con las carpetas
bootloaderemuMMCLuego hay que meter también:
exosphere.ini es un fichero de texto con la siguiente configuración (para EmuNAND):
[exosphere] debugmode=1 debugmode_user=0 disable_user_exception_handlers=0 enable_user_pmu_access=0 blank_prodinfo_sysmmc=0 blank_prodinfo_emummc=1 allow_writing_to_cal_sysmmc=0 log_port=0 log_baud_rate=115200 log_inverted=0
Dentro de la carpeta atmosphere → hosts (hay que crear esta carpeta) habrá un fichero default.txt con una lista de redirecciones de los servidores de Nintendo hacia la nada para poder bloquearlos:
# Block Nintendo Servers 127.0.0.1 *nintendo.* 127.0.0.1 *nintendo-europe.com 127.0.0.1 *nintendoswitch.* 95.216.149.205 *conntest.nintendowifi.net 95.216.149.205 *ctest.cdn.nintendo.net
Si quisiéramos arrancar en SysNAND, tendríamos que renombrar la carpeta hosts a cualquier otra cosa.
A partir de ahora, para usar la Switch tenemos que entrar primero en hekate. Si apagamos la Switch completamente, tendremos que inyectar el payload de hekate de nuevo.
Para activar AutoRCM (y que al pulsar el botón de apagado la NIntendo se ponga en modo RCM), se hace desde hekate: Home → Tools y en la parte inferior pulsamos en RCM y luego AutoRCM hasta que ponga enabled.
Con AutoRCM, si apagamos la consola, no necesitaremos el RCM jig para meternos en modo RCM y luego hacer la inyección del payload de hekate. Nos ahorramos el paso de colocar el RCM jig.
Para entrar en el CFW, vamos desde hekate y pulsamos en Launch y luego en Atmosphere CFW
Si vemos el hbmenu ya estamos en Atmosphere.
Si vamos a jugar a juegos “pirata” con Atmosphère, necesitamos tener instalados los signature patches correspondientes a la versión de Atmosphère. Los creadores de este CFW están en contra de la piratería, por eso, por defecto, no dejan instalar copias pirata. Instalando estos signature patches nos saltamos esa protección.
Si arrancamos Atmosphère y nos muestra el texto Applet Mode quiere decir que está en un modo de RAM reducida, es decir, que no tendremos acceso a toda la memoria de la consola y habrá aplicaciones que no funcionen. Para lanzar una aplicación en modo normal (y evitar el Applet Mode) mantendremos pulsado el botón R.
Buscar ficheros NSP y luego instalarlos
Metemos el contenido de la carpeta backup dentro de la que pone restore (está dentro de backup) y desde hekate: Tools → Restore eMMC → eMMC BOOT0 & BOOT1. Después Tools → Restore eMMC → Restore eMMC RAW GPP
Debe añadirse como payload Loackpick_RCM que copiará las claves en la memoria SD /switch/prod.keys y las titlekeys a /switch/title.keys
El fichero prod.keys se puede usar para convertir juegos.
Lo que puede hacer Nintendo si ejecutamos software pirata es prohibir el uso online. Si no nos interesa el modo online y queremos “ocultarnos” de Nintendo hay varias opciones:
SysNAND / SysMMC = almacenamiento del sistema
HOS = Horizon Operating System (sistema operativo de Switch)
EmuNAND / EmuMMC sería la copia de SysNAND
Se supone, aunque no es 100 % seguro, que usando dual boot y Exosphère no nos podrán benear. Eso sí, nada de jugar online. Si se quiere jugar online, es necesario hacerlo desde la SysNAND y con juegos originales
Los cartuchos de juegos de Nintendo Switch van desde 1 GB hasta 64 GB. Sin embargo, no todo el espacio está ocupado. Para hacerse una idea real de lo que ocupa cada juego, podemos ver la descarga digital desde la tienda digital de Nintendo. Los tamaños van desde 0.8 GB hasta los 46,2 GB (por ahora) correspondiente al NBA 2K22.
Los dumps son volcados de los juegos originales que se vuelcan a uno o varios ficheros digitales.
Formatos:
Los ficheros NSP se instalan en la memoria interna (con Goldleaf o Tinfoil), ocupan menos espacio. Muchas probabilidades de acabar baneado. La ventaja es que suelen incluir las actualizaciones de los juegos.
Los XCI no se instalan en la memoria interna, pero hay que usar un CFW (SX OS o Atmosphère).
Cuando hagamos un volcado de un cartucho original, es importante no eliminar el certificado. El certificado es único de cada cartucho. Sin él, es posible que nos baneen si jugamos online.
Programas para hacer dumps (se lanzan desde un CFW, a través del Homebrew Launcher):
Podemos ver/extraer el contenido de un fichero XCI con hactool:
hactool --outdir ./output -x -t xci yourgame.xci
Se puede usar la utilidad XCI Cutter para eliminar el espacio vacío en ficheros XCI, dividirlos en trozos más pequeños o unirlos en un único fichero.
Esta sección se refiere a juegos en formato XCI o NSP. Con un CFW como Atmosphère se puede utilizar la aplicación Tinfoil para instalarlos en la memoria interna de la Switch o en la tarjeta micro SD.
Una opción más recomendable es usar DBI ya que permite la instalación a través de MTP, USB, HTTP, USB externos y más.
El programa Haku33 se supone que es capaz de hacer un reinicio de la Nintendo Switch y dejarla como venía de fábrica.
La motivación de querer hacer esto es por no tener una copia limpia de la SysNAND. Útil si queremos eliminar también todo rastro de CFW y volver a usar el online de forma legal.
Si solo hemos usado CFW desde la EmuNAND/EmuMMC, bastaría con borrar todos los archivos de la SD excepto el directorio Nintendo. Tendríamos también que formatear la tarjeta SD si la hemos usado para tener en una partición la EmuNAND y dejaríamos espacio para la SysNAND.
TegraExplorer también tiene una opción llamada SystemWipe que haría lo mismo que Haku33.
Gestor de arranque de Nintendo Switch. También permite parchear el firmware, hacer copias de seguridad de la NAND y mucho más.
Más información en esta wiki.
Ponemos la Switch en modo RCM y cargamos el payload hekate_ctcaer_X.X.X.bin
CFW (firmware personalizado) más popular y reciente.
Se compone de varias partes:
Este CFW provee más características que el original de Nintendo:
Tras instalarlo, tendremos un carpeta llamada atmosphere en la raíz de la tarjeta SD.
En cada actualización de Atmosphère, se reemplaza el payload que hay en /atmosphere por /atmosphere/reboot_payload.bin. Si no queremos que cargue automáticamente Atmosphère, lo sustituiremos por el payload de hekate.
Programas que se “inyectan” en el modo RCM de la Nintendo Switch.
Extrae las claves de cifrado para usar en software como hactool, hactoolnet/LibHac, ChoiDujour, etc. sin tener que arrancar Horizon OS (en SysNAND).
Tras usarlo, se generarán dos nuevos ficheros en la memoria SD:
/switch/prod.keys/switch/title.keysEl CFW Atmosphère ha sido creado por gente que está en contra de la piratería por tanto no es posible instalar y jugar a juegos NSP pirata.
Sin embargo, otras personas han hecho parches para saltarse esta limitación: sigpatches o signature patches.
Cada vez que actualicemos atmosphère, tendremos que actualizar los sigpatches correspondientes a dicha versión. La instalación de estos parches suele ser copiar ficheros dentro de la carpeta atmosphere.
Con la última versión de fusee.bin en el directorio bootloader/payloads (de la tarjeta SD), inyectamos hekate_ctcaer.bin mediante el método de RCM, pero no abrimos atmosphère desde Launch sino que vamos a Payloads y ahí seleccionados fusee.bin. Esto hará que se lance atmosphère, pero con los sigpatches habilitados
Si tenemos algún problema, debemos realizar la apertura de cualquier puerto del 1 a 65535 del protocolo UDP.
Para comprobar el tipo de NAT, seleccionamos en el menú HOME Configuración de la consola (icono engranaje) → Internet → Prueba de conexión.
El campo Tipo de NAT nos mostrará la NAT que tenemos. Esto irá desde A (la mejor comunicación peer-to-peer) hasta F (no se pudo completar la comunicación P2P). Con tipo A y B no hay problema para descargar de la Nintendo eShop ni para jugar online.
Existe un proyecto llamado LAN Play que permite usar el modo LAN (de los juegos que lo soportan), pero a través de Internet. Desde su web podemos ver los servidores a los que podemos conectarnos, instrucciones del programa y los juegos compatibles.
Supongamos que tenemos un amigo en otra ciudad. Cada uno con una Switch y el juego al que queremos jugar. Cada Nintendo Switch debe estar conectada a la LAN de cada uno y luego modificar la configuración de la conexión de la siguiente manera:
10.13.XX.YY (puede ir desde 10.13.0.1 a 10.13.255.254, excepto 10.13.37.1)Cada uno debe usar una IP distinta (por ejemplo, tú la 10.13.0.1 y tu amigo la 10.13.0.2)
Ahora, cada uno, desde un PC debe ejecutar el cliente de LAN Party. Por ejemplo, desde Linux:
sudo ./lan-play-linux --relay-server-addr switch.lan-play.com:11451
Donde switch.lan-play.com:11451 es el servidor al que se conectarán ambas Switches para poder verse.
Si todo ha ido bien, ya podremos jugar a los videojuegos que tengan la función de LAN con nuestro amigo.
Si queremos montar nosotros nuestro propio servidor, podemos hacerlo mediante Docker:
docker run -d -p 11451:11451/udp -p 11451:11451/tcp spacemeowx2/switch-lan-play
Para ver la versión del firmware instalado, desde el menú HOME, vamos a las Configuración de la consola → Consola → Actualización de la consola.
Desde el menú HOME, vamos a las Configuración de la consola → Consola y veremos la versión instalada bajo Actualizar la consola.
Modelo HAC-001:
Modelo HAC-001(-01):
Consola de partida: Nintendo Switch V1 (Erista) vulnerable.
Ingredientes:
Lanzo la aplicación fusee-interfacee-tk como root, conecto la Switch en modo RCM al PC vía USB, cargo el fichero hekate.bin y lo envío. Salida por consola de fusee-interface-tk:
Important note: on desktop Linux systems, we currently require an XHCI host controller. A good way to ensure you're likely using an XHCI backend is to plug your device into a blue 'USB 3' port. Identified a Linux system; setting up the appropriate backend. Found a Tegra with Device ID: b'\x80\x01\xfc\x07\x00\x00\x00 Ev=d\x01\x10\x10b' Setting ourselves up to smash the stack... Uploading payload... Smashing the stack... skipping checks The USB device stopped responding-- sure smells like we've smashed its stack. :) Launch complete!
En la nintendo Switch aparece el siguiente texto en pantalla:
Missing LP0 (sleep) lib! Missing Minerva lib! Update bootloader folder! Press any key...
Tras pulsar cualquier botón, aparece otro mensaje y a continuación se carga el menú textual de hekate y abajo sale “Warning: Nyx is missing”. Parece que eso puede tener que ver con no haber formateado la tarjeta micro SD.
Apago, formateo la tarjeta en FAT32 y comienzo el proceso, pero esta vez para cargar el payload Lockpick_RCM. Elijo la opción Dump from SysNAND. Se supone que guarda todo en /switch/ de la SD. Tras esto, reinicio en RCM y cargo hekate. Mismo problema con el menú textual y el warning de Nyx.
En el PC, miro el contenido de la SD:
.
├── bootloader
│ ├── hekate_ipl.ini
│ ├── ini
│ ├── payloads
│ └── sys
└── switch
├── dev.keys
├── lockpick_rcm.bmp
├── prod.keys
└── title.keys
lockpick_rcm.bmp: captura que hice cuando terminó el dump de las claves en Lockpick_RCM.A partir de lo que descargo desde https://www.sdsetup.com/, copio los archivos a la raíz de la SD sustituyendo los que ya tenía.
Modo RCM y cargo hekate. Esta vez sí me aparece el menú gráfico de hekate preguntando si quiero establecer la fecha para Nyx.
Voy a hacer un backup de la SysNAND: Tools → Backup eMMC → eMMC RAW GPP. Hará comprobación del espacio libre y comenzará el proceso.
La copia requiere unos 31 GB y el proceso completo le llevó 29 minutos con una tarjeta micro SD de 256 GB de Sandisk
Cuando termine, cerramos, volveremos al menú anterior y hacemos el backup eMMC BOOT0 & BOOT1
La copia requiere unos 4 MiB y el proceso completo le llevó 1 segundo
Ya hemos hecho un backup completo de la SysNAND.
Ahora vamos a Tools → USB Tools → SD Card. Esto permitirá ver el contenido la tarjeta SD de la Switch desde el PC. Podremos ver un nuevo directorio llamado backup que contiene una carpeta con la copia que hicimos a la SysNAND. Aprovecho a copiarlo fuera de la tarjeta SD.
Voy ahora con la creación de la EmuNAND. Como se necesita particionar la tarjeta SD, se perderá todo lo que ella contiene, así que hay que hacer ante una copia de lo que queramos salvar.
En hekate, Tools → SD Partitions & USb → Partition SD card. Elegimos un esquema de particionado:
Luego pulsamos en Next Step → Start.
Si queremos hacer antes una copia del contenido de la tarjeta SD (porque se eliminará todo), podemos pulsar el botón SD UMS para ver la SD de la Switch desde el PC
Cuando termine el proceso, pulsamos Close, vamos al menú Home → emuMMC → emuMMC Tools → Create emuMMC, pulsamos en SD Partition y luego en Part 1.
El proceso dura sobre 24 minutos en una tarjeta micro SD Sandisk de 256 GB.
Al terminar y volver a emuMMC Manage, veremos que en la parte de emuMMC Info & Selection pone Enabled!.
Vamos a Tools → USB Tools → SD Card para ver la SD de la Switch desde el PC. Veremos una partición con la estructura:
├── bootloader
│ ├── hekate_ipl.ini
│ ├── ini
│ ├── nyx.ini
│ ├── payloads
│ │ └── fusee.bin
│ ├── res
│ │ ├── icon_payload.bmp
│ │ └── icon_switch.bmp
│ ├── sys
│ │ ├── emummc.kipm
│ │ ├── libsys_lp0.bso
│ │ ├── libsys_minerva.bso
│ │ ├── nyx.bin
│ │ ├── res.pak
│ │ └── thk.bin
│ └── update.bin
└── emuMMC
├── emummc.ini
└── RAW1
└── raw_based
Luego hay que meter también:
Desde hekate vamos a Launch y elegimos Atmosphere para cargar este CFW. Para saber si estamos en Atmosphere vamos a Configuración de la consola → Consola, en Actualización de la consola veremos “Versión actual: X.X.X|AMS XXX|E”. Si aparece “AMS”, estamos en Atmosphere. Si aparece “E” es que hemos arrancado desde la emuNAND.
Para abrir el Homebrew Menu, mantenemos pulsado el botón R del joycon mientras lanzamos un juego. De esta manera entraremos en el Homebrew Menu con acceso completo a la memoria RAM.
dbi es un programa que permite instalar NSP, NSZ, XCI y XCZ. Permite instalar desde MTP, USB, http (desde tu servidor personal), USB externo…
DBI es mejor opción que AWOO Installer o Goldleaf para instalar juegos
Además, puede visualizar imágenes en jpg, png y psd. También soporta comprimidos con zip, rar y contenedores cbr/cbzs. Abre ficheros de texto y también puede ser usado como gestor de ficheros (copiar, mover, borrar archivos y carpetas…). También puede hacer copia de seguridad y restauración de partidas guardadas.
Nos movemos al directorio de la SD donde tengamos el fichero NSP (o cualquiera de los soportados por DBI), nos colocamos sobre el fichero y pulsamos A. Podremos elegir si instalar el juego en la memoria NAND o en la tarjeta SD y si queremos eliminar el fichero origen ya que tras la instalación no nos hará falta.
Instalar un juego de 3 GB dura sobre 3 minutos en una tarjeta de Sandisk de 256 GB
Si tenemos la tarjeta formateada en FAT32, no podremos copiar ficheros más grandes de 4 GB. En esos casos, debemos realizar la instalación usando otro método como vía USB.