Inyectar ROMS de Wii en la Consola Virtual de WiiU

WiiCV-WiiU.jpg
Inyectar ROMS de Wii en la Consola Virtual de WiiU
Captura de Inyectar ROMS de Wii en la Consola Virtual de WiiU
Captura de Inyectar ROMS de Wii en la Consola Virtual de WiiU.
Tipo
Emulación en WiiU
Plataformas
Hilos oficiales
Hilo Oficial Wii U.png

Contenido

Descripción

En Enero de 2015 Nintendo presentó la posibilidad de poder descargar juegos de Wii directamente desde la eShop en formato digital para ser jugados apoyándose en el propio sistema de retrocompatibilidad del que disponía la consola. Adicionalmente, algunos títulos concretos dispusieron de la posibilidad usar el WiiU Gamepad como control principal, emulando y sustiuyendo al combo Wiimote + Mando Clásico.

Así pues, este tutorial pretende explicar, de manera sencilla, cómo inyectar las ROMS de WiiU que deseemos para ser instaladas como cualquier otro título de Wii U y que aparezcan así en el menú del sistema; y si también queremos, como modificar la apariencia del canal de WiiU así como activar el soporte de emulación del Mando Clásico para usar el WiiU Gamepad como mando de control.

Material necesario

Programas

Archivos

  • Un título de Wii para WiiU que usaremos como base.

Se recomienda usar uno de los últimos títulos publicados, como el Beat the Beat: Rhythm Paradise, especialmente si pretendemos usar el soporte de emulación del Mando Clásico. Existen varias maneras de conseguir un título de Wii:

- Extraer directamente el título instalado de la consola usando FTPii_Everywhere.

  /storage_usb/usr/title/<TITLEID0>/<TITLEID1>
  /storage_mlc/usr/title/<TITLEID0>/<TITLEID1>

- Descargarlo usando JNUSTool si disponemos y/o conocemos el TitleID y el TitleKEY del título.

  java -jar JNUSTool.jar TITLEID TITLEKEY

Independientemente de dónde decidamos obtener el título de Wii base, podremos despreciar todos los archivos .nfs almacenados dentro del directorio /content. Estos archivos son la imagen del disco del juego de Wii base, los cuales vamos a reemplazar con nuestro juego, con lo que es absurdo transferirlos a nuestro PC.

JNUSTool ArchivosNecesariosWiiVC.png


  • La imagen completa en formato .iso de un juego de Wii

Es estrictamente necesario que la ROM de Wii esté en formato .iso y que ésta pese los 4.7GB correspondientes al tamaño completo del DVD. No se pueden utilizar otros formatos como .ciso, .wbfs ni imagenes .iso "scrubbeadas" o recortadas ("trimmeadas"). No obstante, podremos utilizar herramientas para recomponer dichos archivos en el formato .iso exigido, como [wbfs to iso]

También podemos conseguir volcados 1:1 en .iso de un juego usando la consola y la aplicación [CleanRIP]


Inyección de la ROM de Wii

Parte 1: Adaptar la imagen .iso

El primer paso es adaptar la imagen .iso para poder convertirla a .nfs y que la WiiU la pueda ejecutar. Además necesitaremos extraer una serie de datos de la misma.


Si usamos WIT:

La ventaja de usar WIT frente a WiiScrubber es que la imagen que obtengamos podrá ser recortada en el proceso de conversión a NFS más adelante, con el consiguiente ahorro de espacio en nuestra consola. Por contra, el proceso es entero en línea de comandos.

