Ele pode rodar Doom? Minha jornada pelo inferno para descobrir por que a resposta é sempre “sim”

Com seu legado de décadas, o meme “Can it run Doom” é uma das piadas mais antigas e queridas da Internet. Mas cresceu e se tornou muito mais do que isso. É um rito de passagem para aspirantes a desenvolvedores.

Dê um passeio pelo que se tornou meu subreddit favorito recentemente, r/itrunsdoom , e você verá a tocha sendo corajosamente levada adiante até hoje. Desde o It Runs Doom! A página do Tumblr parou de postar atualizações há cerca de um ano, a comunidade Reddit cresceu para mais de 100.000 membros que postam e reagem ao Doom ser portado para praticamente qualquer coisa. Calculadoras, terminais de cartão de crédito – claro. Mas também o Nintendo Alarmo , um RS Media Robot de 2006 , e um multijogador Pioneer DJ . E isso é apenas dos últimos meses.

Quanto mais eu caí na toca do coelho em portas estranhas do Doom , mais comecei a me perguntar de onde a ideia se originou – e mais importante, por que isso é possível. Para começar, de quem foi essa ideia absurda? Para descobrir a história, eu precisaria vasculhar os anais infernais da história da Internet na década de 1990 e falar com alguns dos hackers de olhos arregalados que mantêm viva a tradição hoje.

Por que desgraça?

Nossa história não começa em 1993, quando Doom foi lançado. Começa quatro anos depois, em 1997. Em 23 de dezembro daquele ano, dois dias antes do Natal, a id Software lançou o código-fonte de Doom. O mentor John Carmack, que escreveu o código original, escreveu uma carta à comunidade que ainda vive na página GitHub do Doom. Sim, ainda hoje, mesmo depois de uma grande corporação como a Zenimax ter engolido a id Software (a Zenimax foi então engolida pela Microsoft), o código-fonte do Doom ainda existe.

“Não tenho uma boa estimativa de quantas pessoas vão brincar com isso, mas se projetos significativos forem realizados, seria legal ver um nível de cooperação comunitária”, escreveu Carmack na carta. “Eu sei que a maioria dos projetos iniciais serão hacks feitos isoladamente, mas ficaria muito satisfeito em ver um lançamento líquido coordenado de uma versão melhorada e compatível com versões anteriores do Doom em múltiplas plataformas no próximo ano.” Carmack até forneceu aos leitores algumas ideias de projetos em potencial.

A comunidade começou a portar Doom imediatamente. Quero dizer isso literalmente. A primeira porta fonte do Doom, DOSDoom, foi publicada no mesmo dia em que o código-fonte foi lançado. Você ainda pode baixá-lo hoje . O código-fonte original publicado pela id Software era apenas para a versão Linux do Doom. O código DOS não estava disponível devido a uma biblioteca de sons protegida por direitos autorais – “Uau, isso foi um erro”, escreveu Carmack em sua carta. “Eu escrevo meu próprio código de som agora.”

A partir daí, há uma genealogia extremamente densa e complicada de portas de origem do Doom que vem acontecendo há décadas. No ano passado, apareceu um fork de outra porta de origem chamada PrBoomX . Francamente, essa genealogia está fora do escopo deste artigo. Cobri-lo sozinho exigiria um artigo muito maior do que este já é. Eu queria saber sobre as coisas estranhas.

Felizmente, não demorou muito para que as coisas ficassem estranhas. A versão mais antiga de Doom que consegui encontrar foi para a calculadora gráfica Texas Instruments TI-82, que foi carregada em ticalc.org em 12 de abril de 1998 . Está escrito em Basic, então é menos uma porta e mais um clone de má qualidade. Mas mesmo há 26 anos, havia interesse em fazer com que Doom rodasse em plataformas para as quais não se destinava.

