Changelog:
Common: Add Vector4i xyxy(Vector2i)
GPU/HW: Use sized tristrips instead of fullscreen quads
GPUDevice: Move size-matches check into ResizeTexture()
GPUDevice: Ensure 16 byte minimum UBO alignment
GPU/HW: Slight re-shuffling of field offsetsFree up some bits in the middle.
GPU: Use tristrips for presentation as well
OpenGLDevice: Add map-based stream buffer pathsMapAndSync ends up around 25% faster on ancient Mali drivers without
ARB_buffer_storage support.
FullscreenUI: Fix crash reloading postfx shaders
CMake: Fix scmversion PRE_BUILD warning
Qt: Disable shared memcard settings outside of shared mode
Atualização Português do Brasil (#3351)Atualizado para a última versão
CDROM: Add ‘maximum’ read speedup option”Instant” seek is now renamed to Maximum as well, for consistency.
FullscreenUI: Fix scrollbar rounding in choice dialogs
FullscreenUI: Use span for DrawIntListSetting()
FullscreenUI: Fix loading screen font
PostProcessing: Remove StageCount key for game settingsPotentially removes the ini file if it’s otherwise empty.
Settings: Rearrange fields to avoid padding
Settings: Add advanced option to set delay for max CD speedupAffects both seeks and reads.
GPUThread: Restore context after backend creationMight help with random VRAM loss? I can’t seem to reproduce it now..
GPU/HW: Exclude 2D polygons from depth bufferFixes UI getting obscured in Kingsley’s Adventure.
GPU/HW: Fix ROV depth being written with semitransparency
GPU/HW: Disable depth testing with semitransparencyBut provide an option to enable it.
System: Improve rewind behaviour- Fix crash when rewinding before first state is saved.
– Always save a rewind state immediately after normal save state load.
– Don’t toss the last rewind state when rewinding, that way there is
always at least one state to rewind to.
Common: Use __builtin_shufflevector() for NEON blend()
GPU/SW: Skip pixel load if none preserved~12% performance improvement on Cortex-A35.
GPU/HW: Remove extra barrier on VRAM downloadSeems to work around download texture corruption on AMD/Vulkan/Windows.
InputManager: Fix per-bind sensitivity/deadzone not copying to profile
InputManager: Fix SDL sub-options not copying to profile
Data: Update SDL Game Controller DB
Cheats: Added register cheat types 5107 & 5147 (#3352)This is new cheat type uses the general purpose cheat registers in a relative easy method to allow arrays of arrays cheats to be quickly created and will also cut down massively on cheats. For instance this method allows the following 15 cheats for Vandal Hearts II which would otherwise need 18886 separate cheats to replicate:
#Technique Slot Modifier\[MASTER] Select Slot Number for following cheats to act on (1 – 1349)
518500F1 001CF3C3
514500F2 0000000F
514500F3 0000????
514500F4 0000D0D0
OptionRange = 1:1349
#Technique Slot Modifier\Select Weapon
510700F1 000000??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 1 Learned
510700F1 00020001
#Technique Slot Modifier\Select Technique 1
510700F1 000300??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 2 Learned
510700F1 00040001
#Technique Slot Modifier\Select Technique 2
510700F1 000500??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 3 Learned
510700F1 00060001
#Technique Slot Modifier\Select Technique 3
510700F1 000700??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 4 Learned
510700F1 00080001
#Technique Slot Modifier\Select Technique 4
510700F1 000900??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 5 Learned
510700F1 000A0001
#Technique Slot Modifier\Select Technique 5
510700F1 000B00??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\Technique 6 Learned
510700F1 000C0001
#Technique Slot Modifier\Select Technique 6
510700F1 000D00??
OptionRange = 0x00:0xFF
#Technique Slot Modifier\100% (Max) Technique Learned
510700F1 000E0064
Atualização Português do Brasil (#3353)Atualizado para a última versão.
Cheats: Add bounds check to 5107/5147
Cheats: Order special characters before alpha characters
FullscreenUI: Modernize achievement popup a bit
Controller: Remove analog-mode-start OSD messageIt’s arguably not very useful, and the sticks are mapped to the
dpad in digital mode anyway.
FullscreenUI: Increase input dialog paddingWay too small.
FullscreenUI: Fix scrollbar on choice dialog at some screen sizese.g. game list right click
Qt: Refactor input device/motor trackingRemove multiple sources of truth.
InputManager: Add proper binds for vibration motorsInstead of the janky “vibration capabilities” flag.
Fixes the “Clear Mappings” button not applying to vibration motors.
FullscreenUI: Add binding of vibration motors
Qt: Add icons/decorations to input devices
Qt: Separate controller settings to global and profiles
Qt: Rename ‘Input Profile’ to ‘Controller Preset’Hopefully more noob-proof?
InputManager: Hold lock while manipulating devices/sourcesSince we’re enumerating on the GPU thread now, need to protect it.
Data: Update PromptFont with KamFretoZ’s changes
Controller: Use additional icons
FullscreenUI: Improve controller settings page- Add ‘Clear Bindings’ menu item.
– Show icons in controller types.
– Add confirmation to Reset Settings.
Qt: Fix BP start/stop menu item after first activation
Qt: Fix fullscreen state stuck after exit
Qt: Fix game list toolbar/view menu desync
InputManager: Fix crash on controller connect on Windows
FullscreenUI: Get rid of Timer global
GPU/HW: Ensure texture window bits are initializedFixes broken rendering after loading state or switching renderer in some
games, e.g. GTA2.
GPU/HW: Use default initialization for BatchConfigReduce the risk of below…
Common: Fix ARM32 build (again)
FullscreenUI: Extend achievement overlays to screen marginsFixes overlays getting caught in rounded corners on Android.
Qt: Fix editing first controller preset
Achivements: Set rc_client log level from host log level
Achievements: Attempt relogin on system bootAnd display an error notification if login fails, instead of
invalidating the token.
System: Drop state load OSD duration to quick
CDROM: Fix loading of subimage SBI files
System: Fix subimage change OSD message
FullscreenUI: Render notifications on top of OSD
Achievements: Login error notification should be translatable
Qt: Fix incorrect InitialSortOrderRole use
FullscreenUI: Fix a couple of GPU thread race conditionsState saving/loading, memory card state read on shutdown.
FullscreenUI: Fix slot disappearing after delete in save state menu
Qt: Invalidate FSUI cover cache when cover changed
Achievements: Fix race condition invalidating images
Achievements: Ensure loading old states behave the same as new
ImGuiManager: Pack state based on thread access
ImGuiManager: Fix data races in input forwarding
XInputSource: Arrays to std::array and forward generic axis
SDLInputSource: Arrays to std::array and forward generic axis
ImGuiManager: Map left stick to dpad
Controller: Refactor so that GetControllerInfo() can’t return null
GPUThread: Add BeginASyncBufferCall()
InputManager: Adjust scope of constants
Controller: Add GetVibrationMotorState()
ImGuiOverlays: Double buffer input OSD and add vibration
Data: PromptFont additions by KamFretoZ
AnalogController: Use variant vibration icon for large motor
System: Set time constraints for GPU thread on MacOSFixes erratic frame times.
Qt: Add search and sorting to cheat list
CI: Only pin to major version of actions
Qt: Remove unused struct
GameList: Don’t return nonexistant path on icon extract fail
Qt: Fix cheats sort button tooltip
Image: Fix crash on loading corrupted JPEG file
Hotkeys: Fix Toggle OSD hotkey
Qt: Fix columns being hidden after editing cheats
Atualização Português do Brasil (#3354)Atualizado para a última versão.
Qt: Make main toolbar editable
FullscreenUI: Fix incorrect back button
FullscreenUI: Add user-selectable backgrounds
FullscreenUI: Name landing icon files after action
RegTest: Build fix
Qt: Fix returning to desktop mode from Big Picture
FullscreenUI: Make menu item backgrounds slightly transparentBlends with background.
FullscreenUI: Fix incorrect help text
FullscreenUI: Fix scroll reset on resume state popup
Updated Swedish translation (#3355)
Cheats: Author field should be exported
CPU/CodeCache: Only reset used portion of bufferSaves writing 48MB every reset.
GPU/HW: Fix draw call count spiking in some scenarios
Common: Fix vector allfalse() on ARM32
Common: Further optimize alltrue()/allfalse() on ARM
FullscreenUI: Make footer text background semitransparent
FullscreenUI: Add sort alphabetically option to cheat page
Common: Add vector rsize()
System: Fix vsync preventing fast forward/turbo
GPUThread: Fix input OSD with threaded rendering off
System: Remove ‘sync_to_host_with_vsync’Disabling the throttler with threaded rendering just leads to the CPU
thread pushing multiple frames, and getting backpressured from the GPU
thread. In other words, input lag.
CDROM: Remove redundant min()
GPU/SW: Use no_unique_address for potentially-unused varyings
Achievements: Fix request spam downloading own badge icon
CI/Flatpak: Bump to SDL2 2.30.11Apparently I forgot to do this.
GPU/HW: Clear alpha channel in opaque replacementsThis is the value for bit15 in the framebuffer. Silent Hill
needs it to be zero, I’m not aware of anything that needs
specific values yet. If it did, we’d need a different dumping
technique.
GPU/HW: Flipping the mask bit test should flush
Atualizações:
Adicionada função Vector4i xyxy(Vector2i).
GPU/HW: Usar tristrips dimensionados em vez de quads em tela cheia.
GPUDevice: Mover verificação de correspondência de tamanho para ResizeTexture().
GPUDevice: Garantir alinhamento mínimo de 16 bytes para UBO.
GPU/HW: Reorganização ligeira dos deslocamentos de campo. Liberar alguns bits no meio.
GPU: Usar tristrips também para a apresentação.
OpenGLDevice: Adicionar caminhos baseados em mapeamento para stream buffer. MapAndSync acaba sendo cerca de 25% mais rápido em drivers antigos do Mali sem suporte a ARB_buffer_storage.
FullscreenUI: Corrigir falha ao recarregar shaders de postfx.
CMake: Corrigir aviso de scmversion PRE_BUILD.
Qt: Desabilitar configurações de cartão de memória compartilhada fora do modo compartilhado.
Atualização em Português do Brasil (#3351): Atualizado para a versão mais recente.
CDROM:
Adicionada opção de “máxima” velocidade de leitura. “Busca instantânea” agora é renomeada para Máxima para consistência.
FullscreenUI:
Corrigir arredondamento de barra de rolagem em diálogos de escolha.
Usar span para DrawIntListSetting().
Corrigir fonte da tela de carregamento.
Pós-processamento:
Remover chave StageCount para configurações de jogos. Pode remover o arquivo ini caso esteja vazio.
Configurações:
Reorganizar campos para evitar preenchimento.
Adicionar opção avançada para definir atraso para máxima velocidade de CD. Afeta buscas e leituras.
GPUThread:
Restaurar contexto após criação do backend. Pode ajudar com perda aleatória de VRAM.
GPU/HW:
Excluir polígonos 2D do buffer de profundidade. Corrige UI sendo obscurecida em Kingsley’s Adventure.
Corrigir gravação de profundidade ROV com semitransparência.
Desabilitar teste de profundidade com semitransparência, mas fornecer opção para ativá-lo.
Sistema:
Melhorar comportamento de retrocesso (rewind):
Corrigir falha ao retroceder antes que o primeiro estado seja salvo.
Sempre salvar um estado de retrocesso imediatamente após o carregamento de um estado normal.
Não descartar o último estado de retrocesso ao retroceder, garantindo que sempre haja pelo menos um estado para retroceder.
Comum:
Usar __builtin_shufflevector() para NEON blend().
GPU/SW: Pular carregamento de pixel se nenhum for preservado, proporcionando uma melhoria de desempenho de ~12% em Cortex-A35.
GPU/HW: Remover barreira extra no download de VRAM. Pode corrigir corrupção de textura no AMD/Vulkan/Windows.
InputManager:
Corrigir cópia de sensibilidade/zonas mortas por perfil.
Corrigir cópia de subopções SDL para perfil.
Atualizar banco de dados do controlador de jogo SDL.
Trapaças (Cheats):
Adicionados tipos de trapaças de registro 5107 e 5147 (#3352). Este novo tipo de trapaça utiliza os registradores de propósito geral de forma fácil, permitindo a criação rápida de trapaças em arrays e reduzindo significativamente o número de trapaças necessárias.
Atualização em Português do Brasil (#3353): Atualizado para a versão mais recente.
Trapaças (Cheats):
Adicionar verificação de limites para 5107/5147.
Organizar caracteres especiais antes dos caracteres alfabéticos.
FullscreenUI:
Modernizar a janela de conquistas.
Remover mensagem de OSD de início de modo analógico no controle.
Qt:
Refatorar o rastreamento de dispositivos/motores de entrada.
Adicionar ícones/decorações aos dispositivos de entrada.
Separar configurações do controlador em global e perfis.
Renomear ‘Input Profile’ para ‘Controller Preset’.
InputManager:
Adicionar vínculos adequados para motores de vibração.
Controller:
Remover a mensagem OSD de início do modo analógico.
Conclusões Adicionais:
Melhorias e correções diversas no FullscreenUI, Qt, GPU, CDROM, Sistema e Cheats.
Aperfeiçoamentos de desempenho e estabilidade, como a melhoria da sincronização de quadros e melhorias em configurações de controller e entrada.
ImGuiManager:
Empacotar o estado com base no acesso de thread.
Corrigir condições de corrida no encaminhamento de entrada.
XInputSource:
Arrays para std::array e encaminhar eixo genérico.
SDLInputSource:
Arrays para std::array e encaminhar eixo genérico.
ImGuiManager:
Mapear stick esquerdo para dpad.
Controller:
Refatorar para que GetControllerInfo() não retorne nulo.
GPUThread:
Adicionar BeginASyncBufferCall().
InputManager:
Ajustar escopo das constantes.
Controller:
Adicionar GetVibrationMotorState().
ImGuiOverlays:
Duplo buffer no OSD de entrada e adicionar vibração.
Dados:
Adições no PromptFont por KamFretoZ.
Controller Analógico:
Usar ícone de vibração variante para motor grande.
Sistema:
Definir restrições de tempo para o thread da GPU no MacOS. Corrige tempos de quadro erráticos.
Qt:
Adicionar pesquisa e ordenação à lista de trapaças.
CI:
Somente fixar a versão principal das ações.
Qt:
Remover estrutura não utilizada.
GameList:
Não retornar caminho inexistente ao falhar na extração do ícone.
Qt:
Corrigir o botão de ordenação de trapaças.
Imagem:
Corrigir falha ao carregar arquivo JPEG corrompido.
Hotkeys:
Corrigir atalho para alternar OSD.
Qt:
Corrigir colunas sendo ocultas após edição de trapaças.
Atualização em Português do Brasil (#3354): Atualizado para a versão mais recente.
Qt:
Tornar a barra de ferramentas principal editável.
FullscreenUI:
Corrigir botão de voltar incorreto.
Adicionar fundos selecionáveis pelo usuário.
Nomear arquivos de ícones de ação.
RegTest:
Corrigir compilação.
Qt:
Corrigir retorno ao modo desktop do Big Picture.
FullscreenUI:
Tornar os fundos dos itens de menu levemente transparentes. Mistura com o fundo.
FullscreenUI:
Corrigir texto de ajuda incorreto.
Corrigir reset de rolagem ao retomar estado no popup.
Atualização em Sueco (#3355).
Trapaças:
O campo author deve ser exportado.
CPU/CodeCache:
Somente redefinir porção utilizada do buffer. Evita escrever 48 MB a cada redefinição.
GPU/HW:
Corrigir pico na contagem de chamadas de desenho em algumas situações.
Comum:
Corrigir vector allfalse() em ARM32.
Comum:
Otimizar ainda mais alltrue()/allfalse() em ARM.
FullscreenUI:
Tornar o fundo do texto do rodapé semitransparente.
FullscreenUI:
Adicionar opção de ordenar alfabeticamente na página de trapaças.
Comum:
Adicionar vector rsize().
Sistema:
Corrigir vsync impedindo avanço rápido/turbo.
GPUThread:
Corrigir OSD de entrada com renderização em threads desativada.
Sistema:
Remover ‘sync_to_host_with_vsync’. Desabilitar o limitador com renderização em threads apenas faz com que o thread da CPU envie múltiplos quadros e receba retroalimentação do thread da GPU, o que gera input lag.
CDROM:
Remover min() redundante.
GPU/SW:
Usar no_unique_address para variáveis não utilizadas.
Conquistas:
Corrigir requisições de download do ícone do distintivo.
CI/Flatpak:
Atualizar para SDL2 2.30.11.
Comentários