- Dolphin, que comenzó en 2003 como un emulador de GameCube, amplía su alcance a una nueva plataforma al añadir soporte para el sistema arcade Triforce en 2026
- La optimización MMU Fastmem acelera el acceso a memoria basado en tablas de páginas, y en particular Rogue Squadron III por fin puede ejecutarse a velocidad completa
- Se resolvió el bug de sincronización en línea de Mario Strikers Charged después de 5 años, por lo que el juego en red con una Wii real ahora funciona correctamente
- En la emulación de Triforce se está avanzando en la restauración del protocolo de pantalla táctil y de la funcionalidad de tarjetas IC de The Key of Avalon, y también se planean mejoras para funciones relacionadas con F-Zero AX y Virtua Striker 4
- Se añadieron múltiples funciones para mejorar la experiencia de usuario y el rendimiento, como caché del juego en RAM, configuración de hints de controladores SDL y ajustes de temporización del menú de Wii
Se añade soporte para Triforce
- Dolphin ahora ofrece soporte oficial para Triforce, el sistema arcade conjunto de Sega, Namco y Nintendo
- Incluye mejoras iniciales como inserción automática de Magnetic Card, configuración de región y correcciones de bugs en la emulación de múltiples cabinas
- Se confirmó que el protocolo de pantalla táctil de The Key of Avalon es similar a Elo SmartSet; se logró avanzar hasta el inicio del juego, pero el proceso se detuvo por un problema con la inicialización de la tarjeta IC
- Al restaurar la funcionalidad de las tarjetas IC, volverán a funcionar los modos de creación de equipos y personajes en títulos como Virtua Striker 4 y Gekitou Pro Yakyuu
Optimización de MMU Fastmem y Rogue Squadron
- La implementación de mapeo Fastmem con tablas de páginas mejora hasta el doble el rendimiento de Rogue Squadron II y III
- Mediante el seguimiento de la instrucción
tlbie, los cambios en la tabla de páginas se reflejan en tiempo real
- Desactivar Branch Following, optimizar la invalidación de código y habilitar CPU Vertex Culling reduce caídas de frames y tirones
- Rogue Squadron III puede ejecutarse por primera vez a velocidad completa en hardware de alto rendimiento
Se corrige el bug de Mario Strikers Charged
- Se identificó que la causa del error de sincronización física entre Dolphin y una Wii real era un cálculo de punto flotante impreciso en la instrucción
fmadds
- El problema se resolvió con una corrección precisa de redondeo usando el algoritmo
2Sum, logrando sincronización completa en las partidas en línea
- Esta corrección se desarrolló a partir de la experiencia previa resolviendo un problema similar en Inazuma Eleven GO: Strikers 2013
Otras mejoras importantes
- Se ajustó la temporización de la gestión de datos del menú de Wii para acercarla más al hardware real, reduciendo la carga excesiva de CPU durante accesos a NAND
- Se añadió la función Load Whole Game into Memory, que elimina la latencia de espera del disco al ejecutar desde almacenamiento en red como NAS
- Se introdujo una configuración GUI para hints de SDL, mejorando la compatibilidad de controles en casos como separar Joy-Con o problemas de hotplug con DualSense
- Se aplicaron parches de sincronización VBI a algunos juegos como Need for Speed: Hot Pursuit 2 y Rabbids Go Home, normalizando el límite de frames
Rendimiento y contribuciones de la comunidad
- En esta versión se integraron 465 commits, junto con abundantes pruebas de la comunidad e investigación de hardware
- Se incluyen casos de resolución de problemas de larga data en la serie Rogue Squadron, Mario Strikers Charged y Triforce, mejorando notablemente la precisión y el rendimiento de Dolphin
1 comentarios
Comentarios en Hacker News
Sorprende que Dolphin haga posible conectar una consola Wii real en línea, en lugar de depender de los servidores oficiales que dejaron de existir hace mucho
Da mucho gusto que haya personas con una dedicación apasionada así
Pero a corto plazo, este tipo de avances tecnológicos también podría profundizar aún más la desigualdad
Si por errores del emulador un juego no puede ejecutarse total o parcialmente, las generaciones futuras pierden la oportunidad de experimentarlo
Es increíble que la gente se preocupe tanto por esto
Lo que más me interesa es que el desarrollo de emuladores muchas veces termina descubriendo que el juego original hacía cosas raras pero intencionales
Me sorprendió enterarme de que el GCC de mediados de los 90 ya hacía automáticamente cosas que yo intentaba optimizar a mano a inicios de los 2000
El emulador no estaba guardando la SRAM y eso causaba discrepancias en las partidas guardadas, pero se corrigió rápido
Como era código C simple basado en Plan9, fue fácil de arreglar
Siempre me gusta leer los reportes de desarrollo de Dolphin
Explican muy bien los temas técnicos de una forma fácil de entender
A propósito de los reportes de Dolphin, uno de los autores publicó un texto interesante sobre los problemas de la comunidad de emuladores open source
Rethinking Open Source
En resumen, si haces open source un proyecto con mucho hype antes de que tenga una base comunitaria y una identidad bien establecidas, pueden surgir problemas por usuarios con exigencias poco realistas
También pasa que otros toman ramas incompletas y las distribuyen como si fueran propias
Aun con esas dificultades, el equipo de Dolphin lleva el proyecto con un nivel de profesionalismo muy alto
Ya es complicado incluso cuando te pagan, así que en un proyecto gratuito debe ser todavía peor
Los forks de antes estaban poco pulidos
Da gusto ver que el autor está genuinamente entusiasmado con lo que escribió
Cuando reporté un bug del netplay de Melee hace tiempo, él era de esos que sienten curiosidad por todo y se meten a fondo
Dolphin es de verdad un caso ejemplar de desarrollo inteligente
Antes necesitaba usar los 4 núcleos de mi máquina vieja solo para correr Metroid Prime, pero unos años después ese mismo juego usaba apenas el 25% de un núcleo
Gracias al JIT y a la mejora de eficiencia en la emulación, el rendimiento mejoró de manera brutal
Esa optimización fue un logro impresionante
En la discusión sobre la compatibilidad arcade de Triforce se mencionó el “soporte para tarjetas IC”, y dicen que si eso se implementa se abrirán muchas funciones
Parecen tarjetas de transporte japonesas, pero en la placa Triforce se usaban para guardar datos de progreso del juego
Es una función genial que nunca vi en arcades de Estados Unidos
La magcard es barata pero menos durable, y se puede imprimir
La tarjeta IC es más gruesa y resistente, pero no se puede imprimir
Fuente con fotos y explicación: Rise of the Triforce
Casi todos los juegos de Triforce usaban tarjetas para guardar partidas
Probablemente también se haya visto en Estados Unidos en alguna versión de Mario Kart Arcade GP
Es un concepto parecido a las tarjetas AIME que usan maimai, chunithm, DDR y otros
Pero la tarjeta IC de Triforce no solo servía para autenticación, sino también para almacenamiento de datos
Me parece interesante el caso en que la instrucción de CPU fnmsubs estaba mal implementada en el JIT, pero funcionaba correctamente en el intérprete
Siento que este tipo de situación es una muy buena oportunidad para aplicar differential fuzzing
El punto central de esta publicación es que Dolphin restauró el soporte para los gabinetes arcade Triforce
Triforce era un hardware desarrollado en conjunto por Nintendo, Sega y Namco, y Dolphin había dejado de soportarlo en 2016
Ahora vuelven a funcionar juegos como F-Zero AX y Mario Kart Arcade GP 1 y 2
Más detalles: The Return of the Triforce
Enlace a la discusión anterior
El primer párrafo del artículo ya habla de esto, así que es difícil llamarlo un “tema enterrado”
Me preguntaba si aceptaban donaciones, pero no pude encontrar nada en el sitio oficial
Publicación relacionada en el foro: Dolphin Donations