RetroArch Wii

Para consultas y debates sobre el contenido de este artículo, visita el Hilo oficial.


RetroArch Wii
Retroarch wii icon.png
General
Autor(es)
Themaister, Toad King, Squarepusher/Twin Aphex
Tipo
Emulador
Versión
v1.0.0.1
Fecha de la release
11 Enero 2014
Enlaces
Periféricos
Wiimote4.png WiiMandoGCN.png WiiSD.png


Contenido

Versiones Hermanas

CÓMO INSTALAR ESTO

Copie todo el directorio (retroarch-wii) a la tarjeta SD en el directorio 'apps'. Ponga en marcha el Canal Homebrew y después elija RetroArch Wii ahí.

En el primer arranque, RetroArch creará una carpeta en la raíz de su dispositivo de almacenamiento llamado 'retroarch'. Todos los archivos de configuración de RetroArch se almacenan aquí.

INSTRUCCIONES PARA COMPILARLO

1.- Instalar devkitpro siguiendo estas instrucciones, luego hay que bajar la ultima version de la repo que contiene todos los núcleos de aqui, e instalar Git para windows de su página oficial.

2.- Descomprimir el zip de libretro-super en cualquier carpeta (os recomiendo una ruta sencilla, como C:\retrowii\libretro-super-master\), abris una ventana de comandos (cmd.exe), navegar hasta la carpeta que se acaba de descomprimir y ejecutar los siguientes scripts:

libretro-fetch.sh

bash libretro-build-wii.sh

Si no se pone "bash" antes, el script de wii probablemente falle y no se os compile nada.

3.- Esto ha creado una carpeta llamada dists en cuyo interior hay multitud de archivos llamados "nombre_del_core.a", por ejemplo "gammbate_libretro_wii.a". Copiamos uno cualquiera y nos lo llevamos a la carpeta "retroarch" que se os habra creado en el directorio de los scritps. Lo dejamos en el directorio raiz renombrado a "libretro_wii.a"

4.- Abrir una ventana de comandos de MSDOS (ejecutar -> "cmd") y pinchar los siguientes comandos:

make -f Makefile.wii.salamander clean pkg

Creara un boot.dol en la carpeta /retroarch/wii/pkg para que podais lanzar la aplicacion desde el HBC.

make -f Makefile.griffin platform=wii

Compilara el core que habiamos renombrado de "libretro_wii.a" a "retroarch_wii.dol".

5.- Renombarlo manteniendo la nueva extension, por ejemplo "gammbate_libretro_wii.dol" y guardar en otra carpeta.

Borramos del directorio retroarch los archivos retroarch_wii.elf y retroarch.elf.map.

A continuacion coger otro core de los que tenian extension *.a, renombrarlo a "libretro_wii.a" y repetir el paso de:

make -f Makefile.griffin platform=wii

Y asi con todos los cores.


ALTERNATIVA

Bueno, parece ser que hay un metodo mas sencillo y eficaz.

Una vez tengamos el directorio dists lleno de archivos "*_libretro_wii.a", los copiamos todos a la carpeta "\libretro-super-master\retroarch\dist-scripts\" y ejecutamos desde una ventana de comandos el script "wii-cores.sh":

bash wii-cores.sh

Esto nos dejara todo compiladito y organizado en la carpeta "\libretro-super-master\retroarch\wii\pkg\".

CÓMO UTILIZAR ESTO

En el primer arranque, RetroArch seleccionará uno de la docena de emuladores/ núcleos. El nombre del núcleo actualmente cargado se muestra en la parte inferior de la pantalla.

Ahora puede seleccionar una ROM que soporte este núcleo y cárgalo en el explorador de archivos.

Para seleccionar un núcleo diferente, debe ir al menú de configuración (ver "Controles dentro del juego"). Seleccione 'Core' en la opción y pulse el botón A. Un explorador de archivos aparecerá donde puede seleccionar un núcleo diferente. Presione A para cambiar al emulador /nucleo de juego.

Después de hacer esto, seleccione 'Reiniciar RetroArch' (Restart RetroArch) para cargar el núcleo seleccionado.

Cómo usar una configuración diferente por core o por juego

En este apartado vamos a explicar como poder tener una configuración individual por cada core o juego en versiones actuales de retroarch (1.3.x). Esto es útil para establecer diferentes resoluciones, overlays, etc..

Introducción

