Repository navigation
FH2 Recompiled 0.4.1
Pre-releaseImportant
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.xmlat 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.xmldo 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
- Graphics sliders by @Gabrick75 in #33
- Presenter qsri fix by @Gabrick75 in #35
- fix: reflections by @Gabrick75 in #36
- Worktree reflexo nativo by @Gabrick75 in #37
- Native renderer: motion blur behind the car, as on the Xbox 360 by @Gabrick75 in #38
- Launcher: Off scaling keeps the chosen render scale, with no filter by @Gabrick75 in #39
- Presenter: move presentation to queue 0 when a reconnection loop does… by @Gabrick75 in #43
- Game memcpy on the host's memcpy (cvar fh2_memcpy_nativo) by @Gabrick75 in #44
- memcpy hook: leave copies touching physical memory to the game's memcpy by @Gabrick75 in #46
- Perf/registers as locals by @Gabrick75 in #47
- Mouse keyboard by @Gabrick75 in #49
Full Changelog: v0.4.0...v0.4.1