Skip to content

FH2 Recompiled 0.4.1

Pre-release
Pre-release

Choose a tag to compare

@Gabrick75 Gabrick75 released this 22 Oct 19:16
· 49 commits to main since this release
031b86a

Important

Unofficial, non-commercial fan project, not affiliated with or endorsed by Microsoft, Xbox Game Studios or
Playground Games. This APK contains no game data. It does nothing without the files extracted from your
own legally obtained copy of Forza Horizon 2 for Xbox 360. Do not ask for game files.

Release v0.4.1

English

A fix-and-polish release: the Mali screen freeze is gone, the native renderer looks closer to the Xbox 360, new
world detail sliders, keyboard and mouse support, and a lighter game CPU.
Upgrading from v0.4.0 keeps your settings.

Fixed

  • Image freezing on Mali GPUs (Poco X6 Pro / Mali-G615 and other Xiaomi phones): after ~20 s the picture froze
    (black or stuck on the loading screen) while the game and sound kept going. The presenter now renews its
    semaphores on every reconnection, catches presents Android silently drops, and if the reconnection loop does not
    end it moves presentation to the GPU's first queue for the rest of the session. Confirmed fixed on the reporting
    phones.
  • Native renderer, car reflections: the paint reflected the sky and sun where the trees are and looked washed
    out; cube reflections now use the right direction, the reflection cube keeps its mip levels and samplers apply the
    game's mip bias.
  • Native renderer, motion blur behind the car: the road under the car never blurred; it now does, as on the
    Xbox 360.
  • Native renderer, anti-aliasing: MSAA now covers every pass of the scene (before, only passes the game cleared
    were multisampled, so 4x looked like off), and the launcher's FXAA option actually runs.
  • Native renderer, foliage under MSAA: bushes no longer turn into scattered dots at 2x/4x; tree shadows are back
    from 1x shadow distance up.
  • Scaling "Off" no longer forces 100 % render scale: it keeps your scale and shows it unfiltered (sharp pixels).
  • Minimap pink / full map black with the new fast memcpy: copies that touch GPU memory go through the game's own
    routine.

New

  • World detail sliders (Graphics): grass, objects, reflections, shadow distance and crowd, from 0.25x to 4x.
    Reflections, shadows, grass and crowd can also be turned off (grass and crowd off: native renderer only).
    Crowd off removes ~17 % of the scene's draws at the festival.
  • Keyboard and mouse: detected on their own, like a gamepad — no setup. Racing layout with mouse camera; F4
    in game rebinds every key. The touch pad hides while an external keyboard/mouse is in use and comes back on the
    first touch.
  • Soft bush edges toggle (native, with MSAA): real alpha to coverage, softer but grainier on phones. Off by default.
  • Lighter game CPU: guest registers kept as C++ locals instead of memory, ~316,000 calls between game functions
    made direct (no PLT), and the game's memcpy on the host's. On the Moto G9 Play, register save/restore helpers were
    ~5 % and memcpy ~4 % of the game threads before.
  • Diagnostics: the swapchain reconnection loop is logged once with its cause instead of flooding the log;
    report log files grow to 5 MB.

Notes

  • The world detail factors rewrite the game's TrackSettings.xml at start (in memory; your game files are not
    touched); works from a folder or an ISO, with either renderer.
  • If you still get a frozen image on any phone, save a diagnostics report from the launcher and open an issue.

Português

Uma versão de correções e acabamento: acabou o congelamento de imagem nas Mali, o renderizador nativo ficou mais
parecido com o Xbox 360, sliders novos de detalhe do mundo, suporte a teclado e mouse e menos peso na CPU do jogo.

Ao atualizar da v0.4.0 suas configurações são mantidas.

Correções

  • Imagem congelando em GPUs Mali (Poco X6 Pro / Mali-G615 e outros Xiaomi): depois de ~20 s a imagem travava
    (preta ou presa na tela de carregamento) enquanto o jogo e o som continuavam. O apresentador agora renova os
    semáforos a cada reconexão, percebe as apresentações que o Android descarta em silêncio e, se o ciclo de reconexão
    não termina, passa a apresentar na primeira fila da GPU pelo resto da sessão. Confirmado nos celulares que relataram.
  • Nativo, reflexo dos carros: a pintura refletia o céu e o sol onde estão as árvores e ficava desbotada; agora o
    reflexo usa a direção certa, o cubo de reflexo tem seus mips e os samplers aplicam o viés de mip do jogo.
  • Nativo, desfoque de movimento atrás do carro: a pista embaixo do carro nunca desfocava; agora desfoca, como no
    Xbox 360.
  • Nativo, suavização: o MSAA agora cobre todas as passadas da cena (antes só as que o jogo limpava, então 4x
    parecia desligado), e a opção FXAA do launcher passou a funcionar.
  • Nativo, vegetação com MSAA: os arbustos não viram mais pontinhos espalhados em 2x/4x; as sombras das árvores
    voltaram a partir de 1x de distância de sombra.
  • Escala "Desligado" não força mais 100 %: mantém a sua escala e mostra sem filtro (pixels nítidos).
  • Minimapa rosa / mapa completo preto com o memcpy rápido novo: cópias que tocam a memória da GPU usam a rotina
    do próprio jogo.

Novidades

  • Sliders de detalhe do mundo (Gráficos): grama, objetos, reflexos, distância das sombras e multidão, de 0,25x a
    4x. Reflexos, sombras, grama e multidão também podem ser desligados (grama e multidão desligadas: só no
    nativo). Sem multidão, o festival tem ~17 % menos desenhos.
  • Teclado e mouse: reconhecidos sozinhos, como um controle — sem configurar nada. Layout de corrida com câmera
    no mouse; F4 no jogo muda qualquer tecla. Os controles de toque somem enquanto o teclado/mouse externo está em
    uso e voltam no primeiro toque.
  • Opção Bordas suaves nos arbustos (nativo, com MSAA): cobertura alfa real, mais suave porém granulada no
    celular. Desligada por padrão.
  • CPU do jogo mais leve: registradores do jogo como variáveis locais em vez de memória, ~316.000 chamadas entre
    funções do jogo diretas (sem PLT) e o memcpy do jogo no do sistema. No Moto G9 Play, salvar/restaurar registradores
    era ~5 % e o memcpy ~4 % das threads do jogo.
  • Diagnóstico: o ciclo de reconexão da swapchain aparece uma vez no log, com a causa, em vez de lotá-lo; os logs
    do relatório vão até 5 MB.

Observações

  • Os fatores de detalhe do mundo reescrevem o TrackSettings.xml do jogo ao iniciar (na memória; seus arquivos não
    são alterados); funciona com pasta ou ISO, nos dois renderizadores.
  • Se a imagem ainda congelar em algum celular, salve um relatório de diagnóstico pelo launcher e abra uma issue.

What's Changed

Full Changelog: v0.4.0...v0.4.1