DEV Community

Cover image for DOS Zone: 2.049 juegos de MS-DOS jugables en el navegador con js-dos
lu1tr0n
lu1tr0n

Posted on • Originally published at elsolitario.org

DOS Zone: 2.049 juegos de MS-DOS jugables en el navegador con js-dos

DOS Zone es, sin exagerar, el archivo jugable más grande de software de los años 80 y 90 que existe hoy en la web abierta. No es una recreación, no es un remake, no es un port: son los binarios originales de MS-DOS corriendo dentro de una pestaña del navegador, sin instalar nada y sin necesidad de cuenta. Al cierre de este reportaje, su catálogo alcanza 2.049 juegos de MS-DOS, 196 títulos de Windows 3.1/95/98 y un puñado de utilidades históricas como QBasic 4.5.

Detrás de esa accesibilidad hay una pieza técnica concreta: js-dos, un puerto del emulador DOSBox compilado a WebAssembly que ha convertido al navegador en una máquina virtual capaz de ejecutar binarios x86 de 16 y 32 bits. En este reportaje repasamos cómo funciona DOS Zone, qué tiene su catálogo, por qué importa para la preservación digital y cómo cualquier desarrollador puede integrar emulación DOS en su propio sitio.

TL;DR

  • DOS Zone aloja 2.049 títulos de MS-DOS y 196 juegos para Windows 3.1/95/98 ejecutables sin instalar nada.
  • La emulación corre 100% en el navegador con js-dos, un puerto de DOSBox a WebAssembly mantenido en GitHub.
  • El top histórico lo encabezan GTA Vice City (28.567 sesiones), Half-Life Deathmatch (7.891) y Need for Speed (3.241).
  • Soporta multijugador via WebRTC para clásicos como Quake III Arena, Counter-Strike 1.6 y Red Alert 2.
  • Funciona también en móviles Android e iOS con controles táctiles superpuestos sobre el canvas DOS.
  • El catálogo se categoriza por género: 883 acción, 347 estrategia, 284 puzzle, 275 aventura y 210 simuladores.
  • js-dos es Open Source con licencia GPL, lo que permite a cualquier sitio integrar emulación DOS embebida.
  • Es el archivo activo de software DOS más grande de la web junto a Internet Archive Console Living Room.

Qué es DOS Zone

DOS Zone se presenta como un "multiplayer hub" para juegos clásicos. La interfaz es deliberadamente simple: un catálogo navegable por letra (A-Z), por género o por popularidad. Al hacer clic sobre un título, el navegador descarga el bundle del juego, inicializa el emulador y devuelve el control al usuario en cuestión de segundos. No hay instalador, no hay launcher, no hay parches manuales: el emulador se encarga de levantar la imagen del disco, montar la unidad C: virtual y ejecutar el .EXE original.

El proyecto está mantenido por Caiiiycuk (Alexander Guryanov), un desarrollador ruso que también es el autor de la librería de emulación que sostiene todo el ecosistema. DOS Zone es, en cierto modo, la vitrina pública de lo que js-dos puede hacer cuando se le da un catálogo curado y una infraestructura de hosting decente.

Catálogo de DOS Zone con su grilla de juegos clásicos ordenados por popularidad.

Cómo funciona js-dos: DOSBox en WebAssembly

La pieza central de toda la operación es js-dos, un proyecto Open Source bajo licencia GPL alojado en GitHub. Técnicamente, js-dos es un port del emulador DOSBox a WebAssembly usando la cadena de compilación de Emscripten, la herramienta de LLVM que convierte código C/C++ en módulos WASM ejecutables por el navegador.

El stack se ve así: el código C++ de DOSBox (originalmente diseñado para Linux, Windows y macOS) se compila a un módulo WebAssembly que el navegador interpreta nativamente. Ese módulo expone una interfaz JavaScript que gestiona la entrada (teclado, mouse, gamepad), el render del canvas, la salida de audio via Web Audio API y el sistema de archivos virtual.


  Dos(document.getElementById("dos"), {
    url: "https://cdn.dos.zone/custom/dos/digger.jsdos",
    autoStart: true,
  });

Enter fullscreen mode Exit fullscreen mode

Los archivos .jsdos son simplemente bundles ZIP que contienen el binario del juego, los assets, el archivo de configuración dosbox.conf y un manifiesto JSON con metadatos. Esto facilita la portabilidad: cualquier juego DOS puede empaquetarse en este formato y servirse desde un CDN.

💡 Tip: Si querés convertir un juego DOS propio (o uno que ya posees legalmente) a formato jsdos, podés usar el editor web oficial en v8.js-dos.com. Subís los archivos, configurás el ciclo de CPU, los puertos MIDI y el modo de video, y descargás el bundle.

