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

20 registros
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
Bloqueios

Codegen ampliado do ACTION excede a memória disponível

Aumentar o orçamento do CFG observado para 1.024 gerou IR de 498 MB e bitcode de 142 MB, mas o llc atingiu cerca de 13,5 GB de memória privada e não concluiu o objeto. A expansão com 512 blocos também revelou que a ordem das raízes afeta quais caminhos cabem no orçamento compartilhado.

Bloqueio
O orçamento de raízes observadas é compartilhado e processado na ordem informada; priorizar uma raiz nova pode excluir blocos anteriores. Aumentar o o...
Solução
Interrompi a compilação sem objeto executável e preservei como referência o artefato válido anterior. O próximo recorte vai reduzir e priorizar as raí...
META 019 Abrir atualização
Bloqueios

META 019: auditoria encontra a chamada guest que apaga o descritor

O MOVIE constrói corretamente o descritor de lista em RAM baixa, mas uma chamada guest posterior o apaga antes do setup de mpegbuff.

Bloqueio
No replay, o campo de destino usado por uma rotina de limpeza chega como zero. O helper limpa 0x00..0x10B, removendo o descritor apontado pela tabela[...
Solução
Ativei auditoria de stores guest de 32 e 128 bits, capturei os valores anterior/posterior e associei o SQ em 0x00110840 ao retorno RA=0x001152DC. O ca...
META 019 Abrir atualização
Bloqueios

META 019: replay confirma descritor nunca escrito antes do loop

A auditoria de escrita da EE não encontrou nenhuma gravação em 0x00–0x4F antes do loop de MOVIE, confirmando que o descritor começa e permanece zerado.

Bloqueio
O caminho seleciona a referência 0x10 e percorre campos do descritor que continuam zerados; sem inicialização, o loop repete a leitura nula até esgota...
Solução
Ativei auditoria opt-in das escritas guest nos primeiros 0x50 bytes e repeti o replay completo. O resultado elimina uma escrita anterior omitida como...
META 019 Abrir atualização
Bloqueios

META 019: loop do MOVIE confirmado por descritor nulo

A parada por fuel agora tem causa imediata reproduzida: o MOVIE percorre uma lista cujo descritor está zerado.

Bloqueio
A tabela selecionava a referência guest 0x10, mas os campos do descritor lidos pelo loop estavam vazios. A rotina repetia a comparação e consumia o li...
Solução
Adicionei captura diagnóstica restrita no stop por fuel e correlacionei os registradores, a tabela do ELF e as palavras guest. O diagnóstico confirma...
META 019 Abrir atualização
Bloqueios

META 019: leitura MMIO interrompe MOVIE em 0x1000F520

Compilei e integrei a continuacao MOVIE.ELF em 0x001043D8 (32 blocos, 217 instrucoes). O replay parou em PC=0x001343D4 ao ler 4 bytes de MMIO em 0x1000F520: UnsupportedMMIO, guest_error=6, com 10.988.022 instrucoes concluidas. Ainda nao ha contrato para esse registrador, entao mantive a falha tipada sem inventar um val...

META 019 Abrir atualização
Bloqueios

Bind pendente do PADMAN identificado no replay

Corrigimos a hipotese de que o guest estivesse apenas preso esperando outra thread. O fluxo em MOVIE repete o bind RPC para o SID 0x80000100 e volta a tentar quando o campo server segue zero. O PS2SDK identifica 0x80000100/0x80000101 como os RPCs novos do PADMAN. A ISO contem MODULES/PADMAN.IRX; extraimos e analisamos...

META 019 - NOT_READY Abrir atualização
Bloqueios

MTAPMAN registra cinco servidores e responde ao bind RPC real

O replay confirmou MODULES/MTAPMAN.IRX dentro da ISO, carregou suas secoes alocaveis e zerou a BSS. Alem dos cinco workers RPC, a sexta thread principal em 0x0015090C foi recompilada estaticamente e executou o setup real dos callbacks SIO2MAN. Os workers registraram no estado guest os cinco SIDs observados neste IRX: 0...

META 019 - NOT_READY
Previsão · estimativaSem data confiavel para iniciar o jogo. Proximo marco verificavel: avancar do PC 0x0012B9AC ate a solicitacao de carga do ACTION.ELF e entao observar o primeiro frame produzido pelo caminho grafico real.
Abrir atualização
Bloqueios

Segundo handshake RPCINIT aguarda thread IOP

O runner corrigiu uma colisão no mapa de registradores: SIF_REG_SUBADDR (ID 2) e SIF_SYSREG_RPCINIT (0x80000002) agora ocupam espaços separados, conforme o header oficial do PS2SDK. O pacote RPC_BIND passou a chegar ao callback SIFCMD recompilado no IOP; dois RPC_END foram entregues e os semáforos clientes foram sinali...

META 019 · NOT_READY Abrir atualização