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.
O SIFCMD recompilado estaticamente chega à chamada guest sceSifInit e bloqueia aguardando MSFLAG, com perfil IOP explicitamente zerado.
Bloqueio
O harness anterior não registrava o perfil de reset e parava em MMIO; isso não distinguia um estado inválido da espera esperada pelo handshake SIF.
Solução
O harness agora semeia boot_status=0 e MSFLAG=0, e scripts/run-goal019-sifcmd-entry.ps1 reproduz extração, recompilação estática e execução do entry S...
O runner combinado não injeta mais SIFINIT diretamente. O HLE agora encaminha ao IOP a escrita SMFLAG realmente feita pelo guest EE.
Bloqueio
O runner acordava sceSifInit com uma sinalização direta de MSFLAG, sem comprovar uma escrita SIFINIT da EE.
Solução
Adicionei um hook de SIF flag ao HLE sceSifSetReg. O ID 4 validado é propagado ao MSFLAG IOP; se a EE escreveu antes da criação do contexto IOP, o run...
Os entries recompilados de SIO2MAN e MTAPMAN executam; os workers agora alcançam o caminho guest de inicialização SIF.
Bloqueio
O runner isolado não registrava os imports SIFMAN do MTAPMAN; depois de ligá-los, os workers aguardam a inicialização SIF porque o handshake que defin...
Solução
Identifiquei sifman#29 como sceSifCheckInit e sifman#5 como sceSifInit e conectei os providers PS2SDK existentes. O guest verifica o estado, chama SIF...
Depois da limpeza do build, o runner mínimo recompilou e executou os entries guest de SIO2MAN e MTAPMAN a partir da ISO 007. Os dois retornaram status 0.
Bloqueio
O runner parava no reset SIO2 em 0xBF808268 porque não habilitava o perfil limitado já existente. Depois disso, um worker MTAPMAN ainda para em uma im...
Solução
Habilitei no harness apenas o perfil documentado de reset SIO2 e executei os entries nativos recompilados. SIO2MAN completou 130 instruções; MTAPMAN c...
MTAPMAN e os exports SIO2MAN necessários voltaram a gerar objetos nativos a partir da ISO 007 após a limpeza de build.
Bloqueio
A limpeza removeu llvm-as e llc, impedindo o codegen R3000 embora o LLVM IR fosse válido. MTAPMAN também depende de imports e destinos indiretos ainda...
Solução
O comando iop compile-relocated ganhou codegen alternativo direto com clang para COFF x64, identificado no manifesto. Reextraí os dois IRX pelos exten...
Corrigi a versão do ABI gravada pelo LLVM: o estado nativo agora reporta ABI 10, compatível com os campos COP0 usados no reset EE.
Bloqueio
O harness inicializava ABI 10, mas a função LLVM sobrescrevia o campo com 9. Isso mascarava a versão efetiva do estado durante a execução nativa.
Solução
O backend passou a gravar ABI 10. Recompilei ynix_core e o CLI, gerei novamente o executável nativo e repeti o prefixo da BIOS: abi=10, 11 instruções...
Reconstruí o pacote IOP da ISO 007 e executei o entry do SIFCMD por recompilação estática nativa. O código chegou a sceSifInit e aguarda uma transferência real do EE.
Bloqueio
ACTION parava ao consultar SUBADDR, pois o valor do IOP e o sinal CMDINIT não estavam estabelecidos. O entry do SIFCMD depende do MSFLAG do EE; sem es...
Solução
Reextraí os oito módulos do IOPRP214.IMG, rebased as 282 relocations locais do SIFCMD em base explicitamente diagnóstica 0x00100000, compilei 131 inst...
No ACTION.ELF recompilado, o perfil diagnóstico atravessou a configuração do canal SIF0 e chegou à leitura de SIF_REG_SUBADDR, após registrar o handler e habilitar o canal 5.
Bloqueio
O runtime ainda não executa o lado IOP/SIFCMD neste caminho. O valor de SIF_REG_SUBADDR e a base do buffer IOP permanecem desconhecidos; preencher ess...
Solução
Implementei call sites exatos e restritos para sceSifSetDChain, AddDmacHandler, EnableDmac e sceSifGetReg. O ensaio usa hipóteses explícitas para CHCR...
O caminho nativo parcial do ACTION.ELF passou por três instruções VSQRT observadas e completou 398.278.232 instruções antes da primeira leitura SIF0_CHCR.
Bloqueio
O runtime ainda não conhece o estado do canal DMA SIF0 em 0x1000C000. A execução para nessa leitura com erro MMIO explícito; não há evidência suficien...
Solução
Adicionei ao decodificador, YNIR e backend nativo apenas os três encodings VSQRT encontrados no caminho, com estado Q e flags VU0. Preservei SIF0 como...
Com o CFG principal ampliado, a execução parcial de ACTION.ELF completou 275.040.751 instruções e chegou a 0x001F8AB0, sem erro guest ou fault de memória.
Bloqueio
Os limites menores do CFG principal paravam em fronteiras não compiladas e exigiam raízes observadas incrementais. O módulo ainda é parcial e retorna...
Solução
Aumentei o teto de entrada para 4.096 blocos, com 2.580 alcançados, e mantive 5.048 blocos de raízes observadas. O artefato gerou 37.536 instruções e...