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

229 registros
Avanços

ACTION.ELF executa após suporte COP1; próxima barreira é COP2

Compilamos e executamos nativamente um recorte parcial do entry 0x00120008 de ACTION.ELF. O suporte inicial a LWC1/SWC1 e o estado FPR separado permitiram avançar além do primeiro bloqueio COP1. Com destinos indiretos observados incluídos e 512 blocos compilados, a execução chegou a PC 0x00138074, palavra COP2 0x4BE007...

META 019 · NOT_READY Abrir atualização
Avanços

MOVIE registra Timer 1 e termina em KExit

O replay recompilado atravessou PEXTLW e o desvio BEQL observado. O HLE registrou AddIntcHandler para a causa 10 (Timer 1) e EnableIntc no ponto exato visto em MOVIE.ELF; isso não gera ticks, interrupções nem executa callbacks. Novas continuações estáticas levaram a PC 0x0012D084, syscall 4 KExit com código 0. O PS2SDK...

META 019 · EM ANDAMENTO Abrir atualização
Avanços

EndOfHeap limitado libera mais inicialização do MOVIE.ELF

Capturamos o heap-base usado por MOVIE.ELF: SetupHeap (syscall 61) recebe 0x00179B30 em 0x0010407C, e EndOfHeap (syscall 62) retorna essa base apenas no ponto observado 0x0012D444. O PS2Tek descreve EndOfHeap como retorno da base do heap da thread atual; a implementação do Ynix é limitada a esse perfil de inicialização...

META 019 · EM ANDAMENTO Abrir atualização
Avanços

DSLLV desbloqueia o replay; EndOfHeap é a nova barreira

A investigação do stack overflow mostrou que o $sp guest permanecia estável em 0x01FEFEF0; quem crescia era a pilha nativa, por chamadas recursivas do dispatcher entre PCs 0x0013282C e 0x00104178. O dispatcher agora processa essas transferências de forma iterativa. DSLLV foi adicionado ao decoder, YNIR e backend LLVM e...

META 019 · EM ANDAMENTO Abrir atualização
Avanços

Primeiros DMAs GIF; vídeo avança até limite de stack

O replay agora consome um GIFtag PACKED, quatro writes A+D para configurar uma transferência 8×8 e um GIFtag IMAGE com 16 QW. Também passou pelo estado idle de VIF1, pela leitura CFC2 de VPU_STAT e por GIF_STAT. A leitura IMAGE observada veio de 0x00142D48; tanto esse endereço como o QW alinhado 0x00142D40 estavam zera...

META 019 · NOT_READY Abrir atualização
Avanços

MOVIE.ELF reaches the GIF DMA register boundary

The combined replay consumed the guest IOP reset request, loaded IOPRP214.IMG from the ISO and rebuilt a partial static IOP context. Statically recompiled MOVIE.ELF continuations advanced through the observed call targets. Added 128-bit POR (MMI3); replay passed guest PC 0x0013288C. The current stop is PC 0x00132A0C, a...

META 019 - NOT_READY Abrir atualização
Avanços

Descoberto RESET_CMD guest para reiniciar o IOP

O segundo handshake deixou de ser um mistério de scheduler: o replay capturou o jogo enviando CID 0x80000003, SIF_CMD_RESET_CMD, com 104 bytes e o caminho cdrom0:\MODULES\IOPRP214.IMG;1. Esse comando pede reboot do IOP. Extraímos os oito módulos do IOPRP214.IMG da própria ISO. O runner ainda não executa essa reiniciali...

META 019 · NOT_READY Abrir atualização
Avanços

Replay: worker LOADFILE sem thread pronta no segundo INIT_CMD

O diagnóstico do segundo INIT_CMD confirmou que o handler guest recompilado recebeu opt=1 e terminou, mas o scheduler não encontrou thread pronta. O worker LOADFILE permanece bloqueado em 0x001419A8 após 261 instruções concluídas; os SREGs IOP 0–2 seguem zerados. O EE esgotou 400.010.000 instruções no polling em 0x01F0...

META 019 · NOT_READY Abrir atualização
Bloqueios

Segundo handshake RPCINIT aguarda thread IOP

O runner corrigiu uma colisão no mapa de registradores: SIF_REG_SUBADDR (ID 2) e SIF_SYSREG_RPCINIT (0x80000002) agora ocupam espaços separados, conforme o header oficial do PS2SDK. O pacote RPC_BIND passou a chegar ao callback SIFCMD recompilado no IOP; dois RPC_END foram entregues e os semáforos clientes foram sinali...

META 019 · NOT_READY Abrir atualização