DVD Dumper para Wii

Seguimos con las entradas relacionadas con la scene de Wii (tras las dedicadas al Twilight Hack y al Backup Loader) con la posibilidad de hacer vuestras propias copias de seguridad a partir de discos originales de GameCube o Wii que después podrán ser jugados siguiendo alguno de los diversos métodos que existen.

Los pasos a seguir son los siguientes:

1. Hacer el Twilight Hack e instalar el Homebrew Channel

Como es la manera más sencilla de cargar homebrew y sólo hay que hacerla una vez, recomendamos esta opción. Si ya tenéis el HBC instalado podéis ir al siguiente paso, en caso contrario tenéis un tutorial en esta entrada.

2. Instalar el custom IOS

Para hacer el dump es necesario tener instalado el custom IOS en la consola; si ya lo tenéis podéis ir al siguiente paso, sino podéis mirar los pasos 4 y 5 del tutorial correspondiente.

3. Copiar y ejecutar el DVD Dumper a la SD

Primero necesitáis descargar este archivo. Una vez hecho, creáis dentro de la carpeta apps de la SD otra carpeta con cualquier nombre (p.ej dvddumper) y dentro copiais el archivo cIOS-DVD-Dumper_v1.2.dol cambiándole el nombre a boot.dol (la forma típica de hacer que el HBC ‘vea’ cualquier aplicación). A continuación lanzáis el DVD Dumper desde el canal.

4. Configurar DVD Dumper e iniciar el dump

Una vez ejecutada la aplicación, os aparecer una pantalla con letras blancas sobre fondo negro. En concreto, os pondrá DVD Dump Mode. Hay diversas formas de hacer el dump, a saber: a una tarjeta SD, a un disco externo USB o a un ordenador conectado a un router wifi. Como ésta última es la más rápida será la que usemos. Para ello pulsamos derecha en la cruceta digital hasta que aparezca Network Mode (Wifi Connection) y pulsamos A. Ahora nos pedirá que le digamos qué tipo de disco hemos metido (DVD Disc Type): un disco de GameCube (GOD), un disco de Wii de una capa (WOD) o un disco de Wii de doble capa (WOD DVD9, por ej. Super Smash Bros. Brawl). Una vez elegido el tipo de disco pulsando A, la consola empezará a leerlo. Después de un rato, nos pedirá que pulsemos cualquier botón para empezar el proceso. Lo hacemos y nos aparecerá la IP de la consola.

5. Efectuar el dump sobre el disco duro del ordenador

La IP obtenido en el paso anterior se introduce como URL en vuestro navegador de Internet favorito. Os aparece una página llamada ‘Wii DVD Dumper (cIOS)’ con el enlace ‘Click here to download xxxx.iso’. Hacéis click sobre él y empezará a descargarla en el lugar que le indiquéis.

6. Unir los trozos resultantes

Si la imagen tiene un tamaño respetable, es posible que tengáis la ISO dividida en varios trozos. Para unirlos (por ej. tres trozos, siendo la ISO final ‘salida.iso’):

  • En SOs Windows: copy /b trozo1+trozo2+trozo3 salida.iso
  • En SOs Linux: cat trozo1 trozo2 trozo3 > salida.iso

7. Pasos posteriores

Cuando tengáis la ISO descargada (unas dos horas y media para un disco de Wii de una capa) podéis por ejemplo usar el Backup Loader para lanzar el juego, siguiendo los pasos 2, 3 y 6 del tutorial

DVD Backup Loader para Wii

Hace unos días publicamos un método para cargar homebrew en una Wii sin modificar. Ahora volvemos a la carga con un conjunto de programas que, apoyándose en el Canal Homebrew, permiten cargar copias de seguridad en DVD en una consola sin chip. Para ello, han de seguirse los siguientes pasos:

1. Instalar el Canal Homebrew

Como volver a tratar este tema haría el tutorial innecesariamente largo, os remitimos a la entrada original. Una vez que tenemos nuestra Wii con el Canal Homebrew en ella y suponiendo que sabéis cómo meter y cargar aplicaciones, podemos proceder a la siguiente etapa.

2. Modificar la ISO del juego

Este paso requiere la common-key de Wii que podéis descargar desde aquí y el programa Backup Creator. Por el momento la solución sólo está disponible para SOs Windows. La common-key (archivo key.bin), el Backup Creator (backup-creator.exe) y la ISO de Wii (con un nombre ‘normal’, i.e. sin caracteres raros ni espacios) han de estar en el mismo directorio. Hecho esto, abrimos una ventana de ‘DOS’ haciendo Inicio – Ejecutar – ‘cmd (sin las comillas) y nos movemos al directorio donde tengamos todo (mediante cd). Una vez dentro, escribimos backup-creator.exe [nombredelaiso], donde [nombredelaiso] es el nombre del fichero ISO en cuestión. Tras unos minutos, aparecerá en el mismo lugar una nueva ISO, llamada partition.iso que es la que tendremos que grabar.

TempWin pide la palabra: ¿Usas GNU/Linux? Puedes usar el Backup Creator en tu sistema. Ya, ya, es una aplicación para Windows, pero no importa. Gracias a WINE podemos usarlo en el sistema del pingüino. Los pasos son los mismos (todos los archivos necesarios en la misma carpeta), pero tendremos que teclear (en una consola o terminal) lo siguiente $ wine backup-creator.exe nombre.iso. El proceso es tal que así:

tempwin@nzxt-trinity:~/games/wii/$ wine backup-creator.exe nomoreheroes.iso
[+] Creating backup ISO, please wait...
    ISO size: 4219.625 MB

    Backup ISO created successfully!

[+] Press any key to exit...

Y, después de unos minutos, tendremos un nuevo archivo llamado partition.iso 🙂

3. Quemar partition.iso

Quemar la imagen resultante del paso anterior con vuestro programa favorito. Personalmente he usado ImgBurn y ha funcionado perfectamente, pero debería de valer cualquiera (Alcohol, Nero, etc.). Un tema más delicado es qué medio de almacenamiento usar y a qué velocidad grabar. Mi breve experiencia me dice que no es buena idea usar DVD+R (al parecer si cambias el booktype funciona) ya que el 100% de mis pruebas han fallado. Así que para evitaros quebraderos de cabeza usad DVD-R y grabadlos a 2x o 2.4x.