Durante a próxima década, não restará muito na Internet exibindo Doom rodando nessas plataformas estranhas – quero dizer, o YouTube nem foi ao ar até 2005. Provavelmente havia muitos “hacks brutos feitos isoladamente, ”como Carmack previu, no entanto. Em 1998, várias câmeras com o sistema operacional DigitaOS foram lançadas e, como o canal LGR do YouTube mostrou há alguns anos, você pode rodar Doom nessas câmeras. Lembre-se do DigitaOS. Voltaremos a isso na próxima seção.

Alguém realmente fez Doom rodar em uma dessas câmeras em 1998? Não pelo que pude encontrar, mas meu palpite é que é uma resposta perdida no tempo – ou pelo menos na internet. Mas desde os primeiros dias em que o código-fonte foi lançado e posteriormente portado para diferentes plataformas, está claro que pelo menos algumas experiências aconteceram. Uma das primeiras referências que pude encontrar a uma versão adequada do Doom foi uma postagem no fórum Doomworld de 2007 , onde o autor vincula a um vídeo (agora excluído) no YouTube do jogo rodando em uma calculadora TI-83.

Em outubro de 2013, o It Runs Doom! A página do Tumblr foi ao ar e, após mostrar algumas versões básicas do jogo, o autor compartilhou um vídeo de Doom sendo tocado em um piano .

Depois de vasculhar o Tumblr, Reddit, YouTube e simplesmente o velho Google, no entanto, há um vídeo que continua aparecendo. É o vídeo de Doom da LGR na TI-83 . Publicado em 2017, o vídeo acumulou mais de 7 milhões de visualizações e é de longe a fonte mais popular de Doom rodando em um dispositivo não convencional que pude encontrar em minha pesquisa. A ideia de que Doom pode rodar em qualquer coisa remonta a quando o jogo foi lançado pela primeira vez, e tem sido uma ideia com a qual os entusiastas brincaram anos depois. A obsessão moderna em rodar o Doom em uma série de dispositivos estranhos, no entanto, parece resultar, pelo menos em parte, do vídeo da LGR sobre o assunto.

Doom é icônico e essa é sem dúvida a razão por trás da obsessão em portá-lo. Mas também há uma mistura de vários fatores dentro do próprio jogo que o torna um candidato ideal para esses tipos de projetos de hackers entusiastas.

O matador de demônios altamente portátil

Antes de entrar em alguns detalhes mais técnicos sobre o que tornou Doom tão portátil, nada disso teria acontecido se Doom não fosse uma referência cultural certificada. Dizer que Doom era incrivelmente popular é um eufemismo. O fundador da Valve, Gabe Newell – que trabalhava na Microsoft quando Doom foi lançado – estimou que Doom foi instalado em mais computadores do que o Windows em 1993 . Mesmo que isso seja hiperbólico, não há como negar que Doom foi uma sensação.

Poucos meses após o lançamento de Doom , em 1994, a Universal Pictures comprou os direitos para fazer um filme. Newell se ofereceu para fazer uma versão gratuita do Doom para o Windows. A Intel proibiu a instalação do Doom em computadores de trabalho. Em um comunicado de imprensa anunciando o jogo , a id Software escreveu: “esperamos plenamente que [ Doom ] seja a causa número um da diminuição da produtividade nas empresas em todo o mundo”.

John Carmack trabalhando em Quake nos escritórios da id Software.
Shack Notícias / ID Software

“Muitos começaram a se maravilhar com a forma como a id poderia fazer com que empresas como a Microsoft ou a IBM parecessem obsoletas. Eu peguei o fenômeno do shareware e o transformei em uma receita para o vício”, diz Masters of Doom, de David Kushner.Doom era tão convincente que as pessoas simplesmente precisavam tomar a dose completa. Alguns o apelidaram de 'heroinware'. A revista Forbes publicou um artigo entusiasmado intitulado Lucros do Subterrâneo sobre como a id, de fato, estava tornando obsoletas empresas como a Microsoft. 'A id Software, de propriedade privada, não divulga dados financeiros', dizia, 'mas pelo que pude descobrir sobre a margem de lucro da empresa, isso faz a Microsoft parecer uma empresa de cimento de segunda categoria.'”

