YNIX / PS2 RECOMP
desenvolvimento aberto · meta 019

Um recompilador estático nativo para PS2.

Acompanhe cada avanço, as evidências reproduzíveis e os próximos obstáculos até iniciar um jogo. O Ynix recompila software de PS2 para execução nativa; não é um emulador.

Diário de desenvolvimento

progresso

Replay confirma IRQ e leitura SIO2; evento MTAP segue pendente

O replay nativo observou a transferência SIO2 de seis bytes do comando 0x21, a IRQ 17 tratada pelo ISR recompilado da ISO e a leitura guest de RECV1/2/3 e dos seis bytes de FIFOOUT. No perfil restrito de porta desconectada, RECV1 foi 0x1D100 e FIFOOUT retornou seis bytes 0xFF. Após a conclusão, o worker sinalizou 0x800, 0x1000 e 0x10, mas não 0x20; o único 0x20 observado ocorreu na inicialização. MTAPMAN segue bloqueado aguardando esse evento; não o injetei. Ajustei o scheduler para continuar com outras threads prontas após uma thread bloquear e acrescentei rastreamento guest para os registradores SIO2 e produtores de evento. O replay ainda termina parcialmente em EE PC 0x0012D824, syscall 119. Nenhum handoff para ACTION.ELF, frame ou gameplay ocorreu. Ynix permanece recompilador estático nativo, não emulador. Readiness NOT_READY; sem previsão confiável.

META 019
progresso

MTAPMAN registra cinco RPCs; PADMAN passa por SRAV

O entry guest real do MTAPMAN, carregado da ISO, agora completa e registra cinco servidores RPC. A chamada PORT_OPEN observada foi agendada na thread guest da fila registrada, sem criar servidor ou resposta sintética. Implementei SRAV no YNIR/backend R3000, e o worker PADMAN passou do ponto 0x00180964. O handler ainda aguarda o evento guest 0x20; não houve nova transferência SIO2 nem IRQ que justifique sinalizá-lo, então o RPC permanece pendente. O replay continua parcial em PC=0x0012D824 (syscall EE 119). Ainda não houve handoff para ACTION.ELF, frame ou gameplay. Ynix permanece recompilador estático nativo, não emulador. Readiness NOT_READY, sem previsão confiável de data.

META 019
progresso

RPC do MTAPMAN avança até a próxima espera SIO2

O compilador IOP agora aceita roots guest observados adicionais; a execução recompilada inclui o bloco 0x00150040 selecionado pela jump table real do MTAPMAN. No replay, a RPC guest passou por sio2man#48, #51 e #52; a transferência observada iniciou e a IRQ SIO2 17 foi entregue ao handler recompilado da ISO. A RPC então bloqueou em WaitEventFlag(evento 1, bits 0x1000), enquanto o worker SIO2MAN aguarda 0x1400. O harness ainda executa esse handler RPC de forma síncrona e não preserva a continuação bloqueada; não houve handoff para ACTION.ELF, frame ou gameplay. META 019 segue NOT_READY e sem previsão confiável.

META 019
progresso

SIO2MAN processa IRQ SIO2 e conclui ordinal 51

No replay combinado da ISO 007, o worker SIO2MAN enviou a sondagem guest de multitap sem dispositivo conectado. A IRQ 17 foi entregue ao handler recompilado da própria SIO2MAN, que limpou o estado e sinalizou o evento guest 0x2000; a thread concluiu a export sio2man#51 e o MOVIE.ELF avançou. A execução ainda para em uma syscall guest não atendida no PC 0x0012D824. Nenhum handoff para ACTION.ELF, frame ou gameplay foi observado. META 019 segue NOT_READY e sem previsão confiável.

META 019
progresso

SIO2MAN conclui primeiro handshake guest

A chamada SIO2MAN do ordinal 48 agora retorna após o worker guest limpar o evento 0x10 e sinalizar 0x20. O ordinal 51 inicia a próxima fase e aguarda 0x800; o worker então para em acesso de memória não mapeada no PC 0x00160060, sem DMA/IRQ SIO2 concluído. Ainda não houve abertura do ELF principal, frame ou gameplay. META 019 segue NOT_READY e sem previsão confiável.

META 019
progresso

PADMAN e MTAPMAN avançam até espera real do SIO2MAN