Si queremos inyectar Nintendont y un juego de GameCube, nos remitiremos al anejo Inyectar Nintendont y un juego de GameCube (un poco más abajo).

  • 1. Copiamos nuestra imagen ISO a un directorio vacío a nuestra elección (le pondremos de nombre WIT-ISO, por ejemplo).
  • 2. Descargamos WIT de la página web.
  • 3. Descomprimimos el paquete de WIT y copiamos el directorio \bin a \WIT-ISO.
  • 4. Copiamos nuestra imagen ISO de Wii a WIT-ISO y la renombramos a game.iso.
  • 5. Abrimos una consola de comandos, nos desplazamos hasta \WIT-ISO, y ejecutamos en orden los siguientes comandos; línea por línea:
 .\bin\wit.exe extract . --DEST workdir.tmp --psel data -vv1
 .\bin\wit.exe -E$ copy workdir.tmp --DEST new-image/$X -ovv --links --iso
 .\bin\wit.exe extract new-image new-image -o --psel data -vv1 -F +ticket.bin -F +tmd.bin
  • 6. Una vez finalizado el proceso, podremos ver que se nos habrán creado 2 directorios: \workdir.tmp y \new-image. Dentro del directorio \new-image se encontrará la imagen .iso ya preparada, junto con los archivos ticket.bin y tmd.bin.
  • 7. Renombramos:
 tmd.bin a rvlt.tmd  
 ticket.bin a rvlt.tik

NOTA: Es recomendable tener desactivada la opción de Ocultar extensiones de archivo para tipos de archivo conocidos en las opciones de carpeta de Windows para que siempre nos aparezcan las extensiones de archivo en el explorador de archivos.

  • 8. Movemos los archivos, ya renombrados, rvlt.tmd y rvlt.tik a la carpeta /code del título de Wii base. Sobreescribimos lo existente.


Anejo: Inyectar Nintendont y un juego de GameCube

Esta parte pretende explicar cómo inyectar Nintendont y un juego de GameCube si así lo deseamos.

  • 1. Copiamos nuestra imagen ISO de Wii a un directorio vacío a nuestra elección (le pondremos de nombre WIT-ISO, por ejemplo).
  • 2. Descargamos WIT de la página web.
  • 3. Descomprimimos el paquete de WIT y copiamos el directorio \bin a \WIT-ISO.
  • 4. Copiamos nuestra imagen ISO de Wii a WIT-ISO y la renombramos a game.iso.
  • 5. Abrimos una consola de comandos, nos desplazamos hasta \WIT-ISO, y ejecutamos:
 .\bin\wit.exe extract . --DEST workdir.tmp --psel data -vv1

Una vez ejecutado el comando, se nos habrá creado un nuevo directorio llamado \workdir.tmp

  • 6. Navegamos al directorio \workdir.tmp, y dentro de éste al directorio \files.
  • 7. Borramos todo su contenido y copiamos aquí nuestra ISO de GameCube renombrada a game.iso. Esto es sólo si queremos que Nintendont cargue automáticamente el juego. No es necesario añadirlo si sólo queremos cargar Nintendont.
  • 8. Volvemos al directorio \workdir.tmp, y nos dirigimos ahora a \sys.
  • 9. Borramos el archivo main.dol
  • 10. Descargamos en último loader.dol de [Nintendont], lo copiamos al directorio \sys, y lo renombramos a main.dol
  • 11. Nos volvemos a desplazar hasta \WIT-ISO, y ejecutamos en la línea de comandos:
 .\bin\wit.exe -E$ copy workdir.tmp --DEST new-image/$X -ovv --links --iso
 .\bin\wit.exe extract new-image new-image -o --psel data -vv1 -F +ticket.bin -F +tmd.bin
  • 12. Una vez finalizado el proceso, podremos ver que se nos habrá creado un nuevo directorio llamado \new-image. Dentro del directorio \new-image se encontrará la imagen .iso ya preparada, junto con los archivos ticket.bin y tmd.bin.
  • 13. Renombramos:
 tmd.bin a rvlt.tmd  
 ticket.bin a rvlt.tik

NOTA: Es recomendable tener desactivada la opción de Ocultar extensiones de archivo para tipos de archivo conocidos en las opciones de carpeta de Windows para que siempre nos aparezcan las extensiones de archivo en el explorador de archivos.

  • 14. Movemos los archivos, ya renombrados, rvlt.tmd y rvlt.tik a la carpeta /code del título de Wii base. Sobreescribimos lo existente.


Si preferimos usar WiiScrubber:

