changelog:

7df21b2 Deps: Bump cpuinfo version
86f36ad Deps: Remap paths in libbacktrace
7e4f0ce Deps: Update to FreeType 2.14.1
29aa0fa Deps: Update Harfbuzz to 11.5.0
2624914 Deps: Patch libpng for apng support
f2cee19 HeapArray: Add size_bytes()
bcc066a Image: Fix a couple of random bugs
8f78f83 Image: Don’t use png_read_image()
9d14a4a Tests: Add tests for Image class
102af48 AnimatedImage: Add class for reading APNGs
8e65beb GameList: Save APNGs for memory card icons
ea11ce2 Tests: Add for CueParser and ElfFile
d4c6905 Tests: Linux build fix
5caa560 FileSystem: Disallow control characters on Linux/Mac as well
93a13a6 FullscreenUI: Draw generated covers when not present
4ee8738 FullscreenUI: Stop icons leaking into cover cache
ecf13de Qt: Add Memory Editor window
da47112 Qt: Link memory scanner address double-click to editor
b40ff8b Qt: Add optional animation of icons in game list
a904544 Update the Simple-Chinese translation to latest. (#3577)
bb9dbf9 Qt: Avoid casts on animation delegate
50c9f63 Qt: Hackfix game list background on stylesheet themes
daf5fee Qt: Don’t bother using worker for background resize
ea57a42 Qt: Don’t use static storage for app icon
3832b39 Qt: Fix disabling patches not removing empty ini
6c1ee0c Settings: Store custom aspect ratios in main key
c5d309f Settings: Avoid log.h include
fb60691 Cheats: Pack state in struct
fa8a995 Cheats: Fix uninitialized data read in parsing
eadca6c Settings: Prefer widescreen patches over GTE hack
0a25dd0 Atualização Português do Brasil (#3578)
3fada38 Update the Simple-Chinese Translation to latest. (#3579)
3d41156 Achievements: Fix unused variable warning
a50997a Qt: Fix app icon ending up as null
38bb240 Qt: Avoid extra string storage
5c9e28f Updated Swedish translation (#3580)
9807948 Qt: Remove old vsync mode migration function
975b9b1 AnalogController: Fix inverted motor display in OSD
e5c1788 Qt: Fix vibration binding not applying immediately
c790972 System: Warn if geometry tolerance is not default
51942df Use DualSense Mic Mute LED for Analog Mode (#3574)
ffa0e8d Qt: Refactor LED bindings
cf8b1a5 Qt: Re-introduce FlowLayout
982753d Qt: Allow binding both active and inactive LED colours
a048e09 Qt: Make LED settings clearer
6cb727f GameDB: Disable auto analog in Alien Resurrection
21c8344 Misc: Add error checking to LocalTime()
570f041 Deps: Bump to Qt 6.9.3
2adf7a1 CI: Bump MacOS runner to macos-15 + Xcode 26
3624474 Controller: Remove unused InAnalogMode()
f0c67e9 Controller: Remove GetInputOverlayIconColor()
9d8d81d InputManager: Only update vibration once per frame
1b49f82 Controller: Merge all binds into one index space
424f9a9 Controller: Simplify deadzone calculation
10f9039 Controller: Skip runahead replay when analog is unchanged
3966a9e System: Serialize PGXP state for runahead
95e9cba Update the Simple-Chinese Translation to latest. (#3581)
cf0b602 Settings: Rearrange fields
e6788b3 System: Add ‘Runahead for Analog Input’ option
22399c2 FullscreenUI: Fix localization of ‘None’ background
f57eeb3 CI: Simplify Windows/Linux workflows
1665cb6 InputManager: Refactor and simplify vibration mapping
f219c2c AnalogController: Fix sync/readback value for vibration
78db5ad Qt: Fix flicker when changing cover size
7b991de Qt: Bump currently-visible covers to front on scale change
9cc29fb Qt: Use QSize throughout GameListWidget
4e797f3 CI: Remove redundant prefix on AppImage cross job
e373be9 CMake: Bump required dependency versions
24a3dcb InputManager: Sync effect state on connection
848833b CI: Fix Windows build symbol upload
3a80673 Qt: Fix cover title being clipped
1b7e429 Update the Simplified Chinese Translation to latest. (#3582)
733df6a Qt: Show screenshot in resume game popup
39eb2c5 Qt: Don’t include git hash in window title
7575050 Controller: Don’t indirectly include settings.h
267b74c Atualização Português do Brasil (#3583)
dbf2849 Misc: Move SettingInfo declaration to input_types.h
9876196 Cheats: Remove unnecessary std::move()
5afa6b2 Controller: Remove unused helper function
76facb3 FullscreenUI: Fix default value for theme
97c49a9 CDImageDevice: Use g_settings for ignore host subcode
4f0d35c VulkanDevice: Make current command buffer lookup consistent
c039a94 Updated Swedish translation (#3584)
5508581 Update the Simplified Chinese Translation. (#3585)
00a2f5a FullscreenUI: Fix crash opening settings
cd37cd7 Deps: Update to Qt 6.10.0
05a5828 CPU/PGXP: Handle SXYP mirror reads
8bce5b0 CPU/PGXP: Make register writes more readable
27d2679 CPU/GTE: Remove unnecessary struct padding
4d516c5 dep/rcheevos: Bump external client image URL buffer size
29d73cb GameDB: Remove PGXP vertex cache from Touge Max G
330eb05 Scripts: Hopefully fix AppImage build
50a9f04 dep/rcheevos: Bump to 6755915
3552a5b Qt: Fix rare bug where covers get stuck in loading state
505753d Deps: Update to FFmpeg 8.0
4587c45 MediaCapture: Improve FFmpeg load error message
a1c1774 CI: Fix AppImage build (again)
f0f7475 FullscreenUI: Modernize blocking loading dialog
b5e1087 Qt: Fix submenu accessibility on MacOS
e0e245d Qt: Swap most out-of-toolbar QToolButtons to QPushButtons
a654ce6 Qt: Style QMenu and QToolButton with stylesheet on MacOS
00042a5 Qt: Default to native theme on MacOS
adbfe7f Qt: Display hash in game properties summary
f8c720a Qt: Tab should change focus in edit cheat dialog
08556f3 Qt: Normalize line endings in cheat edit dialog
bfcd3d4 Cheats: Strip whitespace on code body when editing
286f9dd Qt: Validate cheats before saving edits
c4c6357 Qt: Improve column width behaviour in cheat list
ec96dd7 Qt: Don’t use hash cheat list when PPFs exist
90e6078 Cheats: Show OSD warning when parsing fails
c117059 GPU/HW: Fix crash when preloading texture replacements
8ed329f Qt: Fix serial mismatch error when verifying
a08996d Spanish (Spain) 2025/10/12 translation update (#3586)
114c263 Qt: Fix initial button state in memory card editor
3c632c8 Qt: Fix hang on theme change on MacOS
8f0c9dd Qt: Fix disabled menu items in MacOS native theme
atualização:

7df21b2 Dependências: Atualizar versão do cpuinfo
86f36ad Dependências: Remapear caminhos no libbacktrace
7e4f0ce Dependências: Atualizar para FreeType 2.14.1
29aa0fa Dependências: Atualizar Harfbuzz para 11.5.0
2624914 Dependências: Corrigir libpng para suporte a APNG
f2cee19 HeapArray: Adicionar size_bytes()
bcc066a mage: Corrigir alguns bugs aleatórios
8f78f83 Image: Não usar png_read_image()
9d14a4a Testes: Adicionar testes para a classe Image
102af48 AnimatedImage: Adicionar classe para leitura de APNGs
8e65beb GameList: Salvar APNGs para ícones de memory card
ea11ce2 Testes: Adicionar testes para CueParser e ElfFile
d4c6905 Testes: Correção de compilação no Linux
5caa560 FileSystem: Bloquear caracteres de controle também no Linux/Mac
93a13a6 FullscreenUI: Desenhar capas geradas quando não houver capa presente
4ee8738 FullscreenUI: Evitar que ícones vazem para o cache de capas
ecf13de Qt: Adicionar janela do Editor de Memória
da47112 Qt: Vincular duplo clique no endereço do scanner de memória ao editor
b40ff8b Qt: Adicionar animação opcional para ícones na lista de jogos
a904544 Atualizar tradução para Chinês Simplificado (#3577)
bb9dbf9 Qt: Evitar casts no animation delegate
50c9f63 Qt: Correção rápida para o fundo da lista de jogos em temas stylesheet
daf5fee Qt: Não usar worker thread para redimensionamento de fundo
ea57a42 Qt: Evitar armazenamento estático para ícone do aplicativo
3832b39 Qt: Corrigir desativação de patches que não removiam arquivos .ini vazios
6c1ee0c Settings: Armazenar proporções personalizadas na chave principal
c5d309f Settings: Evitar inclusão de log.h
fb60691 Cheats: Compactar estado dentro de uma struct
fa8a995 Cheats: Corrigir leitura de dados não inicializados durante a análise
eadca6c Settings: Priorizar patches de tela ampla sobre o GTE hack
0a25dd0 Atualização do Português do Brasil (#3578)
3fada38 Atualizar tradução para Chinês Simplificado (#3579)
3d41156 Achievements: Corrigir aviso de variável não utilizada
a50997a Qt: Corrigir ícone do aplicativo ficando nulo
38bb240 Qt: Evitar armazenamento extra de strings
5c9e28f Atualização da tradução Sueca (#3580)
9807948 Qt: Remover função antiga de migração de modo vsync
975b9b1 AnalogController: Corrigir exibição invertida do motor no OSD
e5c1788 Qt: orrigir ligação de vibração que não aplicava imediatamente
c790972 System: Alertar se tolerância de geometria não estiver padrão
51942df Usar LED do microfone do DualSense para modo analógico (#3574)
ffa0e8d Qt: Refatorar ligações de LED
cf8b1a5 Qt: Reintroduzir FlowLayout
982753d Qt: Permitir vinculação de cores de LED ativo e inativo
a048e09 Qt: Tornar configurações de LED mais claras
6cb727f GameDB: Desativar analógico automático em Alien Resurrection
21c8344 Misc: Adicionar verificação de erro em LocalTime()
570f041 Dependências: Atualizar para Qt 6.9.3
2adf7a1 CI: Atualizar runner MacOS para macos-15 + Xcode 26
3624474 Controller: Remover InAnalogMode() não utilizado
f0c67e9 Controller: Remover GetInputOverlayIconColor()
9d8d81d InputManager: Atualizar vibração apenas uma vez por quadro
1b49f82 Controller: Unificar todas as ligações em um único espaço de índice
424f9a9 Controller: Simplificar cálculo de zona morta (deadzone)
10f9039 Controller: Ignorar runahead replay quando o analógico não mudou
3966a9e System: Serializar estado PGXP para runahead
95e9cba Atualizar tradução Chinês Simplificado (#3581)
cf0b602 Settings: Reorganizar campos
e6788b3 System: Adicionar opção “Runahead for Analog Input”
22399c2 FullscreenUI: Corrigir localização de “Nenhum” (None) no fundo
f57eeb3 CI: Simplificar workflows de Windows/Linux
1665cb6 InputManager: Refatorar e simplificar mapeamento de vibração
f219c2c AnalogController: Corrigir valor de sincronização/leitura de vibração
78db5ad Qt: Corrigir cintilação ao alterar tamanho das capas
7b991de Qt: Trazer capas visíveis para frente ao mudar escala
9cc29fb Qt: Usar QSize em todo o GameListWidget
4e797f3 CI: Remover prefixo redundante no trabalho de cross build do AppImage
e373be9 CMake: Atualizar versões mínimas de dependências
24a3dcb InputManager: Sincronizar estado de efeito na conexão
848833b CI: Corrigir envio de símbolos de compilação no Windows
3a80673 Qt: Corrigir título da capa sendo cortado
1b7e429 Atualização da tradução Chinês Simplificado (#3582)
733df6a Qt: Mostrar captura de tela no popup de retomar jogo
39eb2c5 Qt: Não incluir git hash no título da janela
7575050 Controller: Não incluir settings.h indiretamente
267b74c Atualização do Português do Brasil (#3583)
dbf2849 Misc: Mover declaração de SettingInfo para input_types.h
9876196 Cheats: Remover std::move() desnecessário
5afa6b2 Controller: Remover função auxiliar não utilizada
76facb3 FullscreenUI: Corrigir valor padrão para tema
97c49a9 CDImageDevice: Usar g_settings para ignorar subcódigo do host
4f0d35c VulkanDevice: Tornar busca de command buffer atual consistente
c039a94 Atualização da tradução Sueca (#3584)
5508581 Atualizar tradução Chinês Simplificado (#3585)
00a2f5a FullscreenUI: Corrigir travamento ao abrir configurações
cd37cd7 Dependências: Atualizar para Qt 6.10.0
05a5828 CPU/PGXP: Tratar leituras de espelho SXYP
8bce5b0 CPU/PGXP: Tornar gravações de registradores mais legíveis
27d2679 CPU/GTE: Remover preenchimento desnecessário de struct
4d516c5 Dependências rcheevos: Aumentar tamanho do buffer da URL de imagem do cliente externo
29d73cb GameDB: Remover cache de vértices PGXP de Touge Max G
330eb05 Scripts: Corrigir build do AppImage
50a9f04 Dependências rcheevos: Atualizar para commit 6755915
3552a5b Qt: Corrigir bug raro em que capas ficavam presas no estado de carregamento
505753d Dependências: Atualizar para FFmpeg 8.0
4587c45 MediaCapture: Melhorar mensagem de erro ao carregar FFmpeg
a1c1774 CI: Corrigir build do AppImage (novamente)
f0f7475 FullscreenUI: Modernizar diálogo de carregamento bloqueante
b5e1087 Qt: Corrigir acessibilidade de submenus no macOS
e0e245d Qt: Substituir QToolButtons fora da barra de ferramentas por QPushButtons
a654ce6 Qt: Aplicar estilo de QMenu e QToolButton via stylesheet no macOS
00042a5 Qt: Usar tema nativo por padrão no macOS
adbfe7f Qt: Exibir hash no resumo das propriedades do jogo
f8c720a Qt: Permitir que tecla Tab mude o foco no editor de trapaças
08556f3 Qt: Normalizar finais de linha no editor de trapaças
bfcd3d4 Cheats: Remover espaços em branco no corpo do código ao editar
286f9dd Qt: Validar trapaças antes de salvar edições
c4c6357 Qt: Melhorar comportamento da largura das colunas na lista de trapaças
ec96dd7 Qt: Não usar lista de trapaças com hash quando houver PPFs
90e6078 Cheats: Mostrar aviso OSD quando a análise falhar
c117059 GPU/HW: Corrigir travamento ao pré-carregar substituições de texturas
8ed329f Qt: Corrigir erro de incompatibilidade de série durante verificação
a08996d Atualização da tradução Espanhola (Espanha) — 12/10/2025 (#3586)
114c263 Qt: Corrigir estado inicial de botões no editor de memory card
3c632c8 Qt: Corrigir travamento ao trocar tema no macOS
8f0c9dd Qt: Corrigir itens de menu desabilitados no tema nativo do macOS