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

253 registros
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
Avanços

Toy Story 3: chamada FILEIO chega ao DMA SIF

O replay nativo passou pelo INIT_CMD e pelo RPC_BIND FILEIO, alcançando a chamada seguinte com dois descritores DMA observados.

Bloqueio
O runner EE parcial ainda não registrava um submitter SIF-DMA, então a chamada parava com MMIO não suportado antes de entregar o pedido ao IOP.
Solução
A instrumentação agora imprime cada descritor rejeitado. Foram confirmados o envio dos 8 bytes de parâmetros ao buffer FILEIO e do pacote RPC de 64 by...
META 019 Abrir atualização
Avanços

SIFCMD: endereço correto de InitRpc e espera do INIT_CMD

A tabela de exports do IRX confirmou sceSifInitRpc no offset 0x820. O objeto guest recompilado executa 17 instruções e bloqueia em WaitEventFlag(event 0, bits 0x100), sem evento injetado. O próximo bloqueio é conectar a entrega real do comando SIF ao scheduler.

Bloqueio
Harnesses anteriores tratavam 0x001006C0 como sceSifInitRpc. No IRX extraído esse endereço é o export ordinal 26, sceSifSetSif1CB; portanto aquela exe...
Solução
Conferi o mapa de exports do IRX e a tabela PS2SDK, corrigi scripts/harnesses ativos para 0x00100820, regenerei a compilação com manifesto de imports...
META 019 / IOP / SIFCMD Abrir atualização
Avanços

FILEIO RPC 255 executado no runtime IOP nativo

Executamos sem fault o handler RPC 255 recompilado do FILEIO extraído do Toy Story 3, usando o pacote real observado no replay. O probe agora pode ser repetido localmente.

Bloqueio
O replay EE chegava ao primeiro RPC_CALL de FILEIO e parava antes de executar o servidor IOP; a rotina guest de inicialização específica deste FILEIO...
Solução
Carregamos a imagem FILEIO rebased em RAM guest, chamamos o handler recompilado em 0x00151AB8 com rpc=255, payload de 8 bytes e ponteiros nulos observ...
FILEIO e SIF Abrir atualização
Avanços

Toy Story 3: chamada RPC 255 do FILEIO identificada

O replay nativo passou pelo bind repetido e chegou à primeira RPC do FILEIO. A rotina correspondente foi localizada no IRX da própria imagem e recompilada estaticamente.

Bloqueio
A runtime respondeu ao RPC_BIND observado, mas ainda não entrega a chamada RPC 255 ao servidor IOP. O replay para em sceSifSetDma antes de uma leitura...
Solução
A análise do FILEIO.IRX localiza o handler em 0x00151AB8. Ele reconhece a função 255 e, com payload de 8 bytes, grava os dois ponteiros de entrada no...
FILEIO e SIF Abrir atualização