TempWin vuelve a molestar: Las grabaciones las hago con el K3b. Como comenta Arxel, cualquier programa debería valer. La única consideración a hacer (además de DVDs de buena calidad y baja velocidad de grabación) es ignorar el error que nos puede dar el programa de grabación al detectar un formato de imagen no válido. Grabamos sin hacer caso y listo.

4. Instalar el wad del Custom IOS

Para ello necesitáis tener el cIOS en la carpeta wad situada en la raíz de la tarjeta SD. A continuación cargamos el WAD Manager desde el Homebrew Channel de la manera habitual. Una vez dentro, aparecerá una pantalla con letras blancas en fondo negro. Pulsamos el botón A. Elegimos como dispositivo fuente el slot SD (pulsamos A). Si el cIOS está en el lugar correcto debería aparecernos debajo de 'Available files on the device'. Seleccionamos CIOS36_rev5-64-v1042.wad (probablemente ya está marcado) y pulsamos + para instalar y A para aceptar. Reiniciamos la consola con HOME.

5. Instalar el Custom IOS

Volvemos al Homebrew Channel y lanzamos esta vez el DVDX que tendríamos que haber copiado ya a la SD (remember: una subcarpeta dentro de la carpeta apps que en la raíz de la SD y cambiándole el nombre a boot.dol). En el menú que aparece elegimos Advanced Install. A continuación en el apartado IOS elegimos (mediante la cruceta digital) IOS249 y le damos a Install. Reiniciamos la consola.

6. Lanzar DVD Backup Loader

De nuevo en Homebrew Channel y tras haber copiado esta aplicación a la SD, lanzamos el Backup Loader. Aparecerá una pantalla pidiéndonos que metamos un disco de Wii. Introducimos el DVD quemado en el paso 3 y esperamos un rato a que aparezca (si todo va bien) el nombre e ID del juego. En ese momento pulsamos A y empezará a cargar.

7. Jugar 😉

Hay que decir que este método hace que el lector funcione a velocidad 3x (cuando lo normal es 6x), por lo que los vídeos irán a saltos y más lentos de lo normal y las cargas serán algo más largas, lo cual no suele ser inconveniente para disfrutar de la mayoría de los títulos.

FAQ

P: Al modificar la ISO me sale el mensaje ‘ERROR: Could not get partition title key!’, ¿qué he hecho mal?
R: No tienes la common-key, no la has puesto en el mismo directorio que el Backup Creator y la ISO o no tiene el nombre correcto (key.bin).

P: Al cargar el DVD en el Backup Loader me salta el error -4100, ¿a qué se debe?.
R: A tu Wii no le gusta el DVD que le has metido. Lo más probable es que hayas usado un DVD+R y parece que hay problemas con este tipo de discos. Usa DVD-R de marcas decentes (Verbatim, Sony, TDK, los fabricados por Ritek, etc. NO Princo) y graba a baja velocidad (2x, 2.4x). Yo he probado con DVD-R TDK 1-16x y ha funcionado sin problemas.

P: Los vídeos van a saltos o muy lentos, ¿por qué?
R: La velocidad de lectura es 3x cuando lo normal con juegos originales es que sea 6x, por eso también las cargas son algo más largas.

P: Tengo una Wii NTSC y los juegos los veo en blanco y negro, ¡ayuda!
R: *Creo* que es algo que solamente pasa en Wiis NTSC y con el cable que viene de serie con la consola (composite). Con un VGA Box o el cable por componentes tengo entendido que no ocurre esto.

P: He probado el juego xxx y no funciona bien/no funciona en absoluto, ¿por qué?
R: Si te sale el error -4100 ya lo han preguntado más arriba, ¿no estabas atento? Si lo que ocurre es que se cuelga al llegar a cierto punto, ten en cuenta que el Loader es una beta que fue filtrada ‘accidentalmente’ (?), por tanto la aplicación no está pulida del todo y tendrá algunos bugs. Si Waninkoko o alguna otra persona continúa con el proyecto, es de esperar que estos problemas disminuyan o desaparezcan.

Lista de compatibilidad

A continuación podréis ver una tabla donde se muestran los resultados de nuestros experimentos. Las pruebas han sido realizadas con tres Wii, con versiones del firmware diferentes, para que veais que no depende.

Lista de compatibilidad del DVD Backup Loader para Wii [ 12/10/2008 ]
Título Región ISO v.DBL Soporte/Software Comentarios
Bleach: The Shattered Battle PAL Filtrada Waninkoko DVD-R Fujifilm a 2x / Nero Jugable, pero adolece de gran cantidad de cargas de bastante duración.
Mario & Sonic En Los Juegos Olímpicos PAL Original Ciper Launcher 0.2 DVD-R TDK 1-16x a 2x / ImgBurn Perfectamente jugable aunque la primera carga y las que hay antes de cada evento se hacen bastante largas.
Mario Party 8 PAL Ciper Launcher 0.2 DVD-R TDK 1-16x a 4x / ImgBurn Perfectamente jugable, a pesar de algunas cargas lentas al iniciar y antes de cada minijuego
Mario Kart Wii PAL Original – Filtrada Waninkoko
– WiiGator Launcher 0.1 + Fixed cIOS
DVD-R TDK 1-16x a 2x / Nero – Se cuelga después de la primera carrera en el modo Grand Prix. Se cuelga después de elegir circuito en el modo Online. El resto de modos parecen funcionar.
– El modo Grand Prix funciona totalmente. El Online pierde la conexión antes de empezar. El resto sigue funcionando.
No More Heroes NTSC Scrubbed Filtrada Waninkoko DVD-R Verbatim a 2x / K3b Jugable. Cargas lentas e interrupciones en las escenas de vídeo a causa de la limitación de la velocidad de lectura.
Pro Evolution Soccer 2008 PAL Scrubbed Filtrada Waninkoko DVD-R TDK 1-16x a 2x / ImgBurn
DVD-R Verbatim a 8x / K3b
Perfectamente jugable; el vídeo de la intro va lento y a saltos.
Red Steel PAL Filtrada Waninkoko DVD-R DataMax a 2x / Nero Injugable. Se queda colgado en la primera pantalla al cargar.
The Legend of Zelda: The Twilight Princess PAL Filtrada Waninkoko DVD-R Verbatim a 8x / K3b Se juega perfectamente a pesar de los cortes en el audio y las cargas debidas a la baja velocidad de lectura

