DOOM ported to the dos-like framework

Overview

build

doom-for-dos-like

This is a quick but fairly complete version of the original DOOM ported to the dos-like framework. The data included is for original DOOM shareware version.

It can be built as a Windows executable or as WebAssembly to run in a browser. I have not tried running it for Linux or Mac, but the code builds at least.

You can try the web version at https://mattiasgustavsson.com/wasm/doom

Operating

While running, you can use F11 to toggle between fullscreen and windowed mode.

To start in windowed mode, add the flag -w or --window to the commandline when launching.

Building

dos-like does not make use of any complicated build systems - a simple command line call to the compiler is all that is needed to build both the Doom code and the engine itself.

Windows

From a Visual Studio Developer Command Prompt:

  cl source\doom.c source\dos.c

Mac

  clang source/doom.c source/dos.c `sdl2-config --libs --cflags` -lGLEW -framework OpenGL -lpthread

SDL2 and GLEW are required - if you don't have them installed you can do so with Homebrew by running

  brew install sdl2 glew  

Linux

  gcc source/doom.c source/dos.c `sdl2-config --libs --cflags` -lGLEW -lGL -lm -lpthread

SDL2 and GLEW are required - if you don't have them installed you can do so on Ubuntu (or wherever apt-get is available) by running

  sudo apt-get install libsdl2-dev
  sudo apt-get install libglew-dev

WebAssembly

  wasm\node wasm\wajicup.js -embed doom1.wad doom1.wad -template template.html source\doom.c source\dos.c doom.html

A WebAssembly build environment is required. You can download it (for Windows) here: github.com/mattiasgustavsson/dos-like/releases/tag/wasm-env. Unzip it so that the wasm folder in the zip file is at your repository root.

The wasm build environment is a compact distribution of node, clang/wasm-ld, WAjic and wasm system libraries.

You might also like...
WebAssembly from Scratch: From FizzBuzz to DooM.

WebAssembly from Scratch: From FizzBuzz to DooM Exploring WebAssembly from scratch from a backend-person-point-of-view. A story in four acts. Welcome

Speed Running and Competition Doom. For strictly vanilla speed runs and competitions - forked from CNDoom

Speed Running and Competition Doom Speed Running and Competition Doom is based on Chocolate Doom and aims to accurately reproduce the original DOS ver

Run Linux programs on DOS
Run Linux programs on DOS

A WSL alternative for users who prefer an MS-DOS environment. DOS Subsystem for Linux integrates a real Linux environment into MS-DOS systems, allowing users to make use of both DOS and Linux applications from the DOS command prompt.

AMD K6-2 (CXT) / K6-2+ / K6-3 / K6-3+ Write Allocate / Write Combine / Write Ordering / Frequency Multiplier Initialization driver for MS-DOS

K6INIT What is this? This is a driver for MS-DOS to replace k6dos.sys which is a bit useless and unflexible. It does not support the CXT versions of t

PoC (DoS) for CVE-2021-40449 - Win32k Elevation of Privilege Vulnerability (LPE)
PoC (DoS) for CVE-2021-40449 - Win32k Elevation of Privilege Vulnerability (LPE)

CallbackHell DoS PoC for CVE-2021-40449 (Win32k - LPE) CallbackHell Description Technical Writeup PoC References Description CVE-2021-40449 is a use-a

Armazena a tabela nutricional dos alimentos em um banco de dados (SQLITE), salva as quantidades em um arquivo EXCEL, informando se a meta diária foi batida.

QT-Controle-de-Dieta Armazena a tabela nutricional dos alimentos em um banco de dados (SQLITE), salva as quantidades em um arquivo EXCEL, informando s

Resolve DOS MZ executable symbols at runtime
Resolve DOS MZ executable symbols at runtime

NtSymbol Resolve DOS MZ executable symbols at runtime Example You no longer have not have to use memory pattern scan inside your sneaky rootkit. Pass

Use DOS object files (OMF) as patch files

omfpatch - Use Intel/Microsoft .OBJ files as binary diffs Overview This tool makes it possible to use MASM / TASM / JWasm / nasm as tool to write patc

Adjust Cirrus Logic CL-GD542x memory clock (DOS tool)

clmclk This is a tool for DOS to adjust Cirrus Logic CL-GD542x memory clock. This tool works on ISA and VL graphics cards with the CL-GD542, CL-GD5426

Owner
Mattias Gustavsson
https://twitter.com/Mattias_G
Mattias Gustavsson
A DOOM 32 extension for DOS using increased limits beyond what DOOM32 provides.

DOOM128 A DOOM 32 extension for DOS using increased limits beyond what DOOM32 provides. Why Because having a DOS compatible DOOM source port that incr

Gibbon 10 May 5, 2022
A ZX Spectrum-like library built for "dos-like" by Mattias Gustavsson.

ZX-Like A ZX Spectrum-like library built for "dos-like" by Mattias Gustavsson. It allows for the creation of ZX Spectrum like screens for demos, games

Oli Wilkinson 3 Oct 20, 2021
Fork of sm64pc/sm64ex ported to iOS devices.

sm64ex-ios Fork of sm64pc/sm64ex ported to iOS devices. Feel free to report bugs and contribute, but remember, there must be no upload of any copyrigh

Christian Kosman 293 Dec 26, 2022
Portedplugins - A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere

PortedPlugins A collection of plugins for the SuperCollider sound environment, all of which are ported / remixed from elsewhere - including hardware s

mads kjeldgaard 126 Dec 20, 2022
SuperTux Milestone 1 ported to the Dreamcast (again)

- An introduction for SuperTux - http://super-tux.sf.net/ Last update: April 26, 2004 Dreamcast port by Headshotnoby Turns out this game was alread

Headshotnoby 3 Jun 7, 2022
Doom port for InfOS - the University of Edinburgh Informatics research operating system used in the UG3 OS course

Doom on InfOS InfOS is the Informatics research operating system, designed specifically for the UG3 Operating Systems course. This project aims to por

Cheng Kai 14 Aug 20, 2022
DOOM BSP renderer for ZenithOS.

Zenith DOOM This project ports the DOOM BSP renderer to Zenith for use in custom games. It includes a zos/ directory in src/ which has includes that e

null 3 Jun 10, 2021
Doom port to the Ikea Tradfri RGB1923R5 and any device using Silicon labs EFR32MG21 based modules

MG21DOOM Doom port to the Ikea Tradfri RGB1923R5 lamp and any device using Silicon labs EFR32MG21 based modules. Coded by Nicola Wrachien. WARNING Do

null 20 Aug 2, 2022
Fork of dsda-doom with experiments

dsda-doom-experiments This is my personal fork of dsda-doom for running experiments. This breaks demo compatibility. DO NOT USE. The current experimen

jsd1982 1 Oct 7, 2021
old 'cross' project of DooM for various platforms

README - DOOM assembly code Okay, I add the DOS assembly module for the historically inclined here (may rec.games.programmer suffer). If anyone feels

null 3 Dec 27, 2022