YNIX / RECOMP
Ynix Recomp / PlayStation 2
Em desenvolvimento

Ynix PS2 Recomp

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.

Ver di?rio e changelog
estado verific?vel

Infraestrutura e 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. 1

    An?lise do execut?vel

    Probes e registros delimitam o caminho de inicializa??o do t?tulo.

    Em andamento
  2. 2

    Carregamento

    A transfer?ncia de setores e a conclus?o do DMA3 ainda precisam ser implementadas.

    Bloqueado
  3. 3

    Inicializa??o do sistema

    A inicializa??o completa de CDVD/IOP ainda n?o foi atravessada.

    Aguardando
  4. 4

    Primeiro frame

    Ainda sem evid?ncia de imagem renderizada pelo jogo.

    Aguardando
  5. 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.

Ler evid?ncia
hist?rico do console

Atualiza??es e changelog

221 registros
Avanços

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.

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...
META-019-DMA3 Abrir atualização
Avanços

Toy Story 3: CDVDMAN chega a preparar DMA3

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.
Abrir atualização
Avanços

CDVDMAN: entry real executado; bloqueio no event flag

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...
META 019 Abrir atualização
Avanços

META 019: preparando CDVDMAN para o devctl do FILEIO

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...
META 019 Abrir atualização
Avanços

Toy Story 3: RPC_CALL FILEIO chega ao IOP no replay nativo

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...
Meta 019 Abrir atualização
Avanços

INIT_CMD do Toy Story 3 agora executa o callback SIFCMD recompilado

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...
META 019 Abrir atualização
Avanços

SIFCMD guest emite o primeiro SET_SREG

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...
META 019 Abrir atualização
Avanços

Workers nativos de SIFCMD e FILEIO inicializados

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...
META 019 Abrir atualização
Avanços

Toy Story 3: bridge SIF leva o RPC ate a RAM IOP

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...
META 019 Abrir atualização
Avanços

Toy Story 3: PCSX2 mostra a resposta do FILEIO RPC 0xFF

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