1 pontos por GN⁺ 2024-07-15 | 1 comentários | Compartilhar no WhatsApp

Projeto de restauração de Emperor: Battle for Dune

O que é Emperor: Battle for Dune?

  • Jogo de estratégia em tempo real criado pela Westwood Studios em 2001
  • Sequência de Dune 2000, com gráficos 3D, UX aprimorada e uma excelente trilha sonora
  • Atualmente, não é muito conhecido

Problemas

  • Não oferece suporte a altas resoluções em sistemas modernos
  • No modo multijogador, a velocidade do jogo fica rápida demais, tornando-o impossível de jogar
  • Como o Westwood Online (WOL) não funciona, o multijogador fora da LAN é impossível
  • Não é possível jogar o modo campanha em cooperação
  • O instalador está corrompido
  • Efeitos visuais quebram por causa da alta taxa de quadros

Como os problemas foram resolvidos

  • Foi escrito um programa para substituir o Emperor.exe e controlar o Game.exe
  • Patches foram aplicados por meio de injeção de DLL

Injeção de patch

  • Código injetado no Game.exe usando o truque de CreateRemoteThread e LoadLibrary
  • Funções existentes modificadas com a biblioteca detours

Patch gráfico

Janela em alta resolução

  • O problema de resolução foi resolvido com o patch LegacyD3DResolutionHack de UCyborg
  • Letterboxing adicionado para manter a proporção 4:3

Limite de taxa de quadros

  • O método IDirect3DDevice7::EndScene foi corrigido para limitar o FPS a 60

Patch de rede

  • As funções de multijogador foram restauradas usando o modo WOL
  • O winsock foi interceptado para tunelar toda a comunicação por meio de uma única conexão cliente-servidor

Criação de um servidor IRC

  • Implementação de um servidor IRC básico para substituir o servidor mestre do WOL

Empacotamento

Substituição do instalador

  • Como o instalador original estava corrompido, foi criada uma nova ferramenta de instalação
  • Aplicação do patch v1.09

Componente de internet compartilhado do Westwood Online

  • O WOLAPI.DLL foi registrado como uma biblioteca de classes COM para restaurar as funções do WOL

UI do launcher

  • Foi criada uma UI básica de launcher para ajustar configurações simples

Conclusão

  • O objetivo foi alcançado, permitindo que Emperor: Battle for Dune rode sem problemas em sistemas modernos
  • As funções de multijogador foram restauradas, incluindo o modo campanha cooperativa

Resumo do GN⁺

  • Este projeto é um importante trabalho de preservação cultural, permitindo que jogos antigos sejam aproveitados novamente em sistemas modernos
  • Ele resolve desafios técnicos interessantes, e o processo de corrigir especialmente os problemas gráficos e de rede é impressionante
  • Um projeto com funções semelhantes é o dxwrapper, um wrapper de DirectX

1 comentários

 
GN⁺ 2024-07-15
Comentários do Hacker News
  • É possível baixar Emperor: Battle for Dune no archive.org

    • Link
    • Compartilhamento de informações para quem quer experimentar o jogo junto com o patch do wheybags
    • Também encontrou listas antigas de lançamentos piratas
    • Ficou surpreso ao descobrir que também existe a trilha sonora OST
  • Este jogo tem grande importância para o gênero RTS

    • Foi um dos precursores do RTS clássico com trabalhadores colhendo recursos
    • Isso acabou sendo assim por causa do romance original, e sem ele é possível que o gênero RTS tivesse seguido outro caminho
  • Westwood Online (WOL) não funciona mais

    • O multiplayer só é possível via LAN
    • O XWIS.net ofereceu muito suporte depois que o WOL saiu do ar
    • O projeto FreeRA também pode ajudar a fazer o WOL funcionar
    • Substituir as bibliotecas do WOL pode ser relativamente fácil
  • Relato de experiência ao corrigir o código de rede de Tiberian Sun há 10 anos

    • Mergulhar no código de outra pessoa é como ter uma conexão compartilhada
    • Ficou surpreso ao descobrir que havia uma pilha separada para jogo via modem
  • Passa a impressão de que o autor é uma pessoa divertida e inteligente

    • As explicações expansíveis foram muito úteis e divertidas
    • Fica em dúvida se CS:GO foi aposentado em 2023 ou apenas rebatizado como CS2
  • Sugestão de integração com o CnCNet

    • Convite para jogar junto no CnCNet
  • Reação à expressão "modem de 28.8 BPS"

    • "active matrix, milhões de cores alucinógenas"
  • Reação à frase "não sou um engenheiro de reversão experiente", comum em posts de blog

    • Você já acumulou experiência suficiente, então pode ter mais confiança
  • Agradecimento pelo artigo, muito interessante e aprofundado

    • Viu o jogo em uma loja local de usados, mas como só tinha jogado Dune II, não comprou
    • Agora decidiu que precisa comprar
  • Expressa paixão por design de UI

    • Lembra um post do blog de Steve Yegge