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.
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
An?lise do execut?vel
Probes e registros delimitam o caminho de inicializa??o do t?tulo.
Em andamento
2
Carregamento
A transfer?ncia de setores e a conclus?o do DMA3 ainda precisam ser implementadas.
Bloqueado
3
Inicializa??o do sistema
A inicializa??o completa de CDVD/IOP ainda n?o foi atravessada.
Aguardando
4
Primeiro frame
Ainda sem evid?ncia de imagem renderizada pelo jogo.
Aguardando
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.
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í...
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ó...
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.
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...
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...
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...
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...
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...
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/...
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...