*More as it comes…*

Canal homebrew y Twilight Hack

Introducción

Desde hace pocos meses existe una forma relativamente sencilla de ejecutar aplicaciones caseras (homebrew), hechas por aficionados, en nuestra Wii, sin necesidad de ponerle chip alguno o modificarla. Nos bastará con tener una tarjeta SD, el juego de Wii The Legend of Zelda: Twilight Princess y, obviamente, una Wii 🙂

La fórmula de la felicidad

Twilight Hack

Así se conoce al aprovechamiento de un “fallo” en el juego de Wii The Legend of Zelda: Twilight Princess. Poniendo un nombre lo suficientemente largo al caballo Epona, se consigue un desbordamiento de búfer y esto ha permitido que ciertos hackers consiguiesen ejecutar código desde una tarjeta SD. De esta manera, podemos ejecutar software casero donde encontraremos desde un clon de Tetris hasta ¡el Monkey Island!

The Homebrew Channel

Hasta la aparición de este “canal”, si queríamos ejecutar programas caseros en la Wii necesitábamos realizar el Twilight Hack cada vez. Un fastidio. Eso se acabó 🙂 Gracias a este canal, sólo tendremos que hacer el hack una vez y devolver el juego del Zelda a nuestro amigo/videoclub 😛 El canal Homebrew se instala como un canal más en la Wii (como el del tiempo, el de opiniones, etc.) y desde él podemos acceder al contenido de la tarjeta SD y lanzar los programas contenidos en ella.

Manos a la obra

Necesitamos descargar:

Nos hace falta una tarjeta SD (no valen las SDHC, así que estamos limitados a las de 2GB como mucho). Hay que formatearlas en FAT. Muchas ya vienen así, pero si no es el caso, podemos usar el GParted (en GNU/Linux) o, en Windows, pulsar con el botón derecho sobre el icono de la tarjeta y seleccionar Formatear. En MacOS X podemos usar la Utilidad de discos (Aplicaciones → Utilidades → Utilidad de discos). ¿Algún sistema operativo más? 😛

En la raíz de la SD incluimos:

  • La carpeta private (contenida en el Twilight Hack)
  • El archivo boot.elf y la carpeta wiiload (contenidas en el archivo del Homebrew Channel)

Manos a la Wii

Importante: Si tenías una partida guardada del Zelda, querrás seguir conservándola, ¿verdad? Ya que al copiar el Twilight Hack la sobreescribirá. Para hacer copia de tu partida en la Wii a otra SD:

Introducir tarjeta SD en la Wii

  • Encender Wii
  • Opciones de Wii → Gestión de Datos → Datos guardados → Wii
  • Seleccionamos con el botón A nuestra partida
  • Copiar -> Sí
  • Volvemos al menú

Bien, ahora metemos la tarjeta SD en la que habíamos introducido los archivos de más arriba. Procedemos a copiar el Twilight Hack a la memoria de la Wii:

  • Opciones de Wii → Gestión de Datos → Datos guardados → Wii → Tarjeta SD
  • Seleccionamos con el botón A el archivo que necesitemos dependiendo de la versión del Twilight Princess que tengamos (europea, americana, japonesa).
  • Copiar → Sí
  • Volvemos al menú

Puede que sea necesario reiniciar la consola.

Con la SD insertada, metemos el Twilight Princess original (si tenéis la consola con chip, os vale también una copia del juego). Hay que asegurarse de tener enchufado el Nunchuk al Remote durante este proceso. Y lo lanzamos como si fuéramos a jugar. Seleccionamos un “diario de viaje”, el llamado “Twilight Hack”.

Bien, estamos en el juego. Tenemos a un hombre delante de nosotros. Para activar el hack tenemos dos opciones: hablar con ese hombre o caminar en dirección contraria (tardas menos en hacer esto último). Y… ¡magia! Aparecerá un texto que va pasando y finalmente nos pedirá confirmación para instalar el Homebrew Channel. Basta con pulsar el botón 1 del mando las veces necesarias para aceptar. Al terminar, y volver al menú de Wii, tendremos un nuevo canal: el Homebrew Channel. Ya no necesitaremos el Zelda nunca más 🙂

Ejecutar programas desde el Homebrew Channel

En esta web tenemos un montón de aplicaciones (emuladores, reproductores de audio y vídeo, juegos…). Sólo tenemos que meter cada aplicación dentro de la carpeta apps (que tenemos que crear dentro de la SD) y listo. Por ejemplo, si queremos instalar la aplicación MplayerWii, descargaremos el archivo, lo meteremos dentro de la carpeta apps dándole algún nombre, por ejemplo MPlayerWii, así tendríamos /apps/MPlayerWii/, y dentro de esta última carpeta tendremos los ejecutables, que son archivos *.dol o *.elf. Es importante que se llamen boot.dol o boot.elf, si no, el canal no lo verá. Al entrar de nuevo en el Homebrew Channel lo tendremos accesible.

¿Qué juegos/aplicaciones interesantes nos podemos encontrar? Una pequeña muestra:

  • Emulador de Mega Drive
  • Emulador de SNES
  • Emulador de NES
  • Reproductores de música y vídeo
  • Emulador de MAME (probadlo sólo si tenéis muuucha paciencia)
  • Servidor de FTP
  • Examinador de archivos
  • etc.

Hablaremos de aplicaciones interesantes en futuros artículos 🙂

Enlaces relacionados

nullDC en GNU/Linux con WINE

Dreamcast es una de las consolas a las que más cariño tengo. Todavía la conservo, pero el lector ya está en las últimas y cuesta un mundo que lea algún juego. Desde hace tiempo le sigo la pista a la emulación de Dreamcast, pero todo lo que salía era para Windows. Desde hace no mucho, tenemos un prometedor emulador para GNU/Linux, lxdream, pero está en fase muy temprana de desarrollo y la lista de compatibilidad es muy reducida.

