Projeto experimental de engenharia reversa e recompilação estática. O objetivo é traduzir o executável original para código nativo em Windows e Linux, sem substituir o console por um emulador.
Pesquisar o caminho técnico para traduzir o software do console para uma execução nativa em Windows e Linux. O progresso será registrado com evidências, limites e bloqueios reais.
O código e o guard do replay já incluem a 343ª raiz observada, 0x00719960. A recompilação ainda não gerou um executável validado com essa raiz porque o disco C: está sem espaço.
Bloqueio
A compilação MSVC falhou ao gravar build/goal019/toy-story-3-entry-256/ee_hle.obj com C1085: No space left on device. O executável existente tem 21.70...
Solução
Foi confirmado que apps/cli/Ynix.Cli/Execution/PartialExecution.cs exige 343 raízes e que a entrada 342 do manifesto é 0x00719960. O processo PCSX2 es...
O PCSX2 Devel antigo reconheceu a ISO Toy Story 3 e registrou o ELF principal. A captura foi encerrada para evitar crescimento excessivo do log; os logs de controller e leituras CDVD verbosas ficam desativados no próximo início.
Bloqueio
O modo de depuração produziu um emuLog de aproximadamente 5,27 GB e esgotou o espaço livre em C:, tornando a compilação nativa pendente. Logs de polli...
Solução
O processo PCSX2 foi encerrado. O perfil persistente do PCSX2 Devel v1.7.3563 foi ajustado para Controller Info=disabled e CdvdVerboseReads=disabled,...
A compilação da raiz 0x00719960 não terminou: o disco C: ficou sem espaço durante a gravação de ee_hle.obj.
Bloqueio
O log de traces do PCSX2 chegou a 5,27 GB, deixando 0 bytes livres e impedindo o link do harness nativo.
Solução
O PCSX2 Devel foi encerrado para parar o crescimento do log. A captura foi preservada; a compilação de 343 raízes precisa ser repetida após liberar es...
O guest chegou a WaitSema na rotina MOVIE. O semáforo 38 existe com contagem zero, mas só há uma thread EE registrada e nenhuma thread pronta para receber a troca; o jogo ainda não foi aberto.
Bloqueio
A chamada em 0x0012D4A4 tenta esperar no semáforo 38 depois de 0x0012F780 retornar diferente de zero. O scheduler não encontra thread EE pronta e o ru...
Solução
Instrumentei os caminhos de WaitSema e reproduzi o bloqueio: thread atual EE 1 em execução, semáforo 38 zerado e nenhuma thread pronta. Vou rastrear o...
O replay percorre as continuacoes estaticas de MOVIE e termina em KExit(0), sem fault. Isso identifica o termino guest, mas nao comprova que o jogo abriu.
Bloqueio
O diagnostico final mostrava status 0 sem o registrador v1, ocultando o numero do syscall. Tentar retomar em 0x0012D084 repete KExit e entra em ciclo,...
Solução
O runner agora imprime v1. O estado final confirma service_id=4 (KExit), exit_code=0, PC=0x0012D084 e RA=0x00132BC8. Mantive KExit como termino e remo...
Identificamos que a RPC 0x80000596 aguarda o evento CDVD Power Off Ready (bit 0x4). O replay atual nao gera essa causa antes da espera.
Bloqueio
O handler recompilado limpa o bit 0x4 do event flag 2 e fica bloqueado. A chamada sceCdSC(0xFFFFFFF5) apenas devolve o ID do event flag; ela nao enfil...
Solução
Conferimos a semantica na fonte publica do PS2SDK e cruzamos com PS2Tek. O handler CDVD sinaliza esse bit quando recebe o motivo CDVD 0x04, identifica...
O status 99 nao e uma falha dentro de 0x001246EC: o scheduler recusou outra RPC porque a chamada guest anterior ao mesmo thread segue bloqueada.
Bloqueio
A primeira chamada ao handler CDVDFSV em 0x001246EC ficou bloqueada (dispatch=6); uma requisicao posterior ao mesmo thread foi rejeitada por haver cha...
Solução
Refinei a leitura do trace e corrigi a documentacao: a proxima investigacao deve identificar o evento que conclui ou libera a chamada RPC pendente ant...
Aumentar o orçamento do CFG observado para 1.024 gerou IR de 498 MB e bitcode de 142 MB, mas o llc atingiu cerca de 13,5 GB de memória privada e não concluiu o objeto. A expansão com 512 blocos também revelou que a ordem das raízes afeta quais caminhos cabem no orçamento compartilhado.
Bloqueio
O orçamento de raízes observadas é compartilhado e processado na ordem informada; priorizar uma raiz nova pode excluir blocos anteriores. Aumentar o o...
Solução
Interrompi a compilação sem objeto executável e preservei como referência o artefato válido anterior. O próximo recorte vai reduzir e priorizar as raí...
O MOVIE constrói corretamente o descritor de lista em RAM baixa, mas uma chamada guest posterior o apaga antes do setup de mpegbuff.
Bloqueio
No replay, o campo de destino usado por uma rotina de limpeza chega como zero. O helper limpa 0x00..0x10B, removendo o descritor apontado pela tabela[...
Solução
Ativei auditoria de stores guest de 32 e 128 bits, capturei os valores anterior/posterior e associei o SQ em 0x00110840 ao retorno RA=0x001152DC. O ca...
A auditoria de escrita da EE não encontrou nenhuma gravação em 0x00–0x4F antes do loop de MOVIE, confirmando que o descritor começa e permanece zerado.
Bloqueio
O caminho seleciona a referência 0x10 e percorre campos do descritor que continuam zerados; sem inicialização, o loop repete a leitura nula até esgota...
Solução
Ativei auditoria opt-in das escritas guest nos primeiros 0x50 bytes e repeti o replay completo. O resultado elimina uma escrita anterior omitida como...