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 :-)

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 :-P 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? :-P
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:

- 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
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 aquí. 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 unrar).
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:



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.

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

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.

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:

Después:

En próximos días añadiremos enlaces a varios packs de texturas. ¡Permanezcan atentos a sus pantallas!
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.


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)
Antes de nada, las presentaciones. Mupen64 es un emulador de Nintendo 64 disponible para sistemas GNU/Linux y Windows (aunque también hay ports para otros sistemas como MacOS X). Lo interesante es que es de código abierto, con lo cual, está disponible el código fuente del emulador para quien quiera hacer modificaciones o sencillamente compilarlo para su máquina. Y eso es precisamente lo que haremos, compilar.
Por qué compilar
Hoy en día, es posible tener un sistema GNU/Linux como sistema operativo de uso diario (y de usuario medio) sin tener que enfrentarse nunca a una compilación ya que la mayoría de programas o bibliotecas vienen empaquetados de tal manera que el usuario puede instalarlos mediante el instalador de su distribución (yast, synaptic, yum…), de forma totalmente transparente y sin tener que configurar casi nada. Pero no todos los programas están empaquetados o preparados para una instalación “sencilla”, ya sea porque no son muy populares, porque son muy nuevos o porque nadie se ha tomado la molestia de preparar el paquete deb o rpm, por ejemplo. En estos casos no nos queda más que compilarlos nosotros o darle la vara a alguien que sepa y lo haga por nosotros :-P
Mupen64 se puede descargar desde la web ya compilado, es decir, bajarnos el binario, el ejecutable. El problema es que este binario fue obtenido en una distribución GNU/Linux y en una máquina que puede ser muy distinta a la nuestra. Muchas veces no habrá ningún problema en usar ese binario, otras, puede que obtengamos errores de violación de segmento o core dump, pero compilando nosotros nuestro Mupen64, conseguiremos un binario optimizado para nuestra máquina, evitando otros errores e incluso podremos ganar en velocidad de ejecución :-)
Qué necesitamos
- El código fuente, que podemos descargar desde aquí
- Bibliotecas gtk2. Buscad el paquete
libgtk2.0-dev o superior.
- Compilador de C:
gcc
- Bibliotecas de SDL:
libsdl1.2-dev
- Compilador de C++ (
g++) y biblioteca avifile (libavifile-0.7-dev). Sólo si queréis activar la opción de realizar VCR (más abajo lo explico)
¡A compilar!
Si ya hemos instalado todo lo de arriba, procedemos a descomprimir el código del Mupen64, así que en un directorio que queráis hacéis:
$ tar jxvf mupen64_src-0.5.tar.bz2
También podéis usar vuestro programa preferido para comprimir/descomprimir de forma gráfica.
Bien, ahora tendremos una carpeta llamada mupen64_src-0.5. Vamos dentro de ella y lo que nos interesa es el archivo configure que es el que hará todo el proceso de comprobación y compilación. Pero antes de lanzarnos, debemos corregir una línea en dicho fichero para evitar este error:
$./configure
Found a working C compiler (gcc).
Checking SDL…
./config.temp: 3: Syntax error: “(” unexpected
*** Couldn’t find a working SDL library!
Aunque tengamos instalada la biblioteca de SDL seguirá dando ese error. Para arreglarlo, abrimos el fichero configure con vuestro editor de texto favoritos y nos vamos a la línea (148 en la versión actual) que pone:
echo "int main(void) { if (SDL_Init( 0 ) < 0) { printf( \"SDL_Init(): %s\\n\", SDL_GetError() ); return 1; } return 0; }" >> "$FILE"
Y la sustituimos por esta otra:
echo "int main(void) { return 0; }" >> "$FILE"
Venga, que ahora sí que podemos compilar y sé que ¡lo estábais deseando!
$sh configure
Ahora nos hará una serie de preguntas. La primera nos da la opción de que mupen64 se instale en el directorio actual [ YES ] (con lo cual sólo tendrá acceso el usuario propietario) o instalarlo en otra carpeta para que tengan acceso el resto de usuarios de dicha máquina [ NO ]. Por defecto, está marcado sí.
La siguiente pregunta es sobre activar la opción de realizar capturas de vídeo de nuestras partidas (VCR support). Acordaos de que si elegís que sí, tenéis que tener instalados los dos últimos paquetes que menciono más arriba.
Por último nos pregunta si queremos crear el ejecutable de Mupen64. ¡Pues claro que queremos!
Esperamos un ratillo y tendremos en ese directorio el archivo mupen64, el emulador listo para usar. Podemos ejecutarlo desde consola con un $./mupen64. ¡Y a disfrutar!
Como nota final, también tenemos el código de algunos plugins para compilarlos, pero en esto no hay problema y podemos descargarlos (aquí) ya compilados, meterlos en la carpeta plugins y usarlos. Son los que terminan en .so. Y ya en el emulador, podemos configurarlos en el menú Configure. Ah, y con el código fuente vienen dos demos técnicas para probar el emulador.
Enjoy.
Enlaces relacionados