God of War Launcher v0.3.3
The launcher never lets you play the slow test build again, and it shows what a long build is doing. If an "Optimize
now" was cut short, some players ended up playing the instrumented training build, which is several times slower: the
CPU pinned, the GPU idle, the game below 60 Hz. That build is now never opened, and the launcher rebuilds the real game
by itself. Every build progress bar also has a Details button, so you can tell a slow step from a stuck one. On
Linux, install.sh can now train the speed profile with clang.
Updating from 0.3.2? The game's runtime changes (a diagnostic for the save hang), so the launcher shows a note to
rebuild the game. It is incremental and runs in the background. Your saves are kept. Details in Updating.
English
The slow test build is never played
- What went wrong. The first step of Optimize now builds a test version of the game that counts what the code
does. It exists only for the 4 minutes of training and is several times slower. When the run stopped after that build
(you pressed PLAY, closed the launcher, or the final build failed), a 30 second timer copied it in as the game, and
players kept playing it. - What changed. The launcher tells the test build apart by its contents and never copies it in as the game. PLAY
refuses to open it, and refuses to start while Optimize now is running. If a test build is left on disk, the
launcher rebuilds the real game by itself as soon as the game is closed and nothing else is running, even with the
background optimization off, with the speed profile if the training had finished. The first check runs 3 seconds after
the launcher starts. - What you see. PLAY reads FINISHING and the first screen says Slow test version installed, with a Rebuild
now button that starts it at once. If you were already on the slow version, updating to 0.3.3 is enough. - Optimize now asks first. It lists the three steps and what may happen in each, then a window locks the launcher
until the end: the current step, a red "hands off" warning while the game is open by itself, and a Cancel that asks
before stopping. Closing the launcher during it asks too.
Is the build stuck or just slow?
- The bar only moves when a file is finished, and some steps (the native VU1 code, the final link) print nothing for up
to about 30 minutes, so it can look frozen while the build works. - Every build progress bar (the installation wizard, the rebuild note, the Performance tab and Optimize now) now has
a Details button. It shows, live, whether the build's processes are using the processor, the current step in your
language, how many files are done, how long it has been running and since it last printed anything, the last file it
finished and its last lines, with a button to open the full log (install.logoroptimize.log). - It says the build may be stuck only after 10 minutes with no processor use and no output. A download is shown as
Downloading and is never called stuck.
Smaller changes
- A loading spinner while the launcher starts, instead of an empty window.
- The parchment and the red button of the dialogs are loaded when the launcher starts, so the first dialog no longer
draws bare for a moment. - Portuguese: "Não foi possível start o jogo" is now "iniciar".
Linux (experimental): the speed profile with clang
Thanks to @wardhanisukoco, merged with their commit so the authorship is kept
(#31).
--pgo auto|on|offand--retrain-pgoininstall.sh(alsoGOW_PGO). They apply to clang only.auto, the default, usesbuild/pgo/gow.profdataif it already exists and never trains one.ontrains it during the optimization run and rebuilds with it:
./install.sh --compiler clang --pgo on. This needsllvm-profdata(thellvmpackage). The installer checks for
it and knows the package names on Debian and Ubuntu, Fedora and Nobara, and Arch and CachyOS.--retrain-pgotrains it again even when a profile exists.- The training run now also writes its profile when it is stopped with a signal (the
timeoutof the scripted
run), not only when the window is closed.
- The contributor reports that heavy combat on a power-limited PC went from about 50 to 57 to 60 FPS, and ran the whole
flow (instrumented build, training, merge, final build) on Linux. The FPS numbers are theirs; we did not measure
them. The flow was also tested on Linux here, and the install script's own test suite passes.
The save hang: diagnostic only
The hang right after saving is not fixed. A new sample shows the game spinning in the animation controller update
(0x116EF0), in a loop that walks an animation's time in fixed steps and never ends when the step is zero or too small.
This version only makes the hang report print that loop's values ([gow-hang] animation step loop), so the next hang can
be fixed. If it happens to you, attach logs/last.log and the gow_hang_*.sampling files next to it, and say what you
did just before. Details in the troubleshooting guide.
Updating
After the launcher updates, a note at the top of Performance says the game has fixes: press Rebuild now. It
takes from a few minutes to about 20 minutes and runs in the background; you keep playing the current build until it
ends, and the new one opens the next time you start the game. Your saves (game/Mcd001.ps2) are not touched.
| You are on | What to do |
|---|---|
| 0.3.0 to 0.3.2 | The launcher updates itself (Windows setup and AppImage) and shows the note: press Rebuild now. |
| 0.2.5 to 0.2.9 | The launcher updates itself and asks for the rebuild: press Delete and rebuild. This also moves you from Visual Studio to the clang build, and then Optimize now adds the speed profile. |
| 0.2.4 or older | Install the setup or unzip the portable ZIP over the old one, then press Delete and rebuild (your saves stay). |
| A new install | Install and play. Visual Studio is not needed. |
Downloads: Windows installer or portable ZIP; Linux .deb or AppImage (experimental). Files ending in .sig and
latest.json are for the self-update; you do not need them.
No game files are included. You need your own original USA God of War disc image (SCUS-97399), a CHD of it, or a
translation of it.
Known issues
- The game can hang right after saving. See above; the report you attach is what lets us fix it.
- Linux remains experimental.
- 240 FPS is experimental. Actions timed in frames (quick-time events, combo windows, some jumps) were not all
checked above 60. - Some players hear crackling audio in every session, at any FPS limit. It is still being investigated.
- 32:9 and 21:9 are experimental.
Contributors
- @danielalves96: the protection against the slow test build, the build details, the save hang diagnostic and this
release. - @wardhanisukoco: the speed profile with clang in
install.sh
(#31). - @srlps: the report that led to the build details (#32).
Full changelog: v0.3.2...v0.3.3.
Checksums are in SHA256SUMS-*.txt.
Português (Brasil)
O launcher nunca mais deixa você jogar a versão de teste lenta, e mostra o que uma compilação longa está fazendo. Se
um "Otimizar agora" foi interrompido, alguns jogadores acabaram jogando a build de treino instrumentada, que é várias
vezes mais lenta: processador no máximo, placa de vídeo ociosa, jogo abaixo de 60 Hz. Essa build agora nunca é aberta, e o
launcher recompila o jogo de verdade sozinho. Toda barra de progresso de compilação também tem um botão Detalhes, para
você saber se um passo está lento ou travado. No Linux, o install.sh agora consegue treinar o perfil de velocidade com
clang.
Vindo da 0.3.2? O runtime do jogo muda (um diagnóstico para a travada ao salvar), então o launcher mostra um aviso
para recompilar o jogo. É incremental e roda em segundo plano. Seus saves são mantidos. Detalhes em
Como atualizar.
A versão de teste lenta nunca é jogada
- O que deu errado. O primeiro passo do Otimizar agora compila uma versão de teste do jogo que conta o que o
código faz. Ela existe só para os 4 minutos de treino e é várias vezes mais lenta. Quando a execução parava depois
dessa compilação (você apertou JOGAR, fechou o launcher ou a compilação final falhou), um temporizador de 30 segundos a
copiava como se fosse o jogo, e os jogadores seguiam jogando com ela. - O que mudou. O launcher reconhece a versão de teste pelo conteúdo e nunca a copia como jogo. O JOGAR se recusa a
abri-la e se recusa a começar enquanto o Otimizar agora roda. Se sobrar uma versão de teste no disco, o launcher
recompila o jogo de verdade sozinho assim que o jogo fecha e nada mais está rodando, mesmo com a otimização em segundo
plano desligada, e com o perfil de velocidade se o treino tinha terminado. A primeira checagem roda 3 segundos depois
que o launcher abre. - O que você vê. O JOGAR mostra FINALIZANDO e a primeira tela diz Versão de teste lenta instalada, com um botão
Recompilar agora que começa na hora. Se você já estava na versão lenta, atualizar para a 0.3.3 basta. - O Otimizar agora pergunta antes. Ele lista os três passos e o que pode acontecer em cada um, e então uma janela
trava o launcher até o fim: o passo atual, um aviso vermelho de "não encoste" enquanto o jogo está aberto sozinho, e um
Cancelar que pergunta antes de parar. Fechar o launcher durante isso também pergunta.
A compilação travou ou só está lenta?
- A barra só anda quando um arquivo termina, e alguns passos (o código nativo da VU1, a ligação final) não escrevem nada
por até uns 30 minutos, então ela pode parecer parada enquanto a compilação trabalha. - Toda barra de progresso de compilação (o assistente de instalação, o aviso de recompilação, a aba Desempenho e o
Otimizar agora) agora tem um botão Detalhes. Ele mostra, ao vivo, se os processos da compilação estão usando o
processador, o passo atual no seu idioma, quantos arquivos já terminaram, há quanto tempo roda e há quanto tempo não
escreve nada, o último arquivo concluído e as últimas linhas, com um botão para abrir o log completo (install.logou
optimize.log). - Só diz que a compilação pode estar travada depois de 10 minutos sem uso de processador e sem saída. Um download
aparece como Baixando e nunca é chamado de travado.
Mudanças menores
- Um indicador de carregamento enquanto o launcher abre, no lugar de uma janela vazia.
- O pergaminho e o botão vermelho das janelas agora são carregados na abertura do launcher, então a primeira janela não
aparece mais sem eles por um instante. - Português: "Não foi possível start o jogo" agora é "iniciar".
Linux (experimental): o perfil de velocidade com clang
Obrigado a @wardhanisukoco, mesclado com o commit dele, então a autoria fica mantida
(#31).
--pgo auto|on|offe--retrain-pgonoinstall.sh(tambémGOW_PGO). Valem só para clang.auto, o padrão, usa obuild/pgo/gow.profdatase ele já existir e nunca treina um.ontreina durante a otimização e recompila com ele:./install.sh --compiler clang --pgo on. Precisa do
llvm-profdata(o pacotellvm). O instalador confere e conhece os nomes dos pacotes no Debian e Ubuntu, no Fedora e
Nobara, e no Arch e CachyOS.--retrain-pgotreina de novo mesmo com um perfil já existente.- A execução de treino agora também grava o perfil quando é parada por sinal (o
timeoutda execução com script), e
não só quando a janela é fechada.
- O colaborador relata que o combate pesado num PC com energia limitada foi de uns 50 para 57 a 60 FPS, e rodou o fluxo
inteiro (compilação instrumentada, treino, junção, compilação final) no Linux. Os números de FPS são dele; nós não os
medimos. O fluxo também foi testado no Linux aqui, e a suíte de testes do próprio script de instalação passa.
A travada ao salvar: só diagnóstico
A travada logo depois de salvar não está corrigida. Uma amostra nova mostra o jogo girando na atualização do
controlador de animação (0x116EF0), num laço que anda o tempo de uma animação em passos fixos e nunca termina quando o
passo é zero ou pequeno demais. Esta versão só faz o relatório de travada imprimir os valores desse laço
([gow-hang] animation step loop), para que a próxima travada possa ser corrigida. Se acontecer com você, anexe o
logs/last.log e os arquivos gow_hang_*.sampling que ficam ao lado dele, e diga o que você fez logo antes. Os detalhes
estão no guia de solução de problemas.
Como atualizar
Depois que o launcher atualizar, um aviso no topo de Desempenho diz que o jogo tem correções: aperte Recompilar
agora. Leva de alguns minutos a uns 20 minutos e roda em segundo plano; você segue jogando a compilação atual até
terminar, e a nova abre na próxima vez que você iniciar o jogo. Seus saves (game/Mcd001.ps2) não são tocados.
| Você está na | O que fazer |
|---|---|
| 0.3.0 a 0.3.2 | O launcher se atualiza sozinho (setup do Windows e AppImage) e mostra o aviso: aperte Recompilar agora. |
| 0.2.5 a 0.2.9 | O launcher se atualiza sozinho e pede a recompilação: aperte Apagar e recompilar. Isso também tira você do Visual Studio e leva para a compilação com clang; depois, Otimizar agora acrescenta o perfil de velocidade. |
| 0.2.4 ou anterior | Instale o setup ou descompacte o ZIP portátil por cima do antigo e aperte Apagar e recompilar (seus saves ficam). |
| Instalação nova | Instale e jogue. O Visual Studio não é necessário. |
Downloads: instalador ou ZIP portátil para Windows; .deb ou AppImage para Linux (experimental). Os arquivos .sig
e o latest.json são da atualização automática; você não precisa deles.
Nenhum arquivo do jogo está incluído. Você precisa da sua própria imagem do disco original americano de God of War
(SCUS-97399), de um CHD dele ou de uma tradução dele.
Problemas conhecidos
- O jogo pode travar logo depois de salvar. Veja acima; o relatório que você anexa é o que nos deixa corrigir.
- O Linux continua experimental.
- 240 FPS é experimental. Ações contadas em quadros (QTEs, janelas de combo, alguns pulos) não foram todas conferidas
acima de 60. - Alguns jogadores ouvem estalos no áudio em todas as sessões, em qualquer limite de FPS. Isso continua em investigação.
- 32:9 e 21:9 são experimentais.
Contribuidores
- @danielalves96: a proteção contra a versão de teste lenta, os detalhes da compilação, o diagnóstico da travada ao
salvar e esta release. - @wardhanisukoco: o perfil de velocidade com clang no
install.sh
(#31). - @srlps: o relato que levou aos detalhes da compilação (#32).
Histórico completo: v0.3.2...v0.3.3.
Os checksums estão em SHA256SUMS-*.txt.