Erro no disco mestre de Space Quest II
(lanceewing.github.io)Erro no disco mestre de Space Quest II
- 22 de maio de 2024
- A aparência deste disco não tem nada de especial, mas os dados gravados nele incluem algo especial que a Sierra On-Line certamente não sabia que estava ali e não gostaria de ter incluído.
- Se você tem um disquete de 720 KB da coleção de jogos de aventura da Sierra, você não está sozinho.
- As versões 2.0D e 2.0F de Space Quest II não eram raras.
Uma simples listagem de diretório
- Ao olhar a lista de arquivos do disco, não há nada de especial.
- Observando a listagem da versão 2.0D, ela não difere de outros discos de jogos da Sierra.
- Os carimbos de data e hora mostram que os principais arquivos de dados do jogo (
PICDIR,LOGDIR,VIEWDIR,SNDDIR,VOL.0,VOL.1) foram criados em 14 de março de 1988. - Os arquivos
.OVLforam criados em 15 de março de 1988, e o código do interpretador AGI em 18 de março de 1988. - O ponto incomum na listagem do diretório é que o espaço "não utilizado" do disco é maior que o espaço utilizado. São mostrados 302.918 bytes usados e 402.432 bytes como não utilizados.
Usando um editor hexadecimal
- Para ver com mais detalhes o que há no disco, é preciso uma ferramenta chamada editor hexadecimal.
- Nos anos 1980, o Norton Utilities era muito usado, e hoje o HxD Hex Editor, escrito por Maël Hörz, é uma excelente alternativa.
- Em um disquete DOS recém-formatado, os setores não utilizados deveriam estar preenchidos com o valor de byte
0xF6. - O disco 2 da versão 2.0D de Space Quest II se encaixa nesse caso, mas o disco 1 não tem setores preenchidos com bytes
0xF6. - Os setores não utilizados do disco 1 estão preenchidos com algo que parece código-fonte em C.
- Isso sugere fortemente que o disco mestre foi usado para outro propósito e, depois que os arquivos foram apagados, não foi formatado corretamente.
Código-fonte do interpretador AGI
- Ao ver os dados em um editor hexadecimal, eles parecem texto.
- Ao copiar o texto ASCII para um editor de texto, ele se parece com código-fonte em C.
- Há duas funções definidas, uma chamada
DisplayStatusLinee a outraStatusLineOn. - A função
DisplayStatusLineaparentemente exibe uma linha de texto mostrando a pontuação atual e o estado do som. - Esse código-fonte faz parte do interpretador AGI.
- Ao continuar rolando mais setores não utilizados no editor hexadecimal, há uma grande quantidade de código-fonte.
- Esse código-fonte está armazenado em setores contíguos, então é fácil extraí-lo.
- No total, ele está dividido em 93 arquivos: 75 arquivos de código-fonte em C, 16 arquivos de código-fonte em Assembly e 2 arquivos BAT do DOS.
- Há mais de 15.000 linhas de código ao todo, e a maioria dos arquivos está completa.
- Este disco do jogo Space Quest 2 contém cerca de 70% do código-fonte do interpretador AGI da Sierra On-Line.
Histórico de alterações nos arquivos-fonte
- Alguns arquivos-fonte incluem histórico de alterações nos comentários de cabeçalho.
- Por exemplo, o comentário de cabeçalho do arquivo-fonte
ANIMATE.Cinclui o nome do arquivo, uma descrição da função, o nome do compilador (MWC) e o histórico de alterações. - Os programadores se identificavam usando suas iniciais.
JASé Jeff Stephenson, o principal programador que trabalhou no código do interpretador AGI, eDCIé Chris Iden.- Robert Heitman também é mencionado, mas seu foco era principalmente em ferramentas gráficas.
Mapa de memória do AGI.EXE
- O disco 1 de 720 KB do SQ2 2.0D também inclui um mapa de memória do executável
AGI.EXE. - O mapa de memória fornece uma lista dos módulos e arquivos-fonte que compõem o interpretador AGI.
- Ao todo, 98 arquivos-fonte são mencionados, dos quais 71 estão incluídos integralmente no disco do SQ2.
- Isso significa que cerca de 70% do código-fonte do interpretador AGI está incluído no disco do SQ2.
Propriedade intelectual da Sierra
- Em 1984, a Sierra On-Line lutava para manter o negócio funcionando.
- O sucesso de King’s Quest teve um papel importante em mudar seu destino.
- O sistema de jogos de aventura AGI e os jogos criados com ele eram a principal fonte de receita da Sierra On-Line.
- O código-fonte do interpretador AGI era a principal propriedade intelectual da Sierra.
- O fato de 70% do código-fonte ter sido copiado em massa e enviado aos clientes foi um grande erro.
Como isso aconteceu?
- Quando uma nova versão do jogo ficava pronta, era criado um disco mestre de "cópia de produção" para uso em uma máquina de duplicação de discos FormMaster.
- Essa máquina copiava todos os bytes do disco.
- O disco 1 das versões 2.0D e 2.0F de Space Quest II foi usado sem ter sido formatado.
- Como resultado, centenas de milhares de discos de SQ2 passaram a conter 70% do código-fonte do interpretador AGI.
Um desastre evitado por pouco
- Quase certamente foi um erro não intencional.
- Nem a Sierra, nem os concorrentes, nem os clientes perceberam esse fato.
- Ele foi descoberto pela primeira vez em outubro de 2016 pelo usuário online NewRisingSun.
- Como isso aconteceu no fim da era AGI, não se tornou um grande problema.
- É uma história interessante de arqueologia digital e permite ver como a Sierra On-Line escreveu o interpretador AGI.
Para quem se interessar, o código-fonte extraído do interpretador AGI foi enviado para um repositório no GitHub: https://github.com/lanceewing/agi
Dê uma olhada no AGILE, um interpretador AGI baseado na web. Essa implementação foi guiada pelo código-fonte original do AGI.
Opinião do GN⁺
- O valor da arqueologia digital: este artigo mostra a importância da arqueologia digital. Softwares e dados antigos têm valor histórico e técnico.
- Lições de um erro de segurança: este caso destaca a importância da segurança e da gestão de dados. Ao lidar com dados sensíveis, sempre são necessárias verificação rigorosa e formatação adequada.
- Evidência do avanço tecnológico: o código-fonte do interpretador AGI mostra o progresso técnico do desenvolvimento de jogos nos anos 1980. Isso pode inspirar desenvolvedores modernos.
- O poder do open source: com o código-fonte original tornado público, desenvolvedores modernos têm a oportunidade de estudá-lo e aproveitá-lo em novos projetos.
- O risco para concorrentes: se esse código-fonte tivesse sido descoberto por concorrentes na época, a vantagem competitiva da Sierra On-Line poderia ter sido seriamente prejudicada. Isso relembra a importância de proteger a propriedade intelectual das empresas.
1 comentários
Comentários do Hacker News
Resumo da coletânea de comentários do Hacker News
Double Dragon II: The Revenge for DOS (1989)
DIR, mas podia ser recuperado facilmente.Engenharia reversa de ROM de sintetizador
Memórias de infância com jogos
Os segredos do motor AGI
Mapa de memória e código-fonte
HxD Hex Editor
ROM de Air Fortress
Artefatos de release feitos manualmente
Descoberta de código-fonte
Comentários no histórico de mudanças