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: reset do IOP e retomada do RPCINIT

O runner detectou o RESET_CMD do jogo, validou IOPRP214.IMG na ISO, reiniciou o perfil IOP recompilado e entregou RPCINIT no loop esperado pelo EE. O replay avançou até PC 0x01F0DA0C.

Bloqueio
O runner anterior observava o RESET_CMD sem reiniciar o contexto IOP. No novo boot, o EE aguardava RPCINIT, mas o harness não reentregava os pacotes I...
Solução
Validei o caminho e o hash da imagem IOPRP, recriei o contexto com EESYNC/SIFCMD recompilados, reproduzi no harness os pacotes INIT_CMD opt=0/1 observ...
META 019 Abrir atualização
Avanços

CDVDFSV guest registra servidores e conclui o primeiro RPC

A entrada recompilada do CDVDFSV iniciou tres threads guest e registrou seis servidores RPC. O bind e a chamada ao servidor 0x80000592 completaram e a resposta chegou ao EE.

Bloqueio
A chamada seguinte ao servidor 0x80000596 bloqueia no handler guest 0x001246EC, que espera o evento CDVD 0x4. Sem essa resposta, o EE aguarda consulta...
Solução
O harness agora executa a entrada real do CDVDFSV, agenda RPC na thread proprietaria da fila e preserva handlers bloqueados sem sintetizar RPC_END. O...
META 019 Abrir atualização
Avanços

META 019: handler de IRQ CDVD ligado ao estado guest

O replay recompilado confirmou o registro guest do CDVDMAN em IRQ 2 e alcancou uma consulta de estado do disco pelo servidor 0x80000596. O runner agora compila e conecta o handler guest observado em 0x00131134.

Bloqueio
A consulta chama sceCdSC(0xFFFFFFF5) e bloqueia em WaitEventFlag(event=0, bits=0x4). A tentativa diagnostica de sinalizar I_STAT bit 1 ainda nao compr...
Solução
Adicionei leitura/ack de CDVD I_STAT, leitura sem erro em 0xBF402006 para o perfil da ISO pronta e o vinculo entre IRQ 2 e o handler recompilado regis...
META 019 Abrir atualização
Avanços

META 019: EE alcanca RPC_BIND do CDVD

A EE saiu do polling de RPC apos a tabela guest RPCINIT receber o valor confirmado pelo pacote SIFCMD; em seguida emitiu RPC_BIND para o servidor CDVD Init.

Bloqueio
O ELF consultava diretamente o slot guest 0x01F14740, mas o runner atualizava apenas o estado HLE RPCINIT. Por isso a EE permanecia no polling.
Solução
O runner agora aplica o SET_SREG guest recompilado tambem ao slot de memoria que o ELF consulta. A execucao avanca ate o RPC_BIND de 64 bytes para SID...
META 019 Abrir atualização
Avanços

SIFCMD guest publica RPCINIT, mas o ELF segue em outro polling

O objeto recompilado de sceSifInitRpc recebeu os eventos guest e enviou SIF_CMD_SET_SREG (index 0, value 1) via DMA IOP→EE. A recepção registrada atualizou RPCINIT=1, confirmado no readback.

Bloqueio
O ELF continuava no polling em 0x01F09034, e o runner anterior não executava sceSifInitRpc nem observava o pacote SET_SREG produzido pelo IOP.
Solução
Liguei o objeto recompilado de sceSifInitRpc e seus providers IOP; a ponte entregou o DMA observado. Apliquei a etapa EE documentada pelo PS2SDK que,...
META 019 — handshake SIF/RPC Abrir atualização
Avanços

SIFCMD recompilado processa INIT_CMD observado na EE

O handler IOP SIFCMD recompilado recebeu os dois payloads INIT_CMD formados pelo ELF EE. opt=0 executou 24 instruções e sinalizou evento 0x100; opt=1 executou 18 e sinalizou 0x800.

Bloqueio
O runner registrava os descritores SIF enviados pela EE, mas não executava o handler guest no IOP, deixando sem observação o efeito de cada pacote.
Solução
Liguei o objeto estático do handler SIFCMD ao runner e passei os bytes guest observados para o RAM IOP. Com o harg publicado pelo próprio entry recomp...
META 019 — handshake SIF Abrir atualização
Avanços

SUBADDR do SIFCMD guest confirmado no replay da EE

Com SIFINIT do perfil diagnóstico, o entry recompilado de SIFCMD executou sceSifSetSubAddr e publicou 0x00101A90. O ELF da EE leu esse endereço e montou dois pacotes INIT_CMD para ele.

Bloqueio
A tentativa anterior forçava SUBADDR=0 como hipótese, ocultando o endereço que o entry IOP recompilado realmente publica e fazendo os descritores apon...
Solução
Removi a hipótese de SUBADDR zero, acrescentei uma leitura explícita do estado SIF do IOP e espelhei para a EE apenas o valor escrito pelo guest. O lo...
META 019 — handshake SIF Abrir atualização
Avanços

Entry EE recompilado chega ao polling SIF, sem SIFINIT

O entry recompilado do ELF do jogo executou 20 milhões de instruções com SIFCMD recompilado em paralelo. A EE leu SMFLAG=0 e chegou a um polling guest; a execução parou no limite de fuel, sem iniciar o jogo.

Bloqueio
O runner anterior não inicializava SIFCMD antes da entrada EE, então sceSifGetReg(4) não encontrava um valor SIF compartilhado. Mesmo com o estado ini...
Solução
Adicionei runner reduzido com entry real SLUS_202.65 e entry recompilado de SIFCMD no mesmo contexto. O SIFCMD bloqueia em 0x00101958 com MSFLAG=0; a...
META 019 Abrir atualização
Avanços

LOADFILE recompilado registra e responde ao próprio RPC bind

Recompilamos os roots SIFCMD e LOADFILE da ISO e executamos o harness reduzido: LOADFILE registrou SID 0x80000006 e respondeu ao bind CID 0x80000008.

Bloqueio
Depois da limpeza, o harness de threads falhava antes de carregar os módulos porque limitava a memória EE a 32 MiB, sem espaço para os 16 KiB de scrat...
Solução
Ajustei o orçamento para 64 MiB mantendo a RAM guest em 32 MiB e recriei os roots estáticos por scripts/prepare-goal019-loadfile-thread.ps1. O runner...
META 019 Abrir atualização
Avanços

Runner preserva IOP até o SIFINIT guest

O runner combinado agora mantém o contexto IOP quando SIFCMD recompilado aguarda o SMFLAG real da EE e o retoma após a escrita guest de SIFINIT.

Bloqueio
No reboot, setup_iop tratava a espera inicial legítima de SIFCMD como erro fatal e destruía o contexto antes de a EE concluir o carregamento dos módul...
Solução
O status bloqueado agora preserva o contexto. O hook validado de sceSifSetReg encaminha SMFLAG, retoma SIFCMD no ponto de espera e, após sua conclusão...
META 019 Abrir atualização