Como estos días ando probando bastante WINE para poder abandonar Cedega a la hora de jugar a videojuegos de Windows en GNU/Linux, me pregunté: hey, ¿y si probamos nullDC con WINE? Pues lee, lee, que funciona 🙂

nullDC: El emulador

Se trata de un emulador gratuito para Windows que tiene poco más de un año de vida. La lista de compatibilidad es bastante grande, casi como la del Chankast (emulador de Dreamcast también para Windows) aunque la emulación parece más conseguida.

Podemos descargarlo desde su web oficial. Lo que está escrito en este artículo ha sido probado con la versión 1.0.0 beta 1.6.

Lo descomprimimos donde queramos (debemos tener instalado el paquete p7zip).

Necesitamos la bios de la Dreamcast que podéis descargar desde aquí [ ZIP – 1 MB ]. Debemos meter los dos archivos (dc_bios.bin y dc_flash.bin) en la carpeta Data.

Una copa de vino

La instalación de Wine desde repositorios es muy sencilla. Si tienes la suerte de tener instalada alguna distribución basada en Debian, te basta con escribir en un terminal: # apt-get install wine.

Ahora necesitaremos varias bibliotecas que usa nullDC. Las últimas de Visual C++ (msvcp80.dll y msvcr80.dll) y de DirectX 9 (d3dx9_35.dll). Podéis buscarlas por la red y luego colocarlas en ~/.wine/drive_c/windows/system32. Pero hay una forma más fácil y automática de hacer todo eso: winetricks. Se trata de un script que se ocupa de descargar y configurar las bibliotecas más populares necesarias para la ejecución de ciertos programas de Windows en GNU/Linux con WINE.

Nos colocamos en un directorio que queramos y, desde un terminal, descargamos el script mediante: $ wget http://www.kegel.com/wine/winetricks. Y ahora lo ejecutamos (hay que tener conexión a Internet, obviamente) pasándole los paquetes que necesitamos: $ sh winetricks directx9 vcrun2005. Lo próximo que hay que hacer es aceptar en las ventanas que se abran y listo, quedará todo instalado y configurado 🙂

WINE + nullDC

Abrimos un terminal y, en la carpeta donde hemos descomprimido nullDC, escribimos: $ wine nullDC_100b1_6.exe. ¿Esperabas algo más? 🙂

Puedes descargarte juegos para Dreamcast hechos por fans desde esta web. Para juegos comerciales, redes P2P. Que sí, que funcionan:

Daytona USA 2001

Soul Calibur

Sonic Adventure

Texturas de alta resolución en Mupen64Plus

Mupen64Plus es un emulador de la consola Nintendo64 para GNU/Linux. Basado en parte del código original de Mupen64 (otro emulador para Linux, pero sin actualizaciones desde 2005), pero con varias mejoras y buen ritmo de desarrollo. Entre las últimas características, destaca la posibilidad de cargar texturas de alta resolución con el plugin de vídeo de Rice (Rice’s video plugin).

Los packs de texturas de alta resolución son una colección de imágenes de mayor calidad que permite mejorar el aspecto del juego o incluso realizar cambios de aspecto en el juego original (como veremos a lo largo del artículo). Es una labor desinteresada de fans por lo que no esperéis encontrar siempre gran calidad, acabado o para todos los juegos.

El emulador lo podemos descargar desde su web oficial. Podemos bajar los binarios (ejecutables) o el código fuente para compilarlo, pero esto último será carne de un nuevo artículo. Probad con los binarios. Descomprimimos su contenido:
$unzip Mupen64Plus-1-4-bin-32.zip. Y obtendremos una carpeta con una serie de ficheros:

$ ls
config/  fonts/  install.sh  LICENCE.TXT  plugins/  RELEASE
doc/     icons/  lang/        mupen64plus  README   uninstall.sh

mupen64plus es el archivo ejecutable, el emulador en cuestión. Podemos ejecutarlo desde consola, en ese mismo directorio, con $ ./mupen64plus.

Configurando el plugin de vídeo de Rice

En la ventana del emulador, vamos a Options → Configure. En la ventana de configuración, vamos a la pestaña Plugins y en los plugins de vídeo (arriba del todo) elegimos Rice’s Video Plugin.

Ventana de configuración de plugins de Mupen64Plus

Luego pulsamos el botón Config y marcamos la opción Load hi-res textures if available. Y OK, OK.

Ventana de configuración del plugin de vídeo de Rice, en Mupen64Plus

Guardando las texturas

Buscando por internet encontraréis varios packs. Os pongo aquí una web (cortesía de Arxel) donde encontraréis unas cuantas. Mupen64Plus, al lanzarlo por primera vez, creará un directorio oculto llamado mupen64plus en el home del usuario donde se guarda la configuración de los plugins, emulador, capturas, etc. Aquí tenemos que crear un directorio llamado hires_texture ($mkdir ~/.mupen64plus/hires_texture/) y dentro de él crearemos un directorio por cada juego del que dispongamos el pack de texturas.

Seguro que os he liado, así que vamos con un caso concreto. Si ejecutamos el emulador desde la terminal y lanzamos alguna rom, veremos en el terminal cierta información. Entre todo el texto, está el nombre del juego. Exactamente ese nombre es el que tiene que tener la carpeta donde almacenaremos sus texturas de alta resolución.

Mensajes en la terminal del Mupen64Plus

Bajamos el pack de texturas retro de Super Mario 64 desde aquí. Creamos la carpeta SUPER MARIO 64 dentro de .mupen64plus, de tal modo que la ruta absoluta sería: /home/usuario/.mupen64plus/hires_texture/SUPER MARIO 64/ Allí descomprimimos el archivo que nos acabamos de bajar.

Ahora lanzamos de nuevo el Super Mario 64 y veremos cómo se van cargando las nuevas texturas:

Antes:

Super Mario 64 en Mupen64Plus con el plugin de vídeo de Rice

Después:

Super Mario 64 en Mupen64Plus con el plugin de vídeo de Rice y texturas retro de Risio

En próximos días añadiremos enlaces a varios packs de texturas. ¡Permanezcan atentos a sus pantallas!

World Rally emulado… ¡y liberado!