En antiguas versiones de Retroarch había una sencilla opción que permitía tener configuraciones independientes por core (núcleo), en vez de usar una configuración general para todos. Con el tiempo, se hizo también necesaria una configuración individual por juego, ya que hay juegos horizontales, otros verticales, etc. Para permitir también estás configuraciones por juego se incluyó otra opción, la de los archivos de anulación ("Load Override Files Automatically").

La adicción de está opción supuso un problema de conflictos en retroarch, debido a que se solapaba con la primera opción, la de las configuraciones per-core, y no funcionaba bien. Es por ello que los responsables de Retroarch decidieron eliminar la primera opción, ya que está no permitía configuraciones por juego, solo por core, y sin embargo la segunda opción permite ambos tipos de configuraciones independientes, además de ahorrar espacio, ganar optimización y velocidad de carga.

Pero esta decisión, teóricamente muy correcta, en la práctica ha generado confusión entre los usuarios, llegando incluso a creer que se había eliminado la opción de configuraciones individuales, en vez de ampliarse, como se ha hecho. Una de las causas de este malestar es la imposibilidad de generar desde el retroarch los archivos de forma automática, como antes; la otra es el propio desconocimiento de que la opción sigue existiendo, aunque requiera un trabajo manual, el cual explicaremos a continuación, tratando de paliar ambos casos a la vez, ya que resulta sencillo una vez que lo sabemos hacer. No es un método tan cómodo como configurar desde propio retroarch, pero tampoco imposible, y además nos da la posibilidad de tener configuraciones personalizadas también por juego.

Cómo funcionan los archivos "Override"

Retroarch guarda la configuración general, para todos los cores, en el archivo retroarch.cfg; pero, si tenemos activada la opción Configuration > Load Override Files Automatically, retroarch buscará antes el archivo "Override" correspondiente al core o juego cargado, para usar configuraciones especificas que tengamos en ese archivo, y después usará el archivo retroarch.cfg, citado anteriormente, para cargar el resto de configuraciones.

Por tanto, el archivo "Override" debe contener solamente aquellas opciones del archivo retroarch.cfg que queramos cambiar para ese juego o core. Por ejemplo, esto:

video_refresh_rate = "59.826099"
custom_viewport_width = "384"
custom_viewport_height = "224"
custom_viewport_x = "7"
custom_viewport_y = "-1"
aspect_ratio_index = "22"
video_smooth = "false"
input_overlay_enable = "false"
current_resolution_id = "4"

La ruta y nombre del archivo "Override" debe ser esta (por defecto en el caso de Wii, y si tenemos el retroarch en la SD):

SD:\retroarch\[Carpeta con nombre del core]\[Nombre del core o juego].cfg

Pongámos el ejemplo del core FBA CPS1; sería así:

SD:\retroarch\FBA Cores CPS1\FBA Cores CPS1.cfg

O si queremos aplicar esa configuración sólo a un juego:

SD:\retroarch\FBA Cores CPS1\3wonders.cfg
Podemos usar si queremos un archivo "Override" general para el core, y otros archivos "Override" para los juegos que queramos.
El orden de preferencia con el que retroarch carga los archivos de configuración es este:
1) Override de un juego
2) Override del core
3) retroarch.cfg

Cómo crear los "Override" de forma semi-automática

Tal y como hemos comentado, no es posible generar los archivos "Override" de forma automática desde el propio retroarch. Es por ello que os dejo un truquillo de mi cosecha (by gynion) para que no os resulte tan tedioso el proceso.

En primer lugar, debemos cargar el core correspondiente, y en el menú desactivamos esta opción:

MAIN MENU > Settings > Configuration > Save Configuration on Exit

Una vez hecho esto, guardamos así, pulsando el botón A sobre esta opción:

MAIN MENU > Save Current Config

Después de hacer eso, hacemos las confiraciones que queramos al core o juego, y finalmente guardamos individualmente el archivo así:

MAIN MENU > Save New Config

Eso nos generará un nuevo archivo de configuración, con otro nombre distinto al retroarch.cfg.

En el PC, conectamos nuestra SD de Wii y abrimos la carpeta del retroarch para ver ese archivo, que por defecto debe de estar junto al retroarch.cfg. El archivo retroarch.cfg no lo tocamos para nada, pero el otro archivo (el New que generamos en la Wii) lo podemos renombrar, para que lo siguiente que vamos a hacer nos resulte más cómodo; por ejemplo, le ponemos este nombre: retronew.cfg.

Ahora vamos a generar el archivo "Override". Abrimos el CMD y nos vamos a la carpeta donde están retroarch.cfg y retronew.cfg, y desde ahí introducimos este comando:

