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

MTAPMAN.IRX compilado estaticamente; execucao pendente

O MTAPMAN.IRX da ISO passou pelo pipeline R3000 estatico do Ynix. Com um load bias apenas diagnostico, 478 relocations locais foram aplicadas; o analyzer alcancou 308 instrucoes e o codegen gerou um objeto host com 190 blocos e 22 pontos de parada explicitos. A compilacao segue incompleta: 12 chamadas importadas sem pr...

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

Falha de bind do libmtap; MTAPMAN ausente no runner

A rota de KExit em MOVIE imprime libmtap: bind failed depois de pedir SIF_CMD_RPC_BIND para SID 0x80000901. A resposta do contexto IOP parcial nao encontra servidor (server=0). O PS2SDK identifica esse SID como MTAPSERV_PORT_OPEN do MTAPMAN. A ISO contem MODULES/MTAPMAN.IRX, 11533 bytes; extraimos e inventariamos o IRX...

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

KExit em MOVIE: origem ainda em analise

A analise estatica ligou o stub KExit em 0x0012D080 ao caminho 0x0013EBD8 para 0x001040A8. A rotina e chamada de 0x00132BC0 com argumento -1 e termina em KExit(0). O PS2SDK define KExit como nao retornavel e usa esse syscall para encerrar o programa; o runner para corretamente nesse ponto. Ainda falta descobrir qual ra...

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

MOVIE.ELF conclui; boot ainda nao inicia o jogo

O replay combinado agora atravessa o boot de MOVIE.ELF com 23.613.090 instrucoes guest concluidas e termina em KExit(0), em PC 0x0012D084. Corrigimos BGEZAL em 0x01F088C4 e mantivemos compatibilidade entre o prefixo ABI 4 e o ABI 5 que acrescenta estado COP1. Isso confirma execucao recompilada do modulo MOVIE, mas nao...

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

COP2 identificado: ACTION para em VMSUB do VU0

A palavra 0x4BE007EC em PC 0x00138074 não é um opcode reservado: as tabelas do PS2Tek e do PCSX2 a identificam como VMSUB do VU0, com FD=vf15, FS=vf0, FT=vf0 e máscara XYZW. A operação grava em VF o ACC menos o produto dos campos correspondentes de FS e FT. Para continuar com fidelidade, o recompilador precisa represen...

META 019 · NOT_READY Abrir atualização
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