github phforner0/Xendroid-Plus XenDroid-v144-a107faa9
Xendroid+ 0.2.2

latest release: XenDroid-v143-a107faa9
2 hours ago

Fixes Forza Horizon drawing broken distant geometry at 6 fps in 0.2.1 on Adreno GPUs.

Fixes from upstream Xenia Edge: safer loading of game executables and DLLs, a batch of crash and memory-corruption fixes, and the right title update when a game has several installed.

A Vulkan driver that doesn't support the phone's GPU no longer closes every game without a word.

Analog triggers stay analog in games, and handhelds whose built-in controls Android lists twice, such as the AYN Thor, play as P1.

  • Forza Horizon is back to 30 fps with a correct image on Adreno with Turnip.
  • Games sharing a title ID with another edition (GTA IV and Episodes from Liberty City, Dragon Age: Origins and Awakening) get the title update built for them.
  • A game waiting on the same object twice no longer freezes.
  • Truncated ISOs, empty XMA audio buffers and network sends with no destination no longer crash the emulator.
  • The game shows why it didn't start and offers the system driver.
  • Racing games get throttle and brake control from analog triggers.

Full Changelog: XenDroid-v134-dba22de8...XenDroid-v144-a107faa9

What's new

🛠️ Fixed

  • On GPUs without the round-toward-zero mode, 0.2.1 rounds some vertex shader results toward zero in software, and Turnip's shader compiler dropped the clamp of saturated results computed that way: in Forza Horizon, tree impostors covered the sky. The rounding now uses float arithmetic only. (#105)
  • Executables with a zeroed DOS stub load, and DLLs get the right startup arguments and notifications. (#102)
  • Overflows that could corrupt game memory: tiles and gamer pictures, cached title names, Unicode string copies and thread-local storage slots. (#102)
  • Games on Demand (SVOD) packages stored as a single file mount, and one with no data files no longer crashes. (#102)
  • ZArchive (.zar) games no longer log every file they open. (#102)
  • With a custom driver that has no Vulkan device for the phone's GPU, such as a Turnip build without that Adreno, every game closed at once. The launch failure screen now says the driver didn't start Vulkan and offers Try with the system driver. (#108)
  • Controller triggers reached games as buttons. They now send their whole travel, follow the L2/R2 key mapping, and the key mapping can capture a trigger that a controller sends only as an axis. (#109)
  • A controller takes a player when it's first used, not when it connects. On handhelds whose built-in controls Android lists twice, the controls that play are P1 instead of a silent duplicate. (#109)
🇧🇷 Em português

Corrige o Forza Horizon, que na 0.2.1 desenhava a geometria distante quebrada a 6 fps em GPUs Adreno.

Correções do Xenia Edge: carga mais segura dos executáveis e DLLs dos jogos, uma leva de correções de travamento e de corrupção de memória, e a title update certa quando o jogo tem várias instaladas.

Um driver Vulkan sem suporte à GPU do celular não fecha mais todos os jogos sem explicação.

Os gatilhos analógicos continuam analógicos nos jogos, e portáteis cujos controles embutidos o Android lista duas vezes, como o AYN Thor, jogam como P1.

  • O Forza Horizon volta a 30 fps com a imagem certa no Adreno com Turnip.
  • Jogos que dividem o title ID com outra edição (GTA IV e Episodes from Liberty City, Dragon Age: Origins e Awakening) recebem a title update feita para eles.
  • Um jogo que espera duas vezes pelo mesmo objeto não congela mais.
  • ISOs truncadas, buffers de áudio XMA vazios e envios de rede sem destino não derrubam mais o emulador.
  • O jogo mostra por que não iniciou e oferece o driver do sistema.
  • Jogos de corrida ganham controle do acelerador e do freio pelos gatilhos analógicos.

🛠️ Corrigido

  • Em GPUs sem o modo de arredondamento para zero, a 0.2.1 arredonda alguns resultados dos vertex shaders por software, e o compilador de shaders do Turnip perdia o clamp dos resultados saturados calculados assim: no Forza Horizon, os impostores de árvores cobriam o céu. O arredondamento agora usa só aritmética de float. (#105)
  • Executáveis com o stub DOS zerado carregam, e as DLLs recebem os argumentos e as notificações certos ao iniciar. (#102)
  • Estouros que podiam corromper a memória do jogo: tiles e fotos de perfil, nomes de títulos em cache, cópias de strings Unicode e slots de armazenamento local de thread. (#102)
  • Pacotes Games on Demand (SVOD) num arquivo único montam, e um sem arquivos de dados não derruba mais. (#102)
  • Jogos em ZArchive (.zar) não logam mais cada arquivo que abrem. (#102)
  • Com um driver customizado sem dispositivo Vulkan para a GPU do celular, como um Turnip sem aquele Adreno, todo jogo fechava na hora. Agora a tela de falha diz que o driver não iniciou o Vulkan e oferece Tentar com o driver do sistema. (#108)
  • Os gatilhos dos controles chegavam aos jogos como botões. Agora mandam o curso inteiro, seguem o mapeamento de L2/R2, e o mapeamento consegue capturar um gatilho que o controle manda só como eixo. (#109)
  • Um controle pega um jogador quando é usado pela primeira vez, não quando conecta. Em portáteis cujos controles embutidos o Android lista duas vezes, os controles que jogam ficam como P1, e não uma cópia muda. (#109)
📜 Every change since build 134 · 4 pull requests, 34 commits
  • #105 Arredondamento para zero dos vertex shaders sem perder a saturação no Turnip (Forza Horizon de volta a 30 fps) · @phforner0
    • GPU: step vertex shader results toward zero with float arithmetic · 46b92f51
  • #102 Upstream, lote 15: carga de XEX e DLLs, correções de estouro do PR 306 do Edge e escolha da title update · @phforner0
    • [CPU] Only release a XEX's own image between key retries · 81c1baaa
    • [Memory] Give the 4k XEX range its own backing · 3145f5fc
    • [VFS] Mount single-file SVOD packages laid out like multi-file ones · 2950b9cb
    • [CPU] Accept XEX images with a zeroed DOS stub · d23e0d41
    • [Kernel] Fix DllMain arguments and DLL notifications from non-title threads · 29ebd1e9
    • [Kernel] Implement XexPcToFileHeader and RtlCaptureContext · 968130fd
    • [XAM] Fix XamReadTileToTexture overrunning the texture and stalling overlapped calls · 09e06e7b
    • [XAM] Implement XamContentGetDefaultDevice · c4e630dd
    • [XAM] Stub XamLrcGetInputWithSeek · c7115db1
    • [XAM] Treat ordinals 0x7DC and 0x7DD as the extra AV codec loader · 0ee18afb
    • [Kernel] Fix notify listeners queueing repeats and staying signaled · dbdac0e1
    • [Base] Fix POSIX multi-object waits spinning forever on a repeated handle · 330c950a
    • [Kernel] Fix RtlCopyUnicodeString overflowing and RtlUnicodeStringToAnsiString length · 822c6dc0
    • [VFS] Fix reads from a truncated ISO crashing the emulator · 6c38bd02
    • VFS: a truncated disc image no longer maps a file past its end · da0bc7f2
    • [VFS] Fix SVOD reading the root block from an uninitialized offset · 8e3beaf2
    • [VFS] Stop ZArchive logging and looking up every path twice · 273da4d8
    • [Kernel] Fix TLS slot accesses writing past the thread's TLS block · a1b78f47
    • [XAM] Fix XamGetCachedTitleName ignoring the caller's buffer size · 02c18b50
    • [XAM] Fix XamReadTile and XamReadTileToTexture overflowing guest buffers · df917fc7
    • [XAM/Net] Fix sendto with a NULL destination crashing the emulator · 0f97fb23
    • [Kernel/XSocket] Fix FIONREAD returning a byte-swapped count for host sockets · a8aea9f8
    • [APU] Fix XMA output buffers with no blocks dividing by zero · b2e9a00c
    • [Kernel] Select the most compatible and newest title update · acf4d3ea
  • #108 Driver sem suporte à GPU mostra a tela de falha em vez de fechar o jogo · @phforner0
    • A driver with no Vulkan device shows the launch failure, not a crash · 497e5816
    • Try again from the launch failure: finish only the game activity · ab54da66
  • #109 Gatilhos analógicos com o curso inteiro e jogador na primeira entrada do controle · @phforner0
    • Analog triggers: the whole travel to the guest, following the L2/R2 mapping · 38902ca6
    • Controllers take a player when they first play, not when they connect · d64f181d
    • Site: controllers take players in the order they first play · 2450acbf

Built by Xendroid+ #144 from a107faa9, signed with the release key.

File Size SHA-256
XenDroid_Release_a107faa9.apk 40.6 MiB ec79f1c0c2cdf6751cd53e3272e5b6c524320706f9bc3a7e97ebc7689352d899

Don't miss a new Xendroid-Plus release

NewReleases is sending notifications on new releases.