findstr /vig:".\retroarch.cfg" ".\retronew.cfg" > .\override.cfg

Ya tenemos el archivo listo; ahora solo tenemos que renombrarlo con el nombre correcto, ponerlo en la ruta correspondiente, y listo.

En vez de acceder al CMD, si se prefiere se puede crear una archivo BAT con ese comando, en la misma ruta de retroarch.cfg, para que al hacer doble clic sobre el BAT nos genere igualmente el archivo Override.

Nombre de los cores

El archivo "Override" no se cargará si la ruta y el nombre del archivo no es correcto.
Para saber el nombre correcto debemos cargar directamente el core correspondiente y mirar en la parte de abajo, en el menú principal del retroarch. Veremos algo como esto (ejemplo):
1.3.6 - FBA Cores CPS1 v0.2.97.28

De esa descripción, nos debemos quedar únicamente con lo resaltado en negrita a continuación:

1.3.6 - FBA Cores CPS1 v0.2.97.28

Es decir, pasamos de cualquier número o texto alusivo a la versión del core o del propio retroarch, y nos quedamos únicamente con el nombre del core. Ese será el nombre que deberemos usar para la carpeta y para el archivo Override de ese core.

Lista (Nombres de cores) - En construcción
fb_alpha_cps1_libretro_wii.dol = FBA Cores CPS1
fb_alpha_cps2_libretro_wii.dol = FBA Cores CPS2
mgba_libretro_wii.dol = mGBA

CONTROLES

RetroArch Wii va a crear un archivo de entrada nuevo por configuración para cada núcleo cargado. Todos los valores de entradas se guardan cuando sale de RetroArch.

‘’’NOTA’’’: Al poner en marcha un nuevo núcleo por primera vez, es posible que primero necesite inicializar los ajustes de entrada. Vaya al menú de configuración (ver "Controles dentro del juego") y vaya a 'Controller #number config'. Vuelva a establecer el "Dispositivo" yendo hacia atrás y de vuelta a adelante entre un dispositivo anterior. Los controles se aplicaran automáticamente.

Esto sólo se tiene que hacer una vez por núcleo.

CONTROLES EN EL JUEGO

Durante la operación dentro del juego usted puede hacer algunas acciones adicionales:

  • Wii Classic Controller Home – Volver al 'Menú'
  • Wiimote Home - Volver al 'Menú'
  • Gamecube pad L + R + LStick arriba + Rstick arriba - Volver al 'Menú'
  • Right Thumb Stick - Down - Acelera el juego
  • Right Thumb Stick - Up - Retrocede el juego en tiempo real (la opción para esto debe ser habilitada)
  • RStick Left + ZL - Decrementa el save state slot
  • Rtick Right + ZR - Incrementa el save state slot
  • RStick Up + ZR - Carga el save state slot seleccionado
  • RStick Down + ZR - Guarda en el selected save state slot seleccionado

(NOTA: Para controles de Gamecube, presionar el botón Z en lugar de ZR y ZL)


¿QUÉ ES RETROARCH?

RetroArch es un sistema emulador multi- sistemas modular que está diseñado para ser rápido, ligero y portable.

¿QUÉ ES LIBRETRO?

Libretro es la API que utiliza RetroArch. Hace fácil el portar juegos y emuladores a para motores de un solo núcleo, como RetroArch.

Para el usuario, esto significa, más puertos para jugar, más portabilidad multiplataforma, menos preocuparse por que los desarrolladores tengan que reinventar la rueda escribiendo repetitivos UI/código de puerto, para que ellos puedan ponerse a trabajar en la escritura del emulador/portando el emulador/juego.

¿CUÁL ES LA GRAN COSA?

Ahora mismo es el único que corre los mismos núcleos de emuladores en múltiples sistemas (como Xbox 360, Xbox 1, PS3, PC, Wii, etc.)

Por cada "núcleo" de emulador, RetroArch hace uso de una API de biblioteca que nos gusta llamar ‘libretro'.

Piense en libretro como interfaz para los puertos del emulador y el juego. Usted puede hacer un puerto de libretro una vez y esperar a que el mismo código se ejecute en todas las plataformas que RetroArch soporta. Está diseñado con la simplicidad y facilidad de uso en mente para que el portador pueda preocuparse por el puerto en la mano en lugar de tener que lidiar con una API ofuscadora.

