Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Segundo ano › Engenharia reversa e extração de ROMs
Felipe apresentou o ExecTrace, disassembler genérico em Python aplicado ao Galaga de MSX. O grupo comentou a extração da ROM interna do YM2413, discutiu o dump da EPROM de um Zip drive Iomega e voltou ao algoritmo ainda não desvendado dos gabaritos do Pense Bem. Também circularam notícias de decompilações e de ferramentas de análise.
Segundo ano: novembro de 2018 a outubro de 2019
O disassembler segue o fluxo de execução por busca em profundidade. Foi criado para o Another World, ganhou uma classe para o i8048 e agora outra para Z80/MSX. A remontagem do Galaga ainda diferia da ROM original em alguns bytes. Mais tarde, um vídeo sobre o Diablo levou a lembranças de trabalhos de engenharia reversa no Galaga e no Pinball Fantasies.
Felipe apresentou o ExecTrace, um disassembler genérico em Python que analisa o fluxo de execução por busca em profundidade e separa código de dados. Ele foi criado para o bytecode do Another World e já tinha uma classe para o i8048 do Odyssey 2; a nova classe para Z80/MSX foi usada para desmontar o Galaga da Konami. Ao remontar o resultado, a ROM ainda diferia da original em alguns bytes.
Um vídeo sobre a engenharia reversa do Diablo sem código-fonte levou a comentários sobre o Blood, cujo relançamento comercial e ports modernos também vêm de engenharia reversa, e a lembranças de trabalhos de engenharia reversa da BIOS de MSX e de set-top boxes, do Galaga e do Pinball Fantasies.
A extração da tabela de instrumentos do YM2413, o vazamento de uma ROM perdida da Atari e a intenção de extrair a EPROM 27512 em PLCC32 de um Zip drive Iomega, cujo chip custom seria um 8052.
L. compartilhou que a ROM interna do YM2413 foi extraída, o que permite uma emulação mais fiel. Erin explicou que se trata de uma tabela de dados com os operadores FM dos instrumentos e relacionou o chip ao VRC7 do Lagrange Point (Famicom).
L. compartilhou reportagem sobre o vazamento de uma ROM perdida da Atari, que levantou a pergunta de se a ROM teria sido roubada.
Felipe "Juca" Sanches ganhou um Zip drive de porta paralela com defeito e citou a informação, vista na internet, de que o chip custom da Iomega seria um microcontrolador 8052. Ele quis extrair o dump da EPROM 27512 em PLCC32 soldada na placa, mas achou o clip Pomona caro. Affonso Amendola contou que nenhum dos drives que abriu funcionava direito, L. indicou clones baratos do clip no AliExpress e versões para impressão 3D, e Guilherme Kenzo ofereceu outro drive.
Felipe lembrou que o algoritmo dos gabaritos dos livros do Pense Bem não foi desvendado. L. citou as respostas anotadas de vários livros e a reimplementação em JavaScript e SVG.
A partir de uma reportagem sobre o labirinto de um jogo antigo, Felipe "Juca" Sanches lembrou que o algoritmo dos gabaritos dos livros do Pense Bem ainda não foi desvendado. L. disse que já anotaram as respostas de vários livros sem acertar 100%, perguntou se Felipe chegou a fazer um emulador da versão ATmega, o que ajudaria a achar a rotina, e citou a reimplementação do Pense Bem em JavaScript e SVG feita com Felipe. Leonardo Roman sugeriu responder os livros e procurar o padrão.
ROM hacking de Super Mario World, a decodificação da ROS não executável do IBM 5100, a decompilação do Mario de Nintendo 64 e o suporte ao processador do Game Boy no Ghidra.
Foi indicado o site SMW Central, com tutoriais de patch em assembly do SNES e listagem comentada do código do Super Mario World. L. citou o editor de mapas Lunar Magic.
L. compartilhou um relato técnico sobre a decodificação da ROS não executável do IBM 5100.
L. noticiou a decompilação do Mario de N64, que poderia ser recompilado com gcc. Felipe "Juca" Sanches distinguiu desmontagem de decompilação e disse que, pelo que lia, o resultado era código C.
L. compartilhou um módulo SLEIGH que adiciona ao Ghidra suporte ao processador do Game Boy, parecido com o Z80.