WiiScrubber nos ofrece un proceso de preparación de la imagen .iso más sencillo ya que está basado en una interfaz gráfica sencilla. No obstante, la imagen .iso resultante obtenida no podrá ser recortada en el proceso de conversión a NFS, con lo que ocupará completamente los 4.7GB del tamaño del DVD en nuestra consola y puede llegar a ser todo un desperdicio de espacio, especialmente con juegos que apenas pueden llegar a ocupar unos MB.

  • 1. Empezamos configurando WiiScrubber. Necesitaremos las claves públicas de Wii, con lo que usaremos el programa MakeKeyBin.exe que se adjunta con el programa y seguiremos instrucciones. Si no disponemos del programa, deberemos buscar o extraer las claves directamente de nuestra consola para introducirlas en los archivos key.bin y kkey.bin.
  • 2. Abrimos WiiScrubber
  • 3. Abrimos nuestro juego de Wii en formato .iso pulsando el botón LoadISO
  • 4. Marcamos y eliminamos la partición de actualización UPDATE, de existir.

WiiScrubber DelUpdate.png

  • 5. Marcamos y desplegamos la partición de datos DATA y a continuación desplegamos la sección partition.bin pulsando en el símbolo +
  • 6. Extraemos los archivos tmd.bin y ticket.bin

WiiScrubber TikTmd.png

  • 7. Renombramos:
 tmd.bin a rvlt.tmd  
 ticket.bin a rvlt.tik

NOTA: Es recomendable tener desactivada la opción de Ocultar extensiones de archivo para tipos de archivo conocidos en las opciones de carpeta de Windows para que siempre nos aparezcan las extensiones de archivo en el explorador de archivos.

  • 8. Movemos los archivos, ya renombrados, rvlt.tmd y rvlt.tik a la carpeta /code del título de Wii base. Sobreescribimos lo existente.
  • 9. Cerramos WiiScrubber


Parte 2: Convertir la imagen .iso a .nfs

Una vez extraida la información necesaria y preparada la imagen .iso, procederemos a convertirla al formato .nfs de Nintendo.

  • 1. Movemos nuestra imagen .iso ya preparada al directorio \content del título Wii base.
  • 2. Renombramos nuestra imagen .iso a game.iso. En este punto, el directorio \content sólo deberá contener un subdirectorio llamado \assets y el archivo game.iso
  • 3. Copiamos el programa nfs2iso2nfs.exe (v0.4 o superior) a la carpeta \content.
  • 4. Ejecutamos el programa nfs2iso2nfs.exe. El proceso de conversión dará comienzo. En el proceso se parcheará automáticamente el archivo fw.img contenido en el directorio \code.

Si estamos inyectando Nintendont, deberemos usar la versión v0.5.2 de nfs2iso2nfs.exe y ejecutarlo con el modificador -homebrew para asegurarnos que el WiiU GamePad se pueda usar como mando y se sincronicen otros mandos adecuadamente.

  nfs2iso2nfs.exe -homebrew
  • 5. Una vez finalizado el proceso, procederemos a eliminar todos los archivos sobrantes dento del directorio \content. Sólo nos quedaremos con la carpeta \assets y el conjunto de archivos hif_XXXXXX.nfs

WiiCV-ContentFolder.png

Parte 3: Crear el paquete de instalación

La parte final, crear el paquete de instalación para instalar en la consola. Usaremos el programa NUSPacker.

  • 1. Configuramos NUSPacker. Para funcionar necesita la clave pública de WiiU. La buscamos o extraemos de nuestra consola y la pegamos en el archivo encryptKeyWith.
  • 2. Abrimos una consola de comandos y navegamos hasta el directorio donde se encuentre NUSPacker.
  • 3. Ejecutamos el comando:
 java -jar nuspacker.jar -in "X:\Directorio_juego_base" -out "X:\Directorio_de_salida"

El proceso dará comienzo y acabaremos con un montón de archivos .app y .h3 en el directorio de salida especificado antes.

  • 4. Copiamos o movemos nuestro directorio de salida al directorio \install en la tarjeta SD.
  • 5. Instalamos el paquete en el dispositivo USB externo usando WUP Installer GX.


