Skip to content

BOTWRecompAndroid 0.2.7 (beta 20): giroscópio com controle, aviso de mods de DLC, ajustes para Mali

Pre-release
Pre-release

Choose a tag to compare

@mamcjr mamcjr released this 31 Oct 21:15
· 7 commits to main since this release

Beta 20. Correções de giroscópio com controle, um aviso para mods de DLC e ajustes de GPU para Mali e Adreno.

Correções

  • Giroscópio com controle (#78, #137, #115):
    • Com Sensor de movimento: Celular, os sensores do controle nem são ligados. Num controle USB-C em que o celular encaixa, a mira parava depois de alguns tiros até reconectar o controle.
    • No Automático, um controle só passa a valer como giroscópio depois de mostrar um giro de verdade (cerca de 30°/s). Controles sem giroscópio que mandam ruído (GameSir X2 Type-C, entre outros) não calam mais o do celular.
    • O log agora avisa quando as leituras do giroscópio param enquanto o jogo usa o sensor.
  • Relics of the Past sem a DLC (#65): o mod fecha o jogo na tela de título quando a DLC não está instalada. Foi reproduzido aqui na 1.6.0, e com a DLC passa. O menu Mods agora avisa quando um mod para a DLC está ligado sem ela.
  • Overlay atrás do menu (#142): o overlay de desempenho some enquanto o menu está aberto, como os controles de toque; antes ele aparecia através do painel.
  • Texturas grandes atualizadas: uma textura maior que o orçamento de verificação do quadro (4 MB) também é conferida inteira de tempos em tempos. Antes, uma mudança que as amostras não pegavam podia ficar sem aparecer.

GPU

  • Mali: os alvos de desenho são criados sem formato mutável (só com o par sRGB), o que deixa o driver comprimi-los (AFBC) e economiza banda.
  • Passes que começam limpando os alvos: a limpeza vira o carregamento do próprio pass. Numa GPU por tiles (Mali, Adreno), cada alvo deixa de ser lido da memória só para ser apagado em seguida.
  • Shaders (do TOTKDroid):
    • Mais shaders saem com laços e ifs em vez da máquina de estados, quando há saltos para fora de uma região.
    • A busca na tabela de memória global lembra a última faixa encontrada.
    • Dispatches seguidos não têm mais barreira entre eles.
  • CPU: o yield das threads do jogo não chama mais o do sistema, que levava ~30 µs cada.

No POCO (Adreno 830) essas mudanças de GPU deram empate a 60 fps, com a imagem conferida no mundo e nos menus. O ganho esperado é nas GPUs Mali, que não pude testar: contem se mudou alguma coisa.

Não precisa compilar o código do jogo de novo: é só instalar por cima da 0.2.x. Os shaders são recompilados uma vez.

Problemas conhecidos

  • 1.0.0 em combate: os inimigos podem deixar linhas e riscos pretos ao morrer, e o jogo pode fechar durante a luta. Isso não acontece na 1.8.2 nem na 1.9.0: use uma delas por enquanto.
  • Aspecto livre: na troca de páginas do menu, a página aparece cortada na borda da parte 16:9 enquanto desliza.
  • A grama baixa ao longe só aparece de perto.
  • Às vezes, logo depois da cena de ativação de uma torre, o terreno aparece esticado em "cortinas". Para resolver, carregue o save depois de a torre estar ativada.
  • O reflexo na água acompanha a câmera quando o Link anda para os lados.
  • No driver de fábrica da Qualcomm, o fundo do menu de pausa fica preto.
  • Modo nativo: o Link às vezes pisca ao levar o primeiro golpe.

Nenhum arquivo do jogo vem incluído. Testada num celular só (POCO F7 Ultra, Adreno 830, Turnip). O giroscópio com esses controles e as mudanças para Mali não puderam ser testados nesses aparelhos. Para instalar e configurar: 0.1.0-beta. Créditos no README.


Beta 20. Gyroscope fixes with controllers, a warning for DLC mods, and GPU work for Mali and Adreno.

Fixes

  • Gyroscope with a controller (#78, #137, #115):
    • With Motion sensor: Phone, the controller's sensors aren't even turned on. With a USB-C controller the phone sits in, aiming stopped after a few shots until the controller was plugged in again.
    • In Auto, a controller only counts as a gyroscope after it shows a real turn (about 30°/s). Controllers with no gyroscope that send noise (GameSir X2 Type-C, among others) no longer mute the phone's.
    • The log now says when the gyroscope readings stop while the game uses the sensor.
  • Relics of the Past without the DLC (#65): the mod closes the game at the title screen when the DLC isn't installed. Reproduced here on 1.6.0; with the DLC it gets past it. The Mods menu now warns when a mod for the DLC is on without it.
  • Overlay behind the menu (#142): the performance overlay is hidden while the menu is open, like the touch controls; it used to show through the panel.
  • Large textures kept up to date: a texture larger than the frame's checking budget (4 MB) is also checked whole now and then. Before, a change the samples missed could stay unseen.

GPU

  • Mali: render targets are made without a mutable format (only their sRGB pair), which lets the driver compress them (AFBC) and saves bandwidth.
  • Passes that start by clearing their targets: the clear becomes the pass's own load. On a tile GPU (Mali, Adreno), each target is no longer read from memory only to be cleared right after.
  • Shaders (from TOTKDroid):
    • More shaders come out as loops and ifs instead of the state machine when they jump out of a region.
    • The global-memory table lookup remembers the last range it found.
    • Back-to-back dispatches no longer have a barrier between them.
  • CPU: the game threads' yield no longer calls the system's, which took ~30 µs each.

On the POCO (Adreno 830) these GPU changes were a tie at 60 fps, with the image checked in the world and the menus. The expected gain is on Mali GPUs, which I couldn't test: please tell me if anything changed.

No need to build the game code again: just install over 0.2.x. Shaders recompile once.

Known issues

  • 1.0.0 in combat: enemies can leave black lines and streaks when they die, and the game can close during a fight. This doesn't happen on 1.8.2 or 1.9.0: please use one of them for now.
  • Free aspect: when the menu turns its page, the page shows cut at the 16:9 part's edge while it slides.
  • Short grass in the distance only appears up close.
  • Sometimes, right after a tower's activation scene, the terrain shows stretched into "curtains". To fix it, load the save once the tower is active.
  • The water's reflection follows the camera when Link walks sideways.
  • On Qualcomm's stock driver, the pause menu's background is black.
  • Native mode: Link sometimes flickers on the first hit he takes.

No game files are included. Tested on one phone only (POCO F7 Ultra, Adreno 830, Turnip). The gyroscope with those controllers and the Mali changes couldn't be tested on those devices. To install and set up: 0.1.0-beta. Credits in the README.