No es un tutorial muy currado, pues saldran tools seguro que facilitaran el proceso de introducir roms a juegos de la consola virtual una barbaridad, pero explico el proceso y lo que no se entienda preguntais.
(con lo que no se entienda me refiero a cosas que no queden claras, no cosas como por ejemplo usar un editor hexadecimal)
Lo pondré en pasos:
Primero de todo, seria interesante partir de un WAD ya creado de un juego de la VC, me basaré en el sin & punishment (aunque da lo mismo) PAL y el super smash brothers, que he comprobado que funciona.
¿Por qué un wad ya creado? Por que ya lleva todos los archivos necesarios para reempaquetar el juego, al contrario que si hacemos un dump de la nand que hemos de buscar mas archivos.
Si partimos de un dump de la nand, usad el tutorial que puse de crear un wad de forma sencilla, que son 3 pasos y ala, wad al canto.
Dicho esto:
1.- Descomprimimos el wad con el wadunpacker de torito. Nos saldran todos los ficheros .app, ticket, tmd, certificado y el trailer (el trailer es exactamente lo mismo que el 00000000.app)
2.- Con el app extractor extraemos el contenido del 00000005.app.
3.- Localizamos el archivo llamado "rom" (deberia ser el que ocupe mas megas). Podemos borrar todo lo demas.
nota: algunos juegos de la vc llevan el rom comprimido parece ser como "romc" no he probado a sustituirlo.
Aprovecho para explicar que el sin & punishment lleva una rom de 32 megas, así que sólo podremos inyectar roms de 32 megas o menos (256 megabits, 33554432 bytes).
El paper mario ocupa 40 megas, así que substituyendo la rom del paper mario de la VC podríamos inyectar juegos más grandes (hasta ese tamaño), aunque cabe la posibilidad que la rom esté comprimida como en el kirby.
Se sabe que la compresion de la rom del kirby es Lz77, usada en el banner, es posible que pronto salgan tools para comprimir, de momento está lz77ex que sirve para descomprimir.
4.- Tenemos que rellenar la rom que queremos meter con ceros con un editor hexadecimal, cada editor lleva su tool. Debemos rellenar hasta 32 megas (33554432 bytes) o el tamaño que ocupe la rom del juego de la VC. Si nuestra rom ya ocupa eso no hace falta hacer nada.
5.- abrimos el "rom" extraido con un editor hexadecimal, seleccionamos el primer offset (primeros 16 bytes, es decir, la primera linia) y copiamos los datos hexadecimales.
6.- abrimos el 00000005.app y buscamos esos datos en modo hexadecimal. El editor nos situara al principio de la rom.
7.- Seleccionamos desde este punto hasta al principio del archivo, copiamos, abrimos un archivo nuevo y pegamos los datos. Guardamos el archivo como file1.bin (por ejemplo).
8.- Repetimos pasos 5 y 6.
9.- Ahora en el editor hexadecimal usamos la funcion "Go to" (ir a) y seleccionamos posicion relativa o actual, segun el editor, para ir 33554432 bytes ( eso si la rom del canal de la VC es de 32 megas) hacia delante en el archivo. Deberiamos situarnos en un offset que comienza como "VC64" (almenos en el sin & punishment), justo arriba acaba la rom original.
nota: logicamente si el canal no es de n64 no pondra lo de VC64, eso seguro
10.- Seleccionamos desde este offset (el del VC64 si en todos los canales de 64 es igual) hasta el final del archivo, copiamos, abrimos un archivo nuevo, pegamos y lo guardamos como file3.bin.
11.- ahora abrimos una ventana de msdos, vamos a la carpeta de los archivos y escribimos
"copy /b file1.bin+rom+file2.bin new_00000005.app
file1.bin y file3 son los archivos que creamos antes.
rom es la rom que rellenamos de ceros si hizo falta.
----------------------
Lo siquiente es como lo he echo yo, pero creo que usando el watools 0.1 de pifia es exactamente lo mismo y lo hace automaticamente, a ver si luego lo pruebo y confirmo.
Eso si, si probais con el wadtools de pifica MUCHO OJO con lo que poneis que puede joder cosas, no useis nada que empiece por HA, FA, ME y algunas otras IDs comunes en la VC si podeis evitarlo.
12.- calculamos el hash sha1 del 00000005.app ORIGINAL
13.- abrimos el TMD.
14.- buscamos en HEXADECIMAL (y no ASCII) el hash sha1 que acabamos de calcular.
15.- Calculamos el hash sha1 del new_00000005.app
16.- Ahora substituimos en hexadecimal el sha1 del 00000005.app original por el del new_00000005.app y guardamos.
nota: recomiendo buscar el sha1 del new_00000005.app como hicimos en el paso 14 para comprobar que lo introducimos correctamente.
17.- substituimos el 00000005.app original (no lo borréis por si acaso) por el que acabamos de crear (new_00000005.app), y renombramos el tiket, el tmd y el cert a title.tik, title.tmd y title.cert.
18.- Creamos el wad con el wadpacker de kike.
nota: puede que nos interese cambiar la ID del TMD y el TIK. Ojito con lo que poneis que puede joder cosas, no useis nada que empiece por HA, FA, ME y algunas otras IDs comunes en la VC si podeis evitarlo.
Como apunte decir que con el wadpacker de Blaze no podremos hacer el wad, ya que no truchea el TMD, y este lo hemos modificado y nos daria error. Si usais las tools de torito, debereis saber como usar cada opcion de este, por eso uso el de kike, que lo hace como nos interesa ^^
salu2