Skip to content

LAS Recomp for Android 0.5.9 (preview): PowerVR and Chinese fixes, fewer CPU copies on Mali / correções na PowerVR e no chinês, menos cópias na Mali

Pre-release
Pre-release

Choose a tag to compare

@mamcjr mamcjr released this 31 Oct 23:09
· 3 commits to main since this release

English

PowerVR's overbright scenes and the Chinese languages fixed; fewer CPU copies and less memory on Mali after loading an area; a few fixes from BOTWRecompAndroid.

  • PowerVR: the scene no longer lit white (issue #8). The driver can't read one of the game's vertex formats (10:10:10:2, where the models' normals are); the app read it some other way, and with wrong normals almost everything glowed white. Now such a format is read as one number and unpacked by the shader.
  • Chinese text (issue #12): with Simplified or Traditional Chinese chosen, the game showed its Japanese text. It's now told the language as the Switch's current system does (zh-Hans / zh-Hant).
  • Mali, Xclipse and Qualcomm's own driver (the copy path), from BOTWRecompAndroid: after loading an area, a draw's memory table could overflow and send everything back to full CPU copies - megabytes a draw, very low fps until a restart there. The table now has room for twice as many ranges, the learned ranges take only the free places, a table over its limit no longer turns into one huge range (that could also corrupt the game's memory), and idle upload memory is given back.
  • Mali performance: render targets the driver can compress (a Mali driver doesn't compress an image whose views may change format), and the game's worker threads no longer wait on the system at every yield (about 30 µs each before).
  • Shaders: an 8-bit value read back from a texture is rounded instead of truncated (in BOTWRecompAndroid a material ID read one lower left distant trees unlit).
  • Fewer crashes: a window surface lost while it's being made (back from the background) is made again instead of ending the game; a movie that can't be opened plays as an empty one instead of crashing the game moments later.

Updating from 0.5.8 doesn't build the game code again. The shaders are prepared again at the first start (the shader translator changed). Saves aren't touched.

Validation: release APK built and signed with the same key as the previous versions. On the POCO F7 Ultra (Adreno 830, Turnip): the PowerVR case reproduced by making the app treat those vertex formats as unreadable - with the old path the village turned white as in issue #8's screenshots, with the new one it's lit right; Chinese chosen, the file select switched from the Japanese text to the Chinese; issue #2's route (Mysterious Woods, Mabe Village, the Library and out) with a Mali-like path simulated and the Mali changes forced on, the right picture at each stop; a missing movie skipped without a crash. Not tested on a real PowerVR, Mali, Xclipse or Qualcomm driver here, so the Mali performance changes aren't measured on one.

Experimental preview for Android 11+ / ARM64. It does not include any files extracted from the game.


Português

O brilho estourado na PowerVR e os idiomas chineses corrigidos; menos cópias pela CPU e menos memória na Mali depois de carregar uma área; algumas correções do BOTWRecompAndroid.

  • PowerVR: a cena não fica mais branca (issue #8). O driver não lê um dos formatos de vértice do jogo (10:10:10:2, onde ficam as normais dos modelos); o app o lia de outro jeito, e com normais erradas quase tudo brilhava branco. Agora esse formato é lido como um número só e desempacotado pelo shader.
  • Textos em chinês (issue #12): com chinês simplificado ou tradicional escolhido, o jogo mostrava os textos em japonês. Agora o idioma é passado como o sistema atual do Switch passa (zh-Hans / zh-Hant).
  • Mali, Xclipse e o driver da própria Qualcomm (o caminho de cópias), do BOTWRecompAndroid: depois de carregar uma área, a tabela de memória de um desenho podia estourar e mandar tudo de volta para cópias completas pela CPU - megabytes por desenho, fps muito baixo até reiniciar, lá. A tabela agora cabe o dobro de faixas, as faixas aprendidas ocupam só os lugares livres, uma tabela acima do limite não vira mais uma faixa enorme (que também podia corromper a memória do jogo), e a memória de upload ociosa é devolvida.
  • Desempenho na Mali: render targets que o driver pode comprimir (o driver da Mali não comprime uma imagem cujas views podem mudar de formato), e as threads de trabalho do jogo não esperam mais pelo sistema a cada yield (uns 30 µs cada antes).
  • Shaders: um valor de 8 bits lido de uma textura é arredondado em vez de truncado (no BOTWRecompAndroid um ID de material lido um a menos deixava árvores distantes sem luz).
  • Menos travamentos: uma superfície da janela perdida enquanto é criada (na volta do segundo plano) é criada de novo em vez de encerrar o jogo; um vídeo que não abre toca vazio em vez de derrubar o jogo logo depois.

Atualizar a partir da 0.5.8 não compila o código do jogo de novo. Os shaders são preparados de novo no primeiro início (o tradutor de shaders mudou). Os saves não são alterados.

Validação: APK de release compilado e assinado com a mesma chave das versões anteriores. No POCO F7 Ultra (Adreno 830, Turnip): o caso da PowerVR reproduzido fazendo o app tratar esses formatos de vértice como ilegíveis - com o caminho antigo a vila ficou branca como nas capturas da issue #8, com o novo ela aparece com a luz certa; com chinês escolhido, a seleção de arquivos trocou o texto japonês pelo chinês; a rota da issue #2 (Floresta Misteriosa, Vila Mabe, a biblioteca e a saída) simulando o caminho da Mali e com as mudanças da Mali forçadas, a imagem certa em cada parada; um vídeo faltando pulado sem travar. Não testado numa PowerVR, Mali, Xclipse ou driver da Qualcomm de verdade aqui, então as mudanças de desempenho na Mali não foram medidas numa.

Preview experimental para Android 11+ / ARM64. Não inclui arquivos extraídos do jogo.