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.
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.
Bloqueio
Não há backend que copie setores da ISO ou complete DMA/IRQ. O teste amplo guest_memory_tests também falha antes desta cobertura numa asserção existen...
Solução
Adicionado alvo unitário isolado no CMake e fixture do perfil IOP. Nenhum código runtime mudou; não há leitura de setor, boot, ELF ou frame demonstrad...
O callback recompilado do driver CDVD concluiu sua inicialização e chegou à configuração de uma transferência de 2.064 bytes no canal DMA3. Ainda não houve leitura confirmada da ISO nem boot do ELF.
Bloqueio
O probe ainda não transfere dados do CDVD para a RAM guest: o canal DMA3 para quando o CHCR inicia, pois não existe uma operação de setor conectada ao...
Solução
A execução guest avançou por AddDrv e pelo callback init real do CDVDMAN; respostas RTC, versão MECHACON e cancelamento de power-off foram modeladas c...
Boot nativo do jogo
Previsão · estimativaSem data responsável; baixa confiança até concluir uma leitura real de setor.
Corrigimos o probe que chamava uma rotina de limpeza em vez da entrada original do CDVDMAN. O runner agora executa o IRX, registra o driver cdrom e alcança o poll de evento em sceCdSync.
Bloqueio
O probe anterior usava 0x00130084, rotina de remoção/limpeza, e os imports DMACMAN estavam mapeados para ordinais incorretos. O boot ainda para porque...
Solução
Passei a executar a entrada original em 0x00130000, implementei DelDrv/AddDrv com validação do iop_device_t e alinhei os acessos DMACMAN aos contratos...
O fluxo de preparação agora reutiliza os IRX extraídos da ISO após limpeza dos artefatos e recompila as entradas guest de CDVDMAN necessárias para responder ao devctl 0x4391.
Bloqueio
A pasta de extração antiga do IOPRP não existe mais, e a lib nativa usada pelo helper não continha a API de scheduler atual. O probe ainda parava em i...
Solução
Os scripts agora usam toy-story-source/iop-modules como fallback, geram o inventário SIFCMD quando ausente, e a preparação recompila CDVDMAN module st...
O replay recompilado agora copia para a RAM IOP a chamada FILEIO real observada no EE: CID RPC_CALL, funcao 0xFF e buffers de resposta. O runner deixou de encerrar com access violation e para no WaitSema correspondente.
Bloqueio
O runner ainda nao despacha o pacote recebido pelo worker SIFCMD/FILEIO recompilado. Sem resposta guest e conclusao RPC_END, o EE fica esperando; aind...
Solução
Corrigido o encerramento do bridge para ocorrer antes da destruicao da RAM EE e instrumentada a criacao dos semaforos. O trace PCSX2 confirma o compor...
O callback guest INIT_CMD define CMDINIT e o worker SIFCMD recompilado envia um SET_SREG de 24 bytes ao buffer EE observado no trace.
Bloqueio
O probe anterior acordava o worker com evento injetado pelo harness, sem executar o callback INIT_CMD; por isso o SIFCMD mantinha o destino EE em zero...
Solução
O probe agora chama o handler guest recompilado, com pacote INIT_CMD reconstruído pelo contrato PS2SDK e pelo endereço EE 0x93640 observado na tag SIF...
O sceSifInitRpc recompilado submeteu um descriptor IOP→EE e gerou o pacote SET_SREG do próprio guest: índice 0, valor 1.
Bloqueio
O worker FILEIO aguardava CMDINIT. Depois do evento observado no trace, o initRPC avançou e parou no envio de DMA IOP→EE. O probe não possui a RAM EE...
Solução
Executamos SIFCMD e FILEIO recompilados, entregamos ao event flag o CMDINIT observado e registramos o descriptor e os seis words do pacote. O DMA foi...
Executamos os módulos SIFCMD e FILEIO e iniciamos os workers recompilados. Com o evento CMDINIT observado no trace PCSX2, o InitRpc guest avançou até solicitar um DMA IOP→EE.
Bloqueio
O probe isolado parava no WaitEventFlag do InitRpc porque não recebia o evento CMDINIT. Após liberar esse evento, o próximo limite é o sceSifSetDma: o...
Solução
Carregamos e executamos os objetos estáticos guest de SIFCMD e FILEIO, registramos os contratos de threads e eventos necessários e usamos o CMDINIT ob...
O runner nativo agora conecta RAM EE e IOP por SIF DMA e confirma os dois descritores reais do RPC FILEIO copiados byte a byte. Uma continuacao recompilada alcanca WaitSema(3); a resposta guest FILEIO ainda falta.
Bloqueio
O replay anterior parava em sceSifSetDma porque o runner parcial nao tinha RAM IOP nem submitter SIF. Depois da transferencia, o jogo aguarda o semafo...
Solução
Adicionei um runner diagnostico usando YnixSifDmaBridge e uma RAM IOP separada mapeada. O payload de 8 bytes chegou a 0x41378 e o RPC_CALL de 64 bytes...
O trace PCSX2 confirma que o FILEIO rejeita o RPC 0xFF e devolve dados ao EE; o boot continua após sinalizar o semáforo.
Bloqueio
O replay nativo avançou pelo bind FILEIO, mas ainda não reproduz a resposta guest do RPC 0xFF e não tem bridge EE-IOP ativo.
Solução
Filtrei o log existente sem recompilar o PCSX2. O trecho mostra o pedido de 64 bytes em 0x19600, a mensagem guest "unrecognized code ff", uma resposta...