Extraído del blog del propio Manuel Abadía

La emulación del World Rally está completada. He implementado las prioridades (que han sido más difíciles de lo que pensaba), los focos y sombras, y algún detalle que faltaba del hardware gráfico (…) Es completamente jugable sin que haya podido observar ningún problema.

World Rally I (1)

World Rally I (2)

Y por si fuera poco, Gaelco (desarrolladora del juego) ha liberado las ROMs del juego y cedido el driver al proyecto MAME para hacerlo funcionar de forma totalmente gratuíta y legal:

El deseo de Gaelco S.A. al liberar el código del World Rally I, ha sido que todos los jugadores que colaboraron a que este juego fuera un Hit, puedan a partir de hoy volver ha revivir aquellos momentos desde el sofá de su casa.
Desde aquí en nombre de todos debemos agradecer a todas aquellas personas que han hecho realidad que el World Rally I corra en nuestro P.C. Esto no hubiera sido posible sin el esfuerzo desinteresado de Manuel Abadía y Elsemi entre otros (…)

¿Qué se necesita?

Las ROMs proporcionadas por Gaelco (Link)
El emulador MAME en su versión 0.125u1 o superior (MAMEUI)

Splitvt, divide la consola

Inauguramos nueva sección: Terminalitis. Bajo esta categoría se almacenarán artículos sobre trucos o programas que sacan partido de la bendita línea de comandos. Programas sólo para consola. Para enfermos de las “no ventanas” 😛

Como primera estrella, hablaremos de splitvt.

Qué es

splitvt es un programa que permite tener abiertas dos consolas, dos intérpretes de comandos, en una misma ventana. Para ello, divide la ventana actual (o terminal) en dos partes con una consola en la parte superior y otra debajo:

Splitvt

Es muy útil cuando estamos en entornos sin servidor gráfico y queremos modificar algún archivo mientras consultamos otro. Por ejemplo, programando o editando ficheros de configuración mientras leemos el manual.

Instalación

Vaya usted a su gestor de paquetes favoritos e instálelo desde ahí. ¿Usa Debian o derivados? $sudo apt-get install splitvt y listo.

Cómo se usa

Desde un terminal tecleamos splitvt y la ventana se dividirá en dos. Será como si tuviésemos dos terminales abiertos. Para pasar de uno a otro, usamos la combinación de teclas Ctrl+w.

Aquí tenemos un problema con esta combinación de teclado, ya que en el editor nano sirve para realizar búsquedas. Con lo cual es buen momento para aprender a usar vi 😉

Con la combinación Ctrl+o, entraremos en modo comando. En el manual ($man splitvt) podéis encontrar todas las opciones. Aquí destacaremos un par de ellas:

Ctrl+o y después x permite bloquear las consolas con una contraseña. Nos pedirá que introduzcamos una contraseña dos veces y la ventana quedará bloqueada hasta que introduzcamos la contraseña correcta.

Ctrl+o y después q permite cerrar splitvt de forma rápida (en lugar de teclear exit en cada terminal hasta salir).

Split! 😛

FIC.tion por fin disponible

FIC.tion

Ha pasado casi un año desde que hablé aquí en Nand de FIC.tion, el pequeño y sencillo creador de aventuras conversacionales que había hecho como práctica de una asignatura. Ahora, y después de mucho tiempo en el olvido, le he hecho los retoques necesarios para ponerlo a disposición de todo el mundo. Como decía en su momento, no liberaré su código fuente (al menos por ahora) porque sigue en desarrollo, no es una proeza informática y (unido al primer motivo) es posible que lo use como base para mi Proyecto de Fin de Carrera. A pesar de ello, no tendré ningún problema en responder preguntas técnicas, aunque de algunos detalles de implementación ya ni me acuerdo xD

Los requisitos para hacerlo funcionar son:

  • Un PC con Linux. Sí, sigue sin haber versión Windows, lo siento 🙁
  • Un compilador y máquina virtual de Java, con la 1.6.0 de Sun sé que funciona.
  • Este paquete.

Una vez bajado el paquete no hay más que descomprimirlo en alguna parte haciendo algo del estilo tar -xvf Fiction_distributable.tar.gz. El fichero README incluído creo que esta bastante auto-explicativo, por si por si acaso…

* ./compile.sh tarde.sfl compila el juego de ejemplo incluído. El .java que genera va a parar al directorio java/
y es un fichero de código fuente normal y corriente que puede ser modificado y leído por un
humano.

* ./run.sh Tarde ejecuta el juego anteriormente compilado.

En otra entrada explicaré un poco cómo funciona el lenguaje que creé, De esta forma, alguien con curiosidad y algo de tiempo libre podrá disfrutar jugando a su propia aventura :]

ScummVM en tu iPhone/iPod touch

AVISO: El siguiente procedimiento implica hacer algunas guarrerías no soportadas por Apple. A pesar de que los creadores del AppSnapp afirman que lo peor que puede pasar es que tengas que restaurar el cacharro mediante iTunes, no me hago responsable de los posibles daños ocasionados. He dicho.

Tras la conferencia del MacWorld del pasado martes, se puso a disposición del público el nuevo firmware 1.1.3 para iPhone/iPod touch. Así que como fan de las actualizaciones, me la bajé enseguida. Con tal mala suerte que, por motivos desconocidos, iTunes no era capaz de instalarla. Por si fuera poco, mi iPod quedo enladrillado temporalmente: no podía actualizarlo, ni escuchar música ni nada de nada. Después de pelearme con él un buen rato, conseguí volver al firmware 1.1.1 y hacerlo funcionar. Y, como no hay mal que por bien no venga, aproveché para probar eso del jailbreak que en tantas partes había leído pero nunca había probado.

Pero, ¿qué es el jailbreak? Es el nombre que recibe la liberación de un iPhone/iPod touch de tal forma que escapamos de las ‘garras’ de Apple y el aparato pasa a ser algo más nuestro, es decir, podremos:

