1 puntos por GN⁺ 2024-07-15 | 1 comentarios | Compartir por WhatsApp

Proyecto de restauración de Emperor: Battle for Dune

¿Qué es Emperor: Battle for Dune?

  • Un juego de estrategia en tiempo real creado por Westwood Studios en 2001
  • Secuela de Dune 2000, destacada por sus gráficos 3D, una UX mejorada y una excelente banda sonora
  • Actualmente no es muy conocido

Problemas

  • No admite resoluciones altas en sistemas modernos
  • En multijugador, la velocidad del juego se vuelve demasiado rápida y no se puede jugar
  • Como Westwood Online (WOL) no funciona, no hay multijugador fuera de LAN
  • No se puede jugar el modo campaña en cooperativo
  • El instalador está dañado
  • Los efectos visuales se rompen debido a las altas tasas de cuadros

Cómo se resolvieron los problemas

  • Se escribió un programa que reemplaza Emperor.exe para controlar Game.exe
  • Se inyecta una DLL para aplicar parches

Inyección de parches

  • Se inyecta código en Game.exe usando el truco de CreateRemoteThread y LoadLibrary
  • Se modifican funciones existentes con la librería detours

Parche gráfico

Ventana de alta resolución

  • Se usa el parche LegacyD3DResolutionHack de UCyborg para resolver el problema de resolución
  • Se añade letterboxing para mantener la proporción 4:3

Límite de tasa de cuadros

  • Se parchea el método IDirect3DDevice7::EndScene para limitar los FPS a 60

Parche de red

  • Se restaura la funcionalidad multijugador usando el modo WOL
  • Se intercepta winsock para tunelizar toda la comunicación a través de una sola conexión cliente-servidor

Escritura de un servidor IRC

  • Se implementó un servidor IRC básico para reemplazar el servidor maestro de WOL

Empaquetado

Reemplazo del instalador

  • Como el instalador original está dañado, se escribió una nueva herramienta de instalación
  • Se aplicó el parche v1.09

Componentes compartidos de Internet de Westwood Online

  • Se restaura la funcionalidad de WOL registrando WOLAPI.DLL como una biblioteca de clases COM

UI del lanzador

  • Se creó una UI básica de lanzador para ajustar configuraciones simples

Conclusión

  • Se logró el objetivo de hacer que Emperor: Battle for Dune funcione sin problemas en sistemas modernos
  • Se restauró la funcionalidad multijugador, incluido el modo campaña cooperativo

Resumen de GN⁺

  • Este proyecto es un importante trabajo de preservación cultural que permite volver a disfrutar un juego antiguo en sistemas modernos
  • Resuelve desafíos técnicos interesantes, y resulta especialmente impresionante el proceso para solucionar los problemas gráficos y de red
  • Un proyecto con funciones similares es un wrapper de DirectX como dxwrapper

1 comentarios

 
GN⁺ 2024-07-15
Comentarios de Hacker News
  • Emperor: Battle for Dune se puede descargar desde archive.org

    • Enlace
    • Comparten la información para quienes quieran probar el juego junto con el parche de wheybags
    • También desenterraron una lista de lanzamientos pirata del pasado
    • Les sorprendió descubrir que también existe la banda sonora OST
  • Este juego tiene una gran importancia dentro del género RTS

    • Fue uno de los primeros RTS típicos con recolectores de recursos
    • Tomó esta forma gracias a la novela original, y de no haber sido así, el género RTS podría haber seguido otro camino
  • Westwood Online (WOL) ya no funciona

    • El multijugador solo es posible por LAN
    • XWIS.net dio mucho soporte después de que WOL quedara fuera de línea
    • El proyecto FreeRA también podría ayudar a hacer funcionar WOL
    • Reemplazar la biblioteca de WOL podría ser relativamente fácil
  • Comparten una experiencia de hace 10 años parcheando el código de red de Tiberian Sun

    • Meterse en el código de otra persona es como tener una conexión compartida
    • Les sorprendió descubrir que había una pila separada para jugar por módem
  • Da la impresión de que el autor es una persona divertida e inteligente

    • La explicación ampliable fue muy útil y entretenida
    • Se preguntan si CS:GO se retiró en 2023 o si simplemente fue renombrado como CS2
  • Sugieren una posible integración con CnCNet

    • Invitan a jugar juntos en CnCNet
  • Reacción a la expresión "módem de 28.8 BPS"

    • "matriz activa, millones de colores alucinantes"
  • Reacción a la frase "no soy un ingeniero en reversa experimentado", que suele aparecer en publicaciones de blogs

    • Ya tiene suficiente experiencia acumulada, así que debería tener más confianza
  • Agradecen el artículo por ser muy interesante y profundo

    • Vieron el juego en una tienda local de segunda mano, pero como solo habían jugado Dune II no lo compraron
    • Ahora decidieron que definitivamente deben comprarlo
  • Expresan pasión por el diseño de UI

    • Les recordó una publicación del blog de Steve Yegge