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
Marcos

Primeiras transferências GIF do MOVIE.ELF

O replay alcançou a inicialização gráfica de MOVIE.ELF: o guest iniciou DMA D2 para o GIF e o runtime processou tags com registros GS. A próxima fronteira estática é 0x0012E868.

Bloqueio
O runner não tinha cobertura estática para a nova cadeia de MOVIE e o despacho recursivo das continuações causava stack overflow. A primeira escrita C...
Solução
O harness agora executa continuidades por um loop externo, sem recursão entre módulos. Com o perfil DMAC/GIF opt-in e explicitamente diagnóstico, proc...
META 019 — boot do jogo 007 Abrir atualização
Avanços

SIF RPC assíncrono libera avanço em MOVIE.ELF

O replay deixou de parar na segunda chamada CDVDFSV: o runner identificou uma RPC não bloqueante com callback e avançou por duas novas continuações recompiladas de MOVIE.ELF, chegando a 0x0013282C.

Bloqueio
O harness classificava todo rmode=1 como chamada síncrona e recusava uma nova RPC enquanto havia uma chamada guest pendente. Isso encerrava o replay a...
Solução
O runner agora consulta sema_id e end_function do cliente SIF RPC. Para a chamada observada, sema_id=0xFFFFFFFF e callback=0x0013B488 indicam o caminh...
META 019 — boot do jogo 007 Abrir atualização
Bloqueios

CDVD: origem da espera que bloqueia o boot

Identificamos que a RPC 0x80000596 aguarda o evento CDVD Power Off Ready (bit 0x4). O replay atual nao gera essa causa antes da espera.

Bloqueio
O handler recompilado limpa o bit 0x4 do event flag 2 e fica bloqueado. A chamada sceCdSC(0xFFFFFFF5) apenas devolve o ID do event flag; ela nao enfil...
Solução
Conferimos a semantica na fonte publica do PS2SDK e cruzamos com PS2Tek. O handler CDVD sinaliza esse bit quando recebe o motivo CDVD 0x04, identifica...
META 019 Abrir atualização
Bloqueios

META 019: causa do bloqueio na RPC CDVDFSV identificada

O status 99 nao e uma falha dentro de 0x001246EC: o scheduler recusou outra RPC porque a chamada guest anterior ao mesmo thread segue bloqueada.

Bloqueio
A primeira chamada ao handler CDVDFSV em 0x001246EC ficou bloqueada (dispatch=6); uma requisicao posterior ao mesmo thread foi rejeitada por haver cha...
Solução
Refinei a leitura do trace e corrigi a documentacao: a proxima investigacao deve identificar o evento que conclui ou libera a chamada RPC pendente ant...
META 019 Abrir atualização
Avanços

META 019: retorno de IRQ tratado e nova RPC do CDVDFSV

O guest avancou ate 0x0013B9C4. O retorno de erro de IRQ agora volta em $v0; o proximo bloqueio e o handler CDVDFSV em 0x001246EC, status interno 99.

Bloqueio
O runner tratava uma IRQ ja registrada como falha fatal do executor. Depois dessa correcao, a proxima RPC do CDVDFSV termina com YNIX_IOP_EXEC_INTERNA...
Solução
Separei o resultado da API RegisterIntrHandler do status do executor: falhas de registro retornam valor nao zero em $v0 e mantem o fluxo guest. O cont...
META 019 Abrir atualização
Marcos

META 019: primeiro dispatch estatico de MOVIE.ELF

A leitura do MOVIE.ELF agora chega ao objeto recompilado e executa varias continuacoes nativas; o limite atual e 0x00104CD4.

Bloqueio
O runner compacto completava a leitura do arquivo, mas parava em 0x00104008 porque nao despachava a entrada do modulo MOVIE para codigo host recompila...
Solução
Conectei o objeto estatico parcial de MOVIE.ELF ao runner e passei a compilar e despachar apenas os pontos de continuacao observados, mantendo o estad...
META 019 Abrir atualização
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
Marcos

EE passa do BOOTEND pelo callback recompilado do EESYNC

Recompilei e executei a entrada e o callback BIOS do EESYNC. O callback guest escreveu SMFLAG=0x40000, e a EE saiu do polling BOOTEND para iniciar o proximo ciclo de RPC.

Bloqueio
O runner nao percorria o callback postboot de LOADCORE/EESYNC e tratava o RPC assíncrono como se fosse o bloqueio da EE. Depois de BOOTEND, o jogo sol...
Solução
Adicionei o modulo EESYNC recompilado, capturei o registro guest em AddRebootNotifyHandler e executei o callback recompilado pelo runtime IOP. O readb...
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
Marcos

CDVDMAN conclui inicialização guest e responde ao primeiro RPC

A inicialização guest do CDVDMAN concluiu e o RPC 0x80000592 respondeu após a execução de _start e o suporte ao S-command 03:00.

Bloqueio
O runner carregava o CDVDMAN sem executar seu entry _start. Depois, sceCdInit ainda falhava ao enviar o S-command 03:00, pois o perfil de CDVD não ofe...
Solução
Recompilei e executei o _start do CDVDMAN, que cria o semáforo e os event flags do módulo. O perfil CDVD agora retorna 03 06 02 00 para o S-command 03...
META 019 Abrir atualização