v1.8.8

6 de agosto de 2026

Uma versão focada em entrada, shaders e ergonomia da biblioteca. Entrada e Modo TV: os jogos de DOS agora podem ver seu joystick, com novas opções de configuração, melhor tratamento de portas de controle para DOSBox-Pure e melhor monitoramento de cliques de mouse. As correções de gamepad fazem com que pressionamentos consecutivos sejam registrados de forma confiável, a sobreposição da barra de ferramentas (L3+R3 / Start+Select) funciona enquanto outro app está focado, e a caixa de diálogo de Stop pode ser confirmada com o botão A no Modo TV. O Modo TV também escolhe a tela correta na primeira inicialização, e um novo aviso de tela externa passa o jogo com uma breve espera antes da troca. Shaders: parâmetros que não tinham efeito agora aparecem esmaecidos, trocar entre shaders complexos é mais rápido com um spinner em vez de um painel vazio, e presets que emulam vídeo composto/NTSC agora renderizam como deveriam. Biblioteca: capas personalizadas a partir de um arquivo local, atualização dinâmica de capas em toda a biblioteca e pinch-to-zoom com reflow de colunas ao vivo na grade.

Destaques

  • Os jogos de DOS agora podem ver seu joystick: Seu controle conectado agora é visível para os jogos de DOS via DOSBox-Pure, com novas opções para escolher o preset de joystick por jogo ou sistema, um hotkey para ativá-lo e melhor tratamento de portas de controle e cliques de mouse.
  • Somente os sliders de shader que funcionam são mostrados: Parâmetros de shader que não tinham efeito sobre a imagem agora aparecem esmaecidos — você só vê os sliders que realmente mudam algo.
  • Troca de shaders mais rápida: Trocar entre shaders complexos não mostra mais um painel vazio de "Sem parâmetros"; os parâmetros carregam em segundo plano com um spinner.
  • Renderização CRT corrigida: Presets que emulam vídeo composto/NTSC (como ntsc-md-rainbows) agora renderizam como deveriam.
  • Capas personalizadas: Defina sua própria capa a partir de um arquivo local, e as capas agora são atualizadas dinamicamente em toda a biblioteca.
  • Pinch to zoom na biblioteca: Zoom por pinça no trackpad com reflow de colunas ao vivo na grade da biblioteca.
  • Transição para tela externa: Conecte uma tela e o TruchiEmu se oferece para mover o jogo, com uma breve espera antes da troca — e o Modo TV agora escolhe a tela correta na primeira inicialização.
  • Correções de gamepad e Modo TV: Pressionamentos consecutivos de botões são registrados de forma confiável, a barra de ferramentas de gamepad (L3+R3 / Start+Select) funciona enquanto outro app está focado, e você pode confirmar a caixa de diálogo de Stop com o botão A no Modo TV.
  • Polimento de hotkeys: Novo hotkey de tela cheia, dica de Escape quando o teclado está capturado, layout estável da linha de hotkeys e hotkeys do app desativados enquanto o teclado está capturado para DOS/ScummVM.
  • Estabilidade: Parar um jogo não congela mais o app enquanto o iCloud sincroniza arquivos.
  • Ícones na barra de menu: Os itens personalizados da barra de menu agora mostram ícones adequados em vez de texto simples.

Mudanças detalhadas

  • feat: adicionar suporte a joystick para DOS e opções de configuração — enum DOSJoystickPreset, persistência em AppSettings, DOSJoystickSettingsView integrada ao GameDetailView, hotkey de ativação, traduções en/es/pt/ja, suporte XPC para tipos de joystick DOS
  • feat: melhorar o tratamento de portas de controle para DOSBox-Pure e o monitoramento de cliques de mouse
  • fix: desativar parâmetros de shader slang inertes na UI — calcular o conjunto de nomes consumidos uma vez por cadeia, marcar ShaderUniform.disabled, cachear por caminho de preset + fingerprint de mtime
  • feat: implementar reflexão assíncrona de presets slang no ShaderManager e no ShaderEditorSidebar; as correções posteriores chegam nos commits seguintes
  • feat: mostrar indicador de carregamento enquanto os parâmetros de shader são refletidos — estado isReflectingParameters em ShaderPresetPickerView e ShaderEditorSidebar; uma falha de reflexão não pode mais deixar o spinner girando
  • fix: rotear presets slang scale_type=source por um intermediário do tamanho da fonte — detecção hasSourceSizedFinalPass, needsSourceSizedIntermediate, fixado em .bgra8Unorm para satisfazer a validação do Metal
  • feat: implementar tratamento de texturas fora de tela do tamanho da fonte para cadeias PassFeedback e melhorar o pipeline de renderização
  • feat: apontar o submódulo slang-shaders para um fork com correções de caminhos no macOS
  • feat: melhorar o ShaderEditorSidebar com ScrollViewReader para restaurar a posição de scroll
  • fix: limpar o override de shader por jogo ao aceitar o shader do sistema
  • feat: adicionar seletor de arquivo local para capas e atualizar traduções
  • feat: integrar o BoxArtService para atualizações dinâmicas de capas nos componentes da UI
  • feat: pinch-to-zoom suave com reflow de colunas ao vivo na grade da biblioteca
  • feat: adicionar aviso de tela externa com pílula de aquecimento e transição do jogo
  • fix: resolver a seleção de tela na inicialização a frio do Modo TV depois que a janela está aberta
  • fix: limpar o estado de navegação de gamepad obsoleto quando todos os botões são soltos — redefinir o estado transitório de poll no caminho inativo para que pressionamentos repetidos produzam bordas de subida
  • fix: o contexto da barra de ferramentas de gamepad supera a navegação do Modo TV para que a confirmação de Stop receba o pressionamento de A
  • fix: acionar a sobreposição da barra de ferramentas de gamepad (L3+R3 / Start+Select) enquanto o app não está focado — evita o filtro de key-window que pausava silenciosamente o runner
  • feat: adicionar hotkey de tela cheia e atualizar traduções
  • feat: adicionar funcionalidade de dica de Escape e atualizar traduções
  • fix: manter estável o layout da linha de hotkeys quando os botões reset e clear aparecem
  • fix: desativar os hotkeys do app enquanto o teclado está capturado para DOS/ScummVM
  • refactor: simplificar a lógica de fundo e cor de traço no GameCardView
  • feat: adicionar ícones SF Symbol a todos os itens personalizados da barra de menu
  • fix: evitar o congelamento da UI ao parar o jogo por materialização do iCloud — proxy XPC assíncrono com timeout real, materialização de inicialização fora da fila de conexão, orçamento compartilhado para o percurso de diretórios
  • Subir a versão de marketing para 1.8.8 e o número de build para 31 em project.yml, nos dois Info.plist e em docs/_config.yml