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

LOADFILE recompilado registra e responde ao próprio RPC bind

Recompilamos os roots SIFCMD e LOADFILE da ISO e executamos o harness reduzido: LOADFILE registrou SID 0x80000006 e respondeu ao bind CID 0x80000008.

Bloqueio
Depois da limpeza, o harness de threads falhava antes de carregar os módulos porque limitava a memória EE a 32 MiB, sem espaço para os 16 KiB de scrat...
Solução
Ajustei o orçamento para 64 MiB mantendo a RAM guest em 32 MiB e recriei os roots estáticos por scripts/prepare-goal019-loadfile-thread.ps1. O runner...
META 019 Abrir atualização
Avanços

Runner preserva IOP até o SIFINIT guest

O runner combinado agora mantém o contexto IOP quando SIFCMD recompilado aguarda o SMFLAG real da EE e o retoma após a escrita guest de SIFINIT.

Bloqueio
No reboot, setup_iop tratava a espera inicial legítima de SIFCMD como erro fatal e destruía o contexto antes de a EE concluir o carregamento dos módul...
Solução
O status bloqueado agora preserva o contexto. O hook validado de sceSifSetReg encaminha SMFLAG, retoma SIFCMD no ponto de espera e, após sua conclusão...
META 019 Abrir atualização
Avanços

SIFCMD recompilado confirma espera pelo handshake guest

O SIFCMD recompilado estaticamente chega à chamada guest sceSifInit e bloqueia aguardando MSFLAG, com perfil IOP explicitamente zerado.

Bloqueio
O harness anterior não registrava o perfil de reset e parava em MMIO; isso não distinguia um estado inválido da espera esperada pelo handshake SIF.
Solução
O harness agora semeia boot_status=0 e MSFLAG=0, e scripts/run-goal019-sifcmd-entry.ps1 reproduz extração, recompilação estática e execução do entry S...
META 019 Abrir atualização
Avanços

SMFLAG guest da EE conectado ao MSFLAG do IOP

O runner combinado não injeta mais SIFINIT diretamente. O HLE agora encaminha ao IOP a escrita SMFLAG realmente feita pelo guest EE.

Bloqueio
O runner acordava sceSifInit com uma sinalização direta de MSFLAG, sem comprovar uma escrita SIFINIT da EE.
Solução
Adicionei um hook de SIF flag ao HLE sceSifSetReg. O ID 4 validado é propagado ao MSFLAG IOP; se a EE escreveu antes da criação do contexto IOP, o run...
META 019 Abrir atualização
Avanços

Providers SIFMAN conectados; MTAPMAN aguarda inicialização SIF

Os entries recompilados de SIO2MAN e MTAPMAN executam; os workers agora alcançam o caminho guest de inicialização SIF.

Bloqueio
O runner isolado não registrava os imports SIFMAN do MTAPMAN; depois de ligá-los, os workers aguardam a inicialização SIF porque o handshake que defin...
Solução
Identifiquei sifman#29 como sceSifCheckInit e sifman#5 como sceSifInit e conectei os providers PS2SDK existentes. O guest verifica o estado, chama SIF...
META 019 Abrir atualização
Avanços

SIO2MAN e MTAPMAN executam seus entries recompilados

Depois da limpeza do build, o runner mínimo recompilou e executou os entries guest de SIO2MAN e MTAPMAN a partir da ISO 007. Os dois retornaram status 0.

Bloqueio
O runner parava no reset SIO2 em 0xBF808268 porque não habilitava o perfil limitado já existente. Depois disso, um worker MTAPMAN ainda para em uma im...
Solução
Habilitei no harness apenas o perfil documentado de reset SIO2 e executei os entries nativos recompilados. SIO2MAN completou 130 instruções; MTAPMAN c...
META 019 Abrir atualização
Avanços

MTAPMAN recompilado após limpeza de build

MTAPMAN e os exports SIO2MAN necessários voltaram a gerar objetos nativos a partir da ISO 007 após a limpeza de build.

Bloqueio
A limpeza removeu llvm-as e llc, impedindo o codegen R3000 embora o LLVM IR fosse válido. MTAPMAN também depende de imports e destinos indiretos ainda...
Solução
O comando iop compile-relocated ganhou codegen alternativo direto com clang para COFF x64, identificado no manifesto. Reextraí os dois IRX pelos exten...
META 019 Abrir atualização
Avanços

ABI nativo corrigido e confirmado no reset EE

Corrigi a versão do ABI gravada pelo LLVM: o estado nativo agora reporta ABI 10, compatível com os campos COP0 usados no reset EE.

Bloqueio
O harness inicializava ABI 10, mas a função LLVM sobrescrevia o campo com 9. Isso mascarava a versão efetiva do estado durante a execução nativa.
Solução
O backend passou a gravar ABI 10. Recompilei ynix_core e o CLI, gerei novamente o executável nativo e repeti o prefixo da BIOS: abi=10, 11 instruções...
META 019 Abrir atualização
Avanços

META 019: SIFCMD recompilado alcança o handshake SIF

Reconstruí o pacote IOP da ISO 007 e executei o entry do SIFCMD por recompilação estática nativa. O código chegou a sceSifInit e aguarda uma transferência real do EE.

Bloqueio
ACTION parava ao consultar SUBADDR, pois o valor do IOP e o sinal CMDINIT não estavam estabelecidos. O entry do SIFCMD depende do MSFLAG do EE; sem es...
Solução
Reextraí os oito módulos do IOPRP214.IMG, rebased as 282 relocations locais do SIFCMD em base explicitamente diagnóstica 0x00100000, compilei 131 inst...
META 019 Abrir atualização
Avanços

ACTION recompilado chega ao handoff SIF0 com o IOP

No ACTION.ELF recompilado, o perfil diagnóstico atravessou a configuração do canal SIF0 e chegou à leitura de SIF_REG_SUBADDR, após registrar o handler e habilitar o canal 5.

Bloqueio
O runtime ainda não executa o lado IOP/SIFCMD neste caminho. O valor de SIF_REG_SUBADDR e a base do buffer IOP permanecem desconhecidos; preencher ess...
Solução
Implementei call sites exatos e restritos para sceSifSetDChain, AddDmacHandler, EnableDmac e sceSifGetReg. O ensaio usa hipóteses explícitas para CHCR...
META 019 Abrir atualização