A popularidade pode ter sido a partida que iniciou o incêndio, mas para que Doom pudesse rodar em tantas plataformas diferentes, eram necessários três elementos-chave. Primeiro, o código-fonte precisava estar disponível gratuitamente. Verificar. Carmack optou por cuidar dessa etapa sozinho. Afinal, você poderia rodar o Super Mario Bros original na maioria dos eletrônicos modernos, mas boa sorte para encontrar o código-fonte.

Mas aqui estão os dois pontos que precisam de um pouco mais de explicação. As portas de origem precisam estar disponíveis para praticamente qualquer plataforma que você desejar e, por último, o jogo precisa ser escrito para rodar com requisitos de software e hardware extremamente baixos, mesmo para os padrões do final dos anos 1990.

Existem alguns outros jogos que possuem alguns desses elementos. Mas Doom, combinado com sua popularidade avassaladora, atinge todos os três. E como o desenvolvedor Sick.Codes me explicou, Doom se tornou “um dos jogos mais portados do planeta, onde alguém, em algum momento, o compilou até mesmo para as arquiteturas mais aleatórias”.

Deixe-me demonstrar.

Aqui está um link para uma versão do Doom que você pode jogar no seu navegador. Nada de especial, certo? Existem dezenas de maneiras de jogar Doom no seu navegador, mas se você olhar a barra de endereço, encontrará algo interessante. A versão do Doom que você pode jogar é um arquivo SVG. É um arquivo vetorial – algo que você carregaria no Photoshop. Supõe-se que sejam imagens estáticas e, certamente, imagens com as quais você não pode interagir. Mas aqui está o Doom rodando dentro de um SVG que você pode jogar no seu navegador.

Outro fato importante é que os PCs não eram a plataforma ideal para jogar em 1993, quando os aceleradores gráficos 3D eram caros e difíceis de encontrar, e a maioria desses chips era usada em máquinas de fliperama e consoles domésticos. Se a id Software fosse desenvolver um jogo, e especialmente se a empresa fosse distribuí-lo como shareware, como fez com Commander Keen e Wolfenstein anteriormente, ele precisava rodar em praticamente qualquer coisa.

Gzalo faz parte do grupo voluntário argentino Cybercirujas que recebe peças de PC como doações e as recondiciona. O desenvolvedor conseguiu fazer o Doom rodar em um terminal de pagamento Verifone VX620 que encontrou no lixo.

“[Doom] só precisa de um framebuffer (área de memória que mapeia para a tela) para gerar imagens e algumas entradas muito básicas. Em termos de software, você só precisa ser capaz de compilar C para a arquitetura alvo, que é quase sempre um dos primeiros requisitos necessários para escrever programas para processadores de 32 bits”, disse o desenvolvedor Gzalo. “Para portar outros jogos mais recentes, muitas vezes você precisa ter um sistema operacional (normalmente algo como Linux/Posix) e alguma forma de suportar OpenGL, o que é viável, mas requer mais trabalho.”

Gzalo passou a explicar o quão pouco Doom precisava de software para funcionar.

“O software do terminal não é modificado. Encontrei um cara no Brasil que trabalhou com esse terminal há uma década e ainda tinha o certificado de desenvolvimento e uma forma de assinar uma aplicação, então ela está rodando um código assinado válido”, me disse o desenvolvedor.

Ter requisitos mínimos de software é importante, mas o lado do hardware é igualmente crucial. Não é novidade que Doom não precisava de muito hardware para funcionar. Os requisitos de sistema originais do jogo exigiam uma CPU 386 rodando a pelo menos 25 MHz e 4 MB de RAM. Para algum contexto, o 80386 foi o primeiro processador x86 de 32 bits que a Intel já lançou e começou a aparecer em PCs em 1986 – sete anos antes do lançamento de Doom . Fazer o Doom rodar em praticamente qualquer coisa foi intencional.

