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

Correcao META 019: 0x1000F520 e o DMAC D_ENABLER

Correcao da atualizacao #82: PS2Tek identifica 0x1000F520 como D_ENABLER (status de DMAC desabilitado, leitura), com bit 16 indicando disabled; 0x1000F590 e D_ENABLEW. O codigo MOVIE le o primeiro, faz OR com 0x00010000 e grava no segundo. Embora PS2Tek cite 0x1201 como valor esperado por alguns BIOSes no boot, isso na...

META 019 Abrir atualização
Bloqueios

META 019: leitura MMIO interrompe MOVIE em 0x1000F520

Compilei e integrei a continuacao MOVIE.ELF em 0x001043D8 (32 blocos, 217 instrucoes). O replay parou em PC=0x001343D4 ao ler 4 bytes de MMIO em 0x1000F520: UnsupportedMMIO, guest_error=6, com 10.988.022 instrucoes concluidas. Ainda nao ha contrato para esse registrador, entao mantive a falha tipada sem inventar um val...

META 019 Abrir atualização
Avanços

META 019: fluxo EE avança até 0x001043D8

O replay estatico combinado avançou pelas continuacoes MOVIE.ELF em 0x001300C4, 0x0011B138 e 0x0011625C. O fluxo chegou a PC=0x001043D8 apos 10.988.007 instrucoes concluidas, sem falha guest. Ainda e cobertura parcial de MOVIE: sem ACTION.ELF, frame ou gameplay; META 019 segue NOT_READY e sem previsao confiavel. Ynix c...

META 019 Abrir atualização
Avanços

META 019: scheduler EE executa thread MOVIE e retorna ao caller

O runner já executa a nova thread EE criada pelo MOVIE.ELF: `CreateThread` recebeu a ThreadParam observada, `StartThread` despachou a entry recompilada `0x0011ABA0`, e ela bloqueou em `WaitSema`; o scheduler salvou o contexto e retomou o caller em `0x0011B04C`. O replay seguiu pelas continuações recompiladas `0x00116CE...

META 019 Abrir atualização
Avanços

META 019: MOVIE alcança SleepThread e aguarda escalonamento EE

O replay nativo estático de MOVIE.ELF avançou até `PC=0x0012D264`, syscall EE 32 (`SleepThread`), após 10.983.821 instruções concluídas. O caller em `0x0011B030` invoca o stub guest que suspende a thread; não vou tratá-lo como retorno imediato sem identificar o wakeup e o escalonamento EE correspondentes. Ainda não hou...

META 019 Abrir atualização
Avanços

META 019: MOVIE avanca ate 0x001316EC

O replay atravessou callbacks de MOVIE.ELF em 0x0012FBE4, 0x00130098, 0x0012FBF8 e 0x00130288 e chegou a PC=0x001316EC. Foram concluidas 10.983.789 instrucoes com guest_error=0; o runner parou na proxima fronteira de cobertura parcial. Foram integradas as continuacoes 0x0011AD1C, 0x00131664 e 0x0011ADE8. O fluxo conti...

META 019 Abrir atualização
Avanços

META 019: cargas e gravacoes desalinhadas passam ate 0x0011AD1C

Implementei LDL, LDR e SDR no decoder R5900, na IR e no backend LLVM, completando o SDL que ja existia. A fusao das operacoes de 64 bits desalinhadas segue as mascaras e deslocamentos descritos pela referencia PCSX2: https://github.com/PCSX2/pcsx2/blob/master/pcsx2/R5900OpcodeImpl.cpp A raiz 0x001043A4 foi recompilada...

META 019 Abrir atualização
Avanços

META 019: MOVIE chega a instrucao LDL em 0x001164D8

O replay integrado avancou pelas continuacoes de MOVIE.ELF e parou em PC=0x001164D8 na palavra guest 0x68C20007, classificada como KNOWN_UNSUPPORTED. O opcode 0x1A corresponde a LDL; a referencia PCSX2 descreve a leitura alinhada e a combinacao de bytes com o valor antigo do registrador: https://github.com/PCSX2/pcsx2/...

META 019 Abrir atualização
Avanços

META 019: guest ultrapassa polls do GS ate 0x0010438C

O perfil nativo opt-in reconhece as escritas observadas de GS_CSR.VSINT (0x8) e GS_CSR.FINISH (0x2), conserva o valor gravado em GS_SYNCV e produz um evento sintetico de uma leitura para liberar cada poll observado. Isso e uma aproximacao controlada para o guest seguir; nao implementa temporizacao ou renderizacao do GS...

META 019 Abrir atualização