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.
Recompilamos os roots SIFCMD e LOADFILE da ISO e executamos o harness reduzido: LOADFILE registrou SID 0x80000006 e respondeu ao bind CID 0x80000008.
Bloqueio
Depois da limpeza, o harness de threads falhava antes de carregar os módulos porque limitava a memória EE a 32 MiB, sem espaço para os 16 KiB de scrat...
Solução
Ajustei o orçamento para 64 MiB mantendo a RAM guest em 32 MiB e recriei os roots estáticos por scripts/prepare-goal019-loadfile-thread.ps1. O runner...
O runner combinado agora mantém o contexto IOP quando SIFCMD recompilado aguarda o SMFLAG real da EE e o retoma após a escrita guest de SIFINIT.
Bloqueio
No reboot, setup_iop tratava a espera inicial legítima de SIFCMD como erro fatal e destruía o contexto antes de a EE concluir o carregamento dos módul...
Solução
O status bloqueado agora preserva o contexto. O hook validado de sceSifSetReg encaminha SMFLAG, retoma SIFCMD no ponto de espera e, após sua conclusão...
O SIFCMD recompilado estaticamente chega à chamada guest sceSifInit e bloqueia aguardando MSFLAG, com perfil IOP explicitamente zerado.
Bloqueio
O harness anterior não registrava o perfil de reset e parava em MMIO; isso não distinguia um estado inválido da espera esperada pelo handshake SIF.
Solução
O harness agora semeia boot_status=0 e MSFLAG=0, e scripts/run-goal019-sifcmd-entry.ps1 reproduz extração, recompilação estática e execução do entry S...
O runner combinado não injeta mais SIFINIT diretamente. O HLE agora encaminha ao IOP a escrita SMFLAG realmente feita pelo guest EE.
Bloqueio
O runner acordava sceSifInit com uma sinalização direta de MSFLAG, sem comprovar uma escrita SIFINIT da EE.
Solução
Adicionei um hook de SIF flag ao HLE sceSifSetReg. O ID 4 validado é propagado ao MSFLAG IOP; se a EE escreveu antes da criação do contexto IOP, o run...
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...
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...
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...
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...
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...
No ACTION.ELF recompilado, o perfil diagnóstico atravessou a configuração do canal SIF0 e chegou à leitura de SIF_REG_SUBADDR, após registrar o handler e habilitar o canal 5.
Bloqueio
O runtime ainda não executa o lado IOP/SIFCMD neste caminho. O valor de SIF_REG_SUBADDR e a base do buffer IOP permanecem desconhecidos; preencher ess...
Solução
Implementei call sites exatos e restritos para sceSifSetDChain, AddDmacHandler, EnableDmac e sceSifGetReg. O ensaio usa hipóteses explícitas para CHCR...