O Ynix PS2 Recomp recompila executaveis MIPS de PlayStation 2 para codigo nativo. O estado publico atual alcanca a preparacao da transferencia CDVD por DMA3 em Toy Story 3; ainda nao ha setor de ISO lido, ELF principal carregado, frame ou gameplay comprovados.
Alvo: WindowsAlvo: Linux
execu??o de jogoAinda n?o executa jogo
Este estado s? muda para ?Executando jogo? quando houver evid?ncia observ?vel de um t?tulo em execu??o.
Compila??o, ferramentas e testes sint?ticos medem a infraestrutura; execu??o de jogo exige evid?ncia pr?pria.
infraestrutura
Em desenvolvimento
253 registros p?blicos vinculados a este console.
Arquitetura
Emotion Engine (R5900), IOP, DMA/CDVD e Graphics Synthesizer (GS).
Componentes implementados
Probe de inicializa??o do guest e investiga??o de syscalls.
Mem?ria EE, temporiza??o virtual e chamadas de espera observadas no probe.
Teste sint?tico isolado para limites do canal DMA3.
execu??o do jogo
Ainda n?o executa jogo
O avan?o em infraestrutura n?o ? contado como carregamento, frame ou jogabilidade.
Limita??es conhecidas
O probe ainda para antes da c?pia de setores CDVD e da conclus?o/IRQ do DMA3.
O conjunto amplo guest_memory_tests ainda falha em uma expectativa anterior de EE MMIO.
N?o h? SYSTEM.CNF carregado, ELF do jogo iniciado, primeiro frame ou jogabilidade demonstrados.
marcos observ?veis
Caminho at? a jogabilidade
Cada etapa avan?a somente com evid?ncia correspondente ao pr?prio est?gio.
1
An?lise do execut?vel
Probes e registros delimitam o caminho de inicializa??o do t?tulo.
Em andamento
2
Carregamento
A transfer?ncia de setores e a conclus?o do DMA3 ainda precisam ser implementadas.
Bloqueado
3
Inicializa??o do sistema
A inicializa??o completa de CDVD/IOP ainda n?o foi atravessada.
Aguardando
4
Primeiro frame
Ainda sem evid?ncia de imagem renderizada pelo jogo.
Aguardando
5
Jogabilidade
Ainda sem sess?o jog?vel demonstrada.
Aguardando
pr?ximo objetivo verific?vel
Implementar a transfer?ncia real de setores CDVD, concluir DMA3 e validar a inicializa??o de IOP at? o carregamento do ELF.
?ltimo avan?o concreto
META 019: limite DMA3 protegido por teste isolado
19/10/2026 00:55 BRT: o novo alvo sintético goal019_dma3_boundary_tests compilou e passou 1/1; valida MADR/BCR, CHCR sem início, rejeição do CHCR de transferência e preservação do estado anterior.
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...