* Usar una tarjeta SIM de un operador distinto al contratado en el caso del iPhone.
* Modificar el aspecto (iconos, fondo, etc.) del interfaz.
* Usar las aplicaciones del iPhone que no vienen en el iPod touch (Mail, Maps, Stocks y Weather) sin tener que pagar los 20$ que Apple ha decidido cargar a los early-adopters como yo.
* Instalar aplicaciones de terceros (i.e. no de Apple), como por ejemplo ScummVM, que es el caso que nos ocupa.

iPhone ScummVM

Los pasos a seguir son los siguientes:

* Si tu iPhone/iPod touch ya tiene el firmware 1.1.1 (Ajustes – General – Acerca), pasa al punto 2.
* Si tu iPhone/iPod touch ya está jailbroken, pasa al punto 3.

1. Downgrade al firmware 1.1.1

Primero tendrás que bajarte el firmware 1.1.1 desde aquí. Una vez hecho esto, conecta al iPhone/iPod touch al ordenador. Si está encendido, apágalo. Ahora, enciéndelo pulsando a la vez el botón home y el botón superior. Cuando aparezca el logo de Apple, sólo deja pulsado el botón home. En teoría, debería de aparecer la pantalla pidiendo que lo conectes al ordenador y que abras iTunes (como la primera vez que lo enciendes). Ejecuta iTunes y en el menu de gestión del iPhone/iPod, haz click en restaurar pulsando a la vez Shift en el teclado. De esta forma podremos elegir el qué firmware instalar (el 1.1.1 en nuestro caso) navengando por el disco del ordenador.

itunes.png

2. Instalación de AppSnapp y jailbreak

Para hacer el jailbreak no hay más que entrar en el Safari del iPhone/iPod touch, ir a la URL http://www.jailbreakme.com y descargar AppSnapp. Pasados unos instantes y siguiendo las instrucciones en pantalla, aparecera un nuevo icono llamado Installer.

appsnapp.jpg

3. Instalación de ScummVM

Entrando en el Installer anteriormente citado, pulsamos en Install (fila de iconos inferior). Nos dirigimos a la categoría Games y ahí seleccionamos ScummVM. Ahora simplemente hay que pulsar en Install (arriba a la derecha). Una vez instalado, pulsamos el botón home, desbloqueamos el iPhone/iPod touch y veremos un nuevo icono relativo a ScummVM.

4. Copia de juegos al iPhone/iPod touch mediante scp

La mayoría de los tutoriales que tratan la gestión de archivos dentro de un iPhone/iPod touch usan WinSCP, así que yo no voy a ser menos. Imagino que mediante scp a pelo en Mac OS/Unix/Linux debería de funcionar igualmente. Para poder copiar cosas al iPhone/iPod touch, primero tendremos que instalar (de forma similar a como hicimos con ScummVM) los paquetes Community Sources, BSD Subsystem y OpenSSH. Hecho esto, ejecutamos WinSCP. En él, en el campo IP ponemos la IP de nuestro iPhone/iPod touch (Ajustes – Wi-Fi – icono (>) de la conexión en uso). Como usuario ponemos root, como contraseña alpine, marcamos el protocolo SCP y hacemos click en Conectar. Ahora simplemente tendremos que arrastrar las carpetas de los juegos que tengamos en nuestro disco duro (izquierda) al iPhone/iPod touch (derecha). Para que el aparato lleve bien la contabilidad del espacio libre, es recomendable copiar los archivos en /var/root/.

winscp.png

En el wiki oficial del port de ScummVM para iPhone/iPod touch hay una lista de compatibilidad indicando los juegos soportados y su ‘corrección’ al funcionar.

5. Jugar

Pulsando en el icono ScummVM de nuestro iPhone/iPod touch, entraremos en su menú principal. Para añadir un juego, no hay más que pulsar en Add Game y buscarlo entre los directorios. Hecho esto, se añadirá a la lista de juegos disponibles.

Los controles son los siguientes:

* Click izquierdo: un toque sobre la pantalla
* Click derecho: manten un dedo sobre el lugar donde quieres hacer click y da un toque con otro.
* Cursores: desliza un dedo a lo largo de la pantalla en la dirección deseada, sin usar ningún otro.
* ESC: mantén un dedo sobre la pantalla y toca dos veces con otro.
* F5 (menú de opciones): mantén un dedo sobre la pantalla y desliza otro de arriba a abajo.
* Teclas F: pulsa el número asociado en el teclado mostrado en pantalla. Es decir, si quieres pulsar F9, pulsa la tecla 9 (obviamente sólo funcionan las teclas F1 a F9).
* Pausa: barra espaciadora del teclado en pantalla.
* (Des)Activar el modo Click+Drag: mantén un dedo sobre la pantalla y desliza otro de abajo a arriba. En este modo los clicks son enviados inmediatamente cuando tocas la pantalla, arrastra a donde deslices el dedo y ‘suelta’ cuando lo retiras. Si usas otro dedo en este modo, es como si soltases el botón izquierdo del ratón y pulsases el derecho.
* Suspender: pulsa el botón home.
* Salir: pulsa el botón home durante unos 5 segundos.

Conversión de vídeos para iPod en Debian

Atención porque empieza, lo que seguro será, una larga serie de tutoriales dedicados a productos de la manzanita. ¿Por qué? Arxel ya presumía de su iPod Touch y yo tengo en mis manos un iPod Classic (si es que no me lo merezco). Como nos gusta comentar y compartir aquellas cosas que vamos aprendiendo y nos resultan útiles, —y sobre todo que hayamos probado por nosotros mismos— aquí nos tendréis dándoos la vara.

Me centraré, en este post, exclusivamente en el iPod Classic, que es el que tengo. Para el iPod Nano nhttp://nand-magazine.net/2008/01/02/conversion-de-videos-para-ipod-en-debian/#comment-4877o varía. En cuanto al iPod Touch, le pediremos a Arxel que nos haga una guía 😉

Vídeo en el iPod

The IT Crowd on iPod Classic
Los modelos de iPod que reproducen vídeo (desde los de quinta generación) soportan dos códecs de vídeo: H.264 y MPEG-4 en tres tipos de contenedores (o formatos): .m4v, .mp4 y .mov. Muchos de los vídeos que nos encontramos por la red o series y películas que nos descargarmos están en .avi y comprimidos con DivX o XviD, lo que implica que tenemos que convertirlos al formato adecuado para que el iPod los pueda reproducir.

