====== Nintendo Switch ======
* [[ocio:consolas:nintendo_switch:juegos|Juegos de Nintendo Switch]]
* [[ocio:consolas:nintendo_switch:firmware|Nintendo Switch: firmware]]
* [[ocio:consolas:nintendo_switch:jailbreak|Nintendo Switch: Jailbreak]]
* [[ocio:consolas:nintendo_switch:custom_firmware|Nintendo Switch: Custom Firmware]]
* [[ocio:consolas:nintendo_switch:homebrew|Homebrew Nintendo Switch]]
===== Versiones =====
* Nintendo Switch V1
* Nintendo Switch V2
* Nintendo Switch Lite
* Nintendo Switch OLED
===== Códigos de producto =====
* ''HAC-001'': Nintendo Switch
* ''HAC-001-01'': Nintendo Switch V2 (versión con batería mejorada)
* ''HAC-002'': adaptador de corriente
* ''HAC-003'': batería de la consola
* ''HAC-006'': batería del Joy-Con
* ''HAC-007'': dock
* ''HAC-008'': cartucho de juego
* ''HAC-009'': caja de los cartuchos
* ''HAC-011'': soporte para Joy-Con
* ''HAC-012'': soporte de carga para Joy-Con
* ''HAC-013'': mando pro
* ''HAC-010'': cable usb de carga
* ''HAC-014'': correa para Joy-Con
* ''HAC-015'': Joy-Con izquierdo
* ''HAC-016'': Joy-Con derecho
* ''HAC-017'': joy-con handle
* ''HAC-018'': protector de pantalla
* ''HAC-019'': batería extendida de Joy-Con izquierdo
* ''HAC-020'': batería extendida de Joy-Con derecho
* ''HAC-021'': carcasa de transporte
* ''HAC-022'': Ring-con
* ''HAC-023'': Correa para la pierna
* Más información en [[https://switchbrew.org/wiki/Product_Information|Nintendo Switch Product Information]]
===== Accesorios =====
==== Dock ====
Permite conectar la consola a una televisión y cargarla al disponer de conexiones HDMI, USB tipo A y USB tipo C
{{ https://www.discoazul.com/uploads/media/images/soporte-dock-set-nintendo-switch-12.jpg |}}
Si queremos conectar por cable Ethernet el adaptador USB debe tener los chipset AX8817X o 88772 de ASIX.
==== Joy-Con ====
Mandos inalámbricos que vienen con la consola. Se pueden desacoplar de ella (si no se trata de la Nintendo Switch Lite).
{{ https://fs-prod-cdn.nintendo-europe.com/media/images/10_share_images/support_9/H2x1_NSwitch_Support_Joy_Cons.jpg |}}
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
* [[https://en-americas-support.nintendo.com/app/answers/detail/a_id/22634/kw/Joy-Con%20Controller%20Diagram|Joy-Con Controller Diagram]]
===== Suscripción online =====
Hay diferentes planes para poder jugar online con una cuenta de Nintendo. La más completa es la que tiene [[https://www.nintendo.es/Nintendo-Switch-Online/Nintendo-Switch-Online-Paquete-de-expansion/Nintendo-Switch-Online-Paquete-de-expansion-2060571.html|el pack de expansión que incluye]]:
* Pase de pistas extras para el Mario Kart 8 Deluxe
* Animal Crossing: New Horizons – Happy Home Paradise
* Splatoon 2: Octo Expansion
* [[https://www.nintendo.es/Juegos/Programas-descargables-Nintendo-Switch/SEGA-Mega-Drive-Nintendo-Switch-Online-2067750.html|Juegos de Mega Drive]]
* [[https://www.nintendo.es/Juegos/Programas-descargables-Nintendo-Switch/Nintendo-64-Nintendo-Switch-Online-2067751.html|Juegos de Nintendo 64]]
===== Jailbreak =====
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.
==== Versiones hackeables ====
Introduciendo el número de serie en webs como [[https://damota.me/ssnc/checker/|Checker]] o [[https://ismyswitchpatched.com/|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:
* [[https://suchmememanyskill.github.io/guides/switchserials/|Switch Serial List]]
* [[https://ismyswitchpatched.com/|Is My Switch Patched?]]
==== Preparativos ====
Necesitamos tener:
* PC
* Cable USB para transferir datos entre PC y Nintendo Switch
* Tarjeta micro SD de al menos 64 GB (recomendable sería de 256 GB)
* Método para acceder al //Recovery Mode//.
El //Custom Firmware// no es permanente actualmente, así que cada vez que reiniciemos la consola, se eliminará
Debemos tener la consola con suficiente carga
==== Entrar en RCM (Recovery Mode) ====
- Con la consola apagada completamente, ponemos el Jig en el raíl derecho para el JoyCon. Esto hará un puente entre los pines 10 y tierra.
- Manteniendo pulsado el botón de subir volumen, presionamos el botón de encendido.
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.
==== Enviar payload ====
Con la consola en modo RCM, necesitamos cargarle un payload.
Si usamos **Windows**:
* [[https://github.com/eliboa/TegraRcmGUI/|TegraRcmGUI]] (inyector de payloads)
* [[https://github.com/CTCaer/hekate/|Hekate]] (payload)
* [[https://github.com/suchmememanyskill/TegraExplorer|TegraExplorer]] (payload)
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**:
* [[https://github.com/MenosGrante/Rekado|Rekado]]: inyector de payloads para Android.
* Cable USB (para conectar teléfono Android con la Nintendo Switch)
Instalamos **Rekado** [[https://github.com/MenosGrante/Rekado/releases|descargándonos]] el ''.apk'' en el terminal Android e instalándolo.
**Rekado** ya incluye los payloads **Fusee** y **Hekate**.
Si usamos **Linux**:
* [[https://github.com/nh-server/fusee-interfacee-tk|fusee-interfacee-tk]]
==== Homebrew SD Setup: Todo en uno ====
[[https://www.sdsetup.com/|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.
==== Resumen ====
* Tener una Nintendo Switch vulnerable ([[https://nvd.nist.gov/vuln/detail/CVE-2018-6242|CVE-2018-6242]])
* Encender la Nintendo Switch en modo RCM (//ReCovery Mode//)
* Cargar el payload para tener un menú de arranque
* Hacer copias de seguridad
* Hacer copia de seguridad de la SysNAND
* Obtener claves de la consola
* Crear EmuNAND
* Lanzar CFW
===== Custom Firmware =====
Para poder instalar un Custom Firmware (CFW) en una Nintendo Switch sin parchear, necesitaremos:
* Cable USB a USB tipo C
* Tarjeta micro SD
* RCM jig
* [[https://github.com/Atmosphere-NX/Atmosphere|atmosphère]]: CFW que nos permite acceso completo a la consola. Una vez instalado, nuestra Switch estaría liberada.
* [[https://github.com/CTCaer/hekate|hekate]]: herramienta de arranque (nos permite arrancar en otros sistemas, cambiar opciones como el modo autoRCM)
Los pasos que daremos serán:
* Copia de SysNAND
* Creación de EmuNAND
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:
* atmosphere
* bootloader
* switch
* hbmenu.nro
* hekate_ctcaer_5.8.0.bin
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:
* Conectar la Switch por USB al ordenador
* Ponerla en modo RCM (RCM jib en el raíl donde va el joy-con derecho y eso hará un puente entre los pines 1 y 10)
* Mantener presionado el botón Vol+ y pulsar 1 vez el botón de encendido.
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 [[https://www.xkit.xyz/rcmloader/|RCMloader]]. Se pueden encontrar en [[https://es.aliexpress.com/item/1005004231479926.html|Aliexpress]] por unos 10 €. También es posible hacerlo desde un dispositivo Android con [[https://github.com/MenosGrante/Rekado|Rekado]]
El payload también se puede instalar desde equipos Linux o macOS mediante [[https://github.com/nh-server/fusee-interfacee-tk|fusee-interfacee-tk]]
Una vez en hekate, lo primero será hacer un backup:
* Tools -> Backup eMMC -> eMMC RAW GPP (dura como 15 minutos)
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.
==== Creación EmuNAND ====
Necesitamos particionar la tarjeta SD
Dentro de hekate: Tools -> Partition SD card. Elegimos un esquema de particionado:
* HOS (FAT32)
* emuMMC (RAW): 29 GB (FULL)
* Linux (ext4)
* Android (USER)
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
* ''bootloader''
* ''emuMMC''
Luego hay que meter también:
* atmosphere
* switch
* exosphere.ini
* fusee.bin
* hbmenu.nro
* hekate_ctcaer_5.8.0.bin
''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.
==== Atmosphere ====
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.
* [[https://www.youtube.com/watch?v=ardN1T0CuvI| NEW ULTIMATE JAILBREAK SWITCH GUIDE - Every Single Thing In One [2022] #switch ]]
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.
==== Instalar juegos ====
Buscar ficheros NSP y luego instalarlos
===== Restaurar copia de seguridad SysNAND =====
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
===== Obtener claves de la Nintendo Switch =====
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.
* https://github.com/shchmue/Lockpick_RCM
===== Evitar baneos por parte de Nintendo =====
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:
* EmuNAND (copia de HOS)
* Exosphere: modifica el número de serie
* Incógnito: cambia el número de serie (lo mismo que Exosphere)
* DNS MiTM: bloquea los servidores de Nintendo
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
* [[https://rentry.org/AvoidSwitchBan|How to avoid getting banned]]
===== Juegos =====
==== Tamaño ====
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.
==== Dumps ====
Los //dumps// son volcados de los juegos originales que se vuelcan a uno o varios ficheros digitales.
Formatos:
* XCI: volcado (imagen) del cartucho, sin alterar. Puede contener espacio vacío. No contiene firmas.
* XCZ: versión comprimida de XCI.
* NSP: //Nintendo Submission Package// es versión digital del juego (como los que se descargan de un eShop). Contiene firmas.
* NSZ: versión comprimida de NSP. Una vez instalado, ocupa igual que un NSP, por tanto solo sería recomendable para almacenar.
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):
* [[https://github.com/DarkMatterCore/nxdumptool|nxdumptool]] (necesarias el fichero //keys// de la consola)
* WAIN Cart Dumper
* [[https://wiki.no-intro.org/index.php?title=Nintendo_Switch_Dumping_Guide|Nintendo Switch Dumping Guide]]
Podemos ver/extraer el contenido de un fichero XCI con [[https://github.com/SciresM/hactool|hactool]]:
hactool --outdir ./output -x -t xci yourgame.xci
* [[https://www.retroreversing.com/SwitchFileFormats|Nintendo Switch File Formats]]
* [[https://gbatemp.net/threads/cartridge-information-collection.492311/|Cartridge revisions and firmware requirements thread]]
==== Unir/dividir ficheros XCI ====
Se puede usar la utilidad [[https://github.com/Destiny1984/XCI-Cutter|XCI Cutter]] para eliminar el espacio vacío en ficheros XCI, dividirlos en trozos más pequeños o unirlos en un único fichero.
==== Descarga de juegos ====
* [[https://nsw2u.com|NSW2U]]
* [[https://es.wikipedia.org/wiki/Anexo:Videojuegos_m%C3%A1s_vendidos_de_la_Nintendo_Switch|Juegos más vendidos de Nintendo Switch]]
===== Instalar juegos digitales =====
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 [[https://github.com/rashevskyv/dbi|DBI]] ya que permite la instalación a través de MTP, USB, HTTP, USB externos y más.
===== Restaurar de fábrica =====
El programa [[https://github.com/StarDustCFW/Haku33|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.
[[https://github.com/suchmememanyskill/TegraExplorer|TegraExplorer]] también tiene una opción llamada SystemWipe que haría lo mismo que Haku33.
===== hekate =====
Gestor de arranque de Nintendo Switch. También permite parchear el firmware, hacer copias de seguridad de la NAND y mucho más.
* [[https://github.com/CTCaer/hekate|Repositorio oficial]]
Más información en [[.:nintendo_switch:hekate|esta wiki]].
==== Instalación ====
Ponemos la Switch en modo RCM y cargamos el payload ''hekate_ctcaer_X.X.X.bin''
===== Atmosphère =====
CFW (firmware personalizado) más popular y reciente.
* [[https://github.com/Atmosphere-NX/Atmosphere|Repositorio oficial]]
* [[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/main.md|Documentación oficial]]
Se compone de varias partes:
* **Fusée**: cargador de arranque que permite iniciar el entorno de Atmosphère.
* **Exosphère**: permite ejecutar Secure Monitor.
* **Thermosphère**: hipervisor para la NAND.
* **mesosphère**: reimplementación del kernel de Horizon OS.
* **Stratosphère**: personalización del Horizon OS a nivel de sistema.
* **troposphère**: personalización del Horitzon OS a nivel de aplicación.
Este CFW provee más características que el original de Nintendo:
* [[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/features/cheats.md|Cheats]] / trucos: Atmosphère soporte trucos del tipo Action-Replay que pueden ser cargados desde la tarjeta SD.
* [[https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/features/configurations.md|Configuraciones]]: Atmosphère permite personalización para adapatarse a las necesidades de los usuarios.
==== Instalación ====
Tras instalarlo, tendremos un carpeta llamada ''atmosphere'' en la raíz de la tarjeta SD.
==== Actualización ====
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.
===== Payloads =====
Programas que se "inyectan" en el modo RCM de la Nintendo Switch.
* [[https://github.com/suchmememanyskill/TegraExplorer|TegraExplorer]]: explorador de archivos.
* [[https://github.com/CTCaer/hekate|hekate]]: gestor de arranque.
* [[https://github.com/shchmue/Lockpick_RCM|Lockpick_RCM]]: extrae las claves de cifrado para usar en software como hactool, hactoolnet/LibHac, ChoiDujour, etc. sin tener que arrancar Horizon OS (en SysNAND).
===== Lockpick_RCM =====
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.keys''
===== Sigpatches =====
El 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''.
* [[https://gbatemp.net/threads/sigpatches-for-atmosphere-hekate-fss0-fusee-package3.571543/|Hacking Sigpatches for Atmosphere (Hekate, fss0, fusee & package3)]]
* [[https://sigmapatches.coomer.party/|Sigmapatches]]: descarga de sigpatches y guías.
* [[https://www.alucardianos.com/post/%C3%BAltima-descarga-de-sigpatches-para-nintendo-switch-todas-las-vesiones-de-ams|ÚLTIMA DESCARGA DE SIGPATCHES PARA NINTENDO SWITCH - TODAS LAS VESIONES DE AMS]]
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
===== Jugar online =====
==== Internet ====
* [[https://www.nintendo.co.jp/netinfo/es_ES/index.html|Consultar el estado de la red]]
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.
==== LAN ====
==== LAN Play ====
Existe un proyecto llamado [[https://github.com/spacemeowx2/switch-lan-play|LAN Play]] que permite usar el modo LAN (de los juegos que lo soportan), pero a través de Internet. Desde [[http://lan-play.com/|su web]] podemos ver los servidores a los que podemos conectarnos, [[http://lan-play.com/install-switch|instrucciones]] del programa y los [[http://lan-play.com/games-switch|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:
* Dirección IP: ''10.13.XX.YY'' (puede ir desde ''10.13.0.1'' a ''10.13.255.254'', excepto ''10.13.37.1'')
* Máscara de subred: 255.255.0.0
* Puerta de enlace: 10.13.37.1
* DNS primario: 163.172.141.219
* DNS secundario: 207.246.121.77
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
* [[https://www.elotrolado.net/hilo_ho-switch-lan-play-online-para-baneados_2305538#p1746657718|[HO] Switch Lan Play - Online para baneados]] ([[https://www.elotrolado.net/hilo_ho-switch-lan-play-online-para-baneados_2305538#p1746657718|minitutorial]])
* [[https://github.com/spacemeowx2/switch-lan-play|switch-lan-play]]
===== Firmware =====
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//.
* [[https://switchscene.org/resources/categories/firmwares-oficiales.7/|Firmwares oficiales]] (SwitchScene.org)
* [[https://darthsternie.net/switch-firmwares/|Otra opción]]
*
==== Actualizar ====
Desde el menú HOME, vamos a las //Configuración de la consola// -> //Consola// y veremos la versión instalada bajo **Actualizar la consola**.
===== Batería =====
* [[https://es.ifixit.com/Gu%C3%ADa/Sustituci%C3%B3n+de+la+bater%C3%ADa+de+una+Nintendo+Switch/112995|Sustitución de la batería de una Nintendo Switch]]
==== Nintendo Switch (2017) ====
Modelo ''HAC-001'':
* 3.7 V
* 3600 mAh
* 13.32 Wh
==== Nintendo Switch (2019) ====
Modelo ''HAC-001(-01)'':
* 3.7 V
* 4310 mAh
* 16.0 Wh
===== Terminología =====
* CFW: Custom Firmware
* [[https://github.com/CTCaer/hekate|hekate]]: gestor de arranque
* [[https://github.com/Atmosphere-NX/Atmosphere|Atmosphère]]: uno de los CFW disponibles para Nintendo Switch
* RCM: //ReCovery Mode// es un modo que permite enviar comandos a la Nintendo Switch. En las Switch vulnerables se usa para enviar payloads.
* RCM Loader: cargador de payloads por USB
* SysNAND: memoria interna de la Nintendo Switch.
* emuNAND: emulación de la SysNAND. Se hace una copia de la SysNAND a la tarjeta SD y es como si tuviésemos dos Switch: una que arranca desde la memoria interna de la Switch (SysNAND) y otra desde la SD (emuNAND). La recomendación es usar emuNAND para no modificar nada de la SysNAND
* Logan: nombre en código del SoC Tegra X1 de Nvidia. Es el que lleva la Nintendo Switch.
* Erista: versión 1 de Nintendo Switch (vulnerables por software). Erista es el hijo de Lobezno (Logan).
* Mariko: versión 2 de Nintendo Switch. Mariko Yashida fue un amor de Lobezno.
* Sigpatches: Los //signature patches// permiten instalar y ejecutar archivos NSP no oficiales en el CFW Atmosphère.
* [[https://nh-server.github.io/switch-guide/extras/glossary/|Glossary of common hacking terms]]
* [[https://rentry.org/SwitchTerminology|Switch Terminology]]
===== Mi proceso de liberación =====
Consola de partida: Nintendo Switch **V1** (//Erista//) **vulnerable**.
Ingredientes:
* Equipo con Ubuntu
* Cable USB
* Jig RCM
* Aplicación https://github.com/nh-server/fusee-interfacee-tk/
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:
* HOS (FAT32): uso por parte de Horizon OS (el sistema operativo de la Switch)
* emuMMC (RAW): 29 GB (FULL)
* Linux (ext4): 0
* Android (USER): 0
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:
* atmosphere
* switch
* exosphere.ini
* fusee.bin
* hbmenu.nro
* hekate_ctcaer_5.8.0.bin
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 =====
[[https://github.com/rashevskyv/dbi|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.
==== Instalación de juegos desde tarjeta SD ====
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.
===== Recursos =====
* [[https://switch.homebrew.guide/|The Ultimate Noob Guide for Hacking your Nintendo Switch]]
* [[https://www.youtube.com/watch?v=sSD-tLzYQFk|Jailbreak your Nintendo Switch in 2022 [ FULL GUIDE ] Game Dump Install, Emulation, EmuNAND & HB! ]] (YouTube)
* [[https://www.youtube.com/watch?v=iWwMlvRbuQ0|Libera tu Switch 15.0.1 🔥 Guia de Hekate + Atmosphere 👾 Nintendo Switch Tutorial - Zaydel]] (YouTube)
* [[https://nh-server.github.io/switch-guide/|NH Switch Guide]]
* [[https://www.sdsetup.com|Homebrew SD Setup]]
* [[https://www.elotrolado.net/hilo_faq-preguntas-frecuentes-de-la-scene-de-switch-anadido-faq-sobre-rcm-y-autorcm_2269033|[FAQ] Preguntas frecuentes de la Scene de Switch | AÑADIDO FAQ SOBRE RCM Y AUTORCM|]]
* [[https://suchmememanyskill.github.io/guides/unbrick/|Switch Unbrick Guide]]
* [[https://www.alucardianos.com/post/hack-switch-todas-las-versiones|HACK NINTENDO SWITCH 15.0.1 O INFERIORES + PACK CFW AMS + INCÓGNITO + SIGPATCHES, ETC]]
* [[https://rentry.org/SwitchHackingIsEasy|Switch Hacking is Easy]]
* [[https://www.reddit.com/r/SwitchPirates/wiki/faq/|FAQ reddit Nintendo Switch Pirates]]
* [[https://www.elotrolado.net/hilo_pack-10-12-2022-atmosphere-1-4-0-hekate-firm-15-0-1_2428478|[PACK 10/12/2022] atmosphère 1.4.0 + hekate (firm 15.0.1)]] (elotrolado.net)