Rendimiento real en el navegador

WebAssembly entrega un rendimiento cercano al nativo para código x86 emulado. En la práctica, juegos del top como DOOM (1993) o Wolfenstein 3D (1992) corren a 70-100 FPS estables en cualquier laptop de los últimos cinco años. Títulos más exigentes como Duke Nukem 3D o Quake requieren que js-dos suba el ciclo de emulación, pero siguen siendo perfectamente jugables.

El mayor reto técnico no son los juegos puros de DOS sino los híbridos: títulos que requieren Windows 3.1, 95 o 98 para funcionar. En esos casos, DOS Zone arranca un Windows completo dentro del emulador, lo cual implica cargar megabytes adicionales de imagen de sistema operativo. La buena noticia es que el navegador moderno tiene IndexedDB y Cache API: una vez descargado, el SO virtual queda cacheado localmente.

Un catálogo categorizado por género

La organización del catálogo es uno de los puntos fuertes de DOS Zone. Los géneros listados con su conteo actual dan una radiografía interesante de qué tipo de software dominaba la era DOS:

  • Acción (883 títulos): la categoría más numerosa, dominada por shoot'em ups y plataformas.
  • Estrategia (347): incluye RTS clásicos como Command & Conquer (1995), Dune II (1992) y WarCraft II.
  • Puzzle (284): desde Tetris hasta lógicos más complejos.
  • Aventura (275): King's Quest, Space Quest, Maniac Mansion y compañía.
  • Arcade (220): ports de máquinas recreativas.
  • Simuladores (210): SimCity, Sim City 2000, simuladores de vuelo.
  • Plataformas (190): Prince of Persia, Disney's Aladdin (1994), Prehistorik.
  • Educacionales (147): Oregon Trail Deluxe, software de tipografía.
  • Wargames (8), 4X (5) y otras categorías de nicho.

El top histórico de sesiones jugadas refleja claramente qué buscan los usuarios cuando aterrizan en DOS Zone: nostalgia mainstream. Grand Theft Auto: Vice City (2002) encabeza con 28.567 partidas; lo siguen Half-Life: Deathmatch (1998) con 7.891, The Need for Speed (1995) con 3.241 y Quake III Arena (1999) con 2.599. Llama la atención que tres de los cuatro primeros lugares no son juegos puros de MS-DOS sino títulos de Windows 9x, lo cual confirma que la categoría "DOS" se ha vuelto un término sombrilla para "juego de PC retro".

Multijugador con WebRTC

Una de las características más impresionantes de DOS Zone es su soporte de multijugador online para juegos que originalmente usaban IPX, conexión modem o LAN. La implementación usa WebRTC para establecer canales peer-to-peer entre navegadores, y js-dos traduce ese canal en paquetes IPX virtuales que el juego percibe como una red local.

Títulos jugables online incluyen Quake III Arena, Counter-Strike 1.6 (corriendo bajo emulación de Windows), Unreal Tournament 99, Red Alert 2, Heroes of Might and Magic III y, sí, las clásicas partidas de Duke Nukem 3D. El "Multiplayer hub" de DOS Zone es esencialmente una sala donde los usuarios eligen un juego y se emparejan por WebRTC.

Flujo conceptual de cómo js-dos ejecuta binarios DOS en el navegador.

graph LR
 A["Usuario hace clic en juego"] --> B["Descarga bundle .jsdos"]
 B --> C["Inicializa módulo WebAssembly"]
 C --> D["DOSBox montado como FS virtual"]
 D --> E["Render en canvas + audio Web Audio"]
 E --> F["Input teclado/mouse/touch"]
 F --> G["WebRTC para multiplayer"]
Enter fullscreen mode Exit fullscreen mode

Por qué importa: preservación de software

Más allá del valor nostálgico, DOS Zone cumple una función crítica de preservación digital. El software de los años 80 y 90 corre el riesgo permanente de volverse inejecutable: los sistemas operativos modernos han eliminado prácticamente todo soporte para binarios de 16 bits (Windows 11, por ejemplo, no ejecuta nativamente ningún DOS), los disquetes físicos se degradan y los manuales en papel se pierden.

Internet Archive mantiene su Console Living Room y la Software Library con miles de títulos jugables vía el mismo motor (Emscripten + DOSBox), pero DOS Zone aporta una curaduría más estricta y una infraestructura optimizada para juego activo, no solo para archivo. Ambos proyectos son complementarios en el ecosistema de preservación.

