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

META 019: ramo da lista vazia deixa payload nulo

A auditoria do objeto confirma que a lista global vazia pula a atribuição de payload no registro tipo 9; um registro vizinho mostra a atribuição funcionando no outro caminho.

Bloqueio
No replay, 0x00149BC0 está vazio. O desvio em 0x00114588 pula o store 0x001145BC, deixando 0x009BDA64 nulo. A limpeza posterior trata o tipo 9 como de...
Solução
Ampliei o watch guest para 0x009BDA40..0x009BDB3F. Ele confirma que o registro vizinho 0x009BDA70 recebe 0x009BE040 em +0x24 via 0x00113FB4, enquanto...
META 019 Abrir atualização
Avanços

META 019: contexto do buffer durante a limpeza guest

A captura simultânea mostra que o buffer 0x009BDA40 segue registrado no gerenciador quando o guest inicia o zero-fill em endereço nulo.

Bloqueio
O objeto guest 0x009BDA40 usa o campo +0x24 como destino e esse campo vale zero. O zero-fill apaga o descritor low-RAM; o replay depois para em 0x0010...
Solução
Ampliei a auditoria SQ para registrar no mesmo instante as listas +0x20 e +0x30, o buffer +0x24, o limite +0x28 e words do objeto até +0x7C. O log con...
META 019 Abrir atualização
Avanços

META 019: lista ativa do gerenciador e campo nulo sao distintos

O watch ampliado mostrou que o gerenciador possui uma lista ativa em 0x00149BB0: o guest insere os nos 0x009BDA70 e 0x009BDA40 e depois os remove. O campo 0x00149BC0 e separado e segue nulo.

Bloqueio
O caminho de 0x00114528 consulta o campo 0x00149BC0 (+0x30), enquanto a lista ativa observada fica em 0x00149BB0 (+0x20). O campo objeto+0x24 ainda ch...
Solução
Ampliei a auditoria para 0x00149B90..0x00149BDF e correlacionei as escritas com os PCs 0x00114AF0 e 0x00114E90. Isso separa os dois campos e corrige q...
META 019 Abrir atualização
Avanços

META 019: lista global chega vazia no replay do MOVIE

O watch de 0x00149BC0 confirmou que a escrita zero observada ocorre durante o SIF DMA que carrega o MOVIE. Os bytes do ELF nesse endereco tambem sao zero, e nenhuma escrita guest nao nula apareceu no replay.

Bloqueio
O caminho do MOVIE depende da lista global 0x00149BC0, que permanece vazia neste replay. A rotina posterior recebe objeto+0x24 = 0, limpa RAM baixa e...
Solução
Armei um watch no global e correlacionei PC 0x001714D0 com a leitura do arquivo e o DMA para 0x00148000. O endereco fica no bloco copiado do PT_LOAD d...
META 019 Abrir atualização
Avanços

META 019: lista global vazia pula a gravacao candidata de +0x24

A disassembly localizou uma condicao que ajuda a explicar o campo nulo: com a lista global 0x00149BC0 vazia, o caminho observado pula o trecho candidato a gravar objeto+0x24.

Bloqueio
A limpeza guest recebe objeto+0x24 = 0 e apaga o descritor em RAM baixa; depois, a busca de mpegbuff percorre o link nulo e esgota o fuel. A causa fin...
Solução
Comparei o desvio em 0x00114588, a gravacao candidata em 0x001145BC e o estado capturado da lista global. A lista segue zero e a auditoria nao detecta...
META 019 Abrir atualização
Avanços

META 019: alocador funciona antes de a limpeza nula apagar seu descritor

O replay confirmou que três buffers nomeados são alocados com sucesso; depois, uma limpeza guest com destino zero apaga o descritor e bloqueia a busca de mpegbuff.

Bloqueio
A rotina de limpeza usa objeto 0x009BDA40 + 0x24 = 0 e zera 0x10C bytes. Isso apaga os links do allocator em RAM baixa e leva o guest ao loop 0x0010FA...
Solução
Rastreei os argumentos e retornos do wrapper 0x0010FDB8 e confirmei as alocações File Sys, cd:\MAPS\MUSIC.VIV e bigfile buf antes da limpeza. Registre...
META 019 Abrir atualização
Avanços

META 019: campo +0x24 permanece nulo nas escritas observadas

A auditoria do objeto guest 0x009BDA40 capturou stores SQ e uma store de 8 bytes sobre o campo +0x24; todas mantiveram o valor em zero.

Bloqueio
O campo 0x009BDA64 fornece destino zero à rotina de limpeza do MOVIE. Ela apaga o descritor low-RAM e o setup de mpegbuff volta ao loop em 0x0010FA9C...
Solução
Ampliei o watch de escrita para cobrir stores de 128 bits e monitorei o campo antes do replay guest. As três escritas observadas mantiveram zero; nenh...
META 019 Abrir atualização
Avanços

META 019: campo nulo localizado no objeto guest 0x009BDA40

A pilha localizou no objeto 0x009BDA40 o campo que fornece o destino zero da limpeza que apaga o descritor do MOVIE.

Bloqueio
O campo objeto+0x24, no endereço 0x009BDA64, contém zero. O guest usa esse destino para limpar 0x10C bytes em RAM baixa; isso apaga a lista selecionad...
Solução
Ampliei a auditoria do SQ para capturar a pilha e o conteúdo do objeto no ponto da escrita. Registrei seu layout parcial e a cadeia RA=0x001152DC -> c...
META 019 Abrir atualização
Avanços

META 019: errata legível da auditoria publicada em #94

Correção editorial da atualização #94: o descritor do MOVIE é criado e depois apagado por um helper guest chamado com destino zero.

Bloqueio
O helper limpa a faixa 0x00..0x10B, removendo o descritor low-RAM que a tabela[0] aponta em 0x10. Depois, mpegbuff encontra o link nulo e consome o li...
Solução
Auditei stores guest de 32 e 128 bits, correlacionei o SQ em 0x00110840 ao RA=0x001152DC e rastreei a chamada de 0x00113E74 para 0x001152A8. O campo +...
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