Materiais do vídeo
FreedoomJogo livre · grátis↗Código-fonte do Doom (id Software)GitHub · C · GPL↗Unofficial Doom SpecsDoom Wiki · inglês↗SLADE, editor de WADSite · grátis↗Ultimate Doom BuilderGitHub · editor de fases↗Cheat EngineSite · busca na memória↗REA no CofreCofre · guia de instalação↗Como os fãs abriram o Doom sem ter o código (e como fazer hoje)
O Freedoom para jogar e estudar de graça, o formato WAD explicado, os primeiros editores de fase, o truque da memória, a tabela dos monstros no código da id Software e o REA, que faz engenharia reversa com IA.
Você veio do vídeo de como os fãs abriram o Doom sem ter o código e aqui está tudo para fazer igual: o Freedoom (a versão livre e gratuita que aparece no vídeo), o código que a id Software liberou depois, a história dos primeiros editores feitos por fãs, o truque da memória e o REA, que faz esse trabalho com IA hoje.
Resumo pra quem tem pressa
| Nome | O que faz | Preço | Link |
|---|---|---|---|
| Freedoom | Jogo completo e livre que roda no motor do Doom | Grátis | freedoom.github.io |
| Código do Doom | O código-fonte que a id Software publicou em 1997 | Grátis (GPL) | github.com/id-Software/DOOM |
| Cheat Engine | Procura e congela números na memória de um jogo | Grátis | cheatengine.org |
| REA | Dá para a sua IA as ferramentas de engenharia reversa | Grátis (MIT) | github.com/morluto/rea |
| Ultimate Doom Builder | Editor de fases moderno | Grátis | GitHub |
1. Por que o jogo chega sem o código
O Doom saiu em dezembro de 1993. O que você compra (ou baixa) não é o código que os programadores escreveram, e sim o resultado da compilação: um arquivo com instruções em zeros e uns, feito para o processador ler. Pensa numa receita de bolo e no bolo pronto. Você recebe o bolo. Dá para olhar, provar e cortar, mas a receita não vem junto.
O Doom tinha duas partes: o executável (o motor do jogo) e um arquivo de dados chamado WAD, com fases, imagens, sons e monstros. Foi no WAD que os fãs começaram a mexer.
2. Abrindo o WAD: os bytes crus
Os fãs abriram o WAD num editor hexadecimal, um programa que mostra cada byte do arquivo como número. No começo parece barulho. Até que aparecem padrões: o arquivo começa com as letras IWAD, e lá no fim tem um diretório, uma lista de pedaços com nome. Cada fase tem os mesmos pedaços, sempre na mesma ordem: THINGS (monstros e itens), LINEDEFS (paredes), SIDEDEFS, VERTEXES (os pontos, em coordenadas x e y), SECTORS e outros.
No vídeo, tudo isso é real: os bits, os bytes e o mapa da fase E1M1 foram tirados do arquivo freedoom1.wad.
Quem juntou essas descobertas foi o Matt Fell, no documento Unofficial Doom Specs, de 1994. Ele descreve o formato do WAD, das imagens e das fases, e virou a base de quase tudo que veio depois.
Dica: para ver o diretório de um WAD sem programar, abra o arquivo no SLADE, um editor de WAD gratuito. Ele lista cada pedaço pelo nome.
3. Os primeiros editores de fase
Com o formato entendido, vieram os editores. O DEU (Doom Editing Utilities), de Raphaël Quinet e Brendon Wyber, teve a primeira versão completa em janeiro de 1994, um mês depois do lançamento do jogo. Foi o primeiro contato com criação de fases para muita gente. Daí nasceram os mods, e o Doom virou um dos jogos mais modificados da história.
Hoje o editor mais usado é o Ultimate Doom Builder, gratuito e com visualização em 3D.
4. O truque da memória (vida 100)
É o truque do vídeo, e ele funciona em muito jogo antigo, não só no Doom:
- Abra o jogo e um programa de busca na memória, como o Cheat Engine.
- Sua vida é 100: procure o número 100. Vão aparecer milhares de endereços.
- Tome um tiro. A vida cai, por exemplo, para 85.
- Procure 85 só entre os endereços que tinham 100. A lista encolhe.
- Repita até sobrar um endereço. É ali que o jogo guarda a sua vida.
- Congele esse endereço: o programa reescreve o valor o tempo todo e você não morre mais.
Dica: use só em jogo de um jogador e offline. Em jogo online isso dá banimento. O Cheat Engine pede que o usuário seja maior de idade e, no instalador, recuse qualquer oferta extra que aparecer.
5. A tabela dos monstros (o Imp com 1 de vida)
Dentro do executável existe uma tabela com os dados de cada monstro: vida, velocidade, sons. Em 1994, o Greg Lewis lançou o DeHackEd, que edita essa tabela direto no executável. Trocar a vida do Imp de 60 para 1 faz ele morrer num soco.
Em 23 de dezembro de 1997, a id Software publicou o código-fonte do Doom. No arquivo info.c, a mesma tabela aparece escrita: no bloco MT_TROOP (o Imp) está a linha 60, // spawnhealth. É o trecho que aparece no vídeo. Hoje o código está no GitHub da id Software, com licença GPL.
6. O Freedoom: o Doom livre
O Doom original é pago, então as imagens do vídeo são do Freedoom. É um projeto de fãs que recriou do zero todas as fases, monstros, sons e imagens com conteúdo livre. O Freedoom usa o mesmo formato de arquivo, então serve para estudar o WAD sem pirataria.
Como jogar:
- Baixe o Freedoom na página de download (quando este texto foi escrito, a versão era a 0.13.0, de janeiro de 2024).
- Baixe um motor moderno do Doom, como o GZDoom ou o Chocolate Doom.
- Coloque o
freedoom1.wad(ou ofreedoom2.wad) junto do motor e abra.
7. O REA: engenharia reversa com IA
O que os fãs levaram meses para fazer em 1994, hoje uma IA ajuda a fazer bem mais rápido. O REA (Reverse Engineer Anything) é um projeto aberto que entrega para o seu agente de IA (Claude Code, Codex, Cursor, Gemini CLI e outros) as ferramentas de engenharia reversa, como Ghidra e Hopper. Você pergunta em português o que quer entender, e a IA abre o programa, segue o caminho e te mostra a evidência.
Ele não devolve o código-fonte original: mostra pseudocódigo e de onde tirou cada conclusão. A instalação passo a passo está na minha página do REA no Cofre.
Dica: use engenharia reversa para estudar e nos seus próprios programas. Em programa dos outros, ela pode violar os termos de uso.
Pra ir mais fundo
Documentação e história
- Unofficial Doom Specs, no Doom Wiki: o documento de 1994 que explicou o formato do WAD.
- WAD, no Doom Wiki: o formato explicado pedaço por pedaço, com exemplos.
- DEU, no Doom Wiki: a história do primeiro editor completo.
- DeHackEd, no Doom Wiki: como os fãs editavam a tabela de monstros dentro do executável.
Código
- DOOM, da id Software: o código liberado em 1997. Abra
linuxdoom-1.10/info.ce procureMT_TROOP.
Ferramentas
- SLADE: abre qualquer WAD e mostra cada pedaço.
- Ultimate Doom Builder: para criar a sua primeira fase.
Glossário rápido
- Compilar: transformar o código que a pessoa escreve no arquivo que o processador executa.
- WAD: o arquivo de dados do Doom, com fases, imagens e sons ("Where's All the Data?").
- Editor hexadecimal: programa que mostra cada byte de um arquivo como número.
- Endereço de memória: a "gaveta" numerada onde o jogo guarda um valor enquanto está aberto.
- Mod: uma modificação feita por fãs, como fase, monstro ou regra nova.
- Engenharia reversa: descobrir como algo funciona por dentro sem ter o projeto original.
Gostou? Tem mais coisa assim no Cofre, e no Instagram @heliofilhou sai tecnologia todo dia.