YNIX / RECOMP
Ynix Recomp / PlayStation 2
Em andamento

Ynix PS2 Recomp

Projeto experimental de engenharia reversa e recompilação estática. O objetivo é traduzir o executável original para código nativo em Windows e Linux, sem substituir o console por um emulador.

Alvo: WindowsAlvo: Linux
Ver diário e changelog
objetivo

Recompilação nativa

Pesquisar o caminho técnico para traduzir o software do console para uma execução nativa em Windows e Linux. O progresso será registrado com evidências, limites e bloqueios reais.

estado

Desenvolvimento ativo

208 atualizações públicas vinculadas a esta área.

histórico do console

Atualizações e changelog

208 registros
Avanços

META 019: replay nativo chega a 971 mil instruções

O replay nativo parcial do Toy Story 3 avançou para 971.780 instruções, com o bloqueio atual identificado em 0x007185E0.

Bloqueio
O artefato parcial ainda não contém o bloco de código guest em 0x007185E0; a execução termina com MissingCompiledBlock antes de abrir uma tela do jogo...
Solução
Foram adicionadas raízes observadas ao CFG do ELF, recompiladas 45.141 operações e 21.293 blocos básicos e repetido o replay nativo. O novo limite foi...
META 019 Abrir atualização
Avanços

META 019: replay nativo ultrapassa 1,29 milhão de instruções

O replay recompilado avançou de 930.772 para 1.299.588 instruções concluídas, sem erro guest ou falha de memória.

Bloqueio
A execução parcial ainda para quando alcança blocos ausentes no CFG observado; o bloqueio atual ocorre em 0x0071ABC0.
Solução
Acrescentamos sete raízes observadas, da 0x00717FB0 até 0x0071A5D8, e recompilamos o harness nativo. O artefato passa a ter 267 raízes, 45.036 operaçõ...
META 019 Abrir atualização
Avanços

META 019: replay nativo avança até 0x00717FB0

O replay recompilado avançou de 806.740 para 930.772 instruções concluídas e continua sem erro guest ou falha de memória.

Bloqueio
A execução parcial ainda não contém todos os blocos alcançados no caminho de inicialização; a parada atual é MissingCompiledBlock em 0x00717FB0.
Solução
Incluímos as raízes observadas 0x00716C78, 0x007172F0 e 0x00717950, recompilamos e validamos o harness nativo. O artefato tem 260 raízes, 44.944 opera...
META 019 Abrir atualização
Avanços

META 019: replay nativo do Toy Story 3 avança até 0x00716C78

A ampliação controlada das raízes observadas levou o replay recompilado de 580.868 para 806.740 instruções concluídas, sem erro guest ou falha de memória.

Bloqueio
O artefato parcial não continha blocos alcançados dinamicamente após 0x00714C08, causando parada MissingCompiledBlock; a cobertura ainda não inclui to...
Solução
Adicionamos as raízes observadas 0x00714C08, 0x007124CC, 0x007152C8, 0x00715970 e 0x00716000, recompilamos e validamos o harness nativo. O artefato te...
META 019 Abrir atualização
Avanços

Trace do PCSX2 identifica divergência de estado no replay

Comparamos registradores do EE em 0x005401F0 entre Toy Story 3 no PCSX2 Devel v1.7.3563 e o replay nativo do Ynix. O PCSX2 encontra a referência na RAM; o replay parcial não reproduz o mesmo contexto e continua por outra rota.

Bloqueio
O replay parcial começa a busca com $a0-$a2 iguais ao trace, mas diverge nos outros GPRs e em COP0. Sem o estado de boot/RAM observado, não encontra 0...
Solução
Adicionamos probes configuráveis por PC ao runtime nativo e comparamos as capturas. O primeiro percurso respeita o limite de 512 KiB; a correção agora...
META 019 Abrir atualização
Marcos

Toy Story 3: execução nativa alcança syscall customizada 131

O Ynix registrou o handler SetSyscall observado no ELF do Toy Story 3 e avançou até o syscall 131. O novo bloqueio já está delimitado no handler COP0 do jogo.

Bloqueio
O runtime parava no serviço 116 SetSyscall e não tinha estado para o syscall customizado 131. A captura PCSX2 disponível só cobria o BIOS, sem Cause/E...
Solução
Implementado registro validado do handler SetSyscall por contexto guest, sem retorno de sucesso inventado. Build e replay chegaram a 161.720 instruçõe...
META 019 Abrir atualização
Avanços

IDs universais e arquitetura do produto

Identificadores e fontes de fixtures foram alinhados por comportamento, e a documentação agora explica a separação entre compilador/runtime, perfis de compatibilidade e a futura GUI.

Bloqueio
Nomes de metas, fases e jogos estavam vazando para IDs de fixtures, nomes de arquivos de teste, símbolos internos e parte da documentação. Isso dificu...
Solução
Os IDs gerais agora usam nomes como finite_loop, branch_taken e boot_trace; as funções SIF0 não carregam o nome de um jogo; arquivos de exemplos usam...
arquitetura Abrir atualização
Avanços

CLI organizada e painel de progresso preparado

A CLI foi reorganizada em serviços, modelos e interoperabilidade com o núcleo nativo; o artefato agora se chama Ynix.PS2.Recomp.dll. Um painel estático com gráfico, barra por marcos e atualizações automáticas foi preparado.

Bloqueio
A CLI concentrava responsabilidades e usava nomes de saída antigos, enquanto a página de progresso ainda não tinha uma visualização consolidada. O cód...
Solução
Separação inicial em Application, Commands, Build, Execution, Interop e Models, centralização dos identificadores de fixtures com nomes semânticos no...
Organização do projeto Abrir atualização
Avanços

Organização modular da CLI e do código-fonte

A CLI foi reorganizada em módulos por comando, execução e build. O manifesto e a política de fixtures ELF também foram isolados.

Bloqueio
Program.cs concentrava despacho, interop nativa, validação ELF, compilação e manifesto em um arquivo extenso; regras de fixture e metadados estavam mi...
Solução
Separados os comandos em arquivos próprios, extraída a política explícita de autorização das fixtures e movida a montagem da proveniência do manifesto...
Estrutura do projeto Abrir atualização
Avanços

Correção da medição de espaço liberado

A pasta build caiu de aproximadamente 12,57 GiB para 3,04 GiB após a limpeza, uma redução observada de cerca de 9,53 GiB. A nota anterior usou a soma lógica das saídas selecionadas e superestimou o espaço recuperado.

Bloqueio
A atualização #168 informou 9,66 GB com base na soma dos tamanhos dos artefatos selecionados antes da exclusão. Essa soma não correspondeu à variação...
Solução
A medição consolidada após remover as saídas antigas mostra 3.264.541.225 bytes (3,04 GiB) restantes em build/, contra aproximadamente 12,57 GiB antes...
Manutenção do repositório Abrir atualização