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 replay recompilado agora copia para a RAM IOP a chamada FILEIO real observada no EE: CID RPC_CALL, funcao 0xFF e buffers de resposta. O runner deixou de encerrar com access violation e para no WaitSema correspondente.
Bloqueio
O runner ainda nao despacha o pacote recebido pelo worker SIFCMD/FILEIO recompilado. Sem resposta guest e conclusao RPC_END, o EE fica esperando; aind...
Solução
Corrigido o encerramento do bridge para ocorrer antes da destruicao da RAM EE e instrumentada a criacao dos semaforos. O trace PCSX2 confirma o compor...
O callback guest INIT_CMD define CMDINIT e o worker SIFCMD recompilado envia um SET_SREG de 24 bytes ao buffer EE observado no trace.
Bloqueio
O probe anterior acordava o worker com evento injetado pelo harness, sem executar o callback INIT_CMD; por isso o SIFCMD mantinha o destino EE em zero...
Solução
O probe agora chama o handler guest recompilado, com pacote INIT_CMD reconstruído pelo contrato PS2SDK e pelo endereço EE 0x93640 observado na tag SIF...
O sceSifInitRpc recompilado submeteu um descriptor IOP→EE e gerou o pacote SET_SREG do próprio guest: índice 0, valor 1.
Bloqueio
O worker FILEIO aguardava CMDINIT. Depois do evento observado no trace, o initRPC avançou e parou no envio de DMA IOP→EE. O probe não possui a RAM EE...
Solução
Executamos SIFCMD e FILEIO recompilados, entregamos ao event flag o CMDINIT observado e registramos o descriptor e os seis words do pacote. O DMA foi...
Executamos os módulos SIFCMD e FILEIO e iniciamos os workers recompilados. Com o evento CMDINIT observado no trace PCSX2, o InitRpc guest avançou até solicitar um DMA IOP→EE.
Bloqueio
O probe isolado parava no WaitEventFlag do InitRpc porque não recebia o evento CMDINIT. Após liberar esse evento, o próximo limite é o sceSifSetDma: o...
Solução
Carregamos e executamos os objetos estáticos guest de SIFCMD e FILEIO, registramos os contratos de threads e eventos necessários e usamos o CMDINIT ob...
O runner nativo agora conecta RAM EE e IOP por SIF DMA e confirma os dois descritores reais do RPC FILEIO copiados byte a byte. Uma continuacao recompilada alcanca WaitSema(3); a resposta guest FILEIO ainda falta.
Bloqueio
O replay anterior parava em sceSifSetDma porque o runner parcial nao tinha RAM IOP nem submitter SIF. Depois da transferencia, o jogo aguarda o semafo...
Solução
Adicionei um runner diagnostico usando YnixSifDmaBridge e uma RAM IOP separada mapeada. O payload de 8 bytes chegou a 0x41378 e o RPC_CALL de 64 bytes...
O trace PCSX2 confirma que o FILEIO rejeita o RPC 0xFF e devolve dados ao EE; o boot continua após sinalizar o semáforo.
Bloqueio
O replay nativo avançou pelo bind FILEIO, mas ainda não reproduz a resposta guest do RPC 0xFF e não tem bridge EE-IOP ativo.
Solução
Filtrei o log existente sem recompilar o PCSX2. O trecho mostra o pedido de 64 bytes em 0x19600, a mensagem guest "unrecognized code ff", uma resposta...
O replay nativo passou pelo INIT_CMD e pelo RPC_BIND FILEIO, alcançando a chamada seguinte com dois descritores DMA observados.
Bloqueio
O runner EE parcial ainda não registrava um submitter SIF-DMA, então a chamada parava com MMIO não suportado antes de entregar o pedido ao IOP.
Solução
A instrumentação agora imprime cada descritor rejeitado. Foram confirmados o envio dos 8 bytes de parâmetros ao buffer FILEIO e do pacote RPC de 64 by...
A tabela de exports do IRX confirmou sceSifInitRpc no offset 0x820. O objeto guest recompilado executa 17 instruções e bloqueia em WaitEventFlag(event 0, bits 0x100), sem evento injetado. O próximo bloqueio é conectar a entrega real do comando SIF ao scheduler.
Bloqueio
Harnesses anteriores tratavam 0x001006C0 como sceSifInitRpc. No IRX extraído esse endereço é o export ordinal 26, sceSifSetSif1CB; portanto aquela exe...
Solução
Conferi o mapa de exports do IRX e a tabela PS2SDK, corrigi scripts/harnesses ativos para 0x00100820, regenerei a compilação com manifesto de imports...
Executamos sem fault o handler RPC 255 recompilado do FILEIO extraído do Toy Story 3, usando o pacote real observado no replay. O probe agora pode ser repetido localmente.
Bloqueio
O replay EE chegava ao primeiro RPC_CALL de FILEIO e parava antes de executar o servidor IOP; a rotina guest de inicialização específica deste FILEIO...
Solução
Carregamos a imagem FILEIO rebased em RAM guest, chamamos o handler recompilado em 0x00151AB8 com rpc=255, payload de 8 bytes e ponteiros nulos observ...
O replay nativo passou pelo bind repetido e chegou à primeira RPC do FILEIO. A rotina correspondente foi localizada no IRX da própria imagem e recompilada estaticamente.
Bloqueio
A runtime respondeu ao RPC_BIND observado, mas ainda não entrega a chamada RPC 255 ao servidor IOP. O replay para em sceSifSetDma antes de uma leitura...
Solução
A análise do FILEIO.IRX localiza o handler em 0x00151AB8. Ele reconhece a função 255 e, com payload de 8 bytes, grava os dois ponteiros de entrada no...