v1.8.8

6 de agosto de 2026

Una versión centrada en entrada, shaders y ergonomía de la biblioteca. Entrada y Modo TV: los juegos de DOS ahora pueden ver tu joystick, con nuevas opciones de configuración, un mejor manejo de puertos de control para DOSBox-Pure y un mejor monitoreo de clics de ratón. Los arreglos de gamepad hacen que las pulsaciones consecutivas se registren de forma fiable, el overlay de la barra de herramientas (L3+R3 / Start+Select) funciona mientras otra app está enfocada, y el diálogo de Stop puede confirmarse con el botón A en el Modo TV. El Modo TV también elige la pantalla correcta al iniciar, y un nuevo aviso de pantalla externa pasa el juego con una breve espera antes del cambio. Shaders: los parámetros que no tenían efecto ahora se muestran atenuados, cambiar entre shaders complejos es más rápido con un spinner en lugar de un panel vacío, y los presets que emulan vídeo compuesto/NTSC ahora renderizan como deben. Biblioteca: carátulas personalizadas desde un archivo local, refresco dinámico de carátulas en toda la biblioteca y pinch-to-zoom con reflujo de columnas en vivo en la cuadrícula.

Destacados

  • Los juegos de DOS ahora pueden ver tu joystick: Tu control conectado ahora es visible para los juegos de DOS vía DOSBox-Pure, con nuevas opciones para elegir el preset de joystick por juego o sistema, un hotkey para activarlo y un mejor manejo de puertos de control y de clics de ratón.
  • Solo se muestran los sliders de shader que funcionan: Los parámetros de shader que no tenían efecto sobre la imagen ahora se muestran atenuados — solo ves los sliders que realmente cambian algo.
  • Cambio de shaders más rápido: Cambiar entre shaders complejos ya no muestra un panel vacío de "Sin parámetros"; los parámetros cargan en segundo plano con un spinner.
  • Renderizado CRT corregido: Los presets que emulan vídeo compuesto/NTSC (como ntsc-md-rainbows) ahora renderizan como deben.
  • Carátulas personalizadas: Configura tu propia carátula desde un archivo local, y las carátulas ahora se refrescan dinámicamente en toda la biblioteca.
  • Pinch to zoom en la biblioteca: Zoom con pinza en el trackpad con reflujo de columnas en vivo en la cuadrícula de la biblioteca.
  • Traspaso a pantalla externa: Conecta una pantalla y TruchiEmu ofrece mover el juego, con una breve espera antes del cambio — y el Modo TV ahora elige la pantalla correcta al iniciar.
  • Arreglos de gamepad y Modo TV: Las pulsaciones consecutivas de botones se registran de forma fiable, la barra de herramientas de gamepad (L3+R3 / Start+Select) funciona mientras otra app está enfocada, y puedes confirmar el diálogo de Stop con el botón A en el Modo TV.
  • Pulido de hotkeys: Nuevo hotkey de pantalla completa, pista de Escape cuando el teclado está capturado, layout estable de la fila de hotkeys y hotkeys de la app desactivados mientras el teclado está capturado para DOS/ScummVM.
  • Estabilidad: Detener un juego ya no congela la app mientras iCloud sincroniza archivos.
  • Iconos en la barra de menú: Los elementos personalizados de la barra de menú ahora muestran iconos adecuados en lugar de texto plano.

Cambios detallados

  • feat: añadir soporte de joystick para DOS y opciones de configuración — enum DOSJoystickPreset, persistencia en AppSettings, DOSJoystickSettingsView integrada en GameDetailView, hotkey de activación, traducciones en/es/pt/ja, soporte XPC para tipos de joystick DOS
  • feat: mejorar el manejo de puertos de control para DOSBox-Pure y el monitoreo de clics de ratón
  • fix: desactivar parámetros de shader slang inertes en la UI — calcular el conjunto de nombres consumidos una vez por cadena, marcar ShaderUniform.disabled, cachear por ruta de preset + huella de mtime
  • feat: implementar reflexión asíncrona de presets slang en ShaderManager y ShaderEditorSidebar; los arreglos posteriores llegan en commits siguientes
  • feat: mostrar indicador de carga mientras los parámetros de shader se reflejan — estado isReflectingParameters en ShaderPresetPickerView y ShaderEditorSidebar; un fallo de reflexión ya no puede dejar el spinner girando
  • fix: enrutar presets slang scale_type=source por un intermedio del tamaño de la fuente — detección hasSourceSizedFinalPass, needsSourceSizedIntermediate, fijado a .bgra8Unorm para satisfacer la validación de Metal
  • feat: implementar manejo de texturas fuera de pantalla del tamaño de la fuente para cadenas PassFeedback y mejorar el pipeline de renderizado
  • feat: apuntar el submódulo slang-shaders a un fork con arreglos de rutas en macOS
  • feat: mejorar ShaderEditorSidebar con ScrollViewReader para restaurar la posición de scroll
  • fix: limpiar el override de shader por juego al aceptar el shader del sistema
  • feat: añadir selector de archivo local para carátulas y actualizar traducciones
  • feat: integrar BoxArtService para actualizaciones dinámicas de carátulas en los componentes de la UI
  • feat: pinch-to-zoom suave con reflujo de columnas en vivo en la cuadrícula de la biblioteca
  • feat: añadir aviso de pantalla externa con pastilla de calentamiento y traspaso del juego
  • fix: resolver la selección de pantalla en frío del Modo TV una vez que la ventana está arriba
  • fix: limpiar el estado de navegación de gamepad obsoleto cuando se sueltan todos los botones — reiniciar el estado transitorio de poll en la ruta inactiva para que las pulsaciones repetidas produzcan flancos de subida
  • fix: el contexto de la barra de herramientas de gamepad supera a la navegación del Modo TV para que la confirmación de Stop reciba la pulsación de A
  • fix: activar el overlay de la barra de herramientas de gamepad (L3+R3 / Start+Select) mientras la app no está enfocada — evita el filtro de key-window que pausaba silenciosamente el runner
  • feat: añadir hotkey de pantalla completa y actualizar traducciones
  • feat: añadir funcionalidad de pista de Escape y actualizar traducciones
  • fix: mantener estable el layout de la fila de hotkeys cuando aparecen los botones reset y clear
  • fix: desactivar los hotkeys de la app mientras el teclado está capturado para DOS/ScummVM
  • refactor: simplificar la lógica de fondo y color de trazo en GameCardView
  • feat: añadir iconos SF Symbol a todos los elementos personalizados de la barra de menú
  • fix: evitar el congelamiento de la UI al detener el juego por materialización de iCloud — proxy XPC asíncrono con timeout real, materialización de arranque fuera de la cola de conexión, presupuesto compartido para el recorrido de directorios
  • Subir la versión de marketing a 1.8.8 y el número de build a 31 en project.yml, los dos Info.plist y docs/_config.yml