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

Providers SIFMAN conectados; MTAPMAN aguarda inicialização SIF

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...
META 019 Abrir atualização
Avanços

SIO2MAN e MTAPMAN executam seus entries recompilados

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...
META 019 Abrir atualização
Avanços

MTAPMAN recompilado após limpeza de build

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...
META 019 Abrir atualização
Marcos

Reset da BIOS: replay nativo até TLBP

O replay nativo do reset EE avançou até TLBP: 29 instruções concluídas, sem fault, PC final 0xBFC00874.

Bloqueio
O fluxo parava no primeiro SYNC.P, e o backend ainda não representava as gravações COP0 da TLB nem o probe observado no BIOS.
Solução
Adicionei lowering nativo limitado às instruções e ao PC confirmados na ROM, ABI v11 para os cinco campos COP0 de TLB e aceitação restrita da escrita...
META 019 Abrir atualização
Avanços

ABI nativo corrigido e confirmado no reset EE

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...
META 019 Abrir atualização
Marcos

Reset EE da BIOS: primeira sequência contínua executada nativamente

Ynix agora recompila e executa em código nativo as primeiras 11 instruções contínuas do reset EE da BIOS SCPH-39001, passando por SYNC.P e pelas gravações de Config, Status, Count e Compare.

Bloqueio
O perfil estrito do compilador esparso desabilitava SYNC.P. O reset EE parava em 0xBFC0080C, antes de aplicar o estado COP0 usado pelo BIOS.
Solução
Adicionei o opt-in --bios-ee-reset-profile, aceito somente para as 11 palavras e PCs exatos conferidos na ROM local. O harness x64 executou o trecho a...
META 019 Abrir atualização
Marcos

Reset EE recompila e preserva escritas COP0 observadas

O caminho nativo da BIOS agora reconhece as escritas COP0 observadas de Config, Status, Count e Compare; o harness recompilado confirmou Config 0x00073003 após leitura de volta.

Bloqueio
A análise do reset EE parava no MTC0 Config em 0xBFC00808 e não preservava o estado escrito pelo código da BIOS.
Solução
Implementei encodings COP0 estreitos no decoder, no YNIR de referência e no lowering LLVM. O ABI nativo v10 nomeia os slots de estado usados sem mover...
META 019 Abrir atualização
Marcos

Reset da BIOS identifica a rota EE do boot

A análise do reset vector da BIOS agora distingue a rota EE pelo PRid R5900 0x2E20, e o Ynix compila a instrução MFC0 PRid para código nativo x64.

Bloqueio
Sem a leitura correta de COP0 PRid, o analisador não explicava por que a BIOS escolhe a rotina EE em 0xBFC00800 em vez da rota alternativa em 0xBFC020...
Solução
Implementei a instrução MFC0 PRid de forma restrita no decoder, no YNIR de referência e no backend LLVM. A palavra observada no reset vector foi recom...
META 019 Abrir atualização
Marcos

SIFCMD da BIOS executado na base de boot derivada

A entrada do SIFCMD presente na BIOS foi extraída, rebased para a base derivada do IOPBTCONF e executada por código nativo recompilado. O caminho avançou até a espera pela inicialização EE–IOP.

Bloqueio
A execução isolada do SIFCMD chega a sceSifInit e consulta MSFLAG. Sem executar o produtor EE e transferir esse estado, a chamada para com status 14;...
Solução
Usei o SIFCMD do ROMDIR da BIOS, apliquei 243 relocations locais na base derivada 0x1A900, compilei estaticamente o entry 0x1A9D0 e rodei em RAM IOP c...
META 019 Abrir atualização
Avanços

META 019: SIFCMD recompilado alcança o handshake SIF

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...
META 019 Abrir atualização