Arqueologia Digital

Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9

Tópicos › Sexto ano › Engenharia reversa do Another World

Engenharia reversa do Another World

Felipe "Juca" Sanches continuou no AnotherWorld_VMTools a engenharia reversa do bytecode da máquina virtual do Another World. Ele documentou rotinas, comparou versões do jogo e reativou conteúdo removido. Felipe também comentou outras implementações da VM, e o grupo discutiu portes para outras plataformas. O trabalho foi apresentado em palestra na TOSCONF 2023.

Sexto ano: novembro de 2022 a outubro de 2023

Bytecode e AnotherWorld_VMTools

Felipe publicou o ExecTrace no PyPI e documentou padrões do bytecode. Ao comparar versões, encontrou a proteção contra cópia desativada nas versões de Symbian e Mega Drive europeu. Também reativou por patch um NPC desativado na versão de MS-DOS, reincluiu o besouro removido, que apareceu em posição errada e travou o jogo, e criou uma pseudo-instrução para a troca de banco. Além disso, foi comentado um easter egg da versão para Mac.

Another World: todos os anos ›

10 jan 2023 ExecTrace no PyPI e documentação do bytecode do Another World ★★★

Felipe "Juca" Sanches publicou o ExecTrace no PyPI, passou a usá-lo no AnotherWorld_VMTools e documentou rotinas e recursos gráficos da fase inicial do Another World. Ele descreveu padrões do bytecode: o uso de variáveis da VM para não repetir animações, o cache do cenário de fundo e o double-buffering sobre polígonos. Ao comparar versões, viu que os lançamentos para Symbian e Mega Drive europeu desativam a proteção contra cópia com um RET. Também reativou por patch um NPC que existe na versão de Amiga mas está desativado na de MS-DOS.

Participantes: Felipe "Juca" Sanches, Toy, L., Shideravan

Ir para o início da conversa · mensagens-chave: #25106 · #25147

11 fev 2023 Disassembly do bytecode do Another World: strings e bank switching ★★

Felipe retomou o disassembly do bytecode do Another World. Ao revisar a issue em que havia documentado o armazenamento das strings, notou a coincidência com a data de abertura, e comentou que o projeto já dura 10 anos e que ele faz o disassembly em paralelo de 5 binários quase idênticos. Ele também criou uma pseudo-instrução bank_switch para deixar mais legível a troca de fase da VM.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Flávio Amieiro, Augusto Almeida

Ir para o início da conversa · mensagens-chave: #25845 · #25858

14 fev 2023 Polígonos do Another World e o besouro removido ★★

A partir dos artigos de Fabien Sanglard, Felipe discordou da explicação, dada no artigo sobre a versão de Atari ST, para a remoção do besouro. Para ele, os polígonos e o código continuam dormentes na versão MS-DOS, e a remoção foi uma decisão artística, não uma questão de espaço em disco. Ele remontou o bytecode e conseguiu reincluir o besouro, que apareceu em posição errada e travou o jogo. Também notou arquivos duplicados entre os dois disquetes da versão de Atari ST.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #25904 · #25913 · #25914

15 ago 2023 Easter egg na versão Mac do Another World ★

L. compartilhou um artigo sobre um easter egg na versão para Mac do Another World. Felipe "Juca" Sanches notou que a assinatura da mensagem usa o domínio gnu.ai.mit.edu.

Participantes: L., Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #27442

VM em FPGA, em Rust e microprogramada

Felipe compartilhou a implementação da VM em FPGA feita por sylefeb. Ele também testou uma implementação em Rust, para a qual enviou uma correção, e disse querer escrever no seu fork do MAME uma versão da VM como unidade de controle microprogramável.

Another World: todos os anos ›

20 jan 2023 VM do Another World em FPGA e issues abertas no AnotherWorld_VMTools ★★

