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

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

histórico do console

Atualizações e changelog

203 registros
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
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
Avanços

Limpeza e organização estrutural do repositório

Removemos 9,66 GB de saídas antigas do alvo 007, mantivemos o toolchain e os artefatos ativos do Toy Story 3, e organizamos a documentação e os módulos CMake.

Bloqueio
Builds e replays históricos ocupavam mais de 12 GB em build/, com centenas de diretórios de artefatos temporários. A documentação tinha um diário ativ...
Solução
Criamos scripts/clean-generated.ps1 com modo de prévia e preservação explícita do LLVM instalado e do build parcial atual do Toy Story. Foram removido...
Manutenção do repositório Abrir atualização
Avanços

Toy Story 3: primeira execução nativa parcial

A compilação parcial do SLUS_219.31 passou pelo loop inicial e pelas criações de semáforo, chegando ao syscall SetSyscall do PS2.

Bloqueio
O loader rejeitava segmentos PT_LOAD vazios válidos. Após essa correção, o runtime parou em CreateSema e, depois de modelar o contrato observado, avan...
Solução
O compilador ignora apenas PT_LOAD com filesz e memsz iguais a zero. O perfil Toy Story 3 compila 256 blocos nativos e trata CreateSema somente no PC...
META 019 — Toy Story 3 Abrir atualização
Avanços

Trace avançado do PCSX2 e avanço no boot de 007

A nova captura do PCSX2 confirma a sequência do segundo reboot do IOP até o carregamento do front-end main_menu. O Ynix avançou a execução estática de MOVIE até a próxima fronteira observada, sem alcançar ainda o reset do IOP.

Bloqueio
O log avançado contém 2.134 leituras CDVD e os marcos de ACTION.ELF e main_menu, mas não registra eventos de EE Syscalls, SIF/RPC ou espera de threads...
Solução
Documentei os marcos PCSX2 com horários e acrescentei ao pipeline as continuações guest observadas 0x0010EE14, 0x0010EE70 e 0x0010EE90. O replay integ...
META 019 Abrir atualização