NOTA: técnicamente, el iPod soporta XviD, pero no es lo más recomendable (por calidad, sobre todo). Así que nos centraremos en los otros dos códecs de vídeo.

El formato de audio también es un tanto especial. No es el popular MP3, sino AAC (ojo, que es incluso algo mejor que el primero).

En resumen, los vídeos que vayan a ir a nuestro iPod deben cumplir las siguientes condiciones:

  • Vídeo: H.264 ó MPEG-4
  • Audio: AAC

Hay que tener en cuenta ciertas limitaciones en cuanto a audio y vídeo. Si nos pasamos, puede que el iPod no reproduzca el vídeo o el sonido:

  • Vídeo
    • H.264: hasta 768 kbps, 320×240, 30 fotogramas por segundo (fps), perfil de línea de base hasta el Nivel 1.3.
    • H.264: hasta 1.5 Mbps, 640×480, 30 fps, perfil de línea de base de baja complejidad
    • MPEG-4: hasta 2,5 Mb/s, 640×480, 30 fps, Perfil simple.
  • Audio: hasta 160 kb/s, 48000 Hz y audio estéreo

Con lo cual sería tontería codificar un vídeo a más de 30 fotogramas por segundo, con 192 kb/s de audio y a una resolución de 800×600. El iPod lo truncará a su límite. Así que está bien tener estas limitaciones en cuenta porque podemos usarlas para conseguir vídeos de tamaño mucho menor o sencillamente optimizados.

ffmpeg: el conversor

En GNU/Linux tenemos una auténtica navaja suiza. El ffmpeg nos deja hacer de todo (en lo que a vídeo se refiere). Aunque tenemos dos problemas: se usa por consola (¿esto es un problema?) y los paquetes para Debian no están compilados con soporte para AAC, XviD o H.264 [ Aviso para usuarios de Debian lenny: El paquete de ffmpeg para Debian lenny tiene habilitado este soporte, así que bastará con que instaléis el binario vía apt o aptitude ]. ¿Qué significa esto? Que no podemos usarlo —tal como viene— para convertir nuestros vídeos a “formato iPod”. ¿Entonces qué hacemos? ¿No hay más opciones? Podríamos usar el mencoder (que es del estilo de ffmpeg, pero a mí no me gusta tanto :-P) o pasarnos a otro sistema operativo (¡NOOOO!). Debo confesar que estuve haciendo pruebas de conversiones en un Windows con un programa gratuito y bastante sencillo llamado Videora, pero me desesperó, así que me volví a mi Debian y me dije: “Vamos a compilar ffmpeg”.

Compilando ffmpeg con soporte para H.264, AAC, XviD…

Espero que nadie se haya asustado al escuchar la palabra “compilar”. En realidad no es ninguna experiencia traumática. Fue más sencillo de lo que esperaba. Venga, comencemos.

Necesitamos el código fuente del ffmpeg que descargaremos vía subversion para hacernos con la última versión. (Para instalar subversion: #apt-get install subversion). Nos situamos en el directorio donde almacenaremos el código y lo descargamos tal que así: svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg. Tendremos una carpeta llamada ffmpeg con un montón de archivos y directorios.

Antes de seguir, tenemos que instalar las siguientes bibliotecas y el compilador de C:

#apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev libvorbis-dev liba52-dev libdc1394-dev libgsm-dev libx264-dev gcc

Ahora, y dentro del directorio de ffmpeg, configuraremos el archivo configure (valga la redundancia):

./configure --enable-gpl --enable-pp --enable-libvorbis --enable-liba52 --enable-libdc1394 --enable-libgsm --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264

Ejecutamos el archivo Makefile: $make.

E instalamos: #make install.

Después de un rato, si todo ha ido bien, tendremos el binario en la carpeta /usr/local/bin (salvo que configurárais otra ruta manualmente).

Podemos hacer una prueba para comprobar si se ha compilado con soporte para los codecs que nos interesan. Así que ejecutáis ffmpeg sin parámetros y buscáis en las primeras líneas enable-biblioteca. Yo obtengo esta salida:

tempwin@debianbox:~/packages/ffmpeg$ ffmpeg
FFmpeg version SVN-r11352, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-libvorbis --enable-liba52 --enable-libdc1394 --enable-libgsm --disable-debug --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libxvid --enable-pthreads --enable-libx264
  libavutil version: 49.6.0
  libavcodec version: 51.49.0
  libavformat version: 52.3.0
  built on Dec 29 2007 22:55:01, gcc: 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)
usage: ffmpeg [[infile options] -i infile]... {[outfile options] outfile}...
Hyper fast Audio and Video encoder

H.264 vs MPEG-4

Por si alguien lo había notado, instalamos la biblioteca libx264 y no libh264. ¿Por qué? Bueno, libh264 no existe 😛 El códec X.264 es una implementación libre de la especificación del códec H.264, por ello es la que se usa en sistemas GNU/Linux.

Lo bueno que tiene H.264 frente a MPEG-4 es que consigue vídeos de alta calidad con tamaños menores que MPEG-4. Pero tiene inconvenientes. Es bastante lento y hace un uso más intensivo de la CPU. Esto se traduce en más horas de transcodificación. Además, los parámetros que hay que pasarle a ffmpeg son muchos más pues hay que controlar más aspectos. Eso sí, se nota en el resultado. Para vídeos de resoluciones grandes (más de 640×480), es mejor MPEG-4. En los ejemplos de este post usaremos ambos. Cambiar entre uno y otro es muy sencillo, así hacéis pruebas y os quedáis con el que más os convenza.

Convirtiendo vídeos a formato iPod

Desde luego es más corto decir “formato iPod” que vídeo codificado usando H.264 ó MPEG-4 con sonido comprimido en AAC 😛

Yo uso ffmpeg con los siguientes parámetros:

MPEG-4

No lo he probado a fondo porque casi no lo uso.

ffmpeg -i video_origen.avi -f mp4 -vcodec mpeg4  -b 768kb -qmin 3 -qmax 5 -bufsize 1M -acodec libfaac -ab 96kb -s 320x240 -aspect 4:3 -title "Título del vídeo" video_resultante.mp4

