InícioGamesQuake surpreendeu em 1996 ao usar um único executável no DOS e...

Publicações relacionadas

Quake surpreendeu em 1996 ao usar um único executável no DOS e Windows 95

- Publicidade -

Quando Quake chegou às lojas em 1996, ele não chamou atenção só pelos gráficos totalmente 3D. O jogo também ofereceu partidas via TCP/IP, algo raro fora das LANs naquele momento.

O mais curioso, porém, era invisível para o público: o executável único do Quake rodava tanto no velho DOS quanto no recém-chegado Windows 95. Dois sistemas com modelos de memória distintos falavam a mesma língua graças a uma engenharia ousada.

Como o executável único do Quake burlou as limitações do DOS

A id Software queria alcançar jogadores que ainda dependiam do DOS sem ignorar quem já usava o Windows 95. Para evitar versões diferentes, o estúdio adotou o compilador open source djgpp, que embutia o cliente DPMI go32 no próprio binário.

Essa escolha permitiu que o executável único do Quake conversasse tanto com o CWSDPMI, popular no DOS, quanto com a implementação DPMI interna do Windows. O resultado? Memória protegida, multitarefa e acesso a periféricos além dos 640 KB clássicos, tudo dentro do mesmo arquivo.

- Continua após publicidade -

Raymond Chen, engenheiro da Microsoft, comentou na época que ver um programa usar um extensor DPMI diferente daquele para o qual foi escrito era “surpreendente”. A façanha mostrou que o código podia enganar o próprio sistema, explorando características pouco documentadas do Windows 95.

Parceria com a Mpath levou o TCP/IP do Windows para dentro do jogo

Mesmo com o DPMI resolvido, faltava a parte mais importante: rede moderna no DOS. O Windows 95 oferecia Winsock nativamente, mas o DOS não possuía nada equivalente. A solução veio da Mpath Interactive, criadora do serviço Mplayer.

Quake surpreendeu em 1996 ao usar um único executável no DOS e Windows 95 - Imagem do artigo original

Imagem: Divulgação

Genvxd: a ponte mágica entre BSD sockets e Winsock

O pacote da Mpath incluía o VxD GENVXD.VXD, a DLL genvxd.dll e o Chunnel. Esses componentes interceptavam as chamadas BSD sockets geradas pelo jogo e as traduziam para Winsock, permitindo que o Quake em “modo DOS” falasse com a pilha TCP/IP do Windows.

Assim, bastava estar dentro de uma sessão Windows 95 para que o executável único do Quake abrisse servidores remotos, listasse partidas no Gizmo e mantivesse latência razoável, algo impensável no DOS puro sem hardware adicional caríssimo.

A integração também garantiu que apenas quatro arquivos fossem essenciais para iniciar o jogo localmente: quake.exe, config.cfg, pak0.pak e cwsdpmi.exe. Todo o restante servia à compatibilidade de rede ou ao matchmaking, revelando um ecossistema de hacks que, até hoje, encanta quem estuda retro-computação.

Ao unir compiladores, extensores de memória e drivers virtuais, John Carmack e equipe mostraram que criatividade vence limitações. Não à toa, o caso é referência frequente aqui na OrdemGeek quando o assunto é compatibilidade entre plataformas.

Acesse diariamente nossas dicas sobre animes e games para não perder nada. Siga também o OrdemGeek no Facebook!

- Anúncio -

Últimas publicações