Edición de los metadatos / Personalización del canal de Wii U

Esta parte del tutorial no es estrictamente necesaria pero es recomendable seguirla ya que en ella se explica cómo activar el soporte de emulación del Mando Clásico, cambiar el TitleID del canal de Wii para evitar conflictos con otro software instalado en la consola, y cómo modificar las imágenes y los iconos del canal de WiiU.

Cambiar TitleID

El TitleID es el identificador numérico único de 16 cifras en hexadecimal que define a cada uno de los programas de WiiU. Si dos programas tienen el mismo TitleID se sobreescribirán los datos existentes en la consola con el último programa que instalemos. Para evitar esto, tendremos que modificar una serie de valores en los archivos \code\app.xml y \meta\meta.xml.

  • 1. Abrimos el archivo app.xml contenido en el directorio \code con el Bloc de Notas o algún editor de texto básico.
  • 2. Buscamos los datos title_id y group_id.
  • 3. Modificamos los datos de title_id, cuya forma es parecida a 0005000010......, sustituyendo los caractéres marcados con puntos en el ejemplo con numeros y/o letras de la A a la F
  • 4. Repetimos el proceso con el group_id pero esta vez los caracteres a cambiar serán: 0000....
 <title_id type="hexBinary" length="8">0005000010B00B13</title_id>
 <group_id type="hexBinary" length="4">0000B00B</group_id>
  • 5. Guardamos y cerramos app.xml
  • 6. Abrimos el archivo meta.xml contenido en el directorio /meta con el Bloc de Notas o algún editor de texto básico.
  • 7. Repetimos los pasos 3, 4 pero esta vez con el archivo meta.xml
  • 8. Buscamos los datos product_code y modificamos los caractéres marcados por puntos: WUP-N-.... Aquí podemos usar cualquier caracter alfanumérico (A-Z, 0-9)
 <product_code type="string" length="32">WUP-N-WFTW</product_code>

NOTA 1: El número de 6 cifras que escojamos para modificar el TitleID deberá será el mismo en todas las entradas de los archivos app.xml y meta.xml

NOTA 2: Es recomendable utilizar números altos para evitar conflictos con software existente y futuro de WiiU. Se puede consultar una lista de títulos con su correspondiente TitleID [aquí]

Modificar nombre y editor del programa