📌 Nota: El estatus legal de muchos de estos juegos es una zona gris. Algunos son abandonware, otros son freeware oficial, otros están en venta activa en GOG o Steam. DOS Zone responde a takedowns DMCA cuando los publishers reclaman, pero la mayoría de títulos clásicos circulan sin que nadie objete.

Cómo embeber DOS Zone en tu sitio

Para desarrolladores web que quieran integrar emulación DOS en sus propios proyectos, hay dos caminos principales. El primero es usar directamente la librería js-dos como se mostró arriba. El segundo es embeber un iframe directo desde DOS Zone:


Enter fullscreen mode Exit fullscreen mode

Para proyectos educativos —blogs sobre historia de los videojuegos, museos digitales, sitios sobre historia de la computación— esta es una forma trivial de agregar contenido interactivo. La latencia inicial de carga es de 3-8 segundos dependiendo del tamaño del bundle, pero una vez en memoria todo corre suave.

Instalación local de js-dos

Si querés tener control completo del entorno, podés instalar js-dos localmente desde npm:

# Windows / PowerShell
npm install js-dos

# macOS / Linux
npm install js-dos

# CDN sin instalación
# 
Enter fullscreen mode Exit fullscreen mode

El paquete pesa alrededor de 3 MB en su build minificada, lo cual es razonable considerando que incluye un emulador x86 completo.

Limitaciones y consideraciones

DOS Zone y js-dos no son perfectos. Algunas limitaciones conocidas:

  • Audio MIDI imperfecto: la emulación de sintetizadores MIDI clásicos (Roland MT-32, Sound Blaster AWE32) sigue siendo aproximada. Juegos con bandas sonoras complejas pierden fidelidad.
  • Joystick/gamepad limitado: el soporte de la Gamepad API funciona, pero mapear controles a juegos diseñados para teclado puede ser frustrante.
  • Latencia en multiplayer WebRTC: aceptable para juegos por turnos o estrategia, pero los shooters online compiten contra latencias adicionales de relay.
  • Móvil con teclado virtual: jugar Heroes of Might and Magic III en un teléfono Android es técnicamente posible pero no es la experiencia ideal.
  • Save states: el guardado de partida usa IndexedDB, lo cual implica que limpiar caché del navegador borra todo el progreso.

📖 Resumen en Telegram: Ver resumen

Preguntas frecuentes

¿Es legal jugar estos juegos en DOS Zone?

Depende del título. Algunos son freeware o han sido liberados oficialmente; otros están técnicamente protegidos por copyright pero no se comercializan activamente desde hace décadas. DOS Zone retira títulos cuando recibe takedowns DMCA legítimos.

¿Qué es js-dos y dónde está su código?

js-dos es la librería de emulación bajo licencia GPL que sostiene DOS Zone. Su código está en GitHub bajo el usuario caiiiycuk y se puede usar libremente en cualquier proyecto compatible con GPL.

¿Funciona en iOS y Android?

Sí. DOS Zone detecta navegadores móviles y muestra controles táctiles superpuestos sobre el canvas DOS. La experiencia varía según el juego: estrategia y aventura funcionan mejor que shooters o plataformas que requieren respuesta milimétrica.

¿Por qué hay tantos juegos de Windows 9x si se llama DOS Zone?

El nombre es histórico: el proyecto empezó solo con MS-DOS, pero la comunidad pidió Windows clásico y js-dos se expandió para soportarlo. La marca quedó, aunque el alcance creció.

¿Cómo puedo subir un juego propio?

Podés usar el editor de bundle en el sitio oficial de js-dos, generar un archivo .jsdos y servirlo desde tu propio CDN o desde GitHub Pages. Para que aparezca en el catálogo público de DOS Zone hay que enviarlo a través del foro del proyecto.

¿Hay riesgos de seguridad al ejecutar binarios DOS en el navegador?

El sandbox de WebAssembly aísla completamente el código emulado del sistema host. Un .EXE malicioso de DOS no puede tocar tu sistema operativo real porque corre dentro del módulo WASM, que a su vez corre dentro del sandbox del navegador.

Referencias

  • DOS Zone — sitio oficial con el catálogo de 2.049+ juegos.
  • js-dos en GitHub — código fuente del emulador WebAssembly bajo licencia GPL.
  • Internet Archive: MS-DOS Games — colección paralela de juegos DOS jugables en navegador.
  • DOSBox — proyecto original del que deriva js-dos, emulador DOS multiplataforma.
  • WebAssembly.org — especificación oficial de WebAssembly, la tecnología que hace posible la emulación nativa en el navegador.

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Top comments (0)