ref: e2b4804903d9b9a3e02ec9c8ff0e975e126453cd
parent: 77c680f7d3f238902e4036bd6d2908b68dd198c4
author: Mike Swanson <mikeonthecomputer@gmail.com>
date: Wed Jun 8 00:36:43 EDT 2016
Convert the rest of the doc files to Markdown.
--- a/HACKING
+++ /dev/null
@@ -1,213 +1,0 @@
-
-Coding style guidelines
-=======================
-
-The coding style guidelines for Chocolate Doom are designed to keep the
-style of the original source code. This maintains consistency throughout
-the program, and does not require the original code to be changed. Some
-of these guidelines are stricter than what was done in the original
-source; follow these when writing new code only: there is no need to
-change existing code to fit them.
-
-You should set tabs to _display_ as eight spaces, not four. However,
-_indentation_ should be four spaces. If possible, do not use tab
-characters at all. There is a utility called "expand" which will remove
-tab characters. For the reasoning behind this, see:
-http://www.jwz.org/doc/tabs-vs-spaces.html
-
-Please write code to an 80 column limit so that it fits within a standard
-80 column terminal. Do not leave trailing whitespace at the end of lines.
-
-Functions should be named like this: 'AB_FunctionName'. The 'AB' prefix
-denotes the subsystem (AM_ for automap, G_ for game, etc). If a
-function is static, you can omit the prefix and just name it like
-'FunctionName'. Functions and global variables should always be made
-static if possible.
-
-Put '_t' on the end of types created with typedef. Type names like this
-should be all lowercase and have the subsystem name at the start. An
-example of this is 'txt_window_t'. When creating structures, always
-typedef them.
-
-Do not use Hungarian notation.
-
-Do not use the goto statement.
-
-Use C++-style comments, ie. '//' comments, not '/* ... */' comments.
-I don't care that this isn't standard ANSI C.
-
-Variables should be named like this: 'my_variable_name', not like this:
-'MyVariableName'. In pointer variable declarations, place the '*' next
-to the variable name, not the type.
-
-When using an if, do, while, or for statement, always use the { } braces
-even when they are not necessary. For example, do this:
-
- if (condition)
- {
- body;
- }
-
-Not this:
-
- if (condition) // NO
- body;
-
-Write code like this:
-
-typedef struct
-{
- int member1;
- char *member2;
-} my_structure_t;
-
-void FunctionName(int argument, int arg2, int arg3, int arg4, int arg5,
- int arg6, int arg7)
-{
- int assign_var;
-
- assign_var = arg2 + arg3 * arg4 * (arg5 + arg6);
-
- if (foo && !bar || baz && qux || !(foo && bar && baz))
- {
- body;
- }
- else if (xyz + 4 < abc * 4 + 3)
- {
- body;
- }
- else
- {
- body;
- }
-
- if (very_long_condition_like_this_one_that_forces_a_line_break
- && other_condition)
- {
- body;
- }
-
- switch (argument)
- {
- case FIRST:
- code;
- break;
-
- case SECOND:
- code;
- break;
-
- default:
- break;
- }
-
- for (a = 0; a < 10; ++a)
- {
- FunctionCall(arg1, arg2, arg3, arg4,
- arg_split_onto_second_line);
- }
-
- while (a < 10)
- {
- loop_body;
- }
-
- do
- {
-
- } while (condition);
-}
-
-Security
-========
-
-The C standard library has a number of unsafe functions that should be
-avoided when writing code for Chocolate Doom. These are:
-
- Unsafe function Safer alternative
- ---------------------------------------------
- gets() fgets(.., stdin)
- sprintf M_snprintf()
- snprintf M_snprintf()
- vsprintf M_vsnprintf()
- vsnprintf M_vsnprintf()
- strcpy() M_StringCopy()
- strncpy() M_StringCopy()
- strcat() M_StringConcat()
- strncat() M_StringConcat()
- strdup() M_StringDuplicate()
-
-Lots of the code includes calls to DEH_String() to simulate string
-replacement by the Dehacked tool. Be careful when using Dehacked
-replacements of printf format strings. For example, do not do this:
-
- printf(DEH_String("foo %s"), s);
- sprintf(mybuf, DEH_String("bar %s"), t);
-
-Instead do this:
-
- DEH_printf("foo %s", s);
- DEH_snprintf(mybuf, sizeof(mybuf), "bar %s", t);
-
-This does the format string replacement safely in a way that checks
-the arguments securely.
-
-
-Portability
-===========
-
-Chocolate Doom is designed to be cross-platform and work on different
-Operating Systems and processors. Bear this in mind when writing code.
-
-Do not use the long type (its size differs across platforms; use
-int or int64_t depending on which you want).
-
-Use Doom's byte data type for byte data. 'int' is assumed to be a
-32-bit integer, and 'short' is a 16-bit integer. You can also use the
-ISO C99 data types: intN_t and uintN_t where N is 8,16,32,64.
-
-Be careful with platform dependencies: do not use Windows API
-functions, for example. Use SDL where possible.
-
-Preprocessor #defines are set that can be used to identify the OS
-if necessary: _WIN32 for Windows and __MACOSX__ for MacOS X. Others
-are set through SDL. Try to avoid this if possible.
-
-Be careful of endianness! Doom has SHORT() and LONG() macros that
-do endianness conversion. Never assume that integer types have a
-particular byte ordering. Similarly, never assume that fields
-inside a structure are aligned in a particular way. This is most
-relevant when reading or writing data to a file or a network pipe.
-
-For signed integers, you shouldn't assume that (i >> n) is the same as
-(i / (1 << n)). However, most processors handle bitshifts of signed
-integers properly, so it's not a huge problem.
-
-
-GNU GPL and licensing
-=====================
-
-All code submitted to the project must be licensed under the GNU GPL or a
-compatible license. If you use code that you haven't 100% written
-yourself, say so. Add a copyright header to the start of every file. Use
-this template:
-
-//
-// Copyright(C) YEAR Author's name
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-//
-// *File description goes here*
-//
-
-# vim: tw=70
-
--- /dev/null
+++ b/HACKING.md
@@ -1,0 +1,215 @@
+# Coding style guidelines
+
+The coding style guidelines for Chocolate Doom are designed to keep the
+style of the original source code. This maintains consistency throughout
+the program, and does not require the original code to be changed. Some
+of these guidelines are stricter than what was done in the original
+source; follow these when writing new code only: there is no need to
+change existing code to fit them.
+
+You should set tabs to *display* as eight spaces, not four. However,
+*indentation* should be four spaces. If possible, do not use tab
+characters at all. There is a utility called “expand” which will remove
+tab characters. For the reasoning behind this, see:
+http://www.jwz.org/doc/tabs-vs-spaces.html
+
+Please write code to an 80 column limit so that it fits within a standard
+80 column terminal. Do not leave trailing whitespace at the end of lines.
+
+Functions should be named like this: `AB_FunctionName`. The `AB` prefix
+denotes the subsystem (`AM_` for automap, `G_` for game, etc). If a
+function is static, you can omit the prefix and just name it like
+`FunctionName`. Functions and global variables should always be made
+static if possible.
+
+Put `_t` on the end of types created with typedef. Type names like this
+should be all lowercase and have the subsystem name at the start. An
+example of this is `txt_window_t`. When creating structures, always
+typedef them.
+
+Do not use Hungarian notation.
+
+Do not use the goto statement.
+
+Use C++-style comments, ie. `//` comments, not `/* ... */` comments.
+I don’t care that this isn’t standard ANSI C.
+
+Variables should be named like this: `my_variable_name`, not like this:
+`MyVariableName`. In pointer variable declarations, place the `*` next
+to the variable name, not the type.
+
+When using an if, do, while, or for statement, always use the { } braces
+even when they are not necessary. For example, do this:
+
+```c
+if (condition)
+{
+ body;
+}
+```
+
+Not this:
+
+```c
+if (condition) // NO
+ body;
+```
+
+Write code like this:
+
+```c
+typedef struct
+{
+ int member1;
+ char *member2;
+} my_structure_t;
+
+void FunctionName(int argument, int arg2, int arg3, int arg4, int arg5,
+ int arg6, int arg7)
+{
+ int assign_var;
+
+ assign_var = arg2 + arg3 * arg4 * (arg5 + arg6);
+
+ if (foo && !bar || baz && qux || !(foo && bar && baz))
+ {
+ body;
+ }
+ else if (xyz + 4 < abc * 4 + 3)
+ {
+ body;
+ }
+ else
+ {
+ body;
+ }
+
+ if (very_long_condition_like_this_one_that_forces_a_line_break
+ && other_condition)
+ {
+ body;
+ }
+
+ switch (argument)
+ {
+ case FIRST:
+ code;
+ break;
+
+ case SECOND:
+ code;
+ break;
+
+ default:
+ break;
+ }
+
+ for (a = 0; a < 10; ++a)
+ {
+ FunctionCall(arg1, arg2, arg3, arg4,
+ arg_split_onto_second_line);
+ }
+
+ while (a < 10)
+ {
+ loop_body;
+ }
+
+ do
+ {
+
+ } while (condition);
+}
+```
+
+## Security
+
+The C standard library has a number of unsafe functions that should be
+avoided when writing code for Chocolate Doom. These are:
+
+Unsafe function | Safer alternative
+------------------|------------------------
+`gets()` | `fgets(.., stdin)`
+`sprintf` | `M_snprintf()`
+`snprintf` | `M_snprintf()`
+`vsprintf` | `M_vsnprintf()`
+`vsnprintf` | `M_vsnprintf()`
+`strcpy()` | `M_StringCopy()`
+`strncpy()` | `M_StringCopy()`
+`strcat()` | `M_StringConcat()`
+`strncat()` | `M_StringConcat()`
+`strdup()` | `M_StringDuplicate()`
+
+Lots of the code includes calls to DEH_String() to simulate string
+replacement by the Dehacked tool. Be careful when using Dehacked
+replacements of printf format strings. For example, do not do this:
+
+```c
+printf(DEH_String("foo %s"), s);
+sprintf(mybuf, DEH_String("bar %s"), t);
+```
+
+Instead do this:
+
+```c
+DEH_printf("foo %s", s);
+DEH_snprintf(mybuf, sizeof(mybuf), "bar %s", t);
+```
+
+This does the format string replacement safely in a way that checks
+the arguments securely.
+
+## Portability
+
+Chocolate Doom is designed to be cross-platform and work on different
+Operating Systems and processors. Bear this in mind when writing code.
+
+Do not use the `long` type (its size differs across platforms; use
+`int` or `int64_t` depending on which you want).
+
+Use Doom’s byte data type for byte data. `int` is assumed to be a
+32-bit integer, and `short` is a 16-bit integer. You can also use the
+ISO C99 data types: `intN_t` and `uintN_t` where N is 8, 16, 32, 64.
+
+Be careful with platform dependencies: do not use Windows API
+functions, for example. Use SDL where possible.
+
+Preprocessor `#defines` are set that can be used to identify the OS
+if necessary: `_WIN32` for Windows and `__MACOSX__` for Mac OS X. Others
+are set through SDL. Try to avoid this if possible.
+
+Be careful of endianness! Doom has `SHORT()` and `LONG()` macros that
+do endianness conversion. Never assume that integer types have a
+particular byte ordering. Similarly, never assume that fields
+inside a structure are aligned in a particular way. This is most
+relevant when reading or writing data to a file or a network pipe.
+
+For signed integers, you shouldn’t assume that `(i >> n)` is the same as
+`(i / (1 << n))`. However, most processors handle bitshifts of signed
+integers properly, so it’s not a huge problem.
+
+## GNU GPL and licensing
+
+All code submitted to the project must be licensed under the GNU GPLv2 or a
+compatible license. If you use code that you haven’t 100% written
+yourself, say so. Add a copyright header to the start of every file. Use
+this template:
+
+```
+//
+// Copyright(C) YEAR Author's name
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+//
+// *File description goes here*
+//
+```
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,9 +39,9 @@
DOC_FILES= \
README.md \
- README.Music \
- NEWS \
- PHILOSOPHY \
+ README.Music.md \
+ NEWS.md \
+ PHILOSOPHY.md \
ChangeLog
EXTRA_DIST= \
@@ -49,15 +49,15 @@
$(MSVC_FILES) \
$(CODEBLOCKS_FILES) \
$(DOC_FILES) \
- NOT-BUGS \
- README.Strife \
+ NOT-BUGS.md \
+ README.Strife.md \
.lvimrc \
- HACKING \
- TODO \
+ HACKING.md \
+ TODO.md \
rpm.spec
doomdocsdir = ${docdir}/../${PROGRAM_PREFIX}doom
-doomdocs_DATA = $(DOC_FILES) NOT-BUGS
+doomdocs_DATA = $(DOC_FILES) NOT-BUGS.md
hereticdocsdir = ${docdir}/../${PROGRAM_PREFIX}heretic
hereticdocs_DATA = $(DOC_FILES)
@@ -66,7 +66,7 @@
hexendocs_DATA = $(DOC_FILES)
strifedocsdir = ${docdir}/../${PROGRAM_PREFIX}strife
-strifedocs_DATA = $(DOC_FILES) README.Strife
+strifedocs_DATA = $(DOC_FILES) README.Strife.md
MAINTAINERCLEANFILES = $(AUX_DIST_GEN)
--- a/NEWS
+++ /dev/null
@@ -1,1178 +1,0 @@
-HEAD:
-
- General:
- * Bash completion scripts are included. (thanks Fabian)
- * Support the *.lmp file format in the OS X launcher (thanks Jon)
- * Added emulation for pitch-shifting as in early versions of Doom,
- Heretic, and Hexen. (thanks Jon)
- * Write out aspect-correct 1600×1200 PNGs. (thanks Jon)
- * OPL emulation is more accurate. (thanks Nuke.YKT)
- * Futher emulation of DMX bugs with GUS cards. (thanks Nuke.YKT)
- * Emulation of the disk icon has returned. (thanks Fabian, Jon)
- * Checksum calculations were fixed on big endian systems, allowing
- multiplayer games to be played in mixed little/big-endian
- environments. (thanks GhostlyDeath, njankowski)
-
- Build systems:
- * Improved compatibility with BSD Make. (thanks R.Rebello)
- * “./configure --with-PACKAGE” checks were repaired to behave
- logically, rather than disabling the feature. (thanks R.Rebello)
- * Default to installing the games to ${bindir}, such as /usr/local/bin,
- rather than /usr/local/games. (thanks chungy)
- * Support Visual Studio 2015. (thanks Azarien)
- * Allow SDL headers and libraries to exist in the Microsoft Visual
- Studio project directory. (thanks Quasar)
- * Repaired the CodeBlocks projects by removing non-existent files from
- the project files (thanks krystalgamer)
-
- Doom:
- * Chex Quest's level warp cheat (LEESNYDER##) was changed to behave
- like the original EXE. (thanks Nuke.YKT)
- * Allow starting multiplayer Chex Quest games.
- * Allow Freedoom: Phase 1 ≤ 0.10.1 to be loaded with mods, with
- -gameversion older than ultimate. (thanks Fabian, chungy)
- * Added safety checks against write failures when saving a game,
- such as when the directory is read-only. Try falling back to a
- temporary directory and reporting an error instead.
- (thanks terrorcide)
- * Versions 1.666, 1.7, and 1.8 are emulated. (thanks Nuke.YKT)
-
- Heretic:
- * Added map names for Episode 6, fixing a crash after completing a
- level in this episode. (thanks J.Benaim)
-
- Hexen:
- * The MRJONES cheat code returns an identical string as vanilla,
- and enables fully reproducable builds. (thanks Fabian)
- * Fixed an issue where the game crashed while killing the Wraithverge
- in 64-bit builds. (thanks J.Benaim)
-
- Strife:
- * Support added for automatic loading of the IWAD from the GOG.com
- release of Strife: Veteran Edition on Windows. (thanks chungy)
- * Jumping can be bound to a mouse button. (thanks Gez)
- * Gibbing logic was changed to match vanilla behavior. (thanks Quasar)
- * Several constants differences from vanilla were fixed. (thanks
- Nuke.YKT, Quasar)
- * When using -iwad, voices.wad from the IWAD's directory is prefered
- over auto-detected DOS/Steam/GOG.com installs. (thanks Quasar)
-
- libtextscreen:
- * Simplified the API for creating and managing tables and columns.
- * Allow cycling through tables with tab key.
-
-2.2.1 (2015-09-10):
-
- Chocolate Doom has not seen a great deal of "stable" patch
- releases in its history. While the development tree sees major new
- features and changes, the purpose of this release, and hopefully
- others to follow like it, is to repair some deficiencies that
- existed in 2.2.0.
-
- General:
- * Preferences for the OS X launcher are now stored with a unique
- name to not conflict with other applications. (thanks Xeriphas1994)
- * Unix desktop entry files are now brought up to full desktop
- entry specification compliance. (thanks chungy, Fabian)
- * Unix AppData entries are now included, allowing software centers
- to display detailed information about the engines. (thanks chungy)
- * Partial XDG base directory specification compliance on Unix
- systems now exist to search for IWAD paths. One benefit is that
- $HOME/.local/share/games/doom is now a valid location to store
- and automatically find IWADs. (thanks chungy)
-
- Build systems:
- * The Microsoft Visual Studio build system was not fully
- functional in 2.2.0 and has been fixed. (thanks Linguica)
- * The autoconf build system checks for windres only for Windows
- toolchains. Some Linux distributions mistakingly include the
- program in their native toolchains. (thanks Fabian)
- * A compiler hint for packed structs has been added, which
- otherwise broke the games when built under recent GCC releases
- for Windows. (thanks Fabian)
-
- Doom:
- * The GOG.com releases of The Ultimate Doom, Doom II, and Final
- Doom are now detected and supported on Windows. (thanks chungy)
- * An integer overflow was used in spawn angle calculation,
- undefined C behavior which broke with Clang optimization.
- (thanks David Majnemer for insight)
-
- Setup tool:
- * The help URL for the level warp menu now points to the proper
- wiki page, rather than the multiplayer page.
- * The manifest has been updated for Windows 10 compatibility.
- (thanks chungy)
-
-2.2.0 (2015-06-09):
-
- * The Hexen four level demo IWAD is now supported. Thanks to
- Fabian Greffrath for his careful investigation and emulation of
- the demo game's behavior in developing this.
- * OPL music playback has been improved in a number of ways to
- match the behavior of Vanilla Doom's DMX library much more
- closely. OPL3 playback is also now supported. Thanks go to
- Alexey Khokholov for his excellent research into the Vanilla
- DMX library that enabled these improvements.
- * New gamepad configurations:
- - PS4 DualShock 4 (thanks Matt '3nT' Davis).
- - Xbox One controller on Linux (thanks chungy).
- - "Super Joy Box 7" USB/PC gameport adapter.
- * The Doom reload hack has been added back. See the wiki for more
- context on this: http://doomwiki.org/wiki/Reload_hack
- * The IWAD file from Strife: Veteran Edition is now detected
- automatically (thanks chungy).
- * It's now possible to build outside of the source directory
- (thanks Dave Murphy).
- * MSVC project files were brought up to date (thanks dbrackett16).
- * M_StringDuplicate() has been added as a safer replacement for
- strdup() (thanks Quasar). M_StringCopy() now handles short
- buffers more gracefully.
- * The netgame discrepancy window is now dismissed by pressing
- enter to proceed, not escape (thanks Alexandre-Xavier).
- * A couple of source files that were in the previous release and
- were GPL3 have been replaced by GPL2 equivalents. Previous
- releases that included these files should be retroactively
- considered GPL3.
-
- Bug fixes:
- * A long-standing bug that could cause every display frame to be
- rendered twice was fixed (thanks Linguica, Harha, Alexandre-
- Xavier).
- * Lots of endianness fixes were integrated that were found by
- Ronald Lasmanowicz during development of his Wii port of
- Chocolate Doom, including a fix for a bug that could cause
- monsters to become partially invisible.
- * DeHackEd files without a newline character at the EOF are now
- correctly parsed (thanks Fabian).
- * An infinite loop that could occur in the weapon cycling code
- was fixed (thanks raithe, Fabian).
- * Mouse input triggered by cursor warp was fixed (thanks Super6-4).
- * Loop tags in substitute music files are ignored if both of the
- loop tags are equal to zero. This makes us consistent with
- other source ports that support the tags.
- * It's now possible to more conveniently play back demo .lmp
- files with names that end in the all-caps '.LMP' (thanks Ioan
- Chera).
- * Some code that accessed memory after freeing it was fixed. Two
- new parameters, -zonezero and -zonescan, were added to try to
- help detect these cases.
- * Mistaken assumptions about representations of booleans that
- affected some ARM systems were fixed (thanks floppes).
- * memcpy() uses on overlapping memory were changed to use
- memmove(), fixing abort traps on OpenBSD (thanks ryan-sg).
- * Hyphens in manpages were fixed (thanks chungy, Fabian).
- * Lots of compiler build warnings were fixed (thanks Fabian).
-
- Setup tool:
- * The setup tool now has help buttons for its various different
- screens, which link to articles on the wiki that give more
- information (thanks to chungy for helping to put the wiki pages
- together).
- * A fix was applied for a buffer overrun that could occur if the
- user had lots of IWAD files installed (thanks Fabian).
- * A crash related to username lookup was fixed.
- * It's now possible to connect via the setup tool to multiplayer
- servers that are not listening on the default port (thanks
- Alexandre-Xavier).
-
- Doom:
- * Sky transitions when emulating the id anthology version of the
- Final Doom executable were fixed (thanks Alexandre-Xavier,
- Fabian, chungy).
- * Structure fields in the stair-building functions were fixed to
- be deterministic, fixing a desync in mm09-512.lmp (thanks
- Fabian).
-
- Hexen:
- * A bug with texture names that had long names was fixed (thanks
- ETTiNGRiNDER).
- * Minotaur spawn time is now stored in little endian format,
- fixing a bug that affected compatibility with Vanilla savegames
- on big endian systems.
- * Code that starts ACS scripts is no longer compiler-dependent.
-
- Strife (all these are thanks to Quasar):
- * Sound priority was changed, so that the ticking sound that
- Stalker enemies make while active matches Vanilla behavior
- (thanks GeoffLedak).
- * Minor fixes to game behavior to match Vanilla, discovered
- during development of Strife: Veteran edition.
- * Behavior of descending stairs was fixed to match Vanilla.
- * Inventory items beyond the 8-bit range are now allowed in
- netgames.
- * Automap behavior better matches Vanilla now.
- * Multiplayer name changes were fixed.
- * Sound origin behavior for switches was fixed.
- * Teleport beacon behavior was fixed.
- * Default Strife skill level and screen size were changed to
- match Vanilla.
- * Bug was fixed where Rowan would not always take Beldin's ring.
- * Totally-invisible objects are now displayed correctly, and a
- Vanilla glitch with Shadow Acolytes is correctly emulated.
- * The level name for MAP29 (Entity's Lair) was fixed (thanks
- chungy).
-
- libtextscreen:
- * The main loop now exits immediately once all windows are closed
- (thanks Alexander-Xavier).
- * The large font is no longer selected based entirely on screen
- size.
-
-2.1.0 (2014-10-22):
-
- Chocolate Doom now supports high-quality substitute music packs
- that are used in place of the original MIDI music tracks. I'm
- hoping to put together high-quality recordings of the music for
- all supported games using the Roland SC-55 synthesizer
- originally used to compose Doom's music (thanks twipley and
- MusicallyInspired).
-
- Support for joysticks and gamepads has been significantly
- improved in this version. Most gamepads should now work; if they
- don't, please report a bug. A number of gamepads are now
- automatically detected and configured automatically; if yours is
- not, you can help by sending in details. See the following page:
-
- http://www.chocolate-doom.org/wiki/index.php/Adding_your_gamepad
-
- OPL MIDI playback has been significantly improved, and problems
- with most tracks should now be resolved. Multi-track MIDI files now
- play back properly, MIDI tempo meta events are now supported and
- problems with stuttering when playing certain tracks have been
- fixed. If you still have problems with OPL playback, let me know.
-
- Also of note is that Chocolate Doom now has a document that
- describes the philosophy of the project and the reasoning behind
- its design (see PHILOSOPHY distributed with the source).
-
- Other new features:
- * There is now a -dehlump command line parameter to load Dehacked
- files contained inside WAD files (thanks Fabian Greffrath).
- * PNG format screenshots are now supported, and there is a
- dedicated key binding for taking screenshots without needing to
- always use -devparm (thanks Fabian Greffrath). The PrintScreen
- key can be used as a key binding (thanks Alexandre-Xavier).
- * There is now a config file variable (snd_maxslicetime_ms) to
- control the sound buffer size, and the default is more precise
- to reduce sound latency (thanks Holering).
- * You can now use an external command for music playback (thanks
- Holering).
- * All games now detect if you're tring to play using the wrong
- type of IWAD (doom.wad with Hexen, etc.) and exit with a
- helpful error message. A couple of users made this mistake
- after the 2.0 release introduced support for the new games.
- * The OS X app now associates with .hhe and .seh files.
- * There is now a -nodes parameter that automatically starts a
- netgame when a desired number of players have joined the game.
- * There is now more extensive documentation about music
- configuration (README.Music).
- * On Linux, a GUI pop-up is used when the game quits with an
- error to show the error message (thanks Willy Barro).
- * There are now Linux .desktop files for all supported games
- (thanks Mike Swanson).
- * The -geometry command line parameter can now be used to specify
- fullscreen or windowed modes, eg. -geometry 640x480w or
- -geometry 1024x768f. (thanks Mike Swanson)
-
- Doom:
- * Minor workarounds were added to allow the BFG Edition IWADs to
- be used without crashing the game (thanks Fabian Greffrath).
- * GUS patch files included with the BFG Edition are now
- automatically detected.
- * The 'no fog on spawn west' Vanilla bug is now correctly
- emulated (thanks xttl).
- * Behavior of older versions of Doom back to v1.666 can now be
- emulated.
- * The new Freedoom IWAD names are now recognized and supported.
- * Freedoom's DEHACKED lump can now be parsed and is automatically
- loaded when a Freedoom IWAD file is used (thanks Fabian
- Greffrath). A new command line parameter, -nodeh, can be used
- to prevent this from being loaded.
- * Behavior of the M_EPI4 menu item is now correctly emulated
- based on game version (thanks Alexandre-Xavier).
- * IDCLEV up to MAP40 is now supported, to match Vanilla (thanks
- Alexandre-Xavier).
- * Level warping on the command line (-warp) to episodes higher
- than 4 is possible, matching Vanilla behavior (thanks plumsinus).
- * The -cdrom command line parameter writes savegames to the
- correct directory now, matching Vanilla Doom behavior (thanks
- Alexandre-Xavier).
- * The Doom II mission pack to use can now be specified manually on
- the command line with the -pack parameter (thanks chungy)
-
- Heretic:
- * Weapon cycling keys for mouse and joystick were fixed (thanks
- Sander van Dijk).
- * The -timedemo parameter has been fixed, and -playdemo now
- handles full paths correctly.
- * A bug when panning the map was fixed (thanks Chris Fielder).
- * A savegame bug where plat_t structures were not restored
- correctly was fixed (thanks romeroyakovlev).
- * Rebinding of the pause key was fixed (thanks Fabian Greffrath).
-
- Hexen:
- * Music workarounds have been added so that it is possible to
- play using the Mac version of the Hexen IWAD file.
- * Weapon cycling keys for mouse and joystick were fixed (thanks
- Sander van Dijk).
- * The -timedemo parameter has been fixed, and -playdemo now
- handles full paths correctly.
- * There are now key bindings to allow the artifact keys to be
- rebound (thanks Fabian Greffrath).
- * Rebinding of the pause key was fixed (thanks Fabian Greffrath).
- * Maximum level number was extended to MAP60, allowing
- multiplayer games using the Deathkings add-on.
- * The startup screen can now be aborted by pressing escape, like
- in Vanilla.
- * Desync when playing back DEMO1 was fixed (thanks alexey.lysiuk).
-
- Strife:
- * 'Show mission' key is configured properly in setup (thanks
- Sander van Dijk).
- * Default music volume level now matches Vanilla (thanks
- Alexandre-Xavier).
- * Teleport beacon allegiance was fixed to match Vanilla (thanks
- Quasar).
- * The stair building code now more closely matches Vanilla
- (thanks Quasar).
- * Torpedo weapon changing behavior now matches Vanilla (thanks
- Quasar).
-
- Cleanups:
- * The copyright headers at the top of all source files have been
- vastly simplified.
- * Unsafe string functions have been eliminated from the codebase.
- Thanks to Theo de Raadt for calling out Chocolate Doom by name
- (alongside many other packages) for still using unsafe functions
- like strcpy: http://marc.info/?l=openbsd-tech&m=138733933417096
- * vldoor_e enum values are now namespaced to avoid potential
- conflicts with POSIX standard functions.
-
- Bug fixes:
- * WAD and Dehacked checksums are now sent to clients and checked
- correctly when setting up netgames.
- * A bug was fixed that caused sound not to work in multiplayer
- games (thanks to everyone who reported this, and for
- Alexandre-Xavier and Quasar for help in fixing it).
- * The "D_DDTBLU disease" bug affecting certain MIDI files has
- been fixed (thanks plumsinus, Brad Harding and Quasar).
- * Calculation of the -devparm 'ticker' dots was fixed to match
- Vanilla behavior (thanks _bruce_ and Alexandre-Xavier).
- * The PC speaker code now supports the full range of sound
- frequencies (thanks Gez).
- * Annoying "jumping" behavior when grabbing the mouse cursor was
- fixed.
- * The screen is now initialized at the native bit depth by
- default, to avoid problems with systems that don't handle 8-bit
- screenbuffers very well any more.
- * The --docdir argument to the configure script is now honored
- (thanks Jan Engelhardt).
- * Various issues with the build were fixed (thanks Jan
- Engelhardt and Fabian Greffrath).
- * Backwards parameters were fixed in the sound code (thanks
- proteal).
- * A crash was fixed when running fullscreen with the -2 parameter
- (thanks Fabian Greffrath).
- * A crash when using large values of snd_channels was fixed
- (thanks Alexandre-Xavier).
- * A resource leak in the BSD PC speaker code was fixed (thanks
- Edward-san).
- * Windows resource files were fixed for Windows 7 (thanks Brad
- Harding).
- * A hard to trigger crash caused by a realloc() in the WAD code
- was fixed (thanks Fabian Greffrath for debugging).
- * A bug has been fixed where Chocolate Doom would stay running
- in the background on Windows after quitting. SDL_Quit() is
- called now (thanks johnsirett, Brad Harding, Quasar).
- * String replacements in dehacked lumps can now be overridden
- if a subsequent dehacked patch replaces the same string.
-
- libtextscreen:
- * Clicking on scrollbars now jumps to the correct position
- (thanks Alexandre-Xavier).
- * A use-after-free bug has been fixed where a click in a window
- that causes the window to close could lead to a crash (thanks
- DuClare).
- * Characters that are unprintable in the Extended ASCII chart
- are just ignored when they're typed, rather than appearing as
- an upside-down question mark (thanks Alexandre-Xavier).
-
-2.0.0 (2013-12-09):
-
- This is version 2.0 of Chocolate Doom! This new major version is
- released to celeberate the 20th anniversary of the first release
- of Doom in 1993. Happy Birthday Doom!
-
- This new version has some major changes compared to the 1.0 series:
-
- * The codebase now includes Chocolate Heretic and Chocolate
- Hexen. These are based on the GPL source code released by
- Raven Software.
- * Also included is Chocolate Strife. This was developed through a
- mammoth four year reverse engineering project conducted by
- James "Quasar" Haley and Samuel "Kaiser" Villareal. The result
- is the most accurate reproduction of Strife to date, including
- full demo and savegame compatibility. See README.Strife for
- more information.
-
- Minor features that are nonetheless worth mentioning:
- * Chocolate Doom now includes a -statdump command line option,
- which emulates the output of the statdump.exe tool. This is
- used to implement a form of regression testing (statcheck) that
- directly compares against the Vanilla behavior.
- * Chocolate Heretic includes HHE patch file support, and I
- believe is the first Heretic port to include this feature.
- * GUS "pseudo-emulation" is now supported. This does not fully
- emulate a GUS, but Doom's DMXGUS lump can be used to generate
- a Timidity configuration file that plays music using the GUS
- patch set.
- * The setup tool now includes a built-in server browser, for use
- when selecting a server to join.
-
- Version 2.0 of Chocolate Doom has been in development for a long
- time, and there have been many bugs fixed over this time, too many
- to list here. Thanks to all the people who have tested it and
- diligently reported bugs over this time, and to all the people who
- have tested the beta releases over the past couple of months.
- Your contributions have been essential and invaluable.
-
-1.7.0 (2012-06-09):
-
- * Fixed gnome-screensaver desktop file (thanks Rahul Sundaram).
- * Updated COPYING to current version of GPL2 (thanks Rahul
- Sundaram).
- * Running servers now re-resolve the address of the master server
- occasionally, to adapt to DNS address changes.
- * Error dialog is no longer shown on OS X when running from the
- console.
- * The Makefiles no longer use GNU make extensions, so the package
- builds on OpenBSD.
- * There is now an OPL MIDI debug option (-opldev), useful for
- when developing GENMIDI lumps.
- * A workaround for SDL mouse lag is now only used on Windows
- (where it is needed), and not on other systems. This fixes
- Chocolate Doom on AmigaOS (thanks Timo Sievänen).
- * UTF-8 usernames are supported, and Windows usernames with
- non-ASCII characters are now supported (thanks Alexandre
- Xavier).
-
- Compatibility:
- * Palette accuracy is reduced to 6 bits per channel, to more
- accurately emulate the PC VGA hardware (thanks GhostlyDeath).
- * Fixed teleport behavior when emulating the alternate Final Doom
- executable (-gameversion final2) (thanks xttl).
-
- Bugs fixed:
- * Fixed weapon cycling keys when playing in Shareware Doom and using
- the IDKFA cheat (thanks Alexandre Xavier).
- * Fixed the default mouse buttons in the setup tool (thanks
- Alexandre Xavier).
- * Chat macros now work when vanilla_keyboard_mapping is turned
- off.
- * Default chat macros were fixed in the setup tool.
- * Ping time calculation was fixed for LAN search, and made more
- accurate for all searches.
- * Fixed bug with detection of IWAD type by filename (thanks mether).
-
- libtextscreen:
- * There is now limited UTF-8 text support in the textscreen
- library, used in the label and input box widgets.
- * Scroll bar behavior was fixed (thanks Alexandre Xavier).
- * Input boxes stop editing and save when they lose their focus,
- correcting a previous counterintuitive behavior (thanks
- Twelve).
- * The numeric keypad now works properly when entering text values
- (thanks Twelve).
-
-1.6.0 (2011-05-17):
-
- * The instructions in the INSTALL file are now customized for
- different platforms, and each binary package contains a version
- with instructions specific to the platform that it is
- targetting. This should help to avoid confusion that some
- users have reported experiencing.
- * The display settings window in the setup tool has been
- reorganised to a better arrangement.
- * It is now possible to load .lmp files (and play back demos)
- with long filenames (thanks blzut3).
- * In the setup tool, it is now possible to hold down shift when
- changing key/mouse/joystick bindings to prevent other bindings
- to the same key from being cleared (thanks myk).
- * The joystick menu in the setup tool now has a test button
- (thanks Alexandre Xavier).
- * Specifying the -privateserver option implies -server (thanks
- Porsche Monty).
- * The Mac OS X .dmg package now has a background and looks generally
- more polished.
- * In Mac OS X, it is now possible to simply double click an IWAD
- file in the Finder to configure its location within the launcher.
- * Freedesktop.org desktop files are now installed for Doom and
- the setup tool, which will appear in the main menu on desktop
- environments such as Gnome and KDE (thanks Adrián Chaves
- Fernández).
- * The Chex Quest dehacked patch (chex.deh) will now be detected
- if it is in the same directory as the IWAD file.
-
- Compatibility:
- * Added support for the alternate version of the Final Doom
- executable included in some later versions of the Id Anthology.
- This version fixed the demo loop crash that occurred with the
- "original" Final Doom executable.
-
- This executable can be selected on the command line with
- -gameversion final2. It has been made the default when playing
- with the Final Doom IWADs (the original behavior can be
- selected with -gameversion final). (thanks Porsche Monty,
- Enjay).
- * Very short sound effects are not played, to better emulate the
- behavior of DMX in Vanilla Doom (thanks to Quasar for help in
- investigating this).
- * The null sector dereference emulation code has been imported
- from Prboom+ - this fixes a desync with CLNJ-506.LMP (thanks
- entryway).
- * The IDMUS cheat doesn't work when emulating the v1.9 executable
- (thanks Alexandre Xavier).
-
- Bugs fixed:
- * Menu navigation when using joystick/joypad (thanks Alexandre
- Xavier).
- * For configuration file value for shift keys, use scan code for
- right shift, not left shift (thanks Alexandre Xavier).
- * Default joystick buttons for the setup tool now match Vanilla
- (thanks twipley).
- * Visual Studio project files work again (thanks GhostlyDeath).
- * The default sfx/music volume set by the setup tool is now 8
- instead of 15, matching the game itself. (thanks Alexandre
- Xavier).
- * Weapon cycling from the shotgun to the chaingun in Doom 1 now
- works properly (thanks Alexandre Xavier).
- * MIDI playback that locked up when using an empty MUS / MIDI
- file (thanks Alexandre Xavier).
- * Default sampling rate used by setup tool changed to 44100Hz, to
- match the game default (thanks Alexandre Xavier).
- * Cheat codes and menu hot keys now work when shift is held down
- or capslock turned on (thanks Alexandre Xavier).
-
- libtextscreen:
- * The background on GUI controls now lights up when hovering over
- them, so that it is more obvious what you are selecting.
- * It is now possible to type a '+' in input boxes (thanks
- Alexandre Xavier).
- * It is possible to use the mouse wheel to scroll through scroll
- panes.
- * Clicking on scroll bars now moves the scroll handle to a
- matching location.
- * Clicking outside a dropdown list popup window now dismisses the
- window.
- * Window hotkeys that are an alphabetical letter now work when
- shift is held down or capslock turned on (thanks Alexandre
- Xavier).
-
-1.5.0 (2011-01-02):
-
- Big changes in this version:
- * The DOSbox OPL emulator (DBOPL) has been imported to replace
- the older FMOPL code. The quality of OPL emulation is now
- therefore much better.
- * The game can now run in screen modes at any color depth (not
- just 8-bit modes). This is mainly to work around problems with
- Windows Vista/7, where 8-bit color modes don't always work
- properly.
- * Multiplayer servers now register themselves with an Internet
- master server. Use the -search command line parameter to
- find servers on the Internet to play on. You can also use
- DoomSeeker (http://skulltag.net/doomseeker/) which supports
- this functionality.
- * When running in windowed mode, it is now possible to
- dynamically resize the window by dragging the window borders.
- * Names can be specified for servers with the -servername command
- line parameter.
- * There are now keyboard, mouse and joystick bindings to cycle
- through available weapons, making play with joypads or mobile
- devices (ie. without a proper keyboard) much more practical.
- * There is now a key binding to change the multiplayer spy key
- (usually F12).
- * The setup tool now has a "warp" button on the main menu, like
- Vanilla setup.exe (thanks Proteh).
- * Up to 8 mouse buttons are now supported (including the
- mousewheel).
- * A new command line parameter has been added (-solo-net) which
- can be used to simulate being in a single player netgame.
- * There is now a configuration file parameter to set the OPL I/O
- port, for cards that don't use port 0x388.
- * The Python scripts used for building Chocolate Doom now work
- with Python 3 (but also continue to work with Python 2)
- (thanks arin).
- * There is now a NOT-BUGS file included that lists some common
- Vanilla Doom bugs/limitations that you might encounter
- (thanks to Sander van Dijk for feedback).
-
- Compatibility:
- * The -timer and -avg options now work the same as Vanilla when
- playing back demos (thanks xttl)
- * A texture lookup bug was fixed that caused the wrong sky to be
- displayed in Spooky01.wad (thanks Porsche Monty).
- * The HacX v1.2 IWAD file is now supported, and can be used
- standalone without the need for the Doom II IWAD (thanks
- atyth).
- * The I_Error function doesn't display "Error:" before the error
- message, matching the Vanilla behavior. "Error" has also been
- removed from the title of the dialog box that appears on
- Windows when this happens. This is desirable as not all such
- messages are actually errors (thanks Proteh).
- * The setup tool now passes through all command line arguments
- when launching the game (thanks AlexXav).
- * Demo loop behavior (ie. whether to play DEMO4) now depends on
- the version being emulated. When playing Final Doom the game
- will exit unexpectedly as it tries to play the fourth demo -
- this is Vanilla behaviour (thanks AlexXav).
-
- Bugs fixed:
- * A workaround has been a bug in old versions of SDL_mixer
- (v1.2.8 and earlier) that could cause the game to lock up.
- Please upgrade to a newer version if you haven't already.
- * It is now possible to use OPL emulation at 11025Hz sound
- sampling rate, due to the new OPL emulator (thanks Porsche
- Monty).
- * The span renderer function (used for drawing floors and
- ceilings) now behaves the same as Vanilla Doom, so screenshots
- are pixel-perfect identical to Vanilla Doom (thanks Porsche
- Monty).
- * The zone memory system now aligns allocated memory to 8-byte
- boundaries on 64-bit systems, which may fix crashes on systems
- such as sparc64 (thanks Ryan Freeman and Edd Barrett).
- * The configure script now checks for libm, fixing compile
- problems on Fedora Linux (thanks Sander van Dijk).
- * Sound distortion with certain music files when played back
- using OPL (eg. Heretic title screen).
- * Error in Windows when reading response files (thanks Porsche
- Monty, xttl, Janizdreg).
- * Windows Vista/7 8-bit color mode issues (the default is now to
- run in 32-bit color depth on these versions) (thanks to
- everybody who reported this and helped test the fix).
- * Screen borders no longer flash when running on widescreen
- monitors, if you choose a true-color screen mode (thanks
- exp(x)).
- * The controller player in a netgame is the first player to join,
- instead of just being someone who gets lucky.
- * Command line arguments that take an option now check that an
- option is provided (thanks Sander van Dijk).
- * Skill level names in the setup tool are now written the same as
- they are on the in-game "new game" menu (thanks AlexXav).
- * There is no longer a limit on the lengths of filenames provided
- to the -record command line parameter (thanks AlexXav).
- * Window title is not lost in setup tool when changing video
- driver (thanks AlexXav).
-
- libtextscreen:
- * The font used for the textscreen library can be forced by
- setting the TEXTSCREEN_FONT environment variable to "small" or
- "normal".
- * Tables or scroll panes that don't contain any selectable widgets
- are now themselves not selectable (thanks Proteh).
- * The actions displayed at the bottom of windows are now laid out
- in a more aesthetically pleasing way.
-
-1.4.0 (2010-07-10):
-
- The biggest change in this version is the addition of OPL
- emulation. This emulates Vanilla Doom's MIDI playback when
- using a Yamaha OPL synthesizer chip, as was found on
- SoundBlaster compatible cards.
-
- A software OPL emulator is included as most modern computers do
- not have a hardware OPL chip any more. If you do have one, you
- can configure Chocolate Doom to use it; see README.OPL.
-
- The OPL playback feature is not yet perfect or 100% complete,
- but is judged to be good enough for general use. If you find
- music that does not play back properly, please report it as a
- bug.
-
- Other changes:
- * The REJECT overflow emulation code from PrBoom+ has been
- imported. This fixes demo desync on some demos, although
- others will still desync.
- * Warnings are now generated for invalid dehacked replacements of
- printf format strings. Some potential buffer overflows are
- also checked.
- * The installation instructions (INSTALL file) have been
- clarified and made more platform-agnostic.
- * The mouse is no longer warped to the center of the screen when
- the demo sequence advances.
- * Key bindings can now be changed for the demo recording quit key
- (normally 'q') and the multiplayer messaging keys (normally
- 't', 'g', 'i', 'b' and 'r').
-
-1.3.0 (2010-02-10):
-
- * Chocolate Doom now runs on Windows Mobile/Windows CE!
- * It is possible to rebind most/all of the keys that control the
- menu, shortcuts, automap and weapon switching. The main
- reason for this is to support the Windows CE port and other
- platforms where a full keyboard may not be present.
- * Chocolate Doom now includes a proper Mac OS X package; it is
- no longer necessary to compile binaries for this system by
- hand. The package includes a simple graphical launcher
- program and can be installed simply by dragging the "Chocolate
- Doom" icon to the Applications folder. (thanks to Rikard Lang
- for extensive testing and feedback)
- * The video mode auto-adjust code will automatically choose
- windowed mode if no fullscreen video modes are available.
- * The zone memory size is automatically reduced on systems with
- a small amount of memory.
- * The "join game" window in the setup tool now has an option to
- automatically join a game on the local network.
- * Chocolate Doom includes some initial hacks for compiling under
- SDL 1.3.
- * Recent versions of SDL_mixer include rewritten MIDI code on Mac
- OS X. If you are using a version of SDL_mixer with the new
- code, music will now be enabled by default.
- * Windows Vista and Windows 7 no longer prompt for elevated
- privileges when running the setup tool (thanks hobbs and
- MikeRS).
- * The Windows binaries now have better looking icons (thanks
- MikeRS).
- * Magic values specified using the -spechit command line
- parameter can now be hexadecimal.
- * DOOMWADDIR/DOOMWADPATH can now specify the complete path to
- IWAD files, rather than the path to the directory that contains
- them.
- * When recording shorttics demos, errors caused by the reduced
- turning resolution are carried forward, possibly making turning
- smoother.
- * The source tarball can now be used to build an RPM package:
- rpmbuild -tb chocolate-doom-VER.tar.gz
-
- Compatibility:
- * The A_BossDeath behavior in v1.9 emulation mode was fixed
- (thanks entryway)
- * The "loading" disk icon is drawn more like how it is drawn in
- Vanilla Doom, also fixing a bug with chook3.wad.
- * Desync on 64-bit systems with ep1-0500.lmp has (at long last)
- been fixed (thanks exp(x)).
- * Donut overrun emulation code imported from Prboom+ (thanks
- entryway).
- * The correct level name should now be shown in the automap for
- pl2.wad MAP33 (thanks Janizdreg).
- * In Chex Quest, the green radiation suit colormap is now used
- instead of the red colormaps normally used when taking damage
- or using the berserk pack. This matches Vanilla chex.exe
- behavior (thanks Fuzztooth).
- * Impassible glass now displays and works the same as in Vanilla,
- fixing wads such as OTTAWAU.WAD (thanks Never_Again).
-
- Bugs fixed:
- * Memory-mapped WAD I/O is disabled by default, as it caused
- various issues, including a slowdown/crash with Plutonia 2
- MAP23. It can be explicitly re-enabled using the '-mmap'
- command line parameter.
- * Crash when saving games due to the ~/.chocolate-doom/savegames
- directory not being created (thanks to everyone who reported
- this).
- * Chocolate Doom will now run under Win95/98, as the
- SetProcessAffinityMask function is looked up dynamically.
- * Compilation under Linux with older versions of libc will now
- work (the semantics for sched_setaffinity were different in
- older versions)
- * Sound clipping when using libsamplerate was improved (thanks
- David Flater)
- * The audio buffer size is now calculated based on the sample
- rate, so there is not a noticeable delay when using a lower
- sample rate.
- * The manpage documentation for the DOOMWADPATH variable was
- fixed (thanks MikeRS).
- * Compilation with FEATURE_MULTIPLAYER and FEATURE_SOUND
- disabled was fixed.
- * Fixed crash when using the donut special type and the joining
- linedef is one sided (thanks Alexander Waldmann).
- * Key settings in a configuration file that are out of range
- do not cause a crash (thanks entryway).
- * Fix ear-piercing whistle when playing the MAP05 MIDI music
- using timidity with EAWPATS (thanks entryway / HackNeyed).
-
- libtextscreen:
- * There is now a second, small textscreen font, so that the
- ENDOOM screen and setup tool can be used on low resolution
- devices (eg. PDAs/embedded devices)
- * The textscreen library now has a scrollable pane widget. Thanks
- to LionsPhil for contributing code to scroll up and down using
- the keyboard.
- * Doxygen documentation was added for the textscreen library.
-
-1.2.1 (2008-12-10):
-
- This version just fixes a crash at the intermission screen when
- playing Doom 1 levels.
-
-1.2.0 (2008-12-10):
-
- Happy 15th Birthday, Doom!
-
- * Chocolate Doom now has an icon that is not based on the proprietary
- Doom artwork.
- * There is now memory-mapped WAD I/O support, which should be useful
- on some embedded systems.
- * Chex quest emulation support is now included, although an
- auxiliary dehacked patch is needed (chexdeh.zip in the idgames
- archive).
-
- Compatibility:
- * The armor class is always set to 2 when picking up a megasphere
- (thanks entryway).
- * The quit screen prompts to quit "to dos" instead of just to quit
- (thanks MikeRS)
- * The "dimensional shambler" quit message was fixed.
- * Fix crash related to A_BFGSpray with NULL target when using
- dehacked patches - discovered with insaned2.deh
- (thanks CSonicGo)
- * NUL characters are stripped from dehacked files, to ensure correct
- behavior with some dehacked patches (eg. the one with portal.wad).
-
- Bugs fixed:
- * "Python Image Library" should have been "Python Imaging Library"
- (thanks exp(x)).
- * The setup tool should no longer ask for elevated permissions
- on Windows Vista (this fix possibly may not work).
- * The application icon is set properly when running under Windows
- XP with the "Luna" theme.
- * Fix compilation under Cygwin to detect libraries and headers from
- the correct environment.
- * The video code does not try to read SDL events before SDL has
- been properly initialised - this was causing problems with some
- older versions of SDL.
-
-1.1.1 (2008-04-20):
-
- The previous release (v1.1.0) included a bug that broke compilation
- when libsamplerate support was enabled. The only change in this
- version is to fix this bug.
-
-1.1.0 (2008-04-19):
-
- * The video mode code has been radically restructured. The video mode is
- now chosen by directly specifying the mode to use; the scale factor is
- then chosen to fit the screen. This is helpful when using widescreen
- monitors (thanks Linguica)
- * MSVC build project files (thanks GhostlyDeath and entryway).
- * Unix manpage improvements; the manpage now lists the environment
- variables that Chocolate Doom uses. Manpages have been added for
- chocolate-setup and chocolate-server, from the versions for the Debian
- Chocolate Doom package (thanks Jon Dowland).
- * INSTALL file with installation instructions for installing Chocolate
- Doom on Unix systems.
- * Support for high quality resampling of sound effects using
- libsamplerate (thanks David Flater).
- * A low pass filter is applied when doing sound resampling in an
- attempt to filter out high frequency noise from the resampling
- process.
- * R_Main progress box is not displayed if stdout is a file (produces
- cleaner output).
- * Client/server version checking can be disabled to allow different
- versions of Chocolate Doom to play together, or Chocolate Doom
- clients to play with Strawberry Doom clients.
- * Unix manpages are now generated for the Chocolate Doom
- configuration files.
- * The BSD PC speaker driver now works on FreeBSD.
-
- Compatibility:
- * Use the same spechits compatibility value as PrBoom+, for consistency
- (thanks Lemonzest).
- * The intercepts overrun code has been refactored to work on big
- endian machines.
- * The default startup delay has been set to one second, to allow
- time for the screen to settle before starting the game (some
- monitors have a delay before they come back on after changing modes).
- * If a savegame buffer overrun occurs, the savegame does not get saved
- and existing savegames are not overwritten (same behaviour as
- Vanilla).
-
- Bugs fixed:
- * Desync with STRAIN demos and dehacked Misc values not being set
- properly (thanks Lemonzest)
- * Don't grab the mouse if the mouse is disabled via -nomouse or use_mouse
- in the configuration file (thanks MikeRS).
- * Don't center the mouse on startup if the mouse is disabled (thanks
- Siggi).
- * Reset the palette when the window is restored to clear any screen
- corruption (thanks Catoptromancy).
- * mus2mid.c should use MEM_SEEK_SET, not SEEK_SET (thanks Russell)
- * Fast/Respawn options were not being exchanged when starting netgames
- (thanks GhostlyDeath).
- * Letterbox mode is more accurately described as "pillarboxed" or
- "windowboxed" where appropriate (thanks MikeRS)
- * Process affinity mask is set to 1 on Windows, to work around a
- bug in SDL_mixer that can cause crashes on multi-core machines
- (thanks entryway).
- * Bugs in the joystick configuration dialog in the setup tool have
- been fixed.
-
-1.0.0 (2007-12-10):
-
- This release is dedicated to Dylan 'Toke' McIntosh, who was
- tragically killed in a car crash in 2006. I knew Dylan
- from IRC and the Doomworld forums for several years, and he had
- a deep passion for this game. He was also a huge help for me while
- developing Chocolate Doom, as he helped point out a lot of small
- quirks in Vanilla Doom that I didn't know about. His death is a
- great loss. RIP Toke.
-
- This is the first release to reach full feature parity with
- Vanilla Doom. As a result, I have made this version 1.0.0, so
- Chocolate Doom is no longer beta!
-
- Big new features:
- * Multiplayer! This version includes an entirely new multiplayer
- engine, based on a packet server architecture. I'd like to thank
- joe, pritch, Meph and myk, and everyone else who has helped test
- the new code for their support, feedback and help in testing this.
- The new code still needs more testing, and I'm eager to hear any
- feedback on this.
- * A working setup tool. This has the same look and feel as the
- original setup.exe. I hope people like it! Note that it has
- some advantages over the original setup.exe - for example,
- you can use the mouse.
-
- Other new features:
- * New mus conversion code thanks to Ben Ryves. This converts the
- Doom .mus format to .mid a lot better. As one example, tnt.wad
- Map02 is now a lot closer to how Vanilla says. Also, the music
- on the deca.wad titlescreen now plays!
- * x3, x4 and x5 display scale (thanks to MikeRS for x5 scale).
- * Fullscreen "letterbox" mode allows Chocolate Doom to run on machines
- where 1.6:1 aspect ratio modes are unavailable (320x200/640x400).
- The game runs in 320x240/640x480 instead, with black borders.
- The system automatically adjusts to this if closer modes are
- unavailable.
- * Aspect ratio correction: you can (also) run at 640x480 without black
- borders at the top and bottom of the screen.
- * PC speaker sound effect support. Chocolate Doom can output real
- PC speaker sounds on Linux, or emulate a PC speaker through the
- sound card.
- * Working three-screen mode, as seen in early versions of Doom!
- To test this out, put three computers on a LAN and type:
- chocolate-doom -server
- chocolate-doom -autojoin -left
- chocolate-doom -autojoin -right
- * Allow a delay to be specified on startup, to allow the display to
- settle after changing modes before starting the game.
- * Allow the full path and filename to be specified when loading demos:
- It is now possible to type 'chocolate-doom -playdemo /tmp/foo.lmp'
- for example.
- * Savegames are now stored in separate directories depending on
- the IWAD: eg. the savegames for Doom II are stored in a different
- place to those for Doom I, Final Doom, etc. (this does not affect
- Windows).
- * New mouse acceleration code works based on a threshold and
- acceleration. Hopefully this should be closer to what the DOS
- drivers do. There is a 'test' feature in the setup tool to help
- in configuring this.
- * New '-nwtmerge' command line option that emulates NWT's '-merge'
- option. This allows TiC's Obituary TC to be played.
- * The ENDOOM screen no longer closes automatically, you have to click
- the window to make it go away.
- * Spechit overrun fixes and improvements. Thanks to entryway for
- his continued research on this topic (and because I stole your
- improvements :-). Thanks to Quasar for reporting a bug as well.
- * Multiple dehacked patches can be specified on the command line,
- in the same way as with WADs - eg. -deh foo.deh bar.deh baz.deh.
- * Default zone memory size increased to 16MB; this can be controlled
- using the -mb command-line option.
- * It is now possible to record demos of unlimited length (by default,
- the Vanilla limit still applies, but it can now be disabled).
- * Autoadjusting the screen mode can now be disabled.
- * On Windows, the registry is queried to detect installed versions of
- Doom and automatically locate IWAD files. IWADs installed through
- Steam are also autodetected.
- * Added DOOMWADPATH that can be used like PATH to specify multiple
- locations in which to search for IWAD files. Also, '-iwad' is
- now enhanced, so that eg. '-iwad doom.wad' will now search all
- IWAD search paths for 'doom.wad'.
- * Improved mouse tracking that should no longer lag. Thanks to
- entryway for research into this.
- * The SDL driver can now be specified in the configuration file.
- The setup tool has an option on Windows to select between
- DirectX and windib.
- * Joystick support.
- * Configuration file option to change the sound sample rate.
- * More than three mouse buttons are now supported.
-
- Portability improvements:
- * Chocolate Doom now compiles and runs cleanly on MacOS X. Huge
- thanks go to Insomniak who kindly gave me an account on his machine
- so that I could debug this remotely. Big thanks also go to
- athanatos on the Doomworld forums for his patience in testing
- various ideas as I tried to get Chocolate Doom up and running
- on MacOS.
- * Chocolate Doom now compiles and runs natively on AMD64.
- * Chocolate Doom now compiles and runs on Solaris/SPARC, including
- the Sun compiler. Thanks to Mike Spooner for some portability
- fixes.
- * Improved audio rate conversion, so that sound should play properly
- on machines that don't support low bitrate output.
-
- Compatibility fixes:
- * Check for IWADs in the same order as Vanilla Doom.
- * Dehacked code will now not allow string replacements to be longer than
- those possible through DOS dehacked.
- * Fix sound effects playing too loud on level 8 (thanks to myk
- for his continued persistence in getting me to fix this)
- * Save demos when quitting normally - it is no longer necessary to
- press 'q' to quit and save a demo.
- * Fix spacing of -devparm mode dots.
- * Fix sky behavior to be the same as Vanilla Doom - when playing in
- Doom II, the skies never change from the sky on the first level
- unless the player loads from a savegame.
- * Make -nomouse and config file use_mouse work again.
- * Fix the -nomusic command-line parameter. Make the snd_sfxdevice
- snd_musicdevice values in the configuration file work, so that it
- is possible to disable sound, as with Vanilla.
- * Repeat key presses when the key is held down (this is the Vanilla
- behavior) - thanks to Mad_Mac for pointing this out.
- * Don't print a list of all arguments read from response files - Vanilla
- doesn't do this.
- * Autorun only when joyb_speed >= 10, not >= 4. Thanks to Janizdreg
- for this.
- * Emulate a bug in DOS dehacked that can overflow the dehacked
- frame table and corrupt the weaponinfo table. Note that this means
- Batman Doom will no longer play properly (identical behavior
- to Vanilla); vbatman.deh needs to also be applied to fix it.
- (Thanks grazza)
- * Allow dehacked 2.3 patches to be loaded.
- * Add more dehacked string replacements.
- * Compatibility option to enable or disable native key mappings. This
- means that people with non-US keyboards can decide whether to use
- their correct native mapping or behave like Vanilla mapping (which
- assumes all keyboards are US).
- * Emulate overflow bug in P_FindNextHighestFloor. Thanks to
- entryway for the fix for this.
- * Add -netdemo command line parameter, for playing back netgame
- demos recorded with a single player.
- * The numeric keypad now behaves like Vanilla Doom does.
- * Fix some crashes when loading from savegames.
- * Add intercepts overrun emulation from PrBoom-plus. Thanks again
- to entryway for his research on this subject.
- * Add playeringame overrun emulation.
-
- Bugs fixed:
- * Fix crash when starting new levels due to the intermission screen
- being drawn after the WI_ subsystem is shut down (thanks
- pritch and joe)
- * Catch failures to initialise sound properly, and fail gracefully.
- * Fix crasher in 1427uv01.lmp (thanks ultdoomer)
- * Fix crash in udm1.wad.
- * Fix crash when loading a savegame with revenant tracer missiles.
- * Fix crash when loading a savegame when a mancubus was in the middle
- of firing.
- * Fix Doom 1 E1-3 intermission screen animations.
- * Fix loading of dehacked "sound" sections.
- * Make sure that modified copyright banners always end in a newline
- - this fixes a bug with av.wad (thanks myk)
- * Added missing quit message ("are you sure you want to quit this
- great game?").
- * Fix when playing long sound effects - the death sound in marina.wad
- now plays properly, for example.
- * Fix buffer overrun on the quicksave prompt screen that caused a
- mysterious cycling character to appear.
- * IDCLEV should not work in net games (thanks Janizdreg)
- * Stop music playing at the ENDOOM screen.
- * Fix sound sample rate conversion crash.
- * Fix 'pop' heard at the end of sound effects.
- * Fix crash when playing long sounds.
- * Fix bug with -timedemo accuracy over multi-level demos.
- * Fix bug with the automap always following player 1 in multiplayer
- mode (thanks Janizdreg).
-
-0.1.4 (2006-02-13):
-
- NWT-style merging command line options (allows Mordeth to be played)
- Unix manpage (thanks Jon Dowland)
- Dehacked improvements/fixes:
- * Allow changing the names of graphic lumps used in menu, status bar
- intermission screen, etc.
- * Allow changing skies, animated flats + textures
- * Allow changing more startup strings.
- * Allow text replacements on music + sfx lump names
- Fix for plutonia map12 crash.
- Fix bug with playing long sfx at odd sample rates.
- Big Endian fixes (for MacOS X). Thanks to athanatos for helping
- find some of these.
- Install into /usr/games, rather than /usr/bin (thanks Jon Dowland)
-
-0.1.3 (2006-01-20):
-
- Imported the spechit overrun emulation code from prboom-plus. Thanks to
- Andrey Budko for this.
- New show_endoom option in the chocolate-doom.cfg config file allows
- the ENDOOM screen to be disabled.
- Chocolate Doom is now savegame-compatible with Vanilla Doom.
-
- Fixes for big endian machines (thanks locust)
- Fixed the behavior of the dehacked maximum health setting.
- Fix the "-skill 0" hack to play without any items (thanks to Janizdreg
- for pointing out that this was nonfunctional)
- Fix playing of sounds at odd sample rates (again). Sound effects at
- any sample rate now play, but only sounds with valid headers.
- This is the *real* way Vanilla Doom behaves. Thanks to myk for
- pointing out the incorrect behavior.
-
-0.1.2 (2005-10-29):
-
- Silence sounds at odd sample rates (rather than bombing out); this
- is the way Vanilla Doom behaves.
- Handle multiple replacements of the same sprite in a PWAD.
- Support specifying a specific version to emulate via the command line
- (-gameversion)
- Fix help screen orderings and skull positions. Behave exactly as
- the original executables do.
-
-0.1.1 (2005-10-18):
- Display startup "banners" if they have been modified through
- dehacked.
- Dehacked "Misc" section support.
-
- Bugs fixed:
- * Doom 1 skies always using Episode 1 sky
- * Crash when switching applications while running fullscreen
- * Lost soul bounce logic (do not bounce in Registered/Shareware)
- * Mouse buttons mapped incorrectly (button 1 is right, 2 is middle)
- * Music not pausing when game is paused, when using SDL_mixer's
- native MIDI playback.
- * Pink icon on startup (palette should be fully set before anything is
- loaded)
-
-0.1.0 (2005-10-09):
- Dehacked support
- WAD merging for TCs
- ENDOOM display
- Fix bug with invalid MUS files causing crashes
- Final Doom fixes
-
-0.0.4 (2005-09-27):
- Application icon and version info included in Windows .exe files
- Fixes for non-x86 architectures
- Fix uac_dead.wad (platform drop on e1m8 should occur when all
- bosses die, not just barons)
- Fix "loading" icon to work for all graphics modes
-
-0.0.3 (2005-09-17):
- Mouse acceleration code to emulate the behaviour of old
- DOS mouse drivers (thanks to Toke for information about
- this and suggestions)
- Lock surfaces properly when we have to (fixes crash under
- Windows 98)
-
-0.0.2 (2005-09-13):
- Remove temporary MIDI files generated by sound code.
- Fix sound not playing at the right volume
- Allow alt-tab away while running in fullscreen under Windows
- Add second configuration file (chocolate-doom.cfg) to allow
- chocolate-doom specific settings.
- Fix switches not changing in Ultimate Doom
-
-0.0.1 (2005-09-07):
- First beta release
-
-# vim: tw=70
-
--- /dev/null
+++ b/NEWS.md
@@ -1,0 +1,1164 @@
+## HEAD
+
+### General
+ * Bash completion scripts are included. (thanks Fabian)
+ * Support the *.lmp file format in the OS X launcher (thanks Jon)
+ * Added emulation for pitch-shifting as in early versions of Doom,
+ Heretic, and Hexen. (thanks Jon)
+ * Write out aspect-correct 1600×1200 PNGs. (thanks Jon)
+ * OPL emulation is more accurate. (thanks Nuke.YKT)
+ * Futher emulation of DMX bugs with GUS cards. (thanks Nuke.YKT)
+ * Emulation of the disk icon has returned. (thanks Fabian, Jon)
+ * Checksum calculations were fixed on big endian systems, allowing
+ multiplayer games to be played in mixed little/big-endian
+ environments. (thanks GhostlyDeath, njankowski)
+
+### Build systems
+ * Improved compatibility with BSD Make. (thanks R.Rebello)
+ * “./configure --with-PACKAGE” checks were repaired to behave
+ logically, rather than disabling the feature. (thanks R.Rebello)
+ * Default to installing the games to ${bindir}, such as
+ /usr/local/bin, rather than /usr/local/games. (thanks chungy)
+ * Support Visual Studio 2015. (thanks Azarien)
+ * Allow SDL headers and libraries to exist in the Microsoft Visual
+ Studio project directory. (thanks Quasar)
+ * Repaired the CodeBlocks projects by removing non-existent files
+ from the project files (thanks krystalgamer)
+
+### Doom
+ * Chex Quest’s level warp cheat (LEESNYDER##) was changed to behave
+ like the original EXE. (thanks Nuke.YKT)
+ * Allow starting multiplayer Chex Quest games.
+ * Allow Freedoom: Phase 1 ≤ 0.10.1 to be loaded with mods, with
+ -gameversion older than ultimate. (thanks Fabian, chungy)
+ * Added safety checks against write failures when saving a game,
+ such as when the directory is read-only. Try falling back to a
+ temporary directory and reporting an error instead. (thanks
+ terrorcide)
+ * Versions 1.666, 1.7, and 1.8 are emulated. (thanks Nuke.YKT)
+
+### Heretic
+ * Added map names for Episode 6, fixing a crash after completing a
+ level in this episode. (thanks J.Benaim)
+
+### Hexen
+ * The MRJONES cheat code returns an identical string as vanilla, and
+ enables fully reproducable builds. (thanks Fabian)
+ * Fixed an issue where the game crashed while killing the
+ Wraithverge in 64-bit builds. (thanks J.Benaim)
+
+### Strife
+ * Support added for automatic loading of the IWAD from the GOG.com
+ release of Strife: Veteran Edition on Windows. (thanks chungy)
+ * Jumping can be bound to a mouse button. (thanks Gez)
+ * Gibbing logic was changed to match vanilla behavior. (thanks Quasar)
+ * Several constants differences from vanilla were fixed. (thanks
+ Nuke.YKT, Quasar)
+ * When using -iwad, voices.wad from the IWAD’s directory is prefered
+ over auto-detected DOS/Steam/GOG.com installs. (thanks Quasar)
+
+### libtextscreen
+ * Simplified the API for creating and managing tables and columns.
+ * Allow cycling through tables with tab key.
+
+## 2.2.1 (2015-09-10)
+
+ Chocolate Doom has not seen a great deal of “stable” patch releases
+ in its history. While the development tree sees major new features
+ and changes, the purpose of this release, and hopefully others to
+ follow like it, is to repair some deficiencies that existed
+ in 2.2.0.
+
+### General
+ * Preferences for the OS X launcher are now stored with a unique
+ name to not conflict with other applications. (thanks
+ Xeriphas1994)
+ * Unix desktop entry files are now brought up to full desktop entry
+ specification compliance. (thanks chungy, Fabian)
+ * Unix AppData entries are now included, allowing software centers
+ to display detailed information about the engines. (thanks chungy)
+ * Partial XDG base directory specification compliance on Unix
+ systems now exist to search for IWAD paths. One benefit is that
+ $HOME/.local/share/games/doom is now a valid location to store and
+ automatically find IWADs. (thanks chungy)
+
+### Build systems
+ * The Microsoft Visual Studio build system was not fully functional
+ in 2.2.0 and has been fixed. (thanks Linguica)
+ * The autoconf build system checks for windres only for Windows
+ toolchains. Some Linux distributions mistakingly include the
+ program in their native toolchains. (thanks Fabian)
+ * A compiler hint for packed structs has been added, which otherwise
+ broke the games when built under recent GCC releases for
+ Windows. (thanks Fabian)
+
+### Doom
+ * The GOG.com releases of The Ultimate Doom, Doom II, and Final Doom
+ are now detected and supported on Windows. (thanks chungy)
+ * An integer overflow was used in spawn angle calculation, undefined
+ C behavior which broke with Clang optimization. (thanks David
+ Majnemer for insight)
+
+### Setup tool
+ * The help URL for the level warp menu now points to the proper wiki
+ page, rather than the multiplayer page.
+ * The manifest has been updated for Windows 10 compatibility.
+ (thanks chungy)
+
+## 2.2.0 (2015-06-09)
+
+ * The Hexen four level demo IWAD is now supported. Thanks to Fabian
+ Greffrath for his careful investigation and emulation of the demo
+ game’s behavior in developing this.
+ * OPL music playback has been improved in a number of ways to match
+ the behavior of Vanilla Doom’s DMX library much more closely. OPL3
+ playback is also now supported. Thanks go to Alexey Khokholov for
+ his excellent research into the Vanilla DMX library that enabled
+ these improvements.
+ * New gamepad configurations:
+ - PS4 DualShock 4 (thanks Matt “3nT” Davis).
+ - Xbox One controller on Linux (thanks chungy).
+ - “Super Joy Box 7” USB/PC gameport adapter.
+ * The Doom reload hack has been added back. See the wiki for more
+ context on this: http://doomwiki.org/wiki/Reload_hack
+ * The IWAD file from Strife: Veteran Edition is now detected
+ automatically (thanks chungy).
+ * It’s now possible to build outside of the source directory (thanks
+ Dave Murphy).
+ * MSVC project files were brought up to date (thanks dbrackett16).
+ * M_StringDuplicate() has been added as a safer replacement for
+ strdup() (thanks Quasar). M_StringCopy() now handles short buffers
+ more gracefully.
+ * The netgame discrepancy window is now dismissed by pressing enter
+ to proceed, not escape (thanks Alexandre-Xavier).
+ * A couple of source files that were in the previous release and
+ were GPL3 have been replaced by GPL2 equivalents. Previous
+ releases that included these files should be retroactively
+ considered GPL3.
+
+### Bug fixes
+ * A long-standing bug that could cause every display frame to be
+ rendered twice was fixed (thanks Linguica, Harha, Alexandre-
+ Xavier).
+ * Lots of endianness fixes were integrated that were found by Ronald
+ Lasmanowicz during development of his Wii port of Chocolate Doom,
+ including a fix for a bug that could cause monsters to become
+ partially invisible.
+ * DeHackEd files without a newline character at the EOF are now
+ correctly parsed (thanks Fabian).
+ * An infinite loop that could occur in the weapon cycling code was
+ fixed (thanks raithe, Fabian).
+ * Mouse input triggered by cursor warp was fixed (thanks Super6-4).
+ * Loop tags in substitute music files are ignored if both of the
+ loop tags are equal to zero. This makes us consistent with other
+ source ports that support the tags.
+ * It’s now possible to more conveniently play back demo .lmp files
+ with names that end in the all-caps “.LMP” (thanks Ioan Chera).
+ * Some code that accessed memory after freeing it was fixed. Two new
+ parameters, -zonezero and -zonescan, were added to try to help
+ detect these cases.
+ * Mistaken assumptions about representations of booleans that
+ affected some ARM systems were fixed (thanks floppes).
+ * memcpy() uses on overlapping memory were changed to use memmove(),
+ fixing abort traps on OpenBSD (thanks ryan-sg).
+ * Hyphens in manpages were fixed (thanks chungy, Fabian).
+ * Lots of compiler build warnings were fixed (thanks Fabian).
+
+### Setup tool
+ * The setup tool now has help buttons for its various different
+ screens, which link to articles on the wiki that give more
+ information (thanks to chungy for helping to put the wiki pages
+ together).
+ * A fix was applied for a buffer overrun that could occur if the
+ user had lots of IWAD files installed (thanks Fabian).
+ * A crash related to username lookup was fixed.
+ * It’s now possible to connect via the setup tool to multiplayer
+ servers that are not listening on the default port (thanks
+ Alexandre-Xavier).
+
+### Doom
+ * Sky transitions when emulating the id anthology version of the
+ Final Doom executable were fixed (thanks Alexandre-Xavier, Fabian,
+ chungy).
+ * Structure fields in the stair-building functions were fixed to be
+ deterministic, fixing a desync in mm09-512.lmp (thanks Fabian).
+
+### Hexen
+ * A bug with texture names that had long names was fixed (thanks
+ ETTiNGRiNDER).
+ * Minotaur spawn time is now stored in little endian format, fixing
+ a bug that affected compatibility with Vanilla savegames on big
+ endian systems.
+ * Code that starts ACS scripts is no longer compiler-dependent.
+
+### Strife (all these are thanks to Quasar)
+ * Sound priority was changed, so that the ticking sound that Stalker
+ enemies make while active matches Vanilla behavior (thanks
+ GeoffLedak).
+ * Minor fixes to game behavior to match Vanilla, discovered during
+ development of Strife: Veteran edition.
+ * Behavior of descending stairs was fixed to match Vanilla.
+ * Inventory items beyond the 8-bit range are now allowed in
+ netgames.
+ * Automap behavior better matches Vanilla now.
+ * Multiplayer name changes were fixed.
+ * Sound origin behavior for switches was fixed.
+ * Teleport beacon behavior was fixed.
+ * Default Strife skill level and screen size were changed to match
+ Vanilla.
+ * Bug was fixed where Rowan would not always take Beldin’s ring.
+ * Totally-invisible objects are now displayed correctly, and a
+ Vanilla glitch with Shadow Acolytes is correctly emulated.
+ * The level name for MAP29 (Entity’s Lair) was fixed (thanks
+ chungy).
+
+### libtextscreen
+ * The main loop now exits immediately once all windows are closed
+ (thanks Alexander-Xavier).
+ * The large font is no longer selected based entirely on screen
+ size.
+
+## 2.1.0 (2014-10-22)
+
+ Chocolate Doom now supports high-quality substitute music packs that
+ are used in place of the original MIDI music tracks. I’m hoping to
+ put together high-quality recordings of the music for all supported
+ games using the Roland SC-55 synthesizer originally used to compose
+ Doom’s music (thanks twipley and MusicallyInspired).
+
+ Support for joysticks and gamepads has been significantly improved
+ in this version. Most gamepads should now work; if they don’t,
+ please report a bug. A number of gamepads are now automatically
+ detected and configured automatically; if yours is not, you can help
+ by sending in details. See the following page:
+
+ http://www.chocolate-doom.org/wiki/index.php/Adding_your_gamepad
+
+ OPL MIDI playback has been significantly improved, and problems with
+ most tracks should now be resolved. Multi-track MIDI files now play
+ back properly, MIDI tempo meta events are now supported and problems
+ with stuttering when playing certain tracks have been fixed. If you
+ still have problems with OPL playback, let me know.
+
+ Also of note is that Chocolate Doom now has a document that
+ describes the philosophy of the project and the reasoning behind its
+ design (see PHILOSOPHY distributed with the source).
+
+### Other new features
+ * There is now a -dehlump command line parameter to load Dehacked
+ files contained inside WAD files (thanks Fabian Greffrath).
+ * PNG format screenshots are now supported, and there is a dedicated
+ key binding for taking screenshots without needing to always use
+ -devparm (thanks Fabian Greffrath). The PrintScreen key can be
+ used as a key binding (thanks Alexandre-Xavier).
+ * There is now a config file variable (snd_maxslicetime_ms) to
+ control the sound buffer size, and the default is more precise to
+ reduce sound latency (thanks Holering).
+ * You can now use an external command for music playback (thanks
+ Holering).
+ * All games now detect if you’re tring to play using the wrong type
+ of IWAD (doom.wad with Hexen, etc.) and exit with a helpful error
+ message. A couple of users made this mistake after the 2.0 release
+ introduced support for the new games.
+ * The OS X app now associates with .hhe and .seh files.
+ * There is now a -nodes parameter that automatically starts a
+ netgame when a desired number of players have joined the game.
+ * There is now more extensive documentation about music
+ configuration (README.Music).
+ * On Linux, a GUI pop-up is used when the game quits with an error
+ to show the error message (thanks Willy Barro).
+ * There are now Linux .desktop files for all supported games (thanks
+ Mike Swanson).
+ * The -geometry command line parameter can now be used to specify
+ fullscreen or windowed modes, eg. -geometry 640x480w or -geometry
+ 1024x768f. (thanks Mike Swanson)
+
+ ### Doom
+ * Minor workarounds were added to allow the BFG Edition IWADs to be
+ used without crashing the game (thanks Fabian Greffrath).
+ * GUS patch files included with the BFG Edition are now
+ automatically detected.
+ * The “no fog on spawn west” Vanilla bug is now correctly emulated
+ (thanks xttl).
+ * Behavior of older versions of Doom back to v1.666 can now be
+ emulated.
+ * The new Freedoom IWAD names are now recognized and supported.
+ * Freedoom’s DEHACKED lump can now be parsed and is automatically
+ loaded when a Freedoom IWAD file is used (thanks Fabian
+ Greffrath). A new command line parameter, -nodeh, can be used to
+ prevent this from being loaded.
+ * Behavior of the M_EPI4 menu item is now correctly emulated based
+ on game version (thanks Alexandre-Xavier).
+ * IDCLEV up to MAP40 is now supported, to match Vanilla (thanks
+ Alexandre-Xavier).
+ * Level warping on the command line (-warp) to episodes higher than
+ 4 is possible, matching Vanilla behavior (thanks plumsinus).
+ * The -cdrom command line parameter writes savegames to the correct
+ directory now, matching Vanilla Doom behavior (thanks
+ Alexandre-Xavier).
+ * The Doom II mission pack to use can now be specified manually on
+ the command line with the -pack parameter (thanks chungy)
+
+### Heretic
+ * Weapon cycling keys for mouse and joystick were fixed (thanks
+ Sander van Dijk).
+ * The -timedemo parameter has been fixed, and -playdemo now handles
+ full paths correctly.
+ * A bug when panning the map was fixed (thanks Chris Fielder).
+ * A savegame bug where plat_t structures were not restored correctly
+ was fixed (thanks romeroyakovlev).
+ * Rebinding of the pause key was fixed (thanks Fabian Greffrath).
+
+### Hexen
+ * Music workarounds have been added so that it is possible to play
+ using the Mac version of the Hexen IWAD file.
+ * Weapon cycling keys for mouse and joystick were fixed (thanks
+ Sander van Dijk).
+ * The -timedemo parameter has been fixed, and -playdemo now handles
+ full paths correctly.
+ * There are now key bindings to allow the artifact keys to be
+ rebound (thanks Fabian Greffrath).
+ * Rebinding of the pause key was fixed (thanks Fabian Greffrath).
+ * Maximum level number was extended to MAP60, allowing multiplayer
+ games using the Deathkings add-on.
+ * The startup screen can now be aborted by pressing escape, like in
+ Vanilla.
+ * Desync when playing back DEMO1 was fixed (thanks alexey.lysiuk).
+
+### Strife
+ * “Show mission” key is configured properly in setup (thanks Sander
+ van Dijk).
+ * Default music volume level now matches Vanilla (thanks
+ Alexandre-Xavier).
+ * Teleport beacon allegiance was fixed to match Vanilla (thanks
+ Quasar).
+ * The stair building code now more closely matches Vanilla (thanks
+ Quasar).
+ * Torpedo weapon changing behavior now matches Vanilla (thanks
+ Quasar).
+
+### Cleanups
+ * The copyright headers at the top of all source files have been
+ vastly simplified.
+ * Unsafe string functions have been eliminated from the codebase.
+ Thanks to Theo de Raadt for calling out Chocolate Doom by name
+ (alongside many other packages) for still using unsafe functions
+ like strcpy: http://marc.info/?l=openbsd-tech&m=138733933417096
+ * vldoor_e enum values are now namespaced to avoid potential
+ conflicts with POSIX standard functions.
+
+### Bug fixes
+ * WAD and Dehacked checksums are now sent to clients and checked
+ correctly when setting up netgames.
+ * A bug was fixed that caused sound not to work in multiplayer games
+ (thanks to everyone who reported this, and for Alexandre-Xavier
+ and Quasar for help in fixing it).
+ * The “D_DDTBLU disease” bug affecting certain MIDI files has been
+ fixed (thanks plumsinus, Brad Harding and Quasar).
+ * Calculation of the -devparm “ticker” dots was fixed to match
+ Vanilla behavior (thanks _bruce_ and Alexandre-Xavier).
+ * The PC speaker code now supports the full range of sound
+ frequencies (thanks Gez).
+ * Annoying “jumping” behavior when grabbing the mouse cursor was
+ fixed.
+ * The screen is now initialized at the native bit depth by default,
+ to avoid problems with systems that don’t handle 8-bit
+ screenbuffers very well any more.
+ * The --docdir argument to the configure script is now honored
+ (thanks Jan Engelhardt).
+ * Various issues with the build were fixed (thanks Jan Engelhardt
+ and Fabian Greffrath).
+ * Backwards parameters were fixed in the sound code (thanks
+ proteal).
+ * A crash was fixed when running fullscreen with the -2 parameter
+ (thanks Fabian Greffrath).
+ * A crash when using large values of snd_channels was fixed (thanks
+ Alexandre-Xavier).
+ * A resource leak in the BSD PC speaker code was fixed (thanks
+ Edward-san).
+ * Windows resource files were fixed for Windows 7 (thanks Brad
+ Harding).
+ * A hard to trigger crash caused by a realloc() in the WAD code was
+ fixed (thanks Fabian Greffrath for debugging).
+ * A bug has been fixed where Chocolate Doom would stay running in
+ the background on Windows after quitting. SDL_Quit() is called now
+ (thanks johnsirett, Brad Harding, Quasar).
+ * String replacements in dehacked lumps can now be overridden if a
+ subsequent dehacked patch replaces the same string.
+
+### libtextscreen
+ * Clicking on scrollbars now jumps to the correct position (thanks
+ Alexandre-Xavier).
+ * A use-after-free bug has been fixed where a click in a window that
+ causes the window to close could lead to a crash (thanks DuClare).
+ * Characters that are unprintable in the Extended ASCII chart are
+ just ignored when they’re typed, rather than appearing as an
+ upside-down question mark (thanks Alexandre-Xavier).
+
+## 2.0.0 (2013-12-09)
+
+ This is version 2.0 of Chocolate Doom! This new major version is
+ released to celeberate the 20th anniversary of the first release of
+ Doom in 1993. Happy Birthday Doom!
+
+ This new version has some major changes compared to the 1.0 series:
+
+ * The codebase now includes Chocolate Heretic and Chocolate
+ Hexen. These are based on the GPL source code released by Raven
+ Software.
+ * Also included is Chocolate Strife. This was developed through a
+ mammoth four year reverse engineering project conducted by James
+ “Quasar” Haley and Samuel “Kaiser” Villareal. The result is the
+ most accurate reproduction of Strife to date, including full demo
+ and savegame compatibility. See README.Strife for more
+ information.
+
+### Minor features that are nonetheless worth mentioning
+ * Chocolate Doom now includes a -statdump command line option, which
+ emulates the output of the statdump.exe tool. This is used to
+ implement a form of regression testing (statcheck) that directly
+ compares against the Vanilla behavior.
+ * Chocolate Heretic includes HHE patch file support, and I believe
+ is the first Heretic port to include this feature.
+ * GUS “pseudo-emulation” is now supported. This does not fully
+ emulate a GUS, but Doom’s DMXGUS lump can be used to generate a
+ Timidity configuration file that plays music using the GUS patch
+ set.
+ * The setup tool now includes a built-in server browser, for use
+ when selecting a server to join.
+
+ Version 2.0 of Chocolate Doom has been in development for a long
+ time, and there have been many bugs fixed over this time, too many
+ to list here. Thanks to all the people who have tested it and
+ diligently reported bugs over this time, and to all the people who
+ have tested the beta releases over the past couple of months. Your
+ contributions have been essential and invaluable.
+
+## 1.7.0 (2012-06-09)
+
+ * Fixed gnome-screensaver desktop file (thanks Rahul Sundaram).
+ * Updated COPYING to current version of GPL2 (thanks Rahul
+ Sundaram).
+ * Running servers now re-resolve the address of the master server
+ occasionally, to adapt to DNS address changes.
+ * Error dialog is no longer shown on OS X when running from the
+ console.
+ * The Makefiles no longer use GNU make extensions, so the package
+ builds on OpenBSD.
+ * There is now an OPL MIDI debug option (-opldev), useful for when
+ developing GENMIDI lumps.
+ * A workaround for SDL mouse lag is now only used on Windows (where
+ it is needed), and not on other systems. This fixes Chocolate Doom
+ on AmigaOS (thanks Timo Sievänen).
+ * UTF-8 usernames are supported, and Windows usernames with
+ non-ASCII characters are now supported (thanks Alexandre Xavier).
+
+### Compatibility
+ * Palette accuracy is reduced to 6 bits per channel, to more
+ accurately emulate the PC VGA hardware (thanks GhostlyDeath).
+ * Fixed teleport behavior when emulating the alternate Final Doom
+ executable (-gameversion final2) (thanks xttl).
+
+### Bugs fixed
+ * Fixed weapon cycling keys when playing in Shareware Doom and using
+ the IDKFA cheat (thanks Alexandre Xavier).
+ * Fixed the default mouse buttons in the setup tool (thanks
+ Alexandre Xavier).
+ * Chat macros now work when vanilla_keyboard_mapping is turned off.
+ * Default chat macros were fixed in the setup tool.
+ * Ping time calculation was fixed for LAN search, and made more
+ accurate for all searches.
+ * Fixed bug with detection of IWAD type by filename (thanks mether).
+
+### libtextscreen
+ * There is now limited UTF-8 text support in the textscreen library,
+ used in the label and input box widgets.
+ * Scroll bar behavior was fixed (thanks Alexandre Xavier).
+ * Input boxes stop editing and save when they lose their focus,
+ correcting a previous counterintuitive behavior (thanks Twelve).
+ * The numeric keypad now works properly when entering text values
+ (thanks Twelve).
+
+## 1.6.0 (2011-05-17)
+
+ * The instructions in the INSTALL file are now customized for
+ different platforms, and each binary package contains a version
+ with instructions specific to the platform that it is targetting.
+ This should help to avoid confusion that some users have reported
+ experiencing.
+ * The display settings window in the setup tool has been reorganised
+ to a better arrangement.
+ * It is now possible to load .lmp files (and play back demos) with
+ long filenames (thanks blzut3).
+ * In the setup tool, it is now possible to hold down shift when
+ changing key/mouse/joystick bindings to prevent other bindings to
+ the same key from being cleared (thanks myk).
+ * The joystick menu in the setup tool now has a test button (thanks
+ Alexandre Xavier).
+ * Specifying the -privateserver option implies -server (thanks
+ Porsche Monty).
+ * The Mac OS X .dmg package now has a background and looks generally
+ more polished.
+ * In Mac OS X, it is now possible to simply double click an IWAD
+ file in the Finder to configure its location within the launcher.
+ * Freedesktop.org desktop files are now installed for Doom and the
+ setup tool, which will appear in the main menu on desktop
+ environments such as Gnome and KDE (thanks Adrián Chaves
+ Fernández).
+ * The Chex Quest dehacked patch (chex.deh) will now be detected if
+ it is in the same directory as the IWAD file.
+
+### Compatibility
+ * Added support for the alternate version of the Final Doom
+ executable included in some later versions of the Id Anthology.
+ This version fixed the demo loop crash that occurred with the
+ “original” Final Doom executable.
+
+ This executable can be selected on the command line with
+ -gameversion final2. It has been made the default when playing
+ with the Final Doom IWADs (the original behavior can be selected
+ with -gameversion final). (thanks Porsche Monty, Enjay).
+ * Very short sound effects are not played, to better emulate the
+ behavior of DMX in Vanilla Doom (thanks to Quasar for help in
+ investigating this).
+ * The null sector dereference emulation code has been imported from
+ Prboom+ - this fixes a desync with CLNJ-506.LMP (thanks entryway).
+ * The IDMUS cheat doesn’t work when emulating the v1.9 executable
+ (thanks Alexandre Xavier).
+
+### Bugs fixed
+ * Menu navigation when using joystick/joypad (thanks Alexandre
+ Xavier).
+ * For configuration file value for shift keys, use scan code for
+ right shift, not left shift (thanks Alexandre Xavier).
+ * Default joystick buttons for the setup tool now match Vanilla
+ (thanks twipley).
+ * Visual Studio project files work again (thanks GhostlyDeath).
+ * The default sfx/music volume set by the setup tool is now 8
+ instead of 15, matching the game itself. (thanks Alexandre
+ Xavier).
+ * Weapon cycling from the shotgun to the chaingun in Doom 1 now
+ works properly (thanks Alexandre Xavier).
+ * MIDI playback that locked up when using an empty MUS / MIDI file
+ (thanks Alexandre Xavier).
+ * Default sampling rate used by setup tool changed to 44100Hz, to
+ match the game default (thanks Alexandre Xavier).
+ * Cheat codes and menu hot keys now work when shift is held down or
+ capslock turned on (thanks Alexandre Xavier).
+
+### libtextscreen
+ * The background on GUI controls now lights up when hovering over
+ them, so that it is more obvious what you are selecting.
+ * It is now possible to type a “+” in input boxes (thanks Alexandre
+ Xavier).
+ * It is possible to use the mouse wheel to scroll through scroll
+ panes.
+ * Clicking on scroll bars now moves the scroll handle to a matching
+ location.
+ * Clicking outside a dropdown list popup window now dismisses the
+ window.
+ * Window hotkeys that are an alphabetical letter now work when shift
+ is held down or capslock turned on (thanks Alexandre Xavier).
+
+## 1.5.0 (2011-01-02)
+
+ Big changes in this version:
+
+ * The DOSbox OPL emulator (DBOPL) has been imported to replace the
+ older FMOPL code. The quality of OPL emulation is now therefore
+ much better.
+ * The game can now run in screen modes at any color depth (not just
+ 8-bit modes). This is mainly to work around problems with Windows
+ Vista/7, where 8-bit color modes don’t always work properly.
+ * Multiplayer servers now register themselves with an Internet
+ master server. Use the -search command line parameter to find
+ servers on the Internet to play on. You can also use DoomSeeker
+ (http://skulltag.net/doomseeker/) which supports this
+ functionality.
+ * When running in windowed mode, it is now possible to dynamically
+ resize the window by dragging the window borders.
+ * Names can be specified for servers with the -servername command
+ line parameter.
+ * There are now keyboard, mouse and joystick bindings to cycle
+ through available weapons, making play with joypads or mobile
+ devices (ie. without a proper keyboard) much more practical.
+ * There is now a key binding to change the multiplayer spy key
+ (usually F12).
+ * The setup tool now has a “warp” button on the main menu, like
+ Vanilla setup.exe (thanks Proteh).
+ * Up to 8 mouse buttons are now supported (including the
+ mousewheel).
+ * A new command line parameter has been added (-solo-net) which can
+ be used to simulate being in a single player netgame.
+ * There is now a configuration file parameter to set the OPL I/O
+ port, for cards that don’t use port 0x388.
+ * The Python scripts used for building Chocolate Doom now work with
+ Python 3 (but also continue to work with Python 2) (thanks arin).
+ * There is now a NOT-BUGS file included that lists some common
+ Vanilla Doom bugs/limitations that you might encounter (thanks to
+ Sander van Dijk for feedback).
+
+### Compatibility
+ * The -timer and -avg options now work the same as Vanilla when
+ playing back demos (thanks xttl)
+ * A texture lookup bug was fixed that caused the wrong sky to be
+ displayed in Spooky01.wad (thanks Porsche Monty).
+ * The HacX v1.2 IWAD file is now supported, and can be used
+ standalone without the need for the Doom II IWAD (thanks atyth).
+ * The I_Error function doesn’t display “Error:” before the error
+ message, matching the Vanilla behavior. “Error” has also been
+ removed from the title of the dialog box that appears on Windows
+ when this happens. This is desirable as not all such messages are
+ actually errors (thanks Proteh).
+ * The setup tool now passes through all command line arguments when
+ launching the game (thanks AlexXav).
+ * Demo loop behavior (ie. whether to play DEMO4) now depends on the
+ version being emulated. When playing Final Doom the game will
+ exit unexpectedly as it tries to play the fourth demo - this is
+ Vanilla behaviour (thanks AlexXav).
+
+### Bugs fixed
+ * A workaround has been a bug in old versions of SDL_mixer (v1.2.8
+ and earlier) that could cause the game to lock up. Please upgrade
+ to a newer version if you haven’t already.
+ * It is now possible to use OPL emulation at 11025Hz sound sampling
+ rate, due to the new OPL emulator (thanks Porsche Monty).
+ * The span renderer function (used for drawing floors and ceilings)
+ now behaves the same as Vanilla Doom, so screenshots are
+ pixel-perfect identical to Vanilla Doom (thanks Porsche Monty).
+ * The zone memory system now aligns allocated memory to 8-byte
+ boundaries on 64-bit systems, which may fix crashes on systems
+ such as sparc64 (thanks Ryan Freeman and Edd Barrett).
+ * The configure script now checks for libm, fixing compile problems
+ on Fedora Linux (thanks Sander van Dijk).
+ * Sound distortion with certain music files when played back using
+ OPL (eg. Heretic title screen).
+ * Error in Windows when reading response files (thanks Porsche
+ Monty, xttl, Janizdreg).
+ * Windows Vista/7 8-bit color mode issues (the default is now to run
+ in 32-bit color depth on these versions) (thanks to everybody who
+ reported this and helped test the fix).
+ * Screen borders no longer flash when running on widescreen
+ monitors, if you choose a true-color screen mode (thanks exp(x)).
+ * The controller player in a netgame is the first player to join,
+ instead of just being someone who gets lucky.
+ * Command line arguments that take an option now check that an
+ option is provided (thanks Sander van Dijk).
+ * Skill level names in the setup tool are now written the same as
+ they are on the in-game “new game” menu (thanks AlexXav).
+ * There is no longer a limit on the lengths of filenames provided to
+ the -record command line parameter (thanks AlexXav).
+ * Window title is not lost in setup tool when changing video driver
+ (thanks AlexXav).
+
+### libtextscreen
+ * The font used for the textscreen library can be forced by setting
+ the TEXTSCREEN_FONT environment variable to “small” or “normal”.
+ * Tables or scroll panes that don’t contain any selectable widgets
+ are now themselves not selectable (thanks Proteh).
+ * The actions displayed at the bottom of windows are now laid out in
+ a more aesthetically pleasing way.
+
+## 1.4.0 (2010-07-10)
+
+ The biggest change in this version is the addition of OPL emulation.
+ This emulates Vanilla Doom’s MIDI playback when using a Yamaha OPL
+ synthesizer chip, as was found on SoundBlaster compatible cards.
+
+ A software OPL emulator is included as most modern computers do not
+ have a hardware OPL chip any more. If you do have one, you can
+ configure Chocolate Doom to use it; see README.OPL.
+
+ The OPL playback feature is not yet perfect or 100% complete, but is
+ judged to be good enough for general use. If you find music that
+ does not play back properly, please report it as a bug.
+
+### Other changes
+ * The REJECT overflow emulation code from PrBoom+ has been
+ imported. This fixes demo desync on some demos, although
+ others will still desync.
+ * Warnings are now generated for invalid dehacked replacements of
+ printf format strings. Some potential buffer overflows are also
+ checked.
+ * The installation instructions (INSTALL file) have been clarified
+ and made more platform-agnostic.
+ * The mouse is no longer warped to the center of the screen when the
+ demo sequence advances.
+ * Key bindings can now be changed for the demo recording quit key
+ (normally ‘q’) and the multiplayer messaging keys (normally ‘t’,
+ ‘g’, ‘i’, ‘b’ and ‘r’).
+
+## 1.3.0 (2010-02-10)
+
+ * Chocolate Doom now runs on Windows Mobile/Windows CE!
+ * It is possible to rebind most/all of the keys that control the
+ menu, shortcuts, automap and weapon switching. The main reason
+ for this is to support the Windows CE port and other platforms
+ where a full keyboard may not be present.
+ * Chocolate Doom now includes a proper Mac OS X package; it is no
+ longer necessary to compile binaries for this system by hand. The
+ package includes a simple graphical launcher program and can be
+ installed simply by dragging the “Chocolate Doom” icon to the
+ Applications folder. (thanks to Rikard Lang for extensive testing
+ and feedback)
+ * The video mode auto-adjust code will automatically choose windowed
+ mode if no fullscreen video modes are available.
+ * The zone memory size is automatically reduced on systems with a
+ small amount of memory.
+ * The “join game” window in the setup tool now has an option to
+ automatically join a game on the local network.
+ * Chocolate Doom includes some initial hacks for compiling under
+ SDL 1.3.
+ * Recent versions of SDL_mixer include rewritten MIDI code on Mac OS
+ X. If you are using a version of SDL_mixer with the new code,
+ music will now be enabled by default.
+ * Windows Vista and Windows 7 no longer prompt for elevated
+ privileges when running the setup tool (thanks hobbs and MikeRS).
+ * The Windows binaries now have better looking icons (thanks
+ MikeRS).
+ * Magic values specified using the -spechit command line parameter
+ can now be hexadecimal.
+ * DOOMWADDIR/DOOMWADPATH can now specify the complete path to IWAD
+ files, rather than the path to the directory that contains them.
+ * When recording shorttics demos, errors caused by the reduced
+ turning resolution are carried forward, possibly making turning
+ smoother.
+ * The source tarball can now be used to build an RPM package:
+ rpmbuild -tb chocolate-doom-VER.tar.gz
+
+### Compatibility
+ * The A_BossDeath behavior in v1.9 emulation mode was fixed (thanks
+ entryway)
+ * The “loading” disk icon is drawn more like how it is drawn in
+ Vanilla Doom, also fixing a bug with chook3.wad.
+ * Desync on 64-bit systems with ep1-0500.lmp has (at long last) been
+ fixed (thanks exp(x)).
+ * Donut overrun emulation code imported from Prboom+ (thanks
+ entryway).
+ * The correct level name should now be shown in the automap for
+ pl2.wad MAP33 (thanks Janizdreg).
+ * In Chex Quest, the green radiation suit colormap is now used
+ instead of the red colormaps normally used when taking damage or
+ using the berserk pack. This matches Vanilla chex.exe behavior
+ (thanks Fuzztooth).
+ * Impassible glass now displays and works the same as in Vanilla,
+ fixing wads such as OTTAWAU.WAD (thanks Never_Again).
+
+### Bugs fixed
+ * Memory-mapped WAD I/O is disabled by default, as it caused various
+ issues, including a slowdown/crash with Plutonia 2 MAP23. It can
+ be explicitly re-enabled using the “-mmap” command line parameter.
+ * Crash when saving games due to the ~/.chocolate-doom/savegames
+ directory not being created (thanks to everyone who reported
+ this).
+ * Chocolate Doom will now run under Win95/98, as the
+ SetProcessAffinityMask function is looked up dynamically.
+ * Compilation under Linux with older versions of libc will now work
+ (the semantics for sched_setaffinity were different in older
+ versions)
+ * Sound clipping when using libsamplerate was improved (thanks David
+ Flater)
+ * The audio buffer size is now calculated based on the sample rate,
+ so there is not a noticeable delay when using a lower sample rate.
+ * The manpage documentation for the DOOMWADPATH variable was fixed
+ (thanks MikeRS).
+ * Compilation with FEATURE_MULTIPLAYER and FEATURE_SOUND disabled
+ was fixed.
+ * Fixed crash when using the donut special type and the joining
+ linedef is one sided (thanks Alexander Waldmann).
+ * Key settings in a configuration file that are out of range do not
+ cause a crash (thanks entryway).
+ * Fix ear-piercing whistle when playing the MAP05 MIDI music using
+ timidity with EAWPATS (thanks entryway / HackNeyed).
+
+### libtextscreen
+ * There is now a second, small textscreen font, so that the ENDOOM
+ screen and setup tool can be used on low resolution devices
+ (eg. PDAs/embedded devices)
+ * The textscreen library now has a scrollable pane widget. Thanks to
+ LionsPhil for contributing code to scroll up and down using the
+ keyboard.
+ * Doxygen documentation was added for the textscreen library.
+
+## 1.2.1 (2008-12-10)
+
+ This version just fixes a crash at the intermission screen when
+ playing Doom 1 levels.
+
+## 1.2.0 (2008-12-10)
+
+ Happy 15th Birthday, Doom!
+
+ * Chocolate Doom now has an icon that is not based on the
+ proprietary Doom artwork.
+ * There is now memory-mapped WAD I/O support, which should be useful
+ on some embedded systems.
+ * Chex quest emulation support is now included, although an
+ auxiliary dehacked patch is needed (chexdeh.zip in the idgames
+ archive).
+
+### Compatibility
+ * The armor class is always set to 2 when picking up a megasphere
+ (thanks entryway).
+ * The quit screen prompts to quit “to dos” instead of just to quit
+ (thanks MikeRS)
+ * The “dimensional shambler” quit message was fixed.
+ * Fix crash related to A_BFGSpray with NULL target when using
+ dehacked patches - discovered with insaned2.deh (thanks CSonicGo)
+ * NUL characters are stripped from dehacked files, to ensure correct
+ behavior with some dehacked patches (eg. the one with portal.wad).
+
+### Bugs fixed
+ * “Python Image Library” should have been “Python Imaging Library”
+ (thanks exp(x)).
+ * The setup tool should no longer ask for elevated permissions on
+ Windows Vista (this fix possibly may not work).
+ * The application icon is set properly when running under Windows XP
+ with the “Luna” theme.
+ * Fix compilation under Cygwin to detect libraries and headers from
+ the correct environment.
+ * The video code does not try to read SDL events before SDL has been
+ properly initialised - this was causing problems with some older
+ versions of SDL.
+
+## 1.1.1 (2008-04-20)
+
+ The previous release (v1.1.0) included a bug that broke compilation
+ when libsamplerate support was enabled. The only change in this
+ version is to fix this bug.
+
+## 1.1.0 (2008-04-19)
+
+ * The video mode code has been radically restructured. The video
+ mode is now chosen by directly specifying the mode to use; the
+ scale factor is then chosen to fit the screen. This is helpful
+ when using widescreen monitors (thanks Linguica)
+ * MSVC build project files (thanks GhostlyDeath and entryway).
+ * Unix manpage improvements; the manpage now lists the environment
+ variables that Chocolate Doom uses. Manpages have been added for
+ chocolate-setup and chocolate-server, from the versions for the
+ Debian Chocolate Doom package (thanks Jon Dowland).
+ * INSTALL file with installation instructions for installing
+ Chocolate Doom on Unix systems.
+ * Support for high quality resampling of sound effects using
+ libsamplerate (thanks David Flater).
+ * A low pass filter is applied when doing sound resampling in an
+ attempt to filter out high frequency noise from the resampling
+ process.
+ * R_Main progress box is not displayed if stdout is a file (produces
+ cleaner output).
+ * Client/server version checking can be disabled to allow different
+ versions of Chocolate Doom to play together, or Chocolate Doom
+ clients to play with Strawberry Doom clients.
+ * Unix manpages are now generated for the Chocolate Doom
+ configuration files.
+ * The BSD PC speaker driver now works on FreeBSD.
+
+### Compatibility
+ * Use the same spechits compatibility value as PrBoom+, for
+ consistency (thanks Lemonzest).
+ * The intercepts overrun code has been refactored to work on big
+ endian machines.
+ * The default startup delay has been set to one second, to allow
+ time for the screen to settle before starting the game (some
+ monitors have a delay before they come back on after changing
+ modes).
+ * If a savegame buffer overrun occurs, the savegame does not get
+ saved and existing savegames are not overwritten (same behaviour
+ as Vanilla).
+
+### Bugs fixed
+ * Desync with STRAIN demos and dehacked Misc values not being set
+ properly (thanks Lemonzest)
+ * Don’t grab the mouse if the mouse is disabled via -nomouse or
+ use_mouse in the configuration file (thanks MikeRS).
+ * Don’t center the mouse on startup if the mouse is disabled (thanks
+ Siggi).
+ * Reset the palette when the window is restored to clear any screen
+ corruption (thanks Catoptromancy).
+ * mus2mid.c should use `MEM_SEEK_SET`, not `SEEK_SET` (thanks
+ Russell)
+ * Fast/Respawn options were not being exchanged when starting
+ netgames (thanks GhostlyDeath).
+ * Letterbox mode is more accurately described as “pillarboxed” or
+ “windowboxed” where appropriate (thanks MikeRS)
+ * Process affinity mask is set to 1 on Windows, to work around a bug
+ in SDL_mixer that can cause crashes on multi-core machines (thanks
+ entryway).
+ * Bugs in the joystick configuration dialog in the setup tool have
+ been fixed.
+
+## 1.0.0 (2007-12-10)
+
+ This release is dedicated to Dylan “Toke” McIntosh, who was
+ tragically killed in a car crash in 2006. I knew Dylan from IRC and
+ the Doomworld forums for several years, and he had a deep passion
+ for this game. He was also a huge help for me while developing
+ Chocolate Doom, as he helped point out a lot of small quirks in
+ Vanilla Doom that I didn’t know about. His death is a great loss.
+ RIP Toke.
+
+ This is the first release to reach full feature parity with Vanilla
+ Doom. As a result, I have made this version 1.0.0, so Chocolate
+ Doom is no longer beta!
+
+### Big new features
+ * Multiplayer! This version includes an entirely new multiplayer
+ engine, based on a packet server architecture. I’d like to thank
+ joe, pritch, Meph and myk, and everyone else who has helped test
+ the new code for their support, feedback and help in testing this.
+ The new code still needs more testing, and I’m eager to hear any
+ feedback on this.
+ * A working setup tool. This has the same look and feel as the
+ original setup.exe. I hope people like it! Note that it has some
+ advantages over the original setup.exe - for example, you can use
+ the mouse.
+
+### Other new features
+ * New mus conversion code thanks to Ben Ryves. This converts the
+ Doom .mus format to .mid a lot better. As one example, tnt.wad
+ Map02 is now a lot closer to how Vanilla says. Also, the music on
+ the deca.wad titlescreen now plays!
+ * x3, x4 and x5 display scale (thanks to MikeRS for x5 scale).
+ * Fullscreen “letterbox” mode allows Chocolate Doom to run on
+ machines where 1.6:1 aspect ratio modes are unavailable
+ (320x200/640x400). The game runs in 320x240/640x480 instead, with
+ black borders. The system automatically adjusts to this if closer
+ modes are unavailable.
+ * Aspect ratio correction: you can (also) run at 640x480 without
+ black borders at the top and bottom of the screen.
+ * PC speaker sound effect support. Chocolate Doom can output real
+ PC speaker sounds on Linux, or emulate a PC speaker through the
+ sound card.
+ * Working three-screen mode, as seen in early versions of Doom! To
+ test this out, put three computers on a LAN and type:
+
+ chocolate-doom -server
+ chocolate-doom -autojoin -left
+ chocolate-doom -autojoin -right
+
+ * Allow a delay to be specified on startup, to allow the display to
+ settle after changing modes before starting the game.
+ * Allow the full path and filename to be specified when loading
+ demos: It is now possible to type “chocolate-doom -playdemo
+ /tmp/foo.lmp” for example.
+ * Savegames are now stored in separate directories depending on the
+ IWAD: eg. the savegames for Doom II are stored in a different
+ place to those for Doom I, Final Doom, etc. (this does not affect
+ Windows).
+ * New mouse acceleration code works based on a threshold and
+ acceleration. Hopefully this should be closer to what the DOS
+ drivers do. There is a ‘test’ feature in the setup tool to help
+ in configuring this.
+ * New “-nwtmerge” command line option that emulates NWT’s “-merge”
+ option. This allows TiC’s Obituary TC to be played.
+ * The ENDOOM screen no longer closes automatically, you have to
+ click the window to make it go away.
+ * Spechit overrun fixes and improvements. Thanks to entryway for
+ his continued research on this topic (and because I stole your
+ improvements :-). Thanks to Quasar for reporting a bug as well.
+ * Multiple dehacked patches can be specified on the command line, in
+ the same way as with WADs - eg. -deh foo.deh bar.deh baz.deh.
+ * Default zone memory size increased to 16MB; this can be controlled
+ using the -mb command-line option.
+ * It is now possible to record demos of unlimited length (by
+ default, the Vanilla limit still applies, but it can now be
+ disabled).
+ * Autoadjusting the screen mode can now be disabled.
+ * On Windows, the registry is queried to detect installed versions
+ of Doom and automatically locate IWAD files. IWADs installed
+ through Steam are also autodetected.
+ * Added DOOMWADPATH that can be used like PATH to specify multiple
+ locations in which to search for IWAD files. Also, “-iwad” is now
+ enhanced, so that eg. “-iwad doom.wad” will now search all IWAD
+ search paths for “doom.wad”.
+ * Improved mouse tracking that should no longer lag. Thanks to
+ entryway for research into this.
+ * The SDL driver can now be specified in the configuration file.
+ The setup tool has an option on Windows to select between DirectX
+ and windib.
+ * Joystick support.
+ * Configuration file option to change the sound sample rate.
+ * More than three mouse buttons are now supported.
+
+### Portability improvements
+ * Chocolate Doom now compiles and runs cleanly on MacOS X. Huge
+ thanks go to Insomniak who kindly gave me an account on his
+ machine so that I could debug this remotely. Big thanks also go
+ to athanatos on the Doomworld forums for his patience in testing
+ various ideas as I tried to get Chocolate Doom up and running on
+ MacOS.
+ * Chocolate Doom now compiles and runs natively on AMD64.
+ * Chocolate Doom now compiles and runs on Solaris/SPARC, including
+ the Sun compiler. Thanks to Mike Spooner for some portability
+ fixes.
+ * Improved audio rate conversion, so that sound should play properly
+ on machines that don’t support low bitrate output.
+
+### Compatibility fixes
+ * Check for IWADs in the same order as Vanilla Doom.
+ * Dehacked code will now not allow string replacements to be longer
+ than those possible through DOS dehacked.
+ * Fix sound effects playing too loud on level 8 (thanks to myk for
+ his continued persistence in getting me to fix this)
+ * Save demos when quitting normally - it is no longer necessary to
+ press ‘q’ to quit and save a demo.
+ * Fix spacing of -devparm mode dots.
+ * Fix sky behavior to be the same as Vanilla Doom - when playing in
+ Doom II, the skies never change from the sky on the first level
+ unless the player loads from a savegame.
+ * Make -nomouse and config file use_mouse work again.
+ * Fix the -nomusic command-line parameter. Make the snd_sfxdevice
+ snd_musicdevice values in the configuration file work, so that it
+ is possible to disable sound, as with Vanilla.
+ * Repeat key presses when the key is held down (this is the Vanilla
+ behavior) - thanks to Mad_Mac for pointing this out.
+ * Don’t print a list of all arguments read from response files -
+ Vanilla doesn’t do this.
+ * Autorun only when joyb_speed >= 10, not >= 4. Thanks to Janizdreg
+ for this.
+ * Emulate a bug in DOS dehacked that can overflow the dehacked frame
+ table and corrupt the weaponinfo table. Note that this means
+ Batman Doom will no longer play properly (identical behavior to
+ Vanilla); vbatman.deh needs to also be applied to fix it. (Thanks
+ grazza)
+ * Allow dehacked 2.3 patches to be loaded.
+ * Add more dehacked string replacements.
+ * Compatibility option to enable or disable native key mappings.
+ This means that people with non-US keyboards can decide whether to
+ use their correct native mapping or behave like Vanilla mapping
+ (which assumes all keyboards are US).
+ * Emulate overflow bug in P_FindNextHighestFloor. Thanks to
+ entryway for the fix for this.
+ * Add -netdemo command line parameter, for playing back netgame
+ demos recorded with a single player.
+ * The numeric keypad now behaves like Vanilla Doom does.
+ * Fix some crashes when loading from savegames.
+ * Add intercepts overrun emulation from PrBoom-plus. Thanks again
+ to entryway for his research on this subject.
+ * Add playeringame overrun emulation.
+
+### Bugs fixed
+ * Fix crash when starting new levels due to the intermission screen
+ being drawn after the WI_ subsystem is shut down (thanks pritch
+ and joe)
+ * Catch failures to initialise sound properly, and fail gracefully.
+ * Fix crasher in 1427uv01.lmp (thanks ultdoomer)
+ * Fix crash in udm1.wad.
+ * Fix crash when loading a savegame with revenant tracer missiles.
+ * Fix crash when loading a savegame when a mancubus was in the
+ middle of firing.
+ * Fix Doom 1 E1-3 intermission screen animations.
+ * Fix loading of dehacked “sound” sections.
+ * Make sure that modified copyright banners always end in a newline
+ - this fixes a bug with av.wad (thanks myk)
+ * Added missing quit message (“are you sure you want to quit this
+ great game?”).
+ * Fix when playing long sound effects - the death sound in
+ marina.wad now plays properly, for example.
+ * Fix buffer overrun on the quicksave prompt screen that caused a
+ mysterious cycling character to appear.
+ * IDCLEV should not work in net games (thanks Janizdreg)
+ * Stop music playing at the ENDOOM screen.
+ * Fix sound sample rate conversion crash.
+ * Fix “pop” heard at the end of sound effects.
+ * Fix crash when playing long sounds.
+ * Fix bug with -timedemo accuracy over multi-level demos.
+ * Fix bug with the automap always following player 1 in multiplayer
+ mode (thanks Janizdreg).
+
+## 0.1.4 (2006-02-13)
+
+ * NWT-style merging command line options (allows Mordeth to be played)
+ * Unix manpage (thanks Jon Dowland)
+ * Dehacked improvements/fixes:
+ * Allow changing the names of graphic lumps used in menu, status bar
+ intermission screen, etc.
+ * Allow changing skies, animated flats + textures
+ * Allow changing more startup strings.
+ * Allow text replacements on music + sfx lump names
+ * Fix for plutonia map12 crash.
+ * Fix bug with playing long sfx at odd sample rates.
+ * Big Endian fixes (for MacOS X). Thanks to athanatos for helping
+ find some of these.
+ * Install into /usr/games, rather than /usr/bin (thanks Jon Dowland)
+
+## 0.1.3 (2006-01-20)
+
+ * Imported the spechit overrun emulation code from prboom-plus. Thanks to
+ Andrey Budko for this.
+ * New show_endoom option in the chocolate-doom.cfg config file allows
+ the ENDOOM screen to be disabled.
+ * Chocolate Doom is now savegame-compatible with Vanilla Doom.
+
+ * Fixes for big endian machines (thanks locust)
+ * Fixed the behavior of the dehacked maximum health setting.
+ * Fix the “-skill 0” hack to play without any items (thanks to Janizdreg
+ for pointing out that this was nonfunctional)
+ * Fix playing of sounds at odd sample rates (again). Sound effects
+ at any sample rate now play, but only sounds with valid headers.
+ This is the *real* way Vanilla Doom behaves. Thanks to myk for
+ pointing out the incorrect behavior.
+
+## 0.1.2 (2005-10-29)
+
+ * Silence sounds at odd sample rates (rather than bombing out); this
+ is the way Vanilla Doom behaves.
+ * Handle multiple replacements of the same sprite in a PWAD.
+ * Support specifying a specific version to emulate via the command line
+ (-gameversion)
+ * Fix help screen orderings and skull positions. Behave exactly as
+ the original executables do.
+
+## 0.1.1 (2005-10-18)
+
+ * Display startup “banners” if they have been modified through
+ dehacked.
+ * Dehacked “Misc” section support.
+
+### Bugs fixed
+ * Doom 1 skies always using Episode 1 sky
+ * Crash when switching applications while running fullscreen
+ * Lost soul bounce logic (do not bounce in Registered/Shareware)
+ * Mouse buttons mapped incorrectly (button 1 is right, 2 is middle)
+ * Music not pausing when game is paused, when using SDL_mixer’s
+ native MIDI playback.
+ * Pink icon on startup (palette should be fully set before anything is
+ loaded)
+
+## 0.1.0 (2005-10-09)
+
+ * Dehacked support
+ * WAD merging for TCs
+ * ENDOOM display
+ * Fix bug with invalid MUS files causing crashes
+ * Final Doom fixes
+
+## 0.0.4 (2005-09-27)
+
+ * Application icon and version info included in Windows .exe files
+ * Fixes for non-x86 architectures
+ * Fix uac_dead.wad (platform drop on e1m8 should occur when all
+ bosses die, not just barons)
+ * Fix “loading” icon to work for all graphics modes
+
+## 0.0.3 (2005-09-17)
+
+ * Mouse acceleration code to emulate the behaviour of old DOS mouse
+ drivers (thanks to Toke for information about this and
+ suggestions)
+ * Lock surfaces properly when we have to (fixes crash under
+ Windows 98)
+
+## 0.0.2 (2005-09-13)
+
+ * Remove temporary MIDI files generated by sound code.
+ * Fix sound not playing at the right volume
+ * Allow alt-tab away while running in fullscreen under Windows
+ * Add second configuration file (chocolate-doom.cfg) to allow
+ chocolate-doom specific settings.
+ * Fix switches not changing in Ultimate Doom
+
+## 0.0.1 (2005-09-07)
+
+ First beta release
--- a/NOT-BUGS
+++ /dev/null
@@ -1,169 +1,0 @@
-
-The aim of Chocolate Doom is to behave as closely to Vanilla Doom as
-possible. As a result, you may experience problems that you would
-also experience when using Vanilla Doom. These are not "bugs" as
-Chocolate Doom is behaving as intended.
-
-This is not intended to be a comprehensive list of Vanilla Doom bugs.
-For more information, consult the "engine bugs" page of the Doom Wiki.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game exits after title screen with message about game version ==
-
-The game may exit after the title screen is shown, with a message like
-the following:
-
- Demo is from a different game version!
- (read 106, should be 109)
-
- *** You may need to upgrade your version of Doom to v1.9. ***
- See: https://www.doomworld.com/classicdoom/info/patches.php
- This appears to be v1.6/v1.666.
-
-This usually indicates that your IWAD file that you are using to play
-the game (usually named doom.wad or doom2.wad) is out of date.
-Chocolate Doom only supports the v1.9 IWAD file.
-
-To fix the problem, you must upgrade to the v1.9 IWAD file. The URL
-in the message has downloadable upgrade patches that you can use to
-upgrade.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game exits in demo loop when playing Final Doom ==
-
-When playing with the Final Doom IWAD files (tnt.wad, plutonia.wad),
-if you leave the game at the title screen to play through the demo
-loop, it will eventually exit with the following error message:
-
- W_GetNumForName: demo4 not found!
-
-This is the same behavior as the Vanilla executables that were
-bundled with Final Doom. When Ultimate Doom was developed, a fourth
-demo was added to the demo loop, and this change was retained in the
-Final Doom version of the executable. However, the Final Doom IWADs
-do not include a fourth demo, so the game crashes.
-
-An alternate version of Final Doom was included in the Id Anthology
-boxed set, and this version of the game fixed this bug. However, this
-version also changes the teleport behavior, so the default is to
-emulate the most commonly distributed version of the game. To use
-the alternate version, run with:
-
- chocolate-doom -gameversion final2
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game exits when accessing the options menu ==
-
-The game may exit with the message "Bad V_DrawPatch" when accessing
-the options menu, if you have your mouse sensitivity set high.
-
-The Doom options menu has a slider that allows the mouse sensitivity
-to be controlled; however, it has only a very limited range. It is
-common for experienced players to set a mouse sensitivity that is much
-higher than what can be set via the options menu. The setup program
-allows a larger range of values to be set.
-
-However, setting very high sensitivity values causes the game to exit
-when accessing the options menu under Vanilla Doom. Because Chocolate
-Doom aims to emulate Vanilla Doom as closely as possible, it does the
-same thing.
-
-One solution to the problem is to set a lower mouse sensitivity.
-Alternatively, all of the settings in the options menu can be
-controlled through Doom's key bindings anyway:
-
- End game: F7
- Messages on/off: F8
- Graphic detail high/low: F5
- Screen size smaller/larger: -/+
- Sound volume menu: F4
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game exits with "Savegame buffer overrun" when saving the game ==
-
-If you are playing on a particularly large level, it is possible that
-when you save the game, the game will quit with the message "Savegame
-buffer overrun".
-
-Vanilla Doom has a limited size memory buffer that it uses for saving
-games. If you are playing on a large level, the buffer may be too
-small for the entire savegame to fit. Chocolate Doom allows the limit
-to be disabled: in the setup tool, go to the "compatibility" menu and
-disable the "Vanilla savegame limit" option.
-
-If this error happens to you, your game has not been lost! A file
-named temp.dsg is saved; rename this to doomsav0.dsg to make it appear
-in the first slot in the "load game" menu. (On Unix systems, you will
-need to look in the .chocolate-doom/savegames directory in your home
-directory)
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game ends suddenly when recording a demo ==
-
-If you are recording a very long demo, the game may exit suddenly.
-Vanilla Doom has a limited size memory buffer that it uses to save the
-demo into. When the buffer is full, the game exits. You can tell if
-this happens, as the demo file will be around 131,072 bytes in size.
-
-You can work around this by using the -maxdemo command line parameter
-to specify a larger buffer size. Alternatively, the limit can be
-disabled: in the setup tool, go to the compatibility menu and disable
-the "Vanilla demo limit" option.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Game exits with a message about "visplanes" ==
-
-The game may exit with one of these messages:
-
- R_FindPlane: no more visplanes
- R_DrawPlanes: visplane overflow (129)
-
-This is known as the "visplane overflow" limit and is one of the most
-well-known Vanilla Doom engine limits. You should only ever experience
-this when trying to play an add-on level. The level you are trying to
-play is too complex; it was most likely designed to work with a limit
-removing source port.
-
-More information can be found here (archived link):
-
- https://archive.is/s6h7V
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== IDMUS## cheat doesn't work with shareware/registered Doom IWADs ==
-
-The IDMUS cheat allows the in-game music to be changed. However, in
-the original v1.9 this cheat didn't work properly when playing with
-the Doom 1 (shareware and registered) IWADs. This bug was fixed in
-the Ultimate Doom and Final Doom executables.
-
-Chocolate Doom emulates this bug. When playing with the shareware or
-registered Doom IWADs, the IDMUS cheat therefore does not work
-properly. If you are playing with the Ultimate Doom IWAD, the
-Ultimate Doom executable is emulated by default, so the cheat works
-properly.
-
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-== Some graphics are wrong when playing with BFG Edition IWADs ==
-
-If you are playing using the IWAD files from Doom 3: BFG Edition, you
-may notice that certain graphics appear strange or wrong. This
-includes the title screen, and parts of the options menu.
-
-The IWAD files in the new BFG Edition have had some significant
-changes from the IWAD files in older releases. Some of the graphics
-lumps have been removed or changed, and the Doom 2 secret levels are
-also censored. Chocolate Doom includes some small workarounds that
-allow the game to run, but for the best experience, it's best to get a
-copy of the classic versions of the IWADs. These are still available
-to buy from Steam or Id's online store.
-
-# vim: tw=70
-
--- /dev/null
+++ b/NOT-BUGS.md
@@ -1,0 +1,149 @@
+The aim of Chocolate Doom is to behave as closely to Vanilla Doom as
+possible. As a result, you may experience problems that you would
+also experience when using Vanilla Doom. These are not “bugs” as
+Chocolate Doom is behaving as intended.
+
+This is not intended to be a comprehensive list of Vanilla Doom bugs.
+For more information, consult the “engine bugs” page of the Doom Wiki.
+
+## Game exits after title screen with message about game version
+
+The game may exit after the title screen is shown, with a message like
+the following:
+
+ Demo is from a different game version!
+ (read 2, should be 109)
+
+ *** You may need to upgrade your version of Doom to v1.9. ***
+ See: https://www.doomworld.com/classicdoom/info/patches.php
+ This appears to be v1.0/v1.1/v1.2.
+
+This usually indicates that your IWAD file that you are using to play
+the game (usually named doom.wad or doom2.wad) is out of date.
+Chocolate Doom only supports versions 1.666 through 1.9.
+
+To fix the problem, you must upgrade your IWAD file, preferably
+to 1.9. The URL in the message has downloadable upgrade patches that
+you can use to upgrade.
+
+## Game exits in demo loop when playing Final Doom
+
+When playing with the Final Doom IWAD files (tnt.wad, plutonia.wad),
+if you leave the game at the title screen to play through the demo
+loop, it will eventually exit with the following error message:
+
+ W_GetNumForName: demo4 not found!
+
+This is the same behavior as the Vanilla executables that were
+bundled with Final Doom. When Ultimate Doom was developed, a fourth
+demo was added to the demo loop, and this change was retained in the
+Final Doom version of the executable. However, the Final Doom IWADs
+do not include a fourth demo, so the game crashes.
+
+An alternate version of Final Doom was included in the Id Anthology
+boxed set, and this version of the game fixed this bug. However, this
+version also changes the teleport behavior, so the default is to
+emulate the most commonly distributed version of the game. To use
+the alternate version, run with:
+
+ chocolate-doom -gameversion final2
+
+## Game exits when accessing the options menu
+
+The game may exit with the message “Bad V_DrawPatch” when accessing
+the options menu, if you have your mouse sensitivity set high.
+
+The Doom options menu has a slider that allows the mouse sensitivity
+to be controlled; however, it has only a very limited range. It is
+common for experienced players to set a mouse sensitivity that is much
+higher than what can be set via the options menu. The setup program
+allows a larger range of values to be set.
+
+However, setting very high sensitivity values causes the game to exit
+when accessing the options menu under Vanilla Doom. Because Chocolate
+Doom aims to emulate Vanilla Doom as closely as possible, it does the
+same thing.
+
+One solution to the problem is to set a lower mouse sensitivity.
+Alternatively, all of the settings in the options menu can be
+controlled through Doom’s key bindings anyway:
+
+Option | Key
+---------------------------|-----
+End game | F7
+Messages on/off | F8
+Graphic detail high/low | F5
+Screen size smaller/larger | -/+
+Sound volume menu | F4
+
+## Game exits with “Savegame buffer overrun” when saving the game
+
+If you are playing on a particularly large level, it is possible that
+when you save the game, the game will quit with the message “Savegame
+buffer overrun”.
+
+Vanilla Doom has a limited size memory buffer that it uses for saving
+games. If you are playing on a large level, the buffer may be too
+small for the entire savegame to fit. Chocolate Doom allows the limit
+to be disabled: in the setup tool, go to the “compatibility” menu and
+disable the “Vanilla savegame limit” option.
+
+If this error happens to you, your game has not been lost! A file
+named temp.dsg is saved; rename this to doomsav0.dsg to make it appear
+in the first slot in the “load game” menu. (On Unix systems, you will
+need to look in the .chocolate-doom/savegames directory in your home
+directory)
+
+## Game ends suddenly when recording a demo
+
+If you are recording a very long demo, the game may exit suddenly.
+Vanilla Doom has a limited size memory buffer that it uses to save the
+demo into. When the buffer is full, the game exits. You can tell if
+this happens, as the demo file will be around 131,072 bytes in size.
+
+You can work around this by using the -maxdemo command line parameter
+to specify a larger buffer size. Alternatively, the limit can be
+disabled: in the setup tool, go to the compatibility menu and disable
+the “Vanilla demo limit” option.
+
+## Game exits with a message about “visplanes”
+
+The game may exit with one of these messages:
+
+ R_FindPlane: no more visplanes
+ R_DrawPlanes: visplane overflow (129)
+
+This is known as the “visplane overflow” limit and is one of the most
+well-known Vanilla Doom engine limits. You should only ever experience
+this when trying to play an add-on level. The level you are trying to
+play is too complex; it was most likely designed to work with a limit
+removing source port.
+
+More information can be found here (archived link): https://archive.is/s6h7V
+
+## IDMUS## cheat doesn’t work with shareware/registered Doom IWADs
+
+The IDMUS cheat allows the in-game music to be changed. However, in
+the original v1.9 this cheat didn’t work properly when playing with
+the Doom 1 (shareware and registered) IWADs. This bug was fixed in
+the Ultimate Doom and Final Doom executables.
+
+Chocolate Doom emulates this bug. When playing with the shareware or
+registered Doom IWADs, the IDMUS cheat therefore does not work
+properly. If you are playing with the Ultimate Doom IWAD, the
+Ultimate Doom executable is emulated by default, so the cheat works
+properly.
+
+## Some graphics are wrong when playing with BFG Edition IWADs
+
+If you are playing using the IWAD files from Doom 3: BFG Edition, you
+may notice that certain graphics appear strange or wrong. This
+includes the title screen, and parts of the options menu.
+
+The IWAD files in the new BFG Edition have had some significant
+changes from the IWAD files in older releases. Some of the graphics
+lumps have been removed or changed, and the Doom 2 secret levels are
+also censored. Chocolate Doom includes some small workarounds that
+allow the game to run, but for the best experience, it’s best to get a
+copy of the classic versions of the IWADs. These are still available
+to buy from Steam or GOG.com.
--- a/PHILOSOPHY
+++ /dev/null
@@ -1,200 +1,0 @@
-
-Chocolate Doom has been designed around a careful and deliberate
-philosophy that attempts to recreate the original ("Vanilla") DOS
-executables for Doom, Heretic, Hexen and Strife. This document
-describes some of that philosophy and the reasoning behind it.
-
-This document is descriptive, not proscriptive.
-
-== Vanilla behavior ==
-
-Ideally Chocolate Doom aims to recreate the behavior of the Vanilla
-binaries, but different aspects of Vanilla behavior are held to
-varying degrees of importance. It can be imagined as different "tiers"
-of compatibility:
-
- * The game and gameplay itself is of central importance. Here, the
- Vanilla behavior ought to be maintained as accurately as possible.
- This includes the look, feel and sound, and things like demo
- compatibility.
- * The surrounding aspects of the game that aren't part of the central
- gameplay experience can be extended as long as there's a good
- reason and Vanilla behavior is respected.
- * The setup tool is not required to reproduce the behavior of the
- Vanilla setup tool, even though it reproduces its look and feel.
-
-"Vanilla" is defined as:
-
- * DOS Doom 1.9 (although there are actually multiple "1.9"s).
- * DOS Heretic 1.3.
- * DOS Hexen 1.1.
- * DOS Strife 1.31.
-
-"Vanilla" does not include ports (either official or unofficial), such
-as console ports, Doom 95 or Doom 3: BFG Edition.
-
-== Compatibility ==
-
-Chocolate Doom aims to be compatible with Vanilla Doom in several
-different ways. Examples are:
-
- * Bug compatibility: the aim is to emulate compatibility of the
- original game down to bugs that were present in the DOS
- executables. This includes maintaining the limitations of the
- original engine: for example, the infamous "visplane overflow" bug
- is intentionally still present, where other source ports have
- removed it; this allows mappers targeting Vanilla Doom to use
- Chocolate Doom as a faithful substitute.
- * Demo compatibility: Doom was one of the first games to develop a
- 'speedrunning' community, and thousands of recordings of Doom
- gameplay (.lmp demo files) exist in the Compet-N archive. Chocolate
- Doom aims for the highest standard of demo compatibility with
- Vanilla Doom, a goal that is often complicated by obscure behavior
- that can be difficult to reproduce.
- * Configuration file compatibility: Chocolate Doom uses the same
- configuration file format as Vanilla Doom, such that a user should
- be able to reuse their existing Vanilla configuration file without
- making any changes. Extra non-Vanilla options are stored in a
- separate configuration file.
- * Savegame file compatibility: Chocolate Doom uses the same savegame
- file format as Vanilla, such that it should be possible to import
- and use existing savegame files.
-
-== DOS tools ==
-
-Chocolate Doom includes some features that aren't part of Vanilla Doom
-but exist for compatibility with DOS tools that interact with it.
-These are considered part of the Vanilla experience and ought to be
-treated as such. Some examples are:
-
- * The novert setting, which reproduces the functionality of
- novert.exe.
- * The -deh parameter, which loads Dehacked patches like dehacked.exe
- does under DOS. Chocolate Doom imposes the same limitations that
- Vanilla Dehacked does.
-
-== Exceptions ==
-
-Chocolate Doom differs from Vanilla Doom in a number of ways. In most
-cases these are subtle, minor differences. Nonetheless they deserve
-some explanation and justification. Here are some examples of
-situations where changes are considered acceptable:
-
- 1. Vanilla behavior can be broken that is harmful, eg. can damage the
- player's computer, or is just outright misleading. For example:
-
- - Vanilla uses unbounded sprintf and strcpy (security issue).
- - Vanilla has crashes that force the user to reboot the machine.
- - Vanilla has an out of memory message that recommends tweaking
- CONFIG.SYS. As Chocolate Doom doesn't run under DOS, reproducing
- this message would not be helpful.
-
- 2. Subtly extending behavior is okay where it's not clear what the
- Vanilla behavior is anyway. For example:
-
- - Opening the menu releases mouse grab in Chocolate Doom.
- - Chocolate Hexen's graphical startup screen runs in a window.
-
- 3. Supporting obsolete technology is not a goal: it's considered
- acceptable that Chocolate Doom does not support every type of
- hardware from 1993. However, Chocolate Doom should aim to recreate
- the functionality in a modern way. Examples of technology that
- isn't supported are:
-
- - No support for IPX networks, but TCP/IP is supported instead.
- - No support for dial-up/serial connections; modern operating
- systems have features that do that for you.
- - No MS-DOS version.
-
- 4. Changes are acceptable that allow the player to be able play the
- game. For example:
-
- - There are new key bindings for actions that can't be rebound with
- Vanilla Doom, because it's useful for portability to machines
- that don't have a full keyboard.
- - There are additional mouse and joystick key bindings that let you
- perform actions with them that can only be done with the keyboard
- in Vanilla Doom.
- - Chocolate Doom includes some hacks to support the Doom 3: BFG
- Edition IWAD files. The assumption is that being able to at least
- play is better than nothing, even if it's not Vanilla behavior.
-
- 5. Adding extra options to Vanilla functionality is acceptable as long
- as the defaults match Vanilla, it doesn't change gameplay and
- there's a good reason for it. For example:
-
- - PNG screenshots are supported because PCX is an obsolete format.
- - Chocolate Doom has the vanilla_keyboard_mapping option that
- allows the user to use the native keyboard mapping for their
- computer, rather than always assuming a US layout.
-
- 6. Changing configuration file defaults is acceptable where there's a
- very good reason. For example:
-
- - Vanilla Doom defaults to no sound or music if a configuration
- file is not found. Chocolate Doom defaults to having sound
- effects and music turned on by default, because modern computers
- support these; there's no need to configure hardware IRQ settings
- to get sound working.
-
- 7. Things can be changed if they're really just inconsequential. For
- example:
-
- - The startup messages in Chocolate Doom are not identical to
- Vanilla Doom and are not necessarily in the same order.
- - Vanilla Doom has command line options named -comdev, -shdev and
- -regdev used by id internally for development; these have been
- removed.
-
-A good litmus test of when it's acceptable to break from Vanilla
-behavior is to ask the question: "Although this is Vanilla behavior,
-is there anyone who would want this?".
-
-For example, emulating Vanilla bugs like the visplane overflow bug is
-something that is useful for people making Vanilla format maps. On the
-other hand, painstakingly emulating Vanilla Doom by starting with no
-sound or music by default is not helpful to anyone.
-
-== Minimalism ==
-
-Chocolate Doom aims to be minimalist and straightforward to configure;
-in particular, the setup tool should have a sane interface. Part of
-the inspiration for Chocolate Doom came from Boom's complicated maze
-of options menus (and a desire to avoid them). Too many preferences
-lead to a bad user interface; see Havoc Pennington's essay on Free
-Software UI:
-
- http://ometer.com/free-software-ui.html
-
-Chocolate Doom has some options that are quite obscure and only really
-of interest to a small number of people. In these cases, the options
-are hidden away in configuration files and deliberately not exposed in
-the setup tool. The assumption is that if you care enough about those
-obscure features, editing a configuration file by hand should not be a
-huge problem for you.
-
-Also inspirational was the README file from Havoc's Metacity window
-manager, where the list of features begins:
-
- Boring window manager for the adult in you. Many window managers
- are like Marshmallow Froot Loops; Metacity is like Cheerios.
-
-I'd like to think that Chocolate Doom's philosophy towards features is
-similar. The idea is for a source port that is boring. I find the best
-software - both proprietary and open source - is software that is
-"egoless": it does a job well without pretentions about its importance
-or delusions of grandeur. A couple of other notable examples of
-software that I feel embody this spirit of design in a beautiful way
-are Marco Pesenti Gritti's Epiphany web browser and Evince PDF viewer.
-
-== Other philosophical aspects ==
-
-Chocolate Doom aims for maximal portability. That includes running on
-many different CPUs, different operating systems and different devices
-(ie. not just a desktop machine with a keyboard and mouse).
-
-Chocolate Doom is and will always remain Free Software. It will never
-include code that is not compatible with the GNU GPL.
-
-# vim: tw=70
-
--- /dev/null
+++ b/PHILOSOPHY.md
@@ -1,0 +1,200 @@
+Chocolate Doom has been designed around a careful and deliberate
+philosophy that attempts to recreate the original (“Vanilla”) DOS
+executables for Doom, Heretic, Hexen and Strife. This document
+describes some of that philosophy and the reasoning behind it.
+
+This document is descriptive, not proscriptive.
+
+# Vanilla behavior
+
+Ideally Chocolate Doom aims to recreate the behavior of the Vanilla
+binaries, but different aspects of Vanilla behavior are held to
+varying degrees of importance. It can be imagined as different “tiers”
+of compatibility:
+
+ * The game and gameplay itself is of central importance. Here, the
+ Vanilla behavior ought to be maintained as accurately as possible.
+ This includes the look, feel and sound, and things like demo
+ compatibility.
+ * The surrounding aspects of the game that aren’t part of the central
+ gameplay experience can be extended as long as there’s a good
+ reason and Vanilla behavior is respected.
+ * The setup tool is not required to reproduce the behavior of the
+ Vanilla setup tool, even though it reproduces its look and feel.
+
+“Vanilla” is defined as:
+
+ * DOS Doom 1.9 (although there are actually multiple “1.9”s).
+ * DOS Heretic 1.3.
+ * DOS Hexen 1.1.
+ * DOS Strife 1.31.
+
+“Vanilla” does not include ports (either official or unofficial), such
+as console ports, Doom 95 or Doom 3: BFG Edition.
+
+# Compatibility
+
+Chocolate Doom aims to be compatible with Vanilla Doom in several
+different ways. Examples are:
+
+ * Bug compatibility: the aim is to emulate compatibility of the
+ original game down to bugs that were present in the DOS
+ executables. This includes maintaining the limitations of the
+ original engine: for example, the infamous “visplane overflow” bug
+ is intentionally still present, where other source ports have
+ removed it; this allows mappers targeting Vanilla Doom to use
+ Chocolate Doom as a faithful substitute.
+ * Demo compatibility: Doom was one of the first games to develop a
+ ‘speedrunning’ community, and thousands of recordings of Doom
+ gameplay (.lmp demo files) exist in the Compet-N archive. Chocolate
+ Doom aims for the highest standard of demo compatibility with
+ Vanilla Doom, a goal that is often complicated by obscure behavior
+ that can be difficult to reproduce.
+ * Configuration file compatibility: Chocolate Doom uses the same
+ configuration file format as Vanilla Doom, such that a user should
+ be able to reuse their existing Vanilla configuration file without
+ making any changes. Extra non-Vanilla options are stored in a
+ separate configuration file.
+ * Savegame file compatibility: Chocolate Doom uses the same savegame
+ file format as Vanilla, such that it should be possible to import
+ and use existing savegame files.
+
+# DOS tools
+
+Chocolate Doom includes some features that aren’t part of Vanilla Doom
+but exist for compatibility with DOS tools that interact with it.
+These are considered part of the Vanilla experience and ought to be
+treated as such. Some examples are:
+
+ * The novert setting, which reproduces the functionality of
+ novert.exe.
+ * The -deh parameter, which loads Dehacked patches like dehacked.exe
+ does under DOS. Chocolate Doom imposes the same limitations that
+ Vanilla Dehacked does.
+
+# Exceptions
+
+Chocolate Doom differs from Vanilla Doom in a number of ways. In most
+cases these are subtle, minor differences. Nonetheless they deserve
+some explanation and justification. Here are some examples of
+situations where changes are considered acceptable:
+
+ 1. Vanilla behavior can be broken that is harmful, eg. can damage the
+ player’s computer, or is just outright misleading. For example:
+
+ - Vanilla uses unbounded sprintf and strcpy (security issue).
+ - Vanilla has crashes that force the user to reboot the machine.
+ - Vanilla has an out of memory message that recommends tweaking
+ CONFIG.SYS. As Chocolate Doom doesn’t run under DOS, reproducing
+ this message would not be helpful.
+
+ 2. Subtly extending behavior is okay where it’s not clear what the
+ Vanilla behavior is anyway. For example:
+
+ - Opening the menu releases mouse grab in Chocolate Doom.
+ - Chocolate Hexen’s graphical startup screen runs in a window.
+
+ 3. Supporting obsolete technology is not a goal: it’s considered
+ acceptable that Chocolate Doom does not support every type of
+ hardware from 1993. However, Chocolate Doom should aim to recreate
+ the functionality in a modern way. Examples of technology that
+ isn’t supported are:
+
+ - No support for IPX networks, but TCP/IP is supported instead.
+ - No support for dial-up/serial connections; modern operating
+ systems have features that do that for you.
+ - No MS-DOS version.
+
+ 4. Changes are acceptable that allow the player to be able play the
+ game. For example:
+
+ - There are new key bindings for actions that can’t be rebound with
+ Vanilla Doom, because it’s useful for portability to machines
+ that don’t have a full keyboard.
+ - There are additional mouse and joystick key bindings that let you
+ perform actions with them that can only be done with the keyboard
+ in Vanilla Doom.
+ - Chocolate Doom includes some hacks to support the Doom 3: BFG
+ Edition IWAD files. The assumption is that being able to at least
+ play is better than nothing, even if it’s not Vanilla behavior.
+ - Chocolate Strife does not emulate the save bug from
+ Vanilla 1.31, which could corrupt saves when overwriting a slot,
+ if the old slot was not part of the current game’s progression.
+ Vanilla behavior is unexpected and potentially devastating.
+
+ 5. Adding extra options to Vanilla functionality is acceptable as long
+ as the defaults match Vanilla, it doesn’t change gameplay and
+ there’s a good reason for it. For example:
+
+ - PNG screenshots are supported because PCX is an obsolete format.
+ - Chocolate Doom has the vanilla_keyboard_mapping option that
+ allows the user to use the native keyboard mapping for their
+ computer, rather than always assuming a US layout.
+
+ 6. Changing configuration file defaults is acceptable where there’s a
+ very good reason. For example:
+
+ - Vanilla Doom defaults to no sound or music if a configuration
+ file is not found. Chocolate Doom defaults to having sound
+ effects and music turned on by default, because modern computers
+ support these; there’s no need to configure hardware IRQ settings
+ to get sound working.
+
+ 7. Things can be changed if they’re really just inconsequential. For
+ example:
+
+ - The startup messages in Chocolate Doom are not identical to
+ Vanilla Doom and are not necessarily in the same order.
+ - Vanilla Doom has command line options named -comdev, -shdev and
+ -regdev used by id internally for development; these have been
+ removed.
+
+A good litmus test of when it’s acceptable to break from Vanilla
+behavior is to ask the question: “Although this is Vanilla behavior,
+is there anyone who would want this?”
+
+For example, emulating Vanilla bugs like the visplane overflow bug is
+something that is useful for people making Vanilla format maps. On the
+other hand, painstakingly emulating Vanilla Doom by starting with no
+sound or music by default is not helpful to anyone.
+
+# Minimalism
+
+Chocolate Doom aims to be minimalist and straightforward to configure;
+in particular, the setup tool should have a sane interface. Part of
+the inspiration for Chocolate Doom came from Boom’s complicated maze
+of options menus (and a desire to avoid them). Too many preferences
+lead to a bad user interface; see Havoc Pennington’s essay on Free
+Software UI:
+
+ http://ometer.com/free-software-ui.html
+
+Chocolate Doom has some options that are quite obscure and only really
+of interest to a small number of people. In these cases, the options
+are hidden away in configuration files and deliberately not exposed in
+the setup tool. The assumption is that if you care enough about those
+obscure features, editing a configuration file by hand should not be a
+huge problem for you.
+
+Also inspirational was the README file from Havoc’s Metacity window
+manager, where the list of features begins:
+
+ > Boring window manager for the adult in you. Many window managers
+ > are like Marshmallow Froot Loops; Metacity is like Cheerios.
+
+I’d like to think that Chocolate Doom’s philosophy towards features is
+similar. The idea is for a source port that is boring. I find the best
+software - both proprietary and open source - is software that is
+“egoless”: it does a job well without pretentions about its importance
+or delusions of grandeur. A couple of other notable examples of
+software that I feel embody this spirit of design in a beautiful way
+are Marco Pesenti Gritti’s Epiphany web browser and Evince PDF viewer.
+
+# Other philosophical aspects
+
+Chocolate Doom aims for maximal portability. That includes running on
+many different CPUs, different operating systems and different devices
+(ie. not just a desktop machine with a keyboard and mouse).
+
+Chocolate Doom is and will always remain Free Software. It will never
+include code that is not compatible with the GNU GPL.
--- a/README.Music
+++ /dev/null
@@ -1,171 +1,0 @@
-
-Doom has a memorable and atmospheric soundtrack. Like many games of
-the era, it is MIDI-based. Chocolate Doom includes a number of
-different options for music playback, detailed below.
-
-== Native MIDI playback ==
-
-Most modern operating systems have some kind of built-in support for
-MIDI playback; some have very good quality MIDI playback (Mac OS X for
-example). To use this, choose "Native MIDI" in the sound configuration
-dialog in the setup tool.
-
-== Timidity ==
-
-Timidity is a software-based MIDI synthesizer, and a version of it is
-included in the SDL_mixer library used by Chocolate Doom. To use
-Timidity for MIDI playback, first download a sound font. An example of
-a good quality sound font is the eawpats font, which can be downloaded
-from the idgames archive as sounds/eawpats.zip:
-
- https://www.doomworld.com/idgames/sounds/eawpats
-
-Having installed a sound font, select "Native MIDI" in the sound
-configuration dialog in the setup tool, and use the "Timidity
-configuration file" widget below to enter the path to the Timidity
-configuration file (normally named timidity.cfg).
-
-== Gravis Ultrasound (GUS) ==
-
-The Gravis Ultrasound (GUS) was a PC sound card popular in the '90s,
-notable for having wavetable synthesis that provided MIDI playback
-that was superior to most other cards of the era. Chocolate Doom
-includes a "pseudo-GUS emulation" feature that simulates the GUS
-(using Timidity, under the hood).
-
-To use this feature you need a copy of the GUS patch files that were
-distributed with the original GUS patches. If you have Doom 3: BFG
-Edition, these patches are included with its version of classic Doom,
-and are automatically detected. Otherwise, they can be downloaded
-from the idgames archive as music/dgguspat.zip:
-
- https://www.doomworld.com/idgames/music/dgguspat
-
-Having downloaded the patches, select "GUS (emulated)" in the sound
-configuration dialog in the setup tool, and use the "GUS patch path"
-widget to enter the path to the directory containing the patch files.
-
-By default a GUS card with 1024KB is simulated; to simulate a 256KB,
-512KB or 768KB card instead, change the gus_ram_kb option in
-chocolate-doom.cfg.
-
-== OPL (Soundblaster / Adlib) ==
-
-Most people playing Doom in the '90s had Soundblaster-compatible sound
-cards, which used the Yamaha OPL series of chips for FM-based MIDI
-synthesis. Chocolate Doom includes the ability to emulate these chips
-for a retro experience. OPL emulation is the default MIDI playback,
-but can be selected in the setup tool as "OPL (Adlib/SB)".
-
-Most modern computers do not include an OPL chip any more, as CPUs are
-fast enough to do decent software MIDI synthesis. However, no software
-emulator sounds exactly like a real (hardware) OPL chip, and a few
-cards do have real hardware OPL. If you have such a card, here's how
-to configure Chocolate Doom to use it.
-
-=== Sound cards with OPL chips ===
-
-If you have an ISA sound card, it almost certainly includes an OPL
-chip. Modern computers don't have slots for ISA cards though, so you
-must be running a pretty old machine.
-
-If you have a PCI sound card, you probably don't have an OPL chip.
-However, there are some exceptions to this. The following cards are
-known to include "legacy" OPL support:
-
- * C-Media CMI8738 (*)
- * Forte Media FM801
- * Cards based on the Yamaha YMF724 (*)
-
-Other cards that apparently have OPL support but have not been tested:
-
- * S3 SonicVibes
- * AZTech PCI 168 (AZT 3328 chipset)
- * ESS Solo-1 sound cards (ES1938, ES1946, ES1969 chipset)
- * Conexant Riptide Audio/Modem combo cards
- * Cards based on the Crystal Semiconductors CS4281
- * Cards based on the Avance Logic ALS300
- * Cards based on the Avance Logic ALS4000
-
-If you desperately want hardware OPL music, you may be able to find
-one of these cards for sale cheap on eBay.
-
-For the cards listed above with (*) next to them, OPL support is
-disabled by default and must be explictly enabled in software.
-
-If your machine is not a PC, you don't have an OPL chip, and you will
-have to use the software OPL.
-
-=== Operating System support ===
-
-If you're certain that you have a sound card with hardware OPL, you
-may need to take extra steps to configure your operating system to
-allow access to it. To do hardware OPL, Chocolate Doom must access
-the chip directly, which is usually not possible in modern operating
-systems unless you are running as the superuser (root/Administrator).
-
-=== Windows 9x ===
-
-If you're running Windows 95, 98 or Me, there is no need to configure
-anything. Windows allows direct access to the OPL chip. You can
-confirm that hardware OPL is working by checking for this message in
-stdout.txt:
-
- OPL_Init: Using driver 'Win32'.
-
-=== Windows NT (including 2000, XP and later) ===
-
-If you're running an NT-based system, it is not possible to directly
-access the OPL chip, even when running as Administrator. Fortunately,
-it is possible to use the "ioperm.sys" driver developed for Cygwin:
-
- http://openwince.sourceforge.net/ioperm/
-
-It is not necessary to have Cygwin installed to use this. Copy the
-ioperm.sys file into the same directory as the Chocolate Doom
-executable and it should be automatically loaded.
-
-You can confirm that hardware OPL is working by checking for this
-message in stdout.txt:
-
- OPL_Init: Using driver 'Win32'.
-
-=== Linux ===
-
-If you are using a system based on the Linux kernel, you can access
-the OPL chip directly, but you must be running as root. You can
-confirm that hardware OPL is working, by checking for this message on
-startup:
-
- OPL_Init: Using driver 'Linux'.
-
-If you are using one of the PCI cards in the list above with a (*)
-next to it, you may need to manually enable FM legacy support. Add
-the following to your /etc/modprobe.conf file to do this:
-
- options snd-ymfpci fm_port=0x388
- options snd-cmipci fm_port=0x388
-
-=== OpenBSD/NetBSD ===
-
-You must be running as root to access the hardware OPL directly. You
-can confirm that hardware OPL is working by checking for this message
-on startup:
-
- OPL_Init: Using driver 'OpenBSD'.
-
-There is no native OPL backend for FreeBSD yet. Sorry!
-
-== Other options ==
-
-If you have some other favorite MIDI playback option that isn't
-listed above, you can set a hook to invoke an external command for
-MIDI playback using the 'snd_musiccmd' configuration file option. For
-example, set:
-
- snd_musiccmd "aplaymidi -p 128:0"
-
-in your chocolate-doom.cfg file.
-
-# vim: set tw=70:
-
--- /dev/null
+++ b/README.Music.md
@@ -1,0 +1,167 @@
+Doom has a memorable and atmospheric soundtrack. Like many games of
+the era, it is MIDI-based. Chocolate Doom includes a number of
+different options for music playback, detailed below.
+
+## Native MIDI playback
+
+Most modern operating systems have some kind of built-in support for
+MIDI playback; some have very good quality MIDI playback (Mac OS X for
+example). To use this, choose “Native MIDI” in the sound configuration
+dialog in the setup tool.
+
+## Timidity
+
+Timidity is a software-based MIDI synthesizer, and a version of it is
+included in the SDL_mixer library used by Chocolate Doom. To use
+Timidity for MIDI playback, first download a sound font. An example of
+a good quality sound font is the eawpats font, which can be downloaded
+from the idgames archive as sounds/eawpats.zip:
+
+ https://www.doomworld.com/idgames/sounds/eawpats
+
+Having installed a sound font, select “Native MIDI” in the sound
+configuration dialog in the setup tool, and use the “Timidity
+configuration file” widget below to enter the path to the Timidity
+configuration file (normally named timidity.cfg).
+
+## Gravis Ultrasound (GUS)
+
+The Gravis Ultrasound (GUS) was a PC sound card popular in the ’90s,
+notable for having wavetable synthesis that provided MIDI playback
+that was superior to most other cards of the era. Chocolate Doom
+includes a “pseudo-GUS emulation” feature that simulates the GUS
+(using Timidity, under the hood).
+
+To use this feature you need a copy of the GUS patch files that were
+distributed with the original GUS patches. If you have Doom 3: BFG
+Edition, these patches are included with its version of classic Doom,
+and are automatically detected. Otherwise, they can be downloaded
+from the idgames archive as music/dgguspat.zip:
+
+ https://www.doomworld.com/idgames/music/dgguspat
+
+Having downloaded the patches, select “GUS (emulated)” in the sound
+configuration dialog in the setup tool, and use the “GUS patch path”
+widget to enter the path to the directory containing the patch files.
+
+By default a GUS card with 1024KB is simulated; to simulate a 256KB,
+512KB or 768KB card instead, change the gus_ram_kb option in
+chocolate-doom.cfg.
+
+## OPL (Soundblaster / Adlib)
+
+Most people playing Doom in the ’90s had Soundblaster-compatible sound
+cards, which used the Yamaha OPL series of chips for FM-based MIDI
+synthesis. Chocolate Doom includes the ability to emulate these chips
+for a retro experience. OPL emulation is the default MIDI playback,
+but can be selected in the setup tool as “OPL (Adlib/SB)”.
+
+Most modern computers do not include an OPL chip any more, as CPUs are
+fast enough to do decent software MIDI synthesis. However, no software
+emulator sounds exactly like a real (hardware) OPL chip, and a few
+cards do have real hardware OPL. If you have such a card, here’s how
+to configure Chocolate Doom to use it.
+
+# Sound cards with OPL chips
+
+If you have an ISA sound card, it almost certainly includes an OPL
+chip. Modern computers don’t have slots for ISA cards though, so you
+must be running a pretty old machine.
+
+If you have a PCI sound card, you probably don’t have an OPL chip.
+However, there are some exceptions to this. The following cards are
+known to include “legacy” OPL support:
+
+ * C-Media CMI8738 (*)
+ * Forte Media FM801
+ * Cards based on the Yamaha YMF724 (*)
+
+Other cards that apparently have OPL support but have not been tested:
+
+ * S3 SonicVibes
+ * AZTech PCI 168 (AZT 3328 chipset)
+ * ESS Solo-1 sound cards (ES1938, ES1946, ES1969 chipset)
+ * Conexant Riptide Audio/Modem combo cards
+ * Cards based on the Crystal Semiconductors CS4281
+ * Cards based on the Avance Logic ALS300
+ * Cards based on the Avance Logic ALS4000
+
+If you desperately want hardware OPL music, you may be able to find
+one of these cards for sale cheap on eBay.
+
+For the cards listed above with (*) next to them, OPL support is
+disabled by default and must be explictly enabled in software.
+
+If your machine is not a PC, you don’t have an OPL chip, and you will
+have to use the software OPL.
+
+# Operating System support
+
+If you’re certain that you have a sound card with hardware OPL, you
+may need to take extra steps to configure your operating system to
+allow access to it. To do hardware OPL, Chocolate Doom must access
+the chip directly, which is usually not possible in modern operating
+systems unless you are running as the superuser (root/Administrator).
+
+## Windows 9x
+
+If you’re running Windows 95, 98 or Me, there is no need to configure
+anything. Windows allows direct access to the OPL chip. You can
+confirm that hardware OPL is working by checking for this message in
+stdout.txt:
+
+ OPL_Init: Using driver 'Win32'.
+
+## Windows NT (including 2000, XP and later)
+
+If you’re running an NT-based system, it is not possible to directly
+access the OPL chip, even when running as Administrator. Fortunately,
+it is possible to use the “ioperm.sys” driver developed for Cygwin:
+
+ http://openwince.sourceforge.net/ioperm/
+
+It is not necessary to have Cygwin installed to use this. Copy the
+ioperm.sys file into the same directory as the Chocolate Doom
+executable and it should be automatically loaded.
+
+You can confirm that hardware OPL is working by checking for this
+message in stdout.txt:
+
+ OPL_Init: Using driver 'Win32'.
+
+## Linux
+
+If you are using a system based on the Linux kernel, you can access
+the OPL chip directly, but you must be running as root. You can
+confirm that hardware OPL is working, by checking for this message on
+startup:
+
+ OPL_Init: Using driver 'Linux'.
+
+If you are using one of the PCI cards in the list above with a (*)
+next to it, you may need to manually enable FM legacy support. Add
+the following to your /etc/modprobe.conf file to do this:
+
+ options snd-ymfpci fm_port=0x388
+ options snd-cmipci fm_port=0x388
+
+## OpenBSD/NetBSD
+
+You must be running as root to access the hardware OPL directly. You
+can confirm that hardware OPL is working by checking for this message
+on startup:
+
+ OPL_Init: Using driver 'OpenBSD'.
+
+There is no native OPL backend for FreeBSD yet. Sorry!
+
+# Other options
+
+If you have some other favorite MIDI playback option that isn’t
+listed above, you can set a hook to invoke an external command for
+MIDI playback using the ‘snd_musiccmd’ configuration file option. For
+example, set:
+
+ snd_musiccmd "aplaymidi -p 128:0"
+
+in your chocolate-doom.cfg file.
--- a/README.Strife
+++ /dev/null
@@ -1,121 +1,0 @@
-===============================================================================
-
- Samuel 'Kaiser' Villarreal and James 'Quasar' Haley Present
-
- C H O C O L A T E
- ______________________________._________________________
- / _____/\__ ___/\______ \ \_ _____/\_ _____/
- \_____ \ | | | _/ || __) | __)_
- / \ | | | | \ || \ | \
- /_______ / |____| |____|_ /___|\___ / /_______ /
- \/ \/ \/ \/
-
-===============================================================================
-
-* What is it? *
-
-Chocolate Strife is the most accurate and complete recreation of Rogue
-Entertainment's "Strife: Quest for the Sigil." It was created through more than
-four years of reverse engineering effort with the blessings of the original
-programmers of the game.
-
-
-* Why? *
-
-The source code for Strife was lost, which means, unlike the code for all the
-other commercial DOOM-engine games, it cannot be released. The only access we
-have to the code is the binary executable file. Tools such as IDA Pro have
-been employed to disassemble and decompile the executable, which was cross-
-referenced against the Linux DOOM and DOS Heretic sources and painstakingly
-combed over multiple times, instruction-by-instruction, to ensure that the
-resulting Chocolate Doom-based executable is as close as possible to the
-original.
-
-
-* Is it Legal? *
-
-Chocolate Strife was originally reverse-engineered from the DOS Strife
-binaries. Although reverse engineering is legally a protected activity, this
-nonetheless left some open questions about its legal status.
-
-In 2014, a new commercial release of Strife was published (Strife: Veteran
-Edition) based on the Chocolate Strife code, and developed by the authors of
-Chocolate Strife under commercial license. The release of Strife: Veteran
-Edition, along with its GPL-licensed source code, constitutes tacit approval
-for the legal status of Chocolate Strife by its current copyright holder.
-
-
-* Is it Perfect? *
-
-Almost, but not entirely! That's where you come in. Help us by reporting any
-discrepancies you may notice between this executable and the vanilla DOS
-program!
-
-However, do *not* report any glitch that you can replicate in the vanilla EXE
-as a bug. The point of Chocolate Strife, like Chocolate Doom before it, is to
-be as bug-compatible with the original game as possible. Also be aware that
-some glitches are impossible to compatibly recreate, and wherever this is the
-case, Chocolate Strife has erred on the side of not crashing the program,
-for example by initializing pointers to NULL rather than using them without
-setting a value first.
-
-
-* What are some known problems? *
-
-- The demo version is *not* supported, and there are not any current plans
- to support it in the future, due to the vast number of differences (the
- demo version of Strife is based on a much earlier beta version of Rogue's
- codebase). You should use a commercial Strife IWAD file, preferably of
- version 1.2 or later.
-
-
-* How do I use it? *
-
-From the Run box or a command line, issue a command to Chocolate Strife just
-like you would run Chocolate Doom. Most of the same command line parameters
-are supported.
-
-voices.wad will be read from the same directory as the IWAD, if it can be
-found. If it is not found, then voices will be disabled just as would happen
-with the vanilla executable. Do not add voices.wad using -file, as that is
-redundant and unnecessary.
-
-Some new command-line parameters in Chocolate Strife include the following:
-
--nograph
- Disables the graphical introduction sequence. -devparm implies this.
-
--novoice
- Disables voices even if voices.wad can be found.
-
--work
- Enables Rogue's playtesting mode. Automatic godmode, and pressing the
- inventory drop key will toggle noclipping.
-
--flip
- Flips player gun graphics. This is buggy, however, because it does not
- reverse the graphics' x offsets (this is an accurate emulation of the
- vanilla engine's behavior).
-
--random
- Randomizes the timing and location of item respawns in deathmatch, when
- item respawning is enabled.
-
-
-* Copyright *
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2 of the License, or (at your option) any later
-version.
-
-This program is distributed in the hope that it will be useful,but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-See the "COPYING" file for the full license text. The source code for this
-program is available from the same location where you downloaded this package.
-
-Aside from Chocolate Doom, portions of the code are derived from the Eternity
-Engine, Copyright 2011 Team Eternity, as published under the GNU GPL.
-
--- /dev/null
+++ b/README.Strife.md
@@ -1,0 +1,124 @@
+````````````````````````````````````````````````````````````````````````
+
+ Samuel ‘Kaiser’ Villarreal and James ‘Quasar’ Haley Present
+
+ C H O C O L A T E
+ ______________________________._________________________
+ / _____/\__ ___/\______ \ \_ _____/\_ _____/
+ \_____ \ | | | _/ || __) | __)_
+ / \ | | | | \ || \ | \
+ /_______ / |____| |____|_ /___|\___ / /_______ /
+ \/ \/ \/ \/
+
+````````````````````````````````````````````````````````````````````````
+
+## What is it?
+
+Chocolate Strife is the most accurate and complete recreation of Rogue
+Entertainment’s “Strife: Quest for the Sigil.” It was created through more
+than four years of reverse engineering effort with the blessings of the
+original programmers of the game.
+
+
+## Why?
+
+The source code for Strife was lost, which means, unlike the code for all the
+other commercial DOOM-engine games, it cannot be released. The only access we
+have to the code is the binary executable file. Tools such as IDA Pro have
+been employed to disassemble and decompile the executable, which was cross-
+referenced against the Linux DOOM and DOS Heretic sources and painstakingly
+combed over multiple times, instruction-by-instruction, to ensure that the
+resulting Chocolate Doom-based executable is as close as possible to the
+original.
+
+
+## Is it Legal?
+
+Chocolate Strife was originally reverse-engineered from the DOS Strife
+binaries. Although reverse engineering is legally a protected activity, this
+nonetheless left some open questions about its legal status.
+
+In 2014, a new commercial release of Strife was published (Strife: Veteran
+Edition) based on the Chocolate Strife code, and developed by the authors of
+Chocolate Strife under commercial license. The release of Strife: Veteran
+Edition, along with its GPL-licensed source code, constitutes tacit approval
+for the legal status of Chocolate Strife by its current copyright holder.
+
+
+## Is it Perfect?
+
+Almost, but not entirely! That’s where you come in. Help us by reporting any
+discrepancies you may notice between this executable and the vanilla DOS
+program!
+
+However, do *not* report any glitch that you can replicate in the vanilla EXE
+as a bug. The point of Chocolate Strife, like Chocolate Doom before it, is to
+be as bug-compatible with the original game as possible. Also be aware that
+some glitches are impossible to compatibly recreate, and wherever this is the
+case, Chocolate Strife has erred on the side of not crashing the program,
+for example by initializing pointers to NULL rather than using them without
+setting a value first.
+
+
+## What are some known problems?
+
+The demo version is *not* supported, and there are not any current plans to
+support it in the future, due to the vast number of differences (the demo
+version of Strife is based on an earlier version of Rogue’s
+codebase).
+
+The commercial Strife IWAD version 1.1 may run, but also exhibit issues. Like
+the demo version, there are no current plans to fully support it. Make sure
+your copy is updated to at least 1.2. Strife: Veteran Edition already
+includes the required version.
+
+
+## How do I use it?
+
+From the Run box or a command line, issue a command to Chocolate Strife just
+like you would run Chocolate Doom. Most of the same command line parameters
+are supported.
+
+voices.wad will be read from the same directory as the IWAD, if it can be
+found. If it is not found, then voices will be disabled just as would happen
+with the vanilla executable. Do not add voices.wad using -file, as that is
+redundant and unnecessary.
+
+Some new command-line parameters in Chocolate Strife include the following:
+
+ - -nograph
+ - Disables the graphical introduction sequence. -devparm implies this.
+
+ - -novoice
+ - Disables voices even if voices.wad can be found.
+
+ - -work
+ - Enables Rogue’s playtesting mode. Automatic godmode, and pressing the
+ inventory drop key will toggle noclipping.
+
+ - -flip
+ - Flips player gun graphics. This is buggy, however, because it does not
+ reverse the graphics’ x offsets (this is an accurate emulation of the
+ vanilla engine’s behavior).
+
+ - -random
+ - Randomizes the timing and location of item respawns in deathmatch, when
+ item respawning is enabled.
+
+
+## Copyright
+
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+
+This program is distributed in the hope that it will be useful,but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+See the “COPYING” file for the full license text. The source code for this
+program is available from the same location where you downloaded this package.
+
+Aside from Chocolate Doom, portions of the code are derived from the Eternity
+Engine, Copyright 2011 Team Eternity, as published under the GNU GPL.
--- a/TODO
+++ /dev/null
@@ -1,39 +1,0 @@
-This is Chocolate Doom's "to do" list. Note that this is kind of an arbitrary
-and unstructured wish list of features and improvements. The bug tracker
-(http://chocolate-doom.org/bugs) has more feature requests.
-
-* Multiplayer:
- - Use UPnP to automatically configure port forwarding for NATted
- networks.
- - Multiplayer options and configuration file (server name, etc)
-* Improve multiplayer startup:
- - Select an IWAD automatically from the server's game type rather than
- all players having to specify -iwad.
- - Send list of WADs to load instead of all clients having to specify -file.
- - Same applies to dehacked patches and wad merging parameters.
-* Portability improvements:
- - Test on and fix for architectures where ((-2) >> 1) != -1
- - Use size-specific types (eg. int32_t instead of int)
- - Don't make structure packing assumptions when loading levels.
- - Port to every OS and architecture under the sun
- - Port to Emscripten and release a web-based version.
-* Video capture mode
- - Real-time recording of gameplay
- - Batch conversion of demos into videos
-* Heretic/Hexen/Strife:
- - Merge r_draw.c to common version and delete duplicates
- - Heretic v1.2 emulation (if possible)
- - Hexen v1.0 emulation (if possible/necessary)
- - Strife v1.2 emulation (for demo IWAD support)
- - Screensaver mode
-
-Crazy pie in the sky ideas:
-
-* Automatic WAD installer - download and run TCs from a list automatically
- (automating the current "instructions on wiki" system).
-* Textscreen interface to the Compet-N database: menu driven system to
- automatically download and play speedruns.
-* DWANGO-like interface for finding players and setting up games.
-
-# vim: tw=70
-
--- /dev/null
+++ b/TODO.md
@@ -1,0 +1,36 @@
+This is Chocolate Doom’s “to do” list. Note that this is kind of an arbitrary
+and unstructured wish list of features and improvements. The bug tracker
+(http://chocolate-doom.org/bugs) has more feature requests.
+
+* Multiplayer:
+ - Use UPnP to automatically configure port forwarding for NATed
+ networks.
+ - Multiplayer options and configuration file (server name, etc)
+* Improve multiplayer startup:
+ - Select an IWAD automatically from the server’s game type rather than
+ all players having to specify -iwad.
+ - Send list of WADs to load instead of all clients having to specify -file.
+ - Same applies to dehacked patches and wad merging parameters.
+* Portability improvements:
+ - Test on and fix for architectures where `((-2) >> 1) != -1`
+ - Use size-specific types (eg. `int32_t` instead of int)
+ - Don’t make structure packing assumptions when loading levels.
+ - Port to every OS and architecture under the sun
+ - Port to Emscripten and release a web-based version.
+* Video capture mode
+ - Real-time recording of gameplay
+ - Batch conversion of demos into videos
+* Heretic/Hexen/Strife:
+ - Merge r_draw.c to common version and delete duplicates
+ - Heretic v1.2 emulation (if possible)
+ - Hexen v1.0 emulation (if possible/necessary)
+ - Strife v1.1 emulation (for demo IWAD support)
+ - Screensaver mode
+
+Crazy pie in the sky ideas:
+
+* Automatic WAD installer - download and run TCs from a list automatically
+ (automating the current “instructions on wiki” system).
+* Textscreen interface to the Compet-N database: menu driven system to
+ automatically download and play speedruns.
+* DWANGO-like interface for finding players and setting up games.
--- a/pkg/config.make.in
+++ b/pkg/config.make.in
@@ -19,8 +19,8 @@
# Documentation files to distribute with packages.
-DOC_FILES = README.md \
- README.Music \
- COPYING \
- NEWS
+DOC_FILES = README.md \
+ README.Music.md \
+ COPYING \
+ NEWS.md
--- a/pkg/osx/GNUmakefile
+++ b/pkg/osx/GNUmakefile
@@ -6,7 +6,7 @@
include ../config.make
-DOC_FILES += README.Strife NOT-BUGS
+DOC_FILES += README.Strife.md NOT-BUGS.md
export MACOSX_DEPLOYMENT_TARGET=10.7
@@ -72,7 +72,7 @@
cp $(TOPLEVEL_DOCS) "$(APP_DOC_DIR)"
ln -s "$(APP_DOC_RELDIR)/COPYING" "$(STAGING_DIR)/Software License"
- ln -s "$(APP_DOC_RELDIR)/README" "$(STAGING_DIR)/README"
+ ln -s "$(APP_DOC_RELDIR)/README.md" "$(STAGING_DIR)/README.md"
ln -s /Applications "$(STAGING_DIR)"
cp launcher "$(APP_BIN_DIR)"
--- a/pkg/win32/GNUmakefile
+++ b/pkg/win32/GNUmakefile
@@ -27,12 +27,12 @@
# Special hooks to custom modify files for particular games.
hook-doom: staging-doom
- cp $(TOPLEVEL)/NOT-BUGS $</NOT-BUGS.txt
+ cp $(TOPLEVEL)/NOT-BUGS.md $</NOT-BUGS.txt
# Chocolate Strife has its own custom README file:
hook-strife: staging-strife
- cp $(TOPLEVEL)/README.Strife $</README.txt
+ cp $(TOPLEVEL)/README.Strife.md $</README.txt
# Build up a staging dir for a particular game.
@@ -45,13 +45,10 @@
$@/$(PROGRAM_PREFIX)$*-setup.exe
$(STRIP) $@/*.exe
- for f in $(DOC_FILES); do \
- cp $(TOPLEVEL)/$$f $@/$$f.txt; \
+ for f in $(DOC_FILES); do \
+ cp $(TOPLEVEL)/$$f $@/$(shell basename $$f .md).txt; \
done
cp $(TOPLEVEL)/man/CMDLINE.$* $@/CMDLINE.txt
-
- # Strip ".md" from the README name.
- mv $@/README.md.txt $@/README.txt
$(TOPLEVEL)/man/simplecpp -D_WIN32 -DPRECOMPILED \
-D$(shell echo $* | tr a-z A-Z) \