Continuamos con la edición del archivo \meta\meta.xml.

  • 1. Abrimos el archivo meta.xml contenido en el directorio \meta con el Bloc de Notas o algún editor de texto básico.
  • 2. Buscamos los datos longname_xx y modificamos los datos existentes con el nombre de nuestro juego. Podemos usar cualquier caracter.
 <longname_ja type="string" length="512">Mi juego inyectado de Wii</longname_ja>
 <longname_en type="string" length="512">Mi juego inyectado de Wii</longname_en>
 <longname_fr type="string" length="512">Mi juego inyectado de Wii</longname_fr>
 <longname_de type="string" length="512">Mi juego inyectado de Wii</longname_de>
 <longname_it type="string" length="512">Mi juego inyectado de Wii</longname_it>
 <longname_es type="string" length="512">Mi juego inyectado de Wii</longname_es>
 <longname_zhs type="string" length="512">Mi juego inyectado de Wii</longname_zhs>
 <longname_ko type="string" length="512">Mi juego inyectado de Wii</longname_ko>
 <longname_nl type="string" length="512">Mi juego inyectado de Wii</longname_nl>
 <longname_pt type="string" length="512">Mi juego inyectado de Wii</longname_pt>
 <longname_ru type="string" length="512">Mi juego inyectado de Wii</longname_ru>
 <longname_zht type="string" length="512">Mi juego inyectado de Wii</longname_zht>
 <shortname_ja type="string" length="256">Mi juego inyectado de Wii</shortname_ja>
 <shortname_en type="string" length="256">Mi juego inyectado de Wii</shortname_en>
 <shortname_fr type="string" length="256">Mi juego inyectado de Wii</shortname_fr>
 <shortname_de type="string" length="256">Mi juego inyectado de Wii</shortname_de>
 <shortname_it type="string" length="256">Mi juego inyectado de Wii</shortname_it>
 <shortname_es type="string" length="256">Mi juego inyectado de Wii</shortname_es>
 <shortname_zhs type="string" length="256">Mi juego inyectado de Wii</shortname_zhs>
 <shortname_ko type="string" length="256">Mi juego inyectado de Wii</shortname_ko>
 <shortname_nl type="string" length="256">Mi juego inyectado de Wii</shortname_nl>
 <shortname_pt type="string" length="256">Mi juego inyectado de Wii</shortname_pt>
 <shortname_ru type="string" length="256">Mi juego inyectado de Wii</shortname_ru>
 <shortname_zht type="string" length="256">Mi juego inyectado de Wii</shortname_zht>
  • 3. Repetimos con los datos publisher_xx
 <publisher_ja type="string" length="256">EOL</publisher_ja>
 <publisher_en type="string" length="256">EOL</publisher_en>
 <publisher_fr type="string" length="256">EOL</publisher_fr>
 <publisher_de type="string" length="256">EOL</publisher_de>
 <publisher_it type="string" length="256">EOL</publisher_it>
 <publisher_es type="string" length="256">EOL</publisher_es>
 <publisher_zhs type="string" length="256">EOL</publisher_zhs>
 <publisher_ko type="string" length="256">EOL</publisher_ko>
 <publisher_nl type="string" length="256">EOL</publisher_nl>
 <publisher_pt type="string" length="256">EOL</publisher_pt>
 <publisher_ru type="string" length="256">EOL</publisher_ru>
 <publisher_zht type="string" length="256">EOL</publisher_zht>
  • 4. Guardamos y cerramos

Modificar la región del canal

