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

ACTION avança 53 milhões de instruções até nova fronteira do CFG

A inclusão da continuação 0x0012B3A4 permitiu ao ACTION recompilado completar 53.038.625 instruções e alcançar 0x0013A368, sem erro guest ou falha de memória.

Bloqueio
O recorte parcial terminava em 0x0012B3A4, omitindo a continuação da rotina e os blocos percorridos até 0x0013A368.
Solução
Confirmei o bloco no ELF, adicionei 0x0012B3A4 como raiz observada e recompilei o artefato ABI 8; a nova execução confirmou o avanço e registrou a pró...
META 019 Abrir atualização
Avanços

ACTION atravessa nova fronteira sequencial no CFG parcial

A inclusão do bloco confirmado em 0x0012ACA4 permitiu ao ACTION recompilado avançar 18.035.527 instruções e alcançar 0x0012B3A4, sem erro guest nem falha de memória.

Bloqueio
O CFG parcial omitira o bloco sequencial 0x0012ACA4, destino do fluxo quando o desvio em 0x0012AC9C não era tomado.
Solução
Confirmei os opcodes no ELF, acrescentei 0x0012ACA4 como raiz observada e recompilei o artefato ABI 8, preservando os limites explícitos do recorte.
META 019 Abrir atualização
Avanços

ACTION avança pela configuração do GS e alcança nova chamada indireta

O recorte nativo parcial do ACTION.ELF passou pela inicialização observada do GS e pela configuração da causa INTC 0, executou rotinas guest chamadas indiretamente e avançou 53.038.292 instruções até o destino ainda não compilado 0x002F82B0.

Bloqueio
A escrita inicial combinada GS_CSR=0xB (SIGNAL, FINISH e VSINT) não era aceita pelo perfil, que só reconhecia ACKs individuais. Depois dessa barreira,...
Solução
Implementei o ACK combinado GS_CSR=0xB apenas no PC observado 0x0012A6E4 e registrei, em chamadas exatas do ACTION, AddIntcHandler(0), EnableIntc(0) e...
META 019 Abrir atualização
Avanços

ACTION processa os primeiros pacotes pelo DMA GIF recompilado

O ACTION.ELF parcial passou pela inicialização do DMAC e executou as primeiras transferências do canal GIF com o perfil nativo limitado do Ynix.

Bloqueio
O harness não ativava o parser GIF já existente e faltavam registradores básicos de VIF, GIF, IPU e DMAC. O CHCR=0x101 do guest era interrompido antes...
Solução
Adicionei estado para configuração dos canais DMA e registradores globais DMAC, respeitando os campos do PS2Tek. A opção --profile-d2-gif habilita exp...
META 019 Abrir atualização
Avanços

META 019: ACTION atravessa VSUB VU0 e alcança nova barreira dinâmica

A recompilação estática do ACTION.ELF agora executa a instrução COP2 VSUB observada e retoma as trocas de thread com ABI 8. A sonda parcial avançou até o destino dinâmico 0x00348890, fora do código compilado.

Bloqueio
O subset parava em VSUB.xyzw vf31,vf0,vf0 porque o estado e a semântica VU0 ainda não estavam modelados. A validação também revelou que o backend escr...
Solução
Anexei ao ABI 8 os registradores vetoriais VU0 e flags, implementei somente o encoding observado (vf0={0,0,0,1}; resultado vf31={0,0,0,0}; flags de ze...
META 019 Abrir atualização
Avanços

META 019: dispatch de threads retomado; novo limite em COP2/VU0

O runtime ABI 7 agora preserva HI/LO e retoma a thread escolhida pelo scheduler no subset compilado. A sonda parcial do ACTION.ELF avancou ate a primeira instrucao COP2/VU0 ainda sem semantica.

Bloqueio
O subset de 1.024 blocos parava em MTLO por falta de lowering LLVM; depois dessa correcao, a execucao para em VSUB COP2 (0x4BE007EC, PC 0x00138074) ap...
Solução
Implementei MTHI/MTLO com HI/LO persistentes em ABI 7, dispatch por PC para retomar uma thread e repeticao limitada no harness. scripts/build.ps1 comp...
META 019 Abrir atualização
Avanços

META 019: ACTION chega ao dispatch cooperativo de threads

A recompilação parcial atual do ACTION.ELF alcança a inicialização da thread principal e identifica um limite do runner: após uma troca cooperativa, o artefato retorna o alvo de dispatch sem retomar a thread selecionada.

Bloqueio
O backend emite status 16 (MODULE_DISPATCH) depois do commit da troca de thread, mas o harness direto gerado chama ynix_run uma única vez e encerra. O...
Solução
Recompilei ACTION.ELF com ABI 6 e limite de 512 blocos; a execução diagnóstica, com 100 milhões de instruções disponíveis, executou 14.108.586 até o h...
META 019 Abrir atualização
Avanços

META 019: replay inicia sem estado TLB da BIOS

O harness entra diretamente no MOVIE recompilado, sem executar BIOS EE nem fornecer TLB; o MOVIE nao configura suas proprias entradas TLB no segmento executavel.

Bloqueio
O runtime mapeia RAM baixa diretamente para os mesmos offsets fisicos. O replay prova o resultado desse perfil, mas nao comprova a traducao virtual at...
Solução
Auditei a inicializacao do CLI, o ABI de YnixNativeState e o PT_LOAD executavel do MOVIE: estado nasce zerado com PC/SP/fuel e nenhuma instrucao TLBR/...
META 019 Abrir atualização
Avanços

META 019: verificar TLB antes de interpretar o destino zero

PS2Tek lista VA 0 para PA 0 na tabela EE, mas classifica kuseg como TLB-mapeado; a referência não revela a entrada ativa no boot do jogo.

Bloqueio
O perfil Ynix traduz endereços EE baixos diretamente para RAM física e não modela TLB ou exceções de refill/invalid. A captura confirma que esse perfi...
Solução
Corrigi a análise para separar tabela geral, regra TLB e convenção de NULL. Não desmapeei página zero por suposição: o jogo acessa o descritor em 0x10...
META 019 Abrir atualização