Sobre la resolución (-s) y la proporción (-aspect), lee el final del post (importante).

MPEG-4 Panorámico

Cuando el vídeo original tiene un aspecto 16:9. Cambiamos la resolución (-s) a 320×192 (después de muchas pruebas, he resuelto que es la mejor para el iPod, en cuanto a vídeos panorámicos se refiere) y el aspecto (-aspect) a 16:9. A veces, indicar el aspecto no es necesario, tan sólo la resolución.

ffmpeg -i video_origen.avi -f mp4 -vcodec mpeg4  -b 768kb -qmin 3 -qmax 5 -bufsize 1M -acodec libfaac -ab 96kb -s 320x192 -aspect 16:9 -title "Título del vídeo" video_resultante.avi.mp4

H.264

Es el que suelo usar. En dos pases (tarda más, pero el resultado es muchísimo mejor).

ffmpeg -y -i video_origen.avi.avi -an -v 1 -threads auto -vcodec libx264 -b 256k -bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 1 -me_range 21 -chroma 1 -slice 2 -bf 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 -i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 320x240 -aspect 4:3 -f mp4 -pass 1 /dev/null

Segunda pasada:

ffmpeg -y -i input_file.avi -v 1 -threads auto -vcodec libx264 -b 256k -bt 175k -refs 1 -loop 1 -deblockalpha 0 -deblockbeta 0 -parti4x4 1 -partp8x8 1 -me full -subq 6 -me_range 21 -chroma 1 -slice 2 -bf 0 -level 30 -g 300 -keyint_min 30 -sc_threshold 40 -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.7 -qmax 51 -qdiff 4 -i_qfactor 0.71428572 -maxrate 768k -bufsize 2M -cmp 1 -s 320x240 -aspect 4:3 -acodec libfaac -ab 96k -ar 44100 -ac 2 -f mp4 -pass 2 -title "Título del vídeo" video_resultante.mp4

H.264 Panorámico

Igual que con MPEG-4: Cambiamos la resolución por 320×192 y el aspecto por 16:9

Algunas consideraciones

Es importante conocer las propiedades del vídeo original antes de hacer la conversión. Si la fuente original tiene una calidad de audio muy pobre, pocos fotogramas por segundo y un bitrate bajo, de nada va a servir que aumentemos la calidad pues como mucho tendrá la misma que el original. A lo que me refiero es a si, en el vídeo original, el audio fue grabado a 64k, es tontería pasarle, a la hora de convertirlo, 96k. Sin embargo, al revés podemos usarlo para hacer una conversión perfecta y/o más comprimida.

Podéis mejorar la calidad del sonido (-ab), así como la frecuencia de muestreo (-ar), dándole valores más elevados. En los ejemplos está puesto a 96k y se escucha muy bien. Más calidad se traduce en más tamaño, así que tenedlo en cuenta. Lo mismo podéis hacer con la calidad del vídeo (argumento -b). Os recuerdo que todo esto teniendo presente las limitaciones del vídeo original.

Si queréis optimizar vuestros vídeos para que puedan verse con buena calidad en una televisión, ajustad la resolución a 640×480 y el bitrate de media (-b) a 500k.

Proporciones de pantallaPara que los vídeos en formato panorámico se vean bien en el iPod hay que ir al menú VídeosAjustesAjustar a pantalla y desactivar esta opción, de lo contrario, el iPod trataría de ajustar el vídeo para que ocupe todo el ancho y la altura de la pantalla posible, traduciéndose en imágenes alargadas y estrechas. Echando un vistazo a la imagen de la derecha, tenéis un ejemplo de lo os digo.

Para los vídeos que tengan una resolución panorámica, pero no sigan ningún estándar (16:9, 2.39:1, 1.85:1, etc.), deberemos ajustar la altura a la medida óptima y que sea divisible por 16. A la anchura no tenemos que hacerle nada porque 320 es divisible por 16 (es decir, su resto es 0). Un ejemplo: Si el vídeo original es de 608×256, le correspondería una resolución de 320×134 (basta hacer una regla de tres), pero 134 no es divisible por 16. El valor más cercano, divisible por 16, por abajo sería 128, y por arriba 144. No son demasiados píxeles de diferencia, así que recomiendo coger el valor más alto (las bandas negras serán más finas). Ah, ¿que por qué el capricho de que tenga que ser divisible por 16? El códec comprime el vídeo bloques de 16×16 píxeles. Podrías indicarle una altura que no fuera divisible por este número, pero la compresión afectaría más a la calidad.

Según la versión de ffmpeg que tengas, para indicar el códec de vídeo y audio a usar, puede variar el nombre. En la versión que tengo yo para usar el códec AAC, lo indico con -acodec libfaac; pero he visto otra versiones en las que basta con -acodec aac. Lo mismo pasa con -vcodec libx264; hay versiones que es tan sencillo como -vcodec h264. Sabréis cuál usar si al escribirlas, os devuelve un error del tipo Unknown encoder 'aac' o Unknown enconder 'h264'.

Los valores de vídeo y audio son también válidos para el iPod Nano, pues también tiene la misma resolución de pantalla que el Classic.

Sobre las relaciones de aspecto (o proporciones), es importante conocerlas para obtener vídeos lo más fieles al original (acordaos de la divisibilidad por 16):

  • 4:3 (TV): 320×240
  • 16:9 (TV panorámica): 320×176, 320×192
  • 1.85:1 (Panorámica estándar): 320×160, 320×176
  • 2.39:1 (CinemaScope o Panavision): 320×128, 320×144

Para acabar, unos datos para que veáis los resultados:

  • Vídeo Original
    • Audio: VBR MP3, 128kbps, 48000Hz
    • Vídeo: 608×256, 25 fps, DivX 5, 1hh:45mm:48ss
    • Tamaño: 699,8MB
  • Vídeo iPod
    • Audio: AAC, 128kbps, 48000 Hz
    • Vídeo: 320×144, 25 fps, H264
    • Tamaño: 282,0 MB

Lo sé. Un artículo denso y mal estructurado porque sigo añadiendo cosas según hago avances. De todos modos, la idea es reunir todo tipo de información sobre la codificación de vídeos para el iPod. ¡Que aproveche!