From 785e581f0f483aff17421c1a8eae0d6d40cab0de Mon Sep 17 00:00:00 2001 From: mattiasgustavsson Date: Thu, 7 Mar 2024 18:46:31 +0100 Subject: [PATCH] Updated README --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/README.md b/README.md index cc7ed89..e00f1d7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,68 @@ +DOOM-CRT +======== + +One thing I’ve wanted to do for some time, is take the original source +code release for DOOM, the one that only had linux support, and make my +own port to windows, utilizing my single header libs and putting my crt +filter on top of it. This is that thing. + +Now, there are a lot of great windows ports, fixing bugs and adding +features, and most of them would be a better choice if you want a DOOM +which runs well on windows, or if you want some code to do serious work +on top of. My port won’t try to compete with those efforts. + +The main reason I’m doing it is for my own enjoyment. I’ve never really +poked around in the DOOM code properly before, but always wanted to. + +And also, I think it might be useful to make available a simple and +minimalistic port. One which modifies the original code as little as +possible, uses as few dependencies as possible (no large external +frameworks) and which can be built without a complex build system. + +It is not using any large frameworks, but relies on a few stb-style +single-file header-only libraries (which are all placed in the `libs_win32` +folder) which I have written myself - with the notable exception of +the TinySoundFont library, which is used as a back-end for music playback. + +It’s not a particularly nice port, quick and dirty is more like it. +Feel free to fork it and clean it up if you want to :-) + +I had to make a few extra changes to make it so you can build it to WASM +for running in a browser, but those changes are contained to a single commit, +so if you don't want them, just checkout the commit prior to that one. + +How to build +------------ +To build, start a visual studio developer command prompt and run the command: + + cl doom.c + +This should give you a runnable `doom.exe`. The wad file for the +shareware version is in the repo as well, so you should be good to run +the exe straight away. Enjoy! + +You can also build with Tiny C Compiler: + + tcc\tcc doom.c + +You can download tcc here: [tiny-c-compiler](https://github.com/mattiasgustavsson/template_project/releases/tag/tiny-c-compiler) for either 32 or 64 bit Windows. Unzip it so that the `tcc` folder in the zip file is at your repository root. + +It can also be built into an HTML file to run in a browser, using WAjic: + + wasm\node wasm\wajicup.js doom.c doom.html -embed doom1.wad doom1.wad -rle -template template.html + +A WebAssembly build environment is required. You can download it (for Windows) here: [wasm-build-tools-win](https://github.com/mattiasgustavsson/template_project/releases/download/wasm-build-tools/wasm-build-tools-win.zip). +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](https://nodejs.org/en/download/), [clang/wasm-ld](https://releases.llvm.org/download.html), +[WAjic](https://github.com/schellingb/wajic) and [wasm system libraries](https://github.com/emscripten-core/emscripten/tree/main/system). + + +/Mattias Gustavsson + +------------------------------------------------------------------------ +## ORIGINAL README FROM ORIGINAL SOURCE CODE RELEASE FOLLOWS +------------------------------------------------------------------------ Here it is, at long last. The DOOM source code is released for your non-profit use. You still need real DOOM data to work with this code.