Felipe "Juca" Sanches compartilhou a implementação da VM do Another World em FPGA feita por sylefeb, que ele havia sugerido cerca de dois anos antes e cujo código ainda não foi publicado. Ele também indicou duas issues do AnotherWorld_VMTools para quem quiser contribuir.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #25308 · #25310 · #25312

16 fev 2023 Another World Suite em Rust e a ideia de uma VM microprogramada ★★

Felipe testou uma implementação incompleta da VM do Another World escrita em Rust e enviou um pull request corrigindo um overflow. Também disse querer escrever no seu fork do MAME uma segunda implementação da VM como unidade de controle microprogramável, para depois fabricar a PCB no projeto CPU do Zero do Garoa.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #25937 · #25941 · #25942

Portes para Neo Geo Pocket Color e MSX

Felipe avaliou rodar o jogo no Neo Geo Pocket Color e concluiu que a falta de framebuffer inviabilizaria a VM. Também discutiu o MSX: RicBit e Pablo Vasques Bravo-Villalba sugeriram o V9990.

Another World: todos os anos ›

4 fev 2023 Another World no Neo Geo Pocket Color ★★

Felipe fez um mockup do Another World renderizado no MAME em 160x152, a resolução do Neo Geo Pocket Color, e avaliou que o jogo caberia num cartucho de 2 MB se usasse a compressão das versões de Amiga e MS-DOS. Depois concluiu que o chip de vídeo do console não tem framebuffer, só tiles, o que inviabilizaria a VM, que exige quatro buffers de vídeo. RicBit lembrou que fez uma engine 3D baseada em tiles no MSX, Pedro citou o Elite do MSX, vetorial e baseado em tiles, e L. mencionou um ray casting com tiles para MSX. Pablo calculou quantos tiles seriam necessários para a abordagem.

Participantes: Felipe "Juca" Sanches, RicBit, Pablo Vasques Bravo-Villalba, Pedro de Medeiros 👾, L.

Ir para o início da conversa · mensagens-chave: #25725 · #25748

12 fev 2023 Proposta de palestra na TOSCONF e Another World no MSX ★★

Felipe publicou sua proposta de palestra sobre a VM do Another World para a TOSCONF, organizada pelo LHC, o hackerspace de Campinas. A conversa passou para a viabilidade do jogo no MSX: Felipe se preocupa com o processamento e com os quatro buffers de vídeo, e Pablo e RicBit sugeriram o V9990. Felipe também mapeou os pré-requisitos de execução de cada banco de código do bytecode da versão MS-DOS.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, RicBit

Ir para o início da conversa · mensagens-chave: #25896 · #25898

Palestra na TOSCONF 2023

Felipe propôs e apresentou na TOSCONF, organizada pelo LHC de Campinas, a palestra "Engenharia Reversa do jogo Another World de Eric Chahi". Mais tarde perguntou quem teria interesse em participar de um projeto sobre o jogo.

Another World: todos os anos ›

12 fev 2023 Proposta de palestra na TOSCONF e Another World no MSX ★★

Felipe publicou sua proposta de palestra sobre a VM do Another World para a TOSCONF, organizada pelo LHC, o hackerspace de Campinas. A conversa passou para a viabilidade do jogo no MSX: Felipe se preocupa com o processamento e com os quatro buffers de vídeo, e Pablo e RicBit sugeriram o V9990. Felipe também mapeou os pré-requisitos de execução de cada banco de código do bytecode da versão MS-DOS.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, RicBit

Ir para o início da conversa · mensagens-chave: #25896 · #25898

17 mar 2023 Palestra na TOSCONF 2023 sobre o Another World ★★★

Felipe compartilhou o vídeo da transmissão ao vivo de sua palestra "Engenharia Reversa do jogo Another World de Eric Chahi" na TOSCONF 2023.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

13 out 2023 Chamada para um projeto sobre Another World ★

Felipe "Juca" Sanches perguntou quem teria interesse em participar de um projeto envolvendo o jogo Another World.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #28357