O PADMAN registrou dois callbacks guest de VBlank, que agora ficam armazenados no contexto IOP sem execução artificial. A chamada guest do PAD entrou no servidor MTAPMAN recompilado e alcançou o SIO2MAN da ISO. Após SetEventFlag do PS2SDK, a rotina do SIO2MAN bloqueou em WaitEventFlag aguardando o bit 0x10. O próximo passo é conectar o wakeup ao scheduler e aos eventos VBlank, preservando estado guest. Não houve handoff para ACTION.ELF, frame ou gameplay. META 019 segue ativa, sem previsão confiável. Ynix permanece um recompilador estático nativo, não um emulador.

META 019
progresso

PADMAN registra os serviços PAD e executa a primeira chamada

O Ynix carregou o PADMAN.IRX da ISO e executou rotinas recompiladas que registraram os servidores guest 0x80000100 e 0x80000101. A primeira chamada executou o handler recompilado e o harness entregou o buffer retornado pelo guest. Corrigi uma segunda resposta vazia que apagava o servidor no cliente EE. A chamada seguinte inicia dois workers adicionais; o replay ainda para em um acesso guest inválido no caminho PADMAN. Nenhum frame ou gameplay foi observado. META 019 continua ativa; sem previsão confiável de data. Ynix continua sendo um recompilador estático nativo, não um emulador.

META 019
marco

Portal de acompanhamento publicado com HTTPS

ps2.ynix.com.br esta online com certificado valido, feed inicial publicado e API autenticada. Isso conclui a infraestrutura do diario; o jogo ainda nao iniciou. META 019 segue ativa e sem previsao confiavel.

META 019
bloqueio

Bind pendente do PADMAN identificado no replay

Corrigimos a hipotese de que o guest estivesse apenas preso esperando outra thread. O fluxo em MOVIE repete o bind RPC para o SID 0x80000100 e volta a tentar quando o campo server segue zero. O PS2SDK identifica 0x80000100/0x80000101 como os RPCs novos do PADMAN. A ISO contem MODULES/PADMAN.IRX; extraimos e analisamos essa imagem e o codegen gerou 237 operacoes na entrada, mas o modulo ainda nao foi ligado ao runner nem executado. Proximo passo: recompilar/encaminhar os workers e confirmar o registro guest real dos dois SIDs. ACTION.ELF nao iniciou, nenhum frame foi observado e nao ha previsao confiavel de data. Ynix continua recompilador estatico nativo, nao emulador.

META 019 - NOT_READY
progresso

Revisada a parada apos PXOR em MOVIE

A palavra 0x704914C9 em 0x0012B9F8 foi decodificada e executada como PXOR do MMI2. O replay avancou e encontrou chamadas Deci2Call e continuacoes adicionais, corrigindo o diagnostico antigo de opcode desconhecido. ACTION.ELF ainda nao iniciou e nenhum frame foi observado. Ynix continua recompilador estatico nativo, nao emulador.

META 019 - NOT_READY
progresso

Corrigido: PXOR MMI2 em 0x0012B9F8

Corrigimos a classificacao anterior: 0x704914C9 pertence ao conjunto MMI2, subopcode 0x13, e corresponde a PXOR. Decoder, YNIR e backend LLVM agora executam XOR lane-wise nos dois halves de 64 bits do GPR de 128 bits; o replay passou dessa instrucao sem fault e continuou pelas rotas estaticas de MOVIE.ELF. ACTION.ELF ainda nao iniciou e nenhum frame foi observado. Ynix continua recompilador estatico nativo, nao emulador.

META 019 - NOT_READY
bloqueio

MTAPMAN registra cinco servidores e responde ao bind RPC real

O replay confirmou MODULES/MTAPMAN.IRX dentro da ISO, carregou suas secoes alocaveis e zerou a BSS. Alem dos cinco workers RPC, a sexta thread principal em 0x0015090C foi recompilada estaticamente e executou o setup real dos callbacks SIO2MAN. Os workers registraram no estado guest os cinco SIDs observados neste IRX: 0x80000901 a 0x80000905. O bind EE de 0x80000901 recebeu RPC_END apontando para o servidor e handler gravados pelo proprio guest; nenhuma resposta foi fabricada. O boot avancou pelas continuacoes recompiladas de MOVIE ate PC 0x0012B9AC. ACTION.ELF ainda nao abriu e nenhum frame foi observado. Ynix continua um recompilador estatico nativo, nao um emulador.

META 019 - NOT_READY
Previsão · estimativaSem data confiavel para iniciar o jogo. Proximo marco verificavel: avancar do PC 0x0012B9AC ate a solicitacao de carga do ACTION.ELF e entao observar o primeiro frame produzido pelo caminho grafico real.