El propósito del proyecto es contribuir a facilitar el trabajo del portador del emulador/juego dándole una API que le permite apuntar a múltiples plataformas a la vez sin tener que rehacer ningún código. Él no tiene que preocuparse de escribir drivers de entrada/vídeo/audio, todo eso es entregado a él por RetroArch. Todo lo que tiene que hacer es tener el enganchado el puerto del emulador en la API de libretro y eso es todo, nosotros nos encargamos del resto.

PORT DE WII

El port de Wii de RetroArch tiene las siguientes características:

  • Cambiar entre los núcleos de los emuladores sin problema alguno.
  • Capacidad de instalar nuevos nucleos de libretro.

EMULADORES/NÚCLEOS DE JUEGOS EMPAQUETADOS CON EL PORT DE WII

Está es la lista completa de núcleos que tiene RetroArch

Pero solo los siguientes emuladores/juegos se incluyen en el lanzamiento para Wii de RetroArch.

Para obtener más información al respecto, consulte el archivo incluido 'retroarch-libretro-README.txt'.

  • Final Burn Alpha Cores (CPS1, CPS2, NeoGeo) [versión 0.2.97.28] (**)
  • FCEUmm (Nintendo Entertainment System) [versión SVN reciente]
  • Gambatte (Game Boy, Super Game Boy, Game Boy Color) [versión 0.5.0 WIP]
  • Genesis Plus GX (Sega SG-1000, Master System, Game Gear, Genesis/Mega Drive, Sega CD) [versión 1.7.3]
  • Nestopia (v1.44)
  • NXEngine (v1.0.0.4)
  • PrBoom (para jugar Doom 1/Doom 2/Ultimate Doom/Final Doom) (v2.5.0)
  • Mednafen NGP (Neo Geo Pocket Color) (v0.9.26)
  • Mednafen PCE Fast (PC Engine/PC Engine CD/Turbografx 16) (v0.9.28)
  • Mednafen VB (Virtual Boy) (v0.9.26)
  • Mednafen Wonderswan (WonderSwan/WonderSwan Color/WonderSwan Crystal) (v0.9.28)
  • QuickNES (v1)
  • SNES9x Next (Super Nintendo/Super Famicom) (v1.52.4)
  • TyrQuake (v0.62)
  • VBA Next (Game Boy Advance) (v1.0.2) (*)

Todos los emuladores mencionados anteriormente son las últimas versiones actualmente disponibles. La mayoría de ellos se han optimizado específicamente para que funcionarán mejor en Wii (algunos juegos no alcanzarían su Velocidad completa sin estas optimizaciones).

  • (*) Algunos juegos no se ejecutan a Velocidad completa en Wii (VBA Next es un puerto emulador de RetroConsola Nivel 2). Se sustituirá por una puerto de gpSP en un futuro próximo.
  • (**)Las ROMs grandes de Neo-Geo que se pueden cargar son alrededor de 23+MB en tamaño, como el ‘Real Bout Fatal Fury 1’ y ‘King of Fighters '96’.

¿Qué extensiones son compatibles con cada núcleo?

  • PrBoom: WAD|wad
  • TyrQuake: pak
  • SNES9x Next: smc | fig | sfc | gd3 | gd7 | dx2 | bsx | swc | zip | SMC | FIG | SFC | BSX | GD3 | GD7 | DX2 | SWC
  • Genesis Plus GX: md | smd | bin | gen | zip | MD | SMD | BIN | GEN | ZIP | sms | SMS | gg | GG | sg | SG | cue | CUE
  • NXEngine/Cave Story: exe
  • VBA Next: GBA | gba
  • FCEUmm: nes | NES | unif | UNIF
  • NESTopia: nes | fds
  • QuickNES: nes
  • Gambatte: gb | gbc | dmg | zip | GB | GBC | DMG | ZIP
  • Final Burn Alpha: zip | ZIP
  • Mednafen PCE: pce | PCE | cue | CUE
  • Mednafen Wonderswan: ws | WS | wsc | CSM
  • Mednafen NGP: ngp
  • Mednafen VB: vb

SOPORTE DE ZIP

Para cada núcleo (excepto para Final Burn Alpha)

Hay tres modos:

  • EXTRAER EL ZIP EN EL DIRECTORIO ACTUAL: Al pulsar 'X' en un archivo ZIP en el Explorador de archivos, su contenido se extrae en el directorio actual. A partir de ahí, se puede cargar el ROM y jugar.
  • EXTRAER EL ZIP EN EL DIRECTORIO ACTUAL Y CARGAR EL PRIMER ARHIVO: Al pulsar 'X' en un archivo ZIP en el explorador de archivos, su contenido será extraído en el directorio actual.

El primer ROM que se extrajo del archivo ZIP será el ROM que se cargará automáticamente.

  • EXTRAER EL ZIP EN EL DIRECTORIO CACHÉ: Al pulsar 'X' en un archivo ZIP en el Explorador de archivos, su contenido será extraído en la partición /dev_hdd1/. A partir de ahí, puede cargar la ROM y jugar.

ADVERTENCIA: Los archivos Savestates y SRAM que se han creado por cargar ROMs desde el directorio caché, de esta manera se eliminarán después de que RetroArch haya sido cerrado.

PARA FINAL BURN ALPHA

Seleccionar un archivo ZIP desde el explorador de archivos cargará ese juego directamente.

Solución de problemas

Si usted encuentra que RetroArch ya no funciona por alguna razón, hay alguna manera de volverlo a hacer funcionar:

Elimine el archivo ‘retroarch.cfg’ de la carpeta 'retroarch’ en su dispositivo de almacenamiento, luego inícielo de nuevo. El servicio de gestión de Libretro en RetroArch debería automáticamente escoger un núcleo de libretro aleatoriamente y escribir esto en el fichero de configuración.

¿Qué se puede esperar en el futuro?

  • Lograr que el port de libxenon sea digno de lanzar
  • Terminar el port de MAME 0.72
  • Terminar el port de ScummVM
  • Hacer un port de VICE a libretro
  • Más emuladores y más juegos que funcionen en RetroArch
  • Un montón de otras ideas locas que podrían o no tener éxito.

Advertencias

Esta versión ha estado un largo tiempo en fabricación, y es la primera vez, que yo (Toad King) sepa que muchos de los juegos CPS2 se pueden jugar en la Wii.

Sólo algunas advertencias para saber a donde ir:

  • Lea el README para saber los controles! Habíamos puesto algunos controles no convencionales para el menú de navegación, específicamente para el controlador de GameCube, donde nos faltaba un botón de inicio.
  • Puede haber un retraso entre la carga de RetroArch y mostrar el menú debido al cargador principal. Esta espera puede ser amplificada en tarjetas SD/USB stcks lentos y en el primer arranque cuando los archivos y directorios se están generando.
  • Algunos núcleos pueden reaccionar si carga múltiples juegos en ellos sin reiniciar. Específicamente PrBoom se colgará e irá al HBC si intentas cargar un segundo WAD.
  • RetroArch no hace ningún frameskipping. Mientras que una gran cantidad de trabajo se ha hecho para hacer que los juegos funcionen a velocidad completa todo el tiempo, hay algunos juegos que se retrasarán un poco. (Específicamente a seleccionar juegos de FBA y, posiblemente, algunos juegos de SNES con características como pseudo-hires modo/SA-1 chips/etc.)
  • Si bien hemos hecho un montón de trabajo para hacer el audio perfecto, algunos testers reportaron todavía algunos estallidos. Si percibe estos, intente modificar el la tasa de control de audio en las opciones.
  • La mayoría de los juegos de CPS2 pueden cargar bien. Por favor, informe si encuentra algún accidente en la carga.
  • No todos los juegos de NeoGeo se pueden cargar. Si el tamaño del archivo ROM es de más o menos de 23 MB, se puede bloquear la carga.
  • El núcleo completo de FBA no fue lanzado en la versión de Wii debido a que es tan grande que no puede cargar algunas ROMs grandes. Si quieres darle una oportunidad, puede descargarlo aquí: https://anonfiles.com/file/2fcd761080b7b23a21e15056451c9182 (Extraer en apps/retroarch-wii, manteniendo su nombre en CORE.dol, al cargarlo se cambiará el nombre correctamente).

Por favor, tenga en cuenta que las ROMs bloquearán el emulador si se queda sin memoria. La mayoría de las ROMs de alrededor 5-7 MB cargan bien, y 10 MB es probablemente el límite.

Créditos

  • Mudlord por su Waterpaint/shaders de ruido.
  • Hyllian por el shader xBR.
  • Opium2k por los buenos shaders manuales (incluido con la versión de PS3).
  • Deank por ayudar con RetroArch Salamander en PS3s CFW y Multiman interoperatibilidad.
  • FBA desarrolladores por adoptar el puerto libretro.
  • Ekeeke por ayudar con el puerto del Genesis Plus GX.
  • ToadKing por haber hecho un montón de trabajo en RetroArch Wii.
  • Freakdave por ayudar con el puerto de Xbox 1.

Sitios web