melonDS, mi nuevo emulador favorito

No estoy muerto, simplemente estoy viciado. En el último mes tuve unas ganas terribles de recordar algunos juegos de Pokémon, en parte gracias a las buenas experiencias que tuve con Gemini AI sobre la gestión personalizada de la partida y el análisis de estrategias. Una cosa llevó a la otra, y con la tontería estoy jugando el tercer título. Anteriormente disfruté de la edición Cristal (Game Boy Color, 2000) y la Esmeralda (Game Boy Advance, 2004), dos de las mejores de la franquicia. Ambas las jugué en mi emulador favorito para esa plataforma, mGBA, el cual recomiendo por su gran desempeño.

Ahora he dado el salto a la edición Diamante (Nintendo DS, 2006), y por eso tuve que buscar el software adecuado para correr la ROM. Aunque la Nintendo DS no era tan potente, su emulación es bastante compleja debido a las características gráficas y de hardware —doble procesador ARM y doble pantalla, una de ellas táctil—.

Hace años recurría a DeSmuME, un veterano programa que nunca supe cómo configurar para que funcionase fluido. Cuenta con multitud de opciones a escoger, pero siempre me daba algunos fallos gráficos, lag ante la presencia de mucha carga gráfica, e incluso cortes molestos en el audio. Esto no me pasaba solo a mí: DeSmuME arrastra código bastante antiguo y su emulación se siente algo tosca para los estándares actuales.


Esta vez, cansado de tantos problemas, encontré una nueva aplicación que corre genial. Buceando por Flathub conocí a melonDS, un proyecto mucho más reciente (2016) y creado desde cero. Está escrito en C++ y licenciado bajo GPL. Su cometido principal es emular perfectamente la consola, haciendo énfasis en el funcionamiento de ambos procesadores y los juegos exigentes. También tenemos una interfaz algo más sencilla, así como funciones de conectividad bien testeadas.

Con melonDS me pasó igual que con DuckStation: fue ejecutarlo y, tras unos sencillos retoques, los juegos corren muy bien. Me ha quitado un montón de trabajo y me ha dado una experiencia estable, lo que es idóneo para esas partidas de relax. Quizás los menús se sienten algo caóticos, pero tiene todo lo que necesitamos out of the box. Con su configuración básica ya notaremos una gran mejora comparándolo con DeSmuME, aunque se puede afinar un poco más. Esto es lo que hice:

Mejora general

  1. Config > Emu settings > CPU emulation
  2. Activé la casilla Enable JIT recompiler.

Esto provoca que la lectura de la ROM sea mucho más rápida, leyendo bloques de código y guardándolos en memoria. Por contra, tomará más de potencia del procesador y la RAM —y creedme, es un precio justo a pagar—.

También, en el menú Config, activé las casillas del final que pertenecen a Limit framerate y Audio sync. Con el primero nos aseguramos de que no se vuelva loco con la velocidad y se clave en 60 FPS. Con la sincronización de audio ajustamos la velocidad de los gráficos con la de la música, haciendo que la emulación sea más sólida evitando discrepancias.

Gráficos

Config > Video settings > en 3D render escogí el modo software.

¿Por qué renderizar por software en lugar del hardware? En mi caso la explicación es bastante sencilla: porque uso gráfica integrada de Intel. OpenGL puede ser mejor cuando tenemos una dedicada, y se permite el lujo de demandar recursos. En cambio, si renderizo por software, consigo mucha más estabilidad y me ahorro pequeños glitches. Con esta opción el procesador es quien se encarga de gestionar los gráficos, así que adapta mucho mejor sus recursos.

Pokémon Diamante en funcionamiento. Las pantallas las organicé horizontalmente para más comodidad

Interfaz y rendimiento en GNOME

En Config > Interface settings escogí el modo oscuro de Adwaita (Theme: Adwaita-Dark), así encaja muy bien con mi escritorio y hago que resalte el contenido. En esa misma ventana también podemos escoger los 60 FPS del framerate.

A mayores, con las opciones de energía de GNOME, activé el Modo Rendimiento para darle ese pelín de potencia extra.

Extras

Podemos activar cheats para potenciar ciertos juegos o usar trucos. Los cheats son porciones de código hexadecimal que se insertan para crear cambios, introduciendo mejoras si lo vemos necesario… aunque pagaremos el peaje de causar bugs. A veces las instrucciones o métodos de carga de los juegos tienen una secuencia concreta, y esos cheats (código metido a martillazos) podrían congelar la partida.

Para activarlo sólo tenemos que seleccionar System > Enable cheats, y para crearlos/editarlos/borrarlos System > Setup cheat codes.


melonDS está disponible para Linux, Windows, Mac y BSD. No hay excusas para no usarlo allá donde quieras.

1 comentario en “melonDS, mi nuevo emulador favorito”

Deja un comentario (puedes usar Markdown)