La región del canal de WiiU no importa para cargar un juego u otro de Wii. Podemos usar un canal EUR para cargar un juego USA o JAP indistintamente. No obstante, podemos modificar la región del canal cambiando el dato region en el archivo \meta\meta.xml'

  • Japón: 00000001
  • EEUU: 00000002
  • Europa: 00000004
  • China: 00000010
  • Corea: 00000020
  • Taiwan: 00000040
  • Region Free: 00000077 (Que es la suma en hexadecimal de todos los valores anteriores (1+2+4+16+32+64 = 119 0x77)
 <region type="hexBinary" length="4">00000077</region>

Modificar las imagenes de carga y el icono del menú de Wii

Los archivos que tendremos que modificar, contenidos en el directorio \meta serán los siguientes:

 Nombre			Formato de la imagen		Tamaño aprox.	Descripción
 iconTex.tga		128x128px 32bits + alpha	~64KB		Icono del menú de WiiU
 bootLogoTex.tga  	170x42px 32bits			~27,9KB		Logo de carga
 bootDrcTex.tga		854x480px 24bits		~1,17MB		Pantalla de carga del WiiU Gamepad
 bootTvTex.tga		1280x720px 24bits 		~2,63MB		Pantalla de carga de la TV

Todos los archivos son formato TARGA (.tga) sin compresión y deben de llevar la cadena de texto TRUEVISION-XFILE al final del archivo. En hexadecimal:

 00 00 00 00 00 00 00 00 54 52 55 45 56 49 53 49 4F 4E 2D 58 46 49 4C 45 2E 00

Sólo el icono tiene canal alfa (transparencia), y tanto el icono como el logo tienen profundidad de color de 32bits. Las imagenes de carga tienen profundidad de 24bits. Los tamaños de archivo son orientativos para asegurarnos que estamos haciendo todo adecuadamente.

Añadir o modificar la emulación de control del WiiU GamePad

Activar la emulación del Mando Clásico

Los últimos títulos publicados de la Consola Virtual de Wii disponían de un soporte de emulación del Mando Clásico, lo que efectivamente permite utilizar los botones del Wii U Gamepad para controlar los juegos de Wii. No obstante esto nos deja un par de limitaciones:

  • Sólo aquellos juegos que tengan soporte para mando clásico podrán ser controlados con el Wii U Gamepad. Se puede consultar una lista de juegos que usan el Mando Clásico [aquí]
  • Activar dicho soporte anula el poder usar los mandos de Wii o sincronizar más mandos en este título.

Para activar el soporte de emulación de Mando Clásico debemos abrir el archivo \meta\meta.xml' una vez más, buscar los datos drc_use, y ajustar el valor a 65537.

 <drc_use type="unsignedInt" length="4">65537</drc_use>

NOTA:Esta modificación es obligatoria si queremos usar el mando con Nintendont.

Cambiar el tipo de mando emulado

Editando el archivo fw.img contenido dentro de la carpeta /code podemos indicar que se emule el combo Wiimote + Mando Clásico o simplemente un Wiimote sin periféricos conectados. No obstante, no se puede emular ni el sensor de movimiento ni el sistema de apuntar a la pantalla.

Haciendo uso de un editor hexadecimal, abrimos el archivo fw.img, buscamos los siguientes offsets y los cambiamos con los siguientes valores.

NOTA IMPORTANTE: Los offsets aquí especificados son los correspondientes al fw.img del juego Beat the Beat: Rhythm Paradise CRC-32: E2F27E9B. Otros fw.img procedentes de otros juegos pueden tener otros offsets.

 Tipo de mando		Offset		Valores
 Wiimote "solo" 	11B4A		23 00
 Wiimote + CC	 	11B4A		16 13

Si, adicionalmente, queremos rotar el mapeo de la cruceta (Wiimote en horizontal), deberemos cambiar los siguientes valores.

 Dirección	Offset	Valor
 Izquierda	11B59	02
 Derecha	11B61	03
 Abajo		11B6F	01
 Arriba 	11B7D	00

Preguntas Frecuentes

Faq q.png P: He editado el canal de WiiU y ahora me sale un icono de interrogación (?), además la consola me dice que los datos están dañados.
Faq r.png R: Lo más probable es que hayas hecho algo mal al editar los archivos app.xml y meta.xml o alguna de las imágenes .tga. Revisa el proceso y comprueba que todo es correcto. Adicionalmente, usando FTPiiU_Everywhere puedes inyectar estos archivos en la carpeta de instalación en WiiU en /storage_usb/usr/title/<TITLEID0>/<TITLEID1>/meta directamente y así no tener que repetir el proceso de creación del paquete.
Faq q.png P: He inyectado un juego pero la pantalla se me queda en negro y no carga nada. Tengo que apagar la consola tirando del enchufe.
Faq r.png R: No todos los juegos son compatibles. Es un proceso de prueba y error. No obstante, comprueba que la ISO originaria es correcta y se puede cargar desde un emulador (por ejemplo).
Faq q.png P: He activado el soporte de emulación de Mando Clásico y el control me hace cosas raras.
Faq r.png R: Igual que lo anterior, no todos los juegos son plenamente compatibles. Algunas veces la cosa se puede arreglar si resincronizamos el mando desde el menú Home de Wii.
Faq q.png P: ¿Puedo sincronizar otros Wiimotes emulando el Mando Clásico con el WiiU Gamepad?
Faq r.png R: No.
Faq q.png P: ¿Puedo cargar el Homebrew Channel usando este método? ¿Y homebrew en general?
Faq r.png R: Se puede cargar homebrew usando exploits desde juegos vulnerables pero no así el Homebrew Channel. No obstante, el control puede no responder bien.
Faq q.png P: ¿Y Nintendont?
Faq r.png R: Sí. Pero hay que seguir un proceso más largo de parcheo de fw.img.
Faq q.png P: ¿Puedo usar varias veces el mismo juego base de Wii para inyectar varias ROMs?
Faq r.png R: Si, pero tienes que modificar el TitleID. Remítete a la sección Edición los metadatos / Personalización del canal de WiiU > Cambiar TitleID