DIAGNÓSTICO DO RELINKER E DO RUNTIME

Erros do AnyPS5: encontre o passo que falhou.

Separe falhas de conversão do Relinker de problemas de dependência de inicialização, alocação de memória, configuração de GPU e de entrada.

1. Identifique o estágio que falhou

Primeiro determine se o Relinker não conseguiu produzir um executável ou se o título convertido não conseguiu iniciar. Um código de saída 1 do Relinker indica argumentos inválidos; 2 indica falha na conversão com detalhes em stderr. Código 0 significa conversão bem-sucedida, não que o gameplay foi testado. Com --autorun, o status de saída da aplicação iniciada pode ser retornado no lugar. Códigos de saída oficiais ↗ ↗

2. Erros do Relinker antes da execução

Módulos de entrada não encontrados ou em conflito

Coloque o ELF limpo ao lado de um sce_module/ ou sce_modules/; prx/ também é aceito e pode coexistir com qualquer um. Ter tanto sce_module/ quanto sce_modules/ ao mesmo tempo causa erro, assim como não ter nenhum dos diretórios de módulo aceitos.

Formato de saída errado

No Windows, especifique --windows ao converter o executável. Apenas nomear a saída como app.exe ainda produz ELF Linux por padrão. --to-intel converte instruções exclusivas da AMD suportadas, mas instruções não suportadas ainda podem falhar.

Para as regras exatas de entrada e as flags suportadas, use a referência de comandos do Relinker ou leia o USAGE.md upstream ↗ ↗.

3. Inicialização no Windows: erro 193, erro 126 e memória

Erro 193 — not a valid Win32 application

Verifique se um módulo .prx original do PS5 foi colocado em libs/. Esse diretório deve conter bibliotecas de sistema do host Windows do AnyPS5, não módulos convidados. Os módulos empacotados do jogo gerados pelo Relinker vão em app0/.

Erro 126 — specified module could not be found

Para bibliotecas de sistema do Windows compiladas por você, a ausência de libgcc_s_seh-1.dll, libstdc++-6.dll ou libwinpthread-1.dll pode causar esse erro mesmo com o .prx presente. Use as DLLs do mingw64/bin correspondente ao lado das bibliotecas exigidas; os arquivos da release oficial já incluem essas DLLs. O loader upstream não as procura no PATH.

create direct memory backing ...

O Windows compromete imediatamente a memória direta alocada. Verifique o valor Committed no Gerenciador de Tarefas e o limite de commit do sistema (RAM mais arquivo de paginação). Reduza outra memória comprometida ou aumente o arquivo de paginação se o limite for baixo demais.

Veja os detalhes oficiais de solução de problemas de runtime ↗ ↗. O guia de instalação no Windows continua sendo a referência passo a passo.

4. Linux: permissão negada em /dev/udmabuf

Em drivers Linux que importam memória direta compartilhada por meio de /dev/udmabuf, a falta de acesso de leitura/escrita pode imprimir [gpu] open /dev/udmabuf: Permission denied. Esses intervalos de memória então são copiados em vez de importados; algumas escritas de GPU podem falhar com BDA access failed. Verifique o dono/grupo e as permissões do dispositivo. Em distribuições que concedem acesso ao grupo kvm, adicionar o usuário a esse grupo e entrar novamente é a abordagem documentada upstream. Esse caminho depende do driver e não descreve o caminho proprietário da NVIDIA. Notas de importação de memória no Linux ↗ ↗

5. Seleção de GPU e texto ausente

O AnyPS5 escolhe um dispositivo compatível com Vulkan 1.1 com gráficos, computação e apresentação, preferindo GPUs discretas. Inspecione as linhas Physical device candidate na inicialização e use ANYPS5_GPU com parte do nome do dispositivo pretendido para selecionar outro. Se nenhum dispositivo corresponder, a inicialização imprime os nomes disponíveis.

Se um título usa os conjuntos de fontes de sistema do console, fontes ausentes podem deixar o texto em branco. O AnyPS5 lê uma pasta anyps5-fonts/ ao lado do executável gerado, ou um diretório indicado por ANYPS5_SYSTEM_FONTS; a seção oficial de fontes ↗ lista os nomes de arquivos das fontes Noto substitutas suportadas.

6. Diagnostique importações de funções de sistema ausentes

Para depuração avançada, o script upstream tools/import_audit.py lê as saídas --registry do Relinker em relação às bibliotecas .prx compiladas e identifica importações como implementadas, stub, ausentes ou módulo de jogo. Uma auditoria estática de importações verifica dependências de carregamento; não verifica gráficos nem gameplay. Revise o exemplo da referência de comandos e a documentação de auditoria de importações upstream ↗ ↗.

Escopo: documentação atual do main upstream. Alguns diagnósticos ou comportamentos podem diferir na release marcada v0.1.1. Limitações técnicas adicionais ↗ ↗