O próprio Carmack disse que, a certa altura, existia até uma versão que podia rodar sem monitor e simplesmente salvar capturas de tela.

Os requisitos básicos de software e hardware para Doom nos trazem de volta ao DigitaOS. O sistema operacional é escrito em C e permitiu o desenvolvimento e lançamento de aplicativos de terceiros para a plataforma. As duas primeiras câmeras lançadas com DigitaOS — a Kodak DC220 e DC260 — vieram ambas com processadores PowerPC 800 . Pela minha estimativa, eles usaram o MPC860, que pode ir até 80MHz. A LGR afirma que o chip dentro do DC260, pelo menos, atinge 66MHz.

E assim, os requisitos para rodar Doom foram atendidos. Temos um CPU muito mais capaz que o 386 rodando a 25 MHz, um toque de memória e uma plataforma capaz de compilar código escrito em C. Só para não estragarmos a linha do tempo, isso foi possível em 1998. Houve nada que veio depois que de repente permitiu que Doom rodasse em um Kodak DC260. Os blocos de construção estavam todos lá desde o início.

No entanto, isso não é tudo porque Doom é um programa perfeito. É muito flexível e altamente portátil para dispositivos modernos, mas uma parte significativa dessa história se resume ao fato de que o código-fonte é gratuito para qualquer pessoa editar. Nas últimas quase três décadas, portas de origem do Doom surgiram para quase todas as plataformas imagináveis. Se você não consegue executar o Doom em algo com o código-fonte original, é quase certo que você poderá executá-lo com uma das muitas portas de origem.

Eu sei que você estava esperando – vamos falar sobre o SVG. Doom pode ser executado dentro de um arquivo vetorial porque SVGs suportam JavaScript. Como diz o desenvolvedor do Doom SVG , o arquivo vetorial está simplesmente executando js-dos – um emulador DOS de código aberto baseado em JavaScript – e então usando uma das várias portas de origem DOS do Doom. E embora possa parecer alguma forma de magia de programação, o desenvolvedor se refere a isso como nada mais do que “um uso divertido de algumas horas”. Isso diz tudo.

Como Doom se tornou um hack mínimo viável

Doom rodando em um display de trator John Deere.
Kyle Wiens/IFixIt

Em 2022, Sick.Codes exibiu Doom rodando em um display de trator John Deere. Ele foi apresentado na Def Con 2022, uma conferência anual sobre segurança cibernética e hackers que acontece em Las Vegas desde 1993 – ironicamente, no mesmo ano em que Doom foi lançado. Além de apenas colocar Doom em execução, o porto apresentava um trator em vez de armas, permitindo que você literalmente derrubasse demônios. É uma porta divertida, mas Sick.Codes diz que demorou meses para começar a funcionar. Por que todo o esforço?

Se você está familiarizado com o direito de reparar movimentos, provavelmente já ligou os pontos aqui. Os equipamentos John Deere, criados pela Deere & Company, têm estado no centro do direito ao movimento de reparação , e não de uma forma positiva. A corporação tem travado uma luta legal de anos com os agricultores devido ao seu software bloqueado. É quase impossível reparar o equipamento sem o envolvimento direto da Deere. Fazer o Doom rodar em um monitor de trator John Deere é mais do que apenas um truque divertido. É uma prova de conceito.

“Executar o Doom no principal display de máquinas agrícolas da John Deere, que eles passaram milhares de horas desenvolvendo ao longo de vários anos, mostra que fui capaz de hackear completa e totalmente o dispositivo”, disse-me Sick.Codes. “Se eu conseguir executar o Doom em seus dispositivos principais, posso fazer qualquer outra modificação não autorizada no dispositivo. Eu posso bloquear isso. Eu posso melhorá-lo. Posso instalar software de terceiros. Posso excluir recursos ou posso instalar recursos que deveriam custar dinheiro.”

Neste caso, Doom é a prova de um trabalho mais profundo e importante. Em um relatório da Wired que cobriu a história há dois anos, o desenvolvedor compartilhou que conseguiu acessar 1,5 GB de logs armazenados na máquina devido ao acesso root. Esses registros destinam-se apenas a técnicos de reparo certificados da John Deere. Com eles, os agricultores ou especialistas externos podem diagnosticar e potencialmente reparar equipamentos John Deere, mesmo sem o envolvimento direto da Deere & Company.

Doom requer um pequeno número de bibliotecas para rodar, nomeadamente SDL2 para gráficos, portanto, ser capaz de rodar o jogo em um dispositivo que não deveria rodar Doom , prova que você pode rodar software arbitrário no dispositivo em que está trabalhando, ”Sick.Codes me disse.

É divertido ver Doom rodando em uma tela de trator, e certamente não quero tirar a alegria disso. Mas é importante destacar aqui o contexto mais amplo. Você pode tentar instalar outro software em um dispositivo como este, mas Doom é um candidato ideal para exibir esse tipo de hack. É visual, interativo e é um programa criado para um propósito muito específico. Também chama muita atenção – você acha que veríamos notícias sobre alguma interface de linha de comando rodando no display de um trator John Deere? Provavelmente não.

Embora eu não queira subestimar a quantidade de trabalho envolvido nisso – lembre-se, essa exploração levou meses para funcionar – Doom também é um programa relativamente simples de exibir. Sick.Codes me disse que eles usaram Chocolate Doom para a demonstração, que é uma porta de origem construída para rodar em tantas configurações diferentes de hardware e software quanto possível. Quero dizer, há até uma página no wiki do Chocolate Doom especificamente dedicada ao quão portátil é a porta de origem . Se não tivéssemos o código-fonte original, e se esse código-fonte não fosse portado tantas vezes, provavelmente não teríamos esta demonstração. Ainda seria possível, certamente, mas quem pode dizer que isso realmente teria acontecido?

Bem vindo ao inferno

Disquetes para Doom 2.
John Romero/Ebay

Doom é um dos jogos mais influentes já feitos, e grande parte disso se deve às circunstâncias em que foi criado. O código altamente otimizado para PC atendeu ao modelo shareware para tornar o jogo extremamente popular, e sua comunidade de modding cresceu como uma bola de neve quando o código-fonte foi lançado em 1997. Hoje, não temos apenas uma das maiores e mais acessíveis plataformas de modding através do Doom, mas também um aplicativo que sobreviveu em muito ao seu propósito original.

Comecei a sentir nostalgia ao escrever esta história, e você pode estar se sentindo da mesma maneira depois de lê-la. Se estiver, recomendo baixar GZDoom e brincar com alguns dos níveis insanos que foram criados ao longo dos anos – você também pode encontrar os arquivos WAD originais dos dois primeiros jogos arquivados online. Se você quiser se aprofundar, confira o documentário no MyHouse.WAD, se ainda não o fez (o vídeo tem cerca de 13 milhões de visualizações), ou melhor ainda, baixe o nível você mesmo .

E, se você quiser manter o espírito de colocar Doom em lugares onde não deveria estar, alguns desenvolvedores generosos documentaram suas jornadas em diferentes dispositivos. Há um artigo para instalá-lo nos fones de ouvido Ikko Activebuds e outro para instalá-lo em um telefone VoIP . Há também uma postagem detalhada sobre como portar o jogo para o terminal de pagamento VX620 mencionado anteriormente.

Independentemente de como você aproveita, expande ou muda completamente o Doom, divirta-se no inferno. Centenas de milhares de fãs e desenvolvedores estão esperando por você.