1## 3.1.0 (2019-??-??) 2 3### General 4 * WAD file autoloading was added - WAD and DEH files can be copied into 5 an autoload folder to be automatically included on every game start. 6 * Music pack configuration has been significantly simplified. By simply 7 copying .flac/.ogg music files into a folder they will be automatically 8 detected by filename and used. 9 * Music packs can now be used with OPL as a fallback, and music pack 10 config files can have any name ending in '.cfg'. 11 * Network synchronization now uses a PID controller by default, which 12 makes games more smooth and more stable, especially for Internet play. 13 * UDP hole punching is now used to make servers behind NAT gateways 14 automatically accessible to the Internet. 15 * OPL emulation now uses Nuked OPL3 v1.8 (thanks nukeykt) 16 * The setup tool now uses "Romero Blue" as a background (see the wiki: 17 <https://doomwiki.org/wiki/Romero_Blue> for more info). 18 * The 0 and 5 keys on the number pad can now be bound independently 19 of any other keyboard key (thanks BlooD2ool). 20 * With aspect ratio correction disabled, the game can scale to any 21 arbitrary size and remove all black borders in full screen mode. 22 (thanks chungy) 23 * The executable's location is now checked when looking for IWADs. 24 * The IWAD files installed by Steam-on-Linux are now detected (thanks 25 chungy). 26 * It's now possible to use `-response` to load response files. 27 * Default savegame name now includes the WAD filename (thanks Fabian). 28 * Mouse movement is no longer read when the game window is inactive 29 (thanks Julia Nechaevskaya). 30 31### Refactorings 32 * CMake project files have been added, replacing the Microsoft Visual 33 Studio and Code::Blocks files. CMake maintains support for multiple 34 IDEs and versions thereof, and reduces developer overhead when updating 35 Chocolate Doom (huge thanks to AlexMax for this work). 36 * Source code has been retrofitted to fix many compiler warnings and 37 add const annotations to many variables (thanks turol). 38 * Several functions have been hardened against incomplete reads and 39 error conditions, and made safer (thanks turol). 40 * Man page generation has been reworked to use autoconf macro 41 substitution, making it eaiser for downstream forks to change the 42 project name (thanks Jon). 43 * We now print a meaningful error message when a savegame cannot be 44 loaded (thanks Zodomaniac, chungy). 45 * There's now a log file feature for the network code to aid in tracking 46 down multiplayer bugs. 47 48### Bug fixes 49 * Fixed an exception thrown by the Windows kernel when debugging with 50 GDB (thanks AXDOOMER). 51 * Loop metadata now works properly with music packs on Windows. 52 * Mouse movement is ignored when the game window isn't active (thanks 53 Julia Nechaevskaya). 54 * A bug was fixed where music would not play after pausing on an 55 intermission screen (thanks Julia Nechaevskaya). 56 * Timeouts when connecting to a network server were fixed (thanks 57 @bradc6). 58 * A long-standing bug where some visplane overflows caused crashes was 59 fixed (thanks Mike Francis). 60 * A multiplayer deadlock bug where clients would stop sending tics after 61 missing tics from the server was fixed. There are both client- and 62 server- side fixes to fix the problem when playing with older versions 63 (thanks MadDog and Mortrixs for help tracking this down). 64 65### Doom 66 * Map33 intermission screen and map33-map35 automap names are 67 emulated (thanks CapnClever). 68 * We now exit gracefully when player starts are missing (thanks Mike 69 Francis). 70 * We now exit gracefully on levels with a boss brain and no boss spitter 71 things (thanks Jason Benaim). 72 * It's now possible to play multiplayer with gameversion=1.2. 73 74### Heretic 75 * P\_FindNextHighestFloor was changed to match vanilla behavior (thanks 76 AXDOOMER). 77 * WAD hash table is now generated for speed (thanks Mike Francis). 78 * HHE level name replacements now apply on the intermission screen 79 (thanks ETTiNGRiNDER). 80 81### Hexen 82 * ACS code has been hardened against potential security vulnerabilities. 83 * WAD hash table is now generated for speed (thanks AXDOOMER). 84 85### Strife 86 * Sehacked replacements of the "empty slot" string now work. 87 * VOICES.WAD is now found in a case-insensitive way (thanks Mike Francis). 88 89## 3.0.0 (2017-12-30) 90 91 Chocolate Doom 3.0 is a new major revision. The main change is that 92 the codebase has been ported to SDL 2.0. This brings a number of 93 benefits, although there have also been some other minor changes (all 94 listed below). 95 96 Huge thanks go to the entire Chocolate Doom team for working on the 97 port to SDL2, and to all the testers who have found and reported bugs 98 during its development. 99 100### General 101 * All screen scaling is now performed in hardware, meaning that the 102 game can run in arbitrary window sizes in high quality. It can also 103 scale to very large resolutions sizes without using large amounts of 104 CPU or suffering degraded performance (thanks Fabian). 105 * It is now possible to switch between windowed and full screen modes 106 while the game is running by pressing alt + enter (thanks Jon) 107 * Windows binaries now ship with several previously-optional DLLs. 108 This means it is now possible to take PNG screenshots and to use 109 digital music packs (FLAC/Ogg Vorbis formats). 110 * The game now remembers your preferred monitor and will start on the 111 same monitor you were using the last time you played. Windows appear 112 centered on the screen. 113 * The OS X launcher was tweaked somewhat, and now uses proper path 114 controls for choosing files. FreeDM was added as an IWAD. 115 * Configuration files on Mac OS X and Unix are now stored in locations 116 compliant with the XDG standard (thanks chungy): 117 - On Unix: `~/.local/share/chocolate-doom/` 118 - On OS X: `~/Library/Application Support/chocolate-doom/` 119 * Icons when the game is running are now a higher resolution. 120 * Keyboard input is improved and uses the new SDL input API; on 121 systems with on-screen keyboards, this should activate the on-screen 122 keyboard when it is appropriate. 123 * Menu navigation with the joystick is now much more practical, and 124 it’s possible to bind a joystick axis to look up/down in games which 125 support it (thanks Jon, Wintermute0110). 126 * Several command line options were removed that were judged to be 127 useless: `-grabmouse`, `-novert` and `-nonovert`. The mouse grabbing 128 and novert settings can still be configured in the setup tool. 129 * There is no longer any option in the setup tool to specify a screen 130 resolution, since in full screen mode the game just runs at the 131 desktop resolution without changing screen modes. If necessary, the 132 config file options `fullscreen_width` and `fullscreen_height` can 133 be used to explicitly set a screen resolution. 134 * There is no longer a soft dependency on Zenity on Unix systems; the 135 SDL API is now used to display error dialogs. 136 * Joysticks are identified more precisely using GUID now. 137 * A new parameter, `-savedir` allows users to specify a directory from 138 which to load and save games. (thanks CapnClever) 139 * The midiproc code from Eternity Engine has been imported, improving 140 native MIDI playback on Windows and fixing a long-standing bug with 141 music volume adjustment (thanks AlexMax, Quasar). 142 * VGA “porch” emulation was added (thanks Jon). 143 * The codebase now compiles with OpenWatcom (thanks Stephen Finniss). 144 145### Doom 146 * The GOG install of Doom 3: BFG Edition is now detected (thanks chungy) 147 * A `-shorttics` command line parameter was added that simulates 148 recording a vanilla demo without actually recording a demo. 149 150### Hexen 151 * The CD audio option for music playback has been removed; the CD 152 playback API has been removed from SDL 2.0. However, it is possible 153 to use digital music packs as an alternative. 154 155### Strife 156 * `voices.wad` is now correctly loaded before PWADs (thanks 157 @Catoptromancy) 158 159### libtextscreen 160 * On OS X on machines with retina displays, text screens are rendered 161 using a high detail font. 162 * File selector widgets now look more visually distinctive. 163 * There is now a convenience widget for conditionally hiding widgets. 164 * Font handling was restructured to be based around PNG format fonts 165 which are converted during the build and can be more easily edited. 166 * Handling of code pages was cleaned up, so it is easier to change the 167 code to work with a different code page now. 168 * Lots of the UI code was changed to use UTF-8 strings. 169 * File extensions when using the Zenity file selector are now case 170 insensitive (thanks Jon). 171 172## 2.3.0 (2016-12-29) 173 174### General 175 * Bash completion scripts are included (thanks Fabian) 176 * The OS X launcher now supports the .lmp file format (thanks Jon) 177 * Pitch-shifting from early versions of Doom, Heretic, and Hexen. 178 is now supported (thanks Jon) 179 * Aspect ratio-corrected 1600×1200 PNGs are now written (thanks Jon) 180 * OPL emulation is more accurate (thanks Nuke.YKT) 181 * DMX bugs with GUS cards are now better emulated (thanks Nuke.YKT) 182 * The disk activity floppy disk icon is now shown (thanks Fabian, Jon) 183 * Checksum calculations are fixed on big endian systems, allowing 184 multiplayer games to be played in mixed little/big-endian 185 environments (thanks GhostlyDeath, njankowski) 186 * The NES30, SNES30, and SFC30 gamepads are detected and configured 187 automatically by the Setup tool. The automap can also be configured 188 to a joystick button (thanks Jon) 189 * The vanilla limit of 4046 lumps per WAD is now enforced (thanks 190 Jon, Quasar, Edward-san) 191 * Solidsegs overflow is emulated like in vanilla (thanks Quasar) 192 * Multiple capitalizations are now tried when searching for WAD files, 193 for convenience when running on case sensitive filesystems (thanks 194 Fabian). 195 * A new command line argument, `-strictdemos`, was added, to allow 196 more careful control over demo format extensions. Such extensions 197 are now forbidden in WAD files and warning messages are shown. 198 199### Build systems 200 * There is better compatibility with BSD Make (thanks R.Rebello) 201 * `./configure --with-PACKAGE` checks were repaired to behave 202 logically, rather than disabling the feature (thanks R.Rebello) 203 * Games are now installed to ${bindir} by default, eg. 204 /usr/local/bin, rather than /usr/local/games (thanks chungy) 205 * Visual Studio 2015 is now supported (thanks Azarien) 206 * SDL headers and libraries can now exist in the Microsoft Visual 207 Studio project directory (thanks Quasar) 208 * CodeBlocks projects were repaired by removing non-existent files 209 from the project files (thanks krystalgamer) 210 211### Doom 212 * Chex Quest’s level warp cheat (LEESNYDER##) now behaves more like 213 like the original EXE (thanks Nuke.YKT) 214 * It’s now possible to start multiplayer Chex Quest games. 215 * Freedoom: Phase 1 <= 0.10.1 can now be loaded with mods, with 216 -gameversion older than ultimate (thanks Fabian, chungy) 217 * The IWAD order preference for GOG.com installs matches vanilla 218 Final Doom: doom2, plutonia, tnt, doom (thanks chungy) 219 * There are better safety checks against write failures when saving 220 a game, such as when the directory is read-only (thanks 221 terrorcide) 222 * Versions 1.666, 1.7, and 1.8 are emulated (thanks Nuke.YKT) 223 * Crashes are now handled more gracefully when a linedef references 224 nonexistent sidedefs (thanks Fabian) 225 226### Heretic 227 * Map names were added for Episode 6, fixing a crash after completing 228 a level in this episode (thanks J.Benaim) 229 * Support for unlimited demo/savegames was added (thanks CapnClever) 230 * Demo support is expanded: `-demoextend` allows demos to last longer 231 than a single level; `-shortticfix` adjusts low-resolution turning 232 to match Doom’s handling, and there is now `-maxdemo` and `-longtics` 233 support (thanks CapnClever) 234 235### Hexen 236 * The MRJONES cheat code returns an identical string to vanilla, and 237 enables fully reproducible builds (thanks Fabian) 238 * An issue was fixed where the game crashed while killing the 239 Wraithverge in 64-bit builds (thanks J.Benaim) 240 * Support for unlimited demo/savegames was added (thanks CapnClever) 241 * Mouse buttons for strafe left/right and move backward were added, 242 as well as a “Double click acts as use” mouse option (thanks 243 CapnClever) 244 * Demo support is expanded: `-demoextend` allows demos to last longer 245 than a single level; `-shortticfix` adjusts low-resolution turning 246 to match Doom’s handling, and there is now `-maxdemo` and `-longtics` 247 support (thanks CapnClever) 248 249### Strife 250 * Support was added for automatic loading of the IWAD from the GOG.com 251 release of Strife: Veteran Edition on Windows (thanks chungy) 252 * Jumping can now be bound to a mouse button (thanks Gez) 253 * Gibbing logic was changed to match vanilla behavior (thanks Quasar) 254 * Several constants differences from vanilla were fixed (thanks 255 Nuke.YKT, Quasar) 256 * When using -iwad, voices.wad from the IWAD’s directory is prefered 257 over auto-detected DOS/Steam/GOG.com installs (thanks Quasar) 258 259### libtextscreen 260 * The API for creating and managing tables and columns was simplified. 261 * It’s now possible to cycle through tables with the tab key. 262 * Windows can now have multiple columns. 263 264## 2.2.1 (2015-09-10) 265 266 Chocolate Doom has not seen a great deal of “stable” patch releases 267 in its history. While the development tree sees major new features 268 and changes, the purpose of this release, and hopefully others to 269 follow like it, is to repair some deficiencies that existed 270 in 2.2.0. 271 272### General 273 * Preferences for the OS X launcher are now stored with a unique 274 name to not conflict with other applications. (thanks 275 Xeriphas1994) 276 * Unix desktop entry files are now brought up to full desktop entry 277 specification compliance. (thanks chungy, Fabian) 278 * Unix AppData entries are now included, allowing software centers 279 to display detailed information about the engines. (thanks chungy) 280 * Partial XDG base directory specification compliance on Unix 281 systems now exist to search for IWAD paths. One benefit is that 282 $HOME/.local/share/games/doom is now a valid location to store and 283 automatically find IWADs. (thanks chungy) 284 285### Build systems 286 * The Microsoft Visual Studio build system was not fully functional 287 in 2.2.0 and has been fixed. (thanks Linguica) 288 * The autoconf build system checks for windres only for Windows 289 toolchains. Some Linux distributions mistakingly include the 290 program in their native toolchains. (thanks Fabian) 291 * A compiler hint for packed structs has been added, which otherwise 292 broke the games when built under recent GCC releases for 293 Windows. (thanks Fabian) 294 295### Doom 296 * The GOG.com releases of The Ultimate Doom, Doom II, and Final Doom 297 are now detected and supported on Windows. (thanks chungy) 298 * An integer overflow was used in spawn angle calculation, undefined 299 C behavior which broke with Clang optimization. (thanks David 300 Majnemer for insight) 301 302### Setup tool 303 * The help URL for the level warp menu now points to the proper wiki 304 page, rather than the multiplayer page. 305 * The manifest has been updated for Windows 10 compatibility. 306 (thanks chungy) 307 308## 2.2.0 (2015-06-09) 309 310 * The Hexen four level demo IWAD is now supported. Thanks to Fabian 311 Greffrath for his careful investigation and emulation of the demo 312 game’s behavior in developing this. 313 * OPL music playback has been improved in a number of ways to match 314 the behavior of Vanilla Doom’s DMX library much more closely. OPL3 315 playback is also now supported. Thanks go to Alexey Khokholov for 316 his excellent research into the Vanilla DMX library that enabled 317 these improvements. 318 * New gamepad configurations: 319 - PS4 DualShock 4 (thanks Matt “3nT” Davis). 320 - Xbox One controller on Linux (thanks chungy). 321 - “Super Joy Box 7” USB/PC gameport adapter. 322 * The Doom reload hack has been added back. See the wiki for more 323 context on this: http://doomwiki.org/wiki/Reload_hack 324 * The IWAD file from Strife: Veteran Edition is now detected 325 automatically (thanks chungy). 326 * It’s now possible to build outside of the source directory (thanks 327 Dave Murphy). 328 * MSVC project files were brought up to date (thanks dbrackett16). 329 * M_StringDuplicate() has been added as a safer replacement for 330 strdup() (thanks Quasar). M_StringCopy() now handles short buffers 331 more gracefully. 332 * The netgame discrepancy window is now dismissed by pressing enter 333 to proceed, not escape (thanks AXDOOMER). 334 * A couple of source files that were in the previous release and 335 were GPL3 have been replaced by GPL2 equivalents. Previous 336 releases that included these files should be retroactively 337 considered GPL3. 338 339### Bug fixes 340 * A long-standing bug that could cause every display frame to be 341 rendered twice was fixed (thanks Linguica, Harha, AXDOOMER). 342 * Lots of endianness fixes were integrated that were found by Ronald 343 Lasmanowicz during development of his Wii port of Chocolate Doom, 344 including a fix for a bug that could cause monsters to become 345 partially invisible. 346 * DeHackEd files without a newline character at the EOF are now 347 correctly parsed (thanks Fabian). 348 * An infinite loop that could occur in the weapon cycling code was 349 fixed (thanks raithe, Fabian). 350 * Mouse input triggered by cursor warp was fixed (thanks Super6-4). 351 * Loop tags in substitute music files are ignored if both of the 352 loop tags are equal to zero. This makes us consistent with other 353 source ports that support the tags. 354 * It’s now possible to more conveniently play back demo .lmp files 355 with names that end in the all-caps “.LMP” (thanks Ioan Chera). 356 * Some code that accessed memory after freeing it was fixed. Two new 357 parameters, -zonezero and -zonescan, were added to try to help 358 detect these cases. 359 * Mistaken assumptions about representations of booleans that 360 affected some ARM systems were fixed (thanks floppes). 361 * memcpy() uses on overlapping memory were changed to use memmove(), 362 fixing abort traps on OpenBSD (thanks ryan-sg). 363 * Hyphens in manpages were fixed (thanks chungy, Fabian). 364 * Lots of compiler build warnings were fixed (thanks Fabian). 365 366### Setup tool 367 * The setup tool now has help buttons for its various different 368 screens, which link to articles on the wiki that give more 369 information (thanks to chungy for helping to put the wiki pages 370 together). 371 * A fix was applied for a buffer overrun that could occur if the 372 user had lots of IWAD files installed (thanks Fabian). 373 * A crash related to username lookup was fixed. 374 * It’s now possible to connect via the setup tool to multiplayer 375 servers that are not listening on the default port (thanks 376 AXDOOMER). 377 378### Doom 379 * Sky transitions when emulating the id anthology version of the 380 Final Doom executable were fixed (thanks AXDOOMER, Fabian, 381 chungy). 382 * Structure fields in the stair-building functions were fixed to be 383 deterministic, fixing a desync in mm09-512.lmp (thanks Fabian). 384 385### Hexen 386 * A bug with texture names that had long names was fixed (thanks 387 ETTiNGRiNDER). 388 * Minotaur spawn time is now stored in little endian format, fixing 389 a bug that affected compatibility with Vanilla savegames on big 390 endian systems. 391 * Code that starts ACS scripts is no longer compiler-dependent. 392 393### Strife (all these are thanks to Quasar) 394 * Sound priority was changed, so that the ticking sound that Stalker 395 enemies make while active matches Vanilla behavior (thanks 396 GeoffLedak). 397 * Minor fixes to game behavior to match Vanilla, discovered during 398 development of Strife: Veteran edition. 399 * Behavior of descending stairs was fixed to match Vanilla. 400 * Inventory items beyond the 8-bit range are now allowed in 401 netgames. 402 * Automap behavior better matches Vanilla now. 403 * Multiplayer name changes were fixed. 404 * Sound origin behavior for switches was fixed. 405 * Teleport beacon behavior was fixed. 406 * Default Strife skill level and screen size were changed to match 407 Vanilla. 408 * Bug was fixed where Rowan would not always take Beldin’s ring. 409 * Totally-invisible objects are now displayed correctly, and a 410 Vanilla glitch with Shadow Acolytes is correctly emulated. 411 * The level name for MAP29 (Entity’s Lair) was fixed (thanks 412 chungy). 413 414### libtextscreen 415 * The main loop now exits immediately once all windows are closed 416 (thanks AXDOOMER). 417 * The large font is no longer selected based entirely on screen 418 size. 419 420## 2.1.0 (2014-10-22) 421 422 Chocolate Doom now supports high-quality substitute music packs that 423 are used in place of the original MIDI music tracks. I’m hoping to 424 put together high-quality recordings of the music for all supported 425 games using the Roland SC-55 synthesizer originally used to compose 426 Doom’s music (thanks twipley and MusicallyInspired). 427 428 Support for joysticks and gamepads has been significantly improved 429 in this version. Most gamepads should now work; if they don’t, 430 please report a bug. A number of gamepads are now automatically 431 detected and configured automatically; if yours is not, you can help 432 by sending in details. See the following page: 433 434 http://www.chocolate-doom.org/wiki/index.php/Adding_your_gamepad 435 436 OPL MIDI playback has been significantly improved, and problems with 437 most tracks should now be resolved. Multi-track MIDI files now play 438 back properly, MIDI tempo meta events are now supported and problems 439 with stuttering when playing certain tracks have been fixed. If you 440 still have problems with OPL playback, let me know. 441 442 Also of note is that Chocolate Doom now has a document that 443 describes the philosophy of the project and the reasoning behind its 444 design (see PHILOSOPHY distributed with the source). 445 446### Other new features 447 * There is now a -dehlump command line parameter to load Dehacked 448 files contained inside WAD files (thanks Fabian Greffrath). 449 * PNG format screenshots are now supported, and there is a dedicated 450 key binding for taking screenshots without needing to always use 451 -devparm (thanks Fabian Greffrath). The PrintScreen key can be 452 used as a key binding (thanks AXDOOMER). 453 * There is now a config file variable (snd_maxslicetime_ms) to 454 control the sound buffer size, and the default is more precise to 455 reduce sound latency (thanks Holering). 456 * You can now use an external command for music playback (thanks 457 Holering). 458 * All games now detect if you’re tring to play using the wrong type 459 of IWAD (doom.wad with Hexen, etc.) and exit with a helpful error 460 message. A couple of users made this mistake after the 2.0 release 461 introduced support for the new games. 462 * The OS X app now associates with .hhe and .seh files. 463 * There is now a -nodes parameter that automatically starts a 464 netgame when a desired number of players have joined the game. 465 * There is now more extensive documentation about music 466 configuration (README.Music). 467 * On Linux, a GUI pop-up is used when the game quits with an error 468 to show the error message (thanks Willy Barro). 469 * There are now Linux .desktop files for all supported games (thanks 470 Mike Swanson). 471 * The -geometry command line parameter can now be used to specify 472 fullscreen or windowed modes, eg. -geometry 640x480w or -geometry 473 1024x768f. (thanks Mike Swanson) 474 475### Doom 476 * Minor workarounds were added to allow the BFG Edition IWADs to be 477 used without crashing the game (thanks Fabian Greffrath). 478 * GUS patch files included with the BFG Edition are now 479 automatically detected. 480 * The “no fog on spawn west” Vanilla bug is now correctly emulated 481 (thanks xttl). 482 * Behavior of older versions of Doom back to v1.666 can now be 483 emulated. 484 * The new Freedoom IWAD names are now recognized and supported. 485 * Freedoom’s DEHACKED lump can now be parsed and is automatically 486 loaded when a Freedoom IWAD file is used (thanks Fabian 487 Greffrath). A new command line parameter, -nodeh, can be used to 488 prevent this from being loaded. 489 * Behavior of the M_EPI4 menu item is now correctly emulated based 490 on game version (thanks AXDOOMER). 491 * IDCLEV up to MAP40 is now supported, to match Vanilla (thanks 492 AXDOOMER). 493 * Level warping on the command line (-warp) to episodes higher than 494 4 is possible, matching Vanilla behavior (thanks plumsinus). 495 * The -cdrom command line parameter writes savegames to the correct 496 directory now, matching Vanilla Doom behavior (thanks AXDOOMER). 497 * The Doom II mission pack to use can now be specified manually on 498 the command line with the -pack parameter (thanks chungy) 499 500### Heretic 501 * Weapon cycling keys for mouse and joystick were fixed (thanks 502 Sander van Dijk). 503 * The -timedemo parameter has been fixed, and -playdemo now handles 504 full paths correctly. 505 * A bug when panning the map was fixed (thanks Chris Fielder). 506 * A savegame bug where plat_t structures were not restored correctly 507 was fixed (thanks romeroyakovlev). 508 * Rebinding of the pause key was fixed (thanks Fabian Greffrath). 509 510### Hexen 511 * Music workarounds have been added so that it is possible to play 512 using the Mac version of the Hexen IWAD file. 513 * Weapon cycling keys for mouse and joystick were fixed (thanks 514 Sander van Dijk). 515 * The -timedemo parameter has been fixed, and -playdemo now handles 516 full paths correctly. 517 * There are now key bindings to allow the artifact keys to be 518 rebound (thanks Fabian Greffrath). 519 * Rebinding of the pause key was fixed (thanks Fabian Greffrath). 520 * Maximum level number was extended to MAP60, allowing multiplayer 521 games using the Deathkings add-on. 522 * The startup screen can now be aborted by pressing escape, like in 523 Vanilla. 524 * Desync when playing back DEMO1 was fixed (thanks alexey.lysiuk). 525 526### Strife 527 * “Show mission” key is configured properly in setup (thanks Sander 528 van Dijk). 529 * Default music volume level now matches Vanilla (thanks AXDOOMER). 530 * Teleport beacon allegiance was fixed to match Vanilla (thanks 531 Quasar). 532 * The stair building code now more closely matches Vanilla (thanks 533 Quasar). 534 * Torpedo weapon changing behavior now matches Vanilla (thanks 535 Quasar). 536 537### Cleanups 538 * The copyright headers at the top of all source files have been 539 vastly simplified. 540 * Unsafe string functions have been eliminated from the codebase. 541 Thanks to Theo de Raadt for calling out Chocolate Doom by name 542 (alongside many other packages) for still using unsafe functions 543 like strcpy: http://marc.info/?l=openbsd-tech&m=138733933417096 544 * vldoor_e enum values are now namespaced to avoid potential 545 conflicts with POSIX standard functions. 546 547### Bug fixes 548 * WAD and Dehacked checksums are now sent to clients and checked 549 correctly when setting up netgames. 550 * A bug was fixed that caused sound not to work in multiplayer games 551 (thanks to everyone who reported this, and for AXDOOMER and Quasar 552 for help in fixing it). 553 * The “D_DDTBLU disease” bug affecting certain MIDI files has been 554 fixed (thanks plumsinus, Brad Harding and Quasar). 555 * Calculation of the -devparm “ticker” dots was fixed to match 556 Vanilla behavior (thanks _bruce_ and AXDOOMER). 557 * The PC speaker code now supports the full range of sound 558 frequencies (thanks Gez). 559 * Annoying “jumping” behavior when grabbing the mouse cursor was 560 fixed. 561 * The screen is now initialized at the native bit depth by default, 562 to avoid problems with systems that don’t handle 8-bit 563 screenbuffers very well any more. 564 * The --docdir argument to the configure script is now honored 565 (thanks Jan Engelhardt). 566 * Various issues with the build were fixed (thanks Jan Engelhardt 567 and Fabian Greffrath). 568 * Backwards parameters were fixed in the sound code (thanks 569 proteal). 570 * A crash was fixed when running fullscreen with the -2 parameter 571 (thanks Fabian Greffrath). 572 * A crash when using large values of snd_channels was fixed (thanks 573 AXDOOMER). 574 * A resource leak in the BSD PC speaker code was fixed (thanks 575 Edward-san). 576 * Windows resource files were fixed for Windows 7 (thanks Brad 577 Harding). 578 * A hard to trigger crash caused by a realloc() in the WAD code was 579 fixed (thanks Fabian Greffrath for debugging). 580 * A bug has been fixed where Chocolate Doom would stay running in 581 the background on Windows after quitting. SDL_Quit() is called now 582 (thanks johnsirett, Brad Harding, Quasar). 583 * String replacements in dehacked lumps can now be overridden if a 584 subsequent dehacked patch replaces the same string. 585 586### libtextscreen 587 * Clicking on scrollbars now jumps to the correct position (thanks 588 AXDOOMER). 589 * A use-after-free bug has been fixed where a click in a window that 590 causes the window to close could lead to a crash (thanks DuClare). 591 * Characters that are unprintable in the Extended ASCII chart are 592 just ignored when they’re typed, rather than appearing as an 593 upside-down question mark (thanks AXDOOMER). 594 595## 2.0.0 (2013-12-09) 596 597 This is version 2.0 of Chocolate Doom! This new major version is 598 released to celeberate the 20th anniversary of the first release of 599 Doom in 1993. Happy Birthday Doom! 600 601 This new version has some major changes compared to the 1.0 series: 602 603 * The codebase now includes Chocolate Heretic and Chocolate 604 Hexen. These are based on the GPL source code released by Raven 605 Software. 606 * Also included is Chocolate Strife. This was developed through a 607 mammoth four year reverse engineering project conducted by James 608 “Quasar” Haley and Samuel “Kaiser” Villareal. The result is the 609 most accurate reproduction of Strife to date, including full demo 610 and savegame compatibility. See README.Strife for more 611 information. 612 613### Minor features that are nonetheless worth mentioning 614 * Chocolate Doom now includes a -statdump command line option, which 615 emulates the output of the statdump.exe tool. This is used to 616 implement a form of regression testing (statcheck) that directly 617 compares against the Vanilla behavior. 618 * Chocolate Heretic includes HHE patch file support, and I believe 619 is the first Heretic port to include this feature. 620 * GUS “pseudo-emulation” is now supported. This does not fully 621 emulate a GUS, but Doom’s DMXGUS lump can be used to generate a 622 Timidity configuration file that plays music using the GUS patch 623 set. 624 * The setup tool now includes a built-in server browser, for use 625 when selecting a server to join. 626 627 Version 2.0 of Chocolate Doom has been in development for a long 628 time, and there have been many bugs fixed over this time, too many 629 to list here. Thanks to all the people who have tested it and 630 diligently reported bugs over this time, and to all the people who 631 have tested the beta releases over the past couple of months. Your 632 contributions have been essential and invaluable. 633 634## 1.7.0 (2012-06-09) 635 636 * Fixed gnome-screensaver desktop file (thanks Rahul Sundaram). 637 * Updated COPYING to current version of GPL2 (thanks Rahul 638 Sundaram). 639 * Running servers now re-resolve the address of the master server 640 occasionally, to adapt to DNS address changes. 641 * Error dialog is no longer shown on OS X when running from the 642 console. 643 * The Makefiles no longer use GNU make extensions, so the package 644 builds on OpenBSD. 645 * There is now an OPL MIDI debug option (-opldev), useful for when 646 developing GENMIDI lumps. 647 * A workaround for SDL mouse lag is now only used on Windows (where 648 it is needed), and not on other systems. This fixes Chocolate Doom 649 on AmigaOS (thanks Timo Sievänen). 650 * UTF-8 usernames are supported, and Windows usernames with 651 non-ASCII characters are now supported (thanks AXDOOMER). 652 653### Compatibility 654 * Palette accuracy is reduced to 6 bits per channel, to more 655 accurately emulate the PC VGA hardware (thanks GhostlyDeath). 656 * Fixed teleport behavior when emulating the alternate Final Doom 657 executable (-gameversion final2) (thanks xttl). 658 659### Bugs fixed 660 * Fixed weapon cycling keys when playing in Shareware Doom and using 661 the IDKFA cheat (thanks AXDOOMER). 662 * Fixed the default mouse buttons in the setup tool (thanks 663 AXDOOMER). 664 * Chat macros now work when vanilla_keyboard_mapping is turned off. 665 * Default chat macros were fixed in the setup tool. 666 * Ping time calculation was fixed for LAN search, and made more 667 accurate for all searches. 668 * Fixed bug with detection of IWAD type by filename (thanks mether). 669 670### libtextscreen 671 * There is now limited UTF-8 text support in the textscreen library, 672 used in the label and input box widgets. 673 * Scroll bar behavior was fixed (thanks AXDOOMER). 674 * Input boxes stop editing and save when they lose their focus, 675 correcting a previous counterintuitive behavior (thanks Twelve). 676 * The numeric keypad now works properly when entering text values 677 (thanks Twelve). 678 679## 1.6.0 (2011-05-17) 680 681 * The instructions in the INSTALL file are now customized for 682 different platforms, and each binary package contains a version 683 with instructions specific to the platform that it is targetting. 684 This should help to avoid confusion that some users have reported 685 experiencing. 686 * The display settings window in the setup tool has been reorganised 687 to a better arrangement. 688 * It is now possible to load .lmp files (and play back demos) with 689 long filenames (thanks blzut3). 690 * In the setup tool, it is now possible to hold down shift when 691 changing key/mouse/joystick bindings to prevent other bindings to 692 the same key from being cleared (thanks myk). 693 * The joystick menu in the setup tool now has a test button (thanks 694 AXDOOMER). 695 * Specifying the -privateserver option implies -server (thanks 696 Porsche Monty). 697 * The Mac OS X .dmg package now has a background and looks generally 698 more polished. 699 * In Mac OS X, it is now possible to simply double click an IWAD 700 file in the Finder to configure its location within the launcher. 701 * Freedesktop.org desktop files are now installed for Doom and the 702 setup tool, which will appear in the main menu on desktop 703 environments such as Gnome and KDE (thanks Adrián Chaves 704 Fernández). 705 * The Chex Quest dehacked patch (chex.deh) will now be detected if 706 it is in the same directory as the IWAD file. 707 708### Compatibility 709 * Added support for the alternate version of the Final Doom 710 executable included in some later versions of the Id Anthology. 711 This version fixed the demo loop crash that occurred with the 712 “original” Final Doom executable. 713 714 This executable can be selected on the command line with 715 -gameversion final2. It has been made the default when playing 716 with the Final Doom IWADs (the original behavior can be selected 717 with -gameversion final). (thanks Porsche Monty, Enjay). 718 * Very short sound effects are not played, to better emulate the 719 behavior of DMX in Vanilla Doom (thanks to Quasar for help in 720 investigating this). 721 * The null sector dereference emulation code has been imported from 722 Prboom+ - this fixes a desync with CLNJ-506.LMP (thanks entryway). 723 * The IDMUS cheat doesn’t work when emulating the v1.9 executable 724 (thanks AXDOOMER). 725 726### Bugs fixed 727 * Menu navigation when using joystick/joypad (thanks AXDOOMER). 728 * For configuration file value for shift keys, use scan code for 729 right shift, not left shift (thanks AXDOOMER). 730 * Default joystick buttons for the setup tool now match Vanilla 731 (thanks twipley). 732 * Visual Studio project files work again (thanks GhostlyDeath). 733 * The default sfx/music volume set by the setup tool is now 8 734 instead of 15, matching the game itself. (thanks AXDOOMER). 735 * Weapon cycling from the shotgun to the chaingun in Doom 1 now 736 works properly (thanks AXDOOMER). 737 * MIDI playback that locked up when using an empty MUS / MIDI file 738 (thanks AXDOOMER). 739 * Default sampling rate used by setup tool changed to 44100Hz, to 740 match the game default (thanks AXDOOMER). 741 * Cheat codes and menu hot keys now work when shift is held down or 742 capslock turned on (thanks AXDOOMER). 743 744### libtextscreen 745 * The background on GUI controls now lights up when hovering over 746 them, so that it is more obvious what you are selecting. 747 * It is now possible to type a “+” in input boxes (thanks AXDOOMER). 748 * It is possible to use the mouse wheel to scroll through scroll 749 panes. 750 * Clicking on scroll bars now moves the scroll handle to a matching 751 location. 752 * Clicking outside a dropdown list popup window now dismisses the 753 window. 754 * Window hotkeys that are an alphabetical letter now work when shift 755 is held down or capslock turned on (thanks AXDOOMER). 756 757## 1.5.0 (2011-01-02) 758 759 Big changes in this version: 760 761 * The DOSbox OPL emulator (DBOPL) has been imported to replace the 762 older FMOPL code. The quality of OPL emulation is now therefore 763 much better. 764 * The game can now run in screen modes at any color depth (not just 765 8-bit modes). This is mainly to work around problems with Windows 766 Vista/7, where 8-bit color modes don’t always work properly. 767 * Multiplayer servers now register themselves with an Internet 768 master server. Use the -search command line parameter to find 769 servers on the Internet to play on. You can also use DoomSeeker 770 (http://skulltag.net/doomseeker/) which supports this 771 functionality. 772 * When running in windowed mode, it is now possible to dynamically 773 resize the window by dragging the window borders. 774 * Names can be specified for servers with the -servername command 775 line parameter. 776 * There are now keyboard, mouse and joystick bindings to cycle 777 through available weapons, making play with joypads or mobile 778 devices (ie. without a proper keyboard) much more practical. 779 * There is now a key binding to change the multiplayer spy key 780 (usually F12). 781 * The setup tool now has a “warp” button on the main menu, like 782 Vanilla setup.exe (thanks Proteh). 783 * Up to 8 mouse buttons are now supported (including the 784 mousewheel). 785 * A new command line parameter has been added (-solo-net) which can 786 be used to simulate being in a single player netgame. 787 * There is now a configuration file parameter to set the OPL I/O 788 port, for cards that don’t use port 0x388. 789 * The Python scripts used for building Chocolate Doom now work with 790 Python 3 (but also continue to work with Python 2) (thanks arin). 791 * There is now a NOT-BUGS file included that lists some common 792 Vanilla Doom bugs/limitations that you might encounter (thanks to 793 Sander van Dijk for feedback). 794 795### Compatibility 796 * The -timer and -avg options now work the same as Vanilla when 797 playing back demos (thanks xttl) 798 * A texture lookup bug was fixed that caused the wrong sky to be 799 displayed in Spooky01.wad (thanks Porsche Monty). 800 * The HacX v1.2 IWAD file is now supported, and can be used 801 standalone without the need for the Doom II IWAD (thanks atyth). 802 * The I_Error function doesn’t display “Error:” before the error 803 message, matching the Vanilla behavior. “Error” has also been 804 removed from the title of the dialog box that appears on Windows 805 when this happens. This is desirable as not all such messages are 806 actually errors (thanks Proteh). 807 * The setup tool now passes through all command line arguments when 808 launching the game (thanks AXDOOMER). 809 * Demo loop behavior (ie. whether to play DEMO4) now depends on the 810 version being emulated. When playing Final Doom the game will 811 exit unexpectedly as it tries to play the fourth demo - this is 812 Vanilla behaviour (thanks AXDOOMER). 813 814### Bugs fixed 815 * A workaround has been a bug in old versions of SDL_mixer (v1.2.8 816 and earlier) that could cause the game to lock up. Please upgrade 817 to a newer version if you haven’t already. 818 * It is now possible to use OPL emulation at 11025Hz sound sampling 819 rate, due to the new OPL emulator (thanks Porsche Monty). 820 * The span renderer function (used for drawing floors and ceilings) 821 now behaves the same as Vanilla Doom, so screenshots are 822 pixel-perfect identical to Vanilla Doom (thanks Porsche Monty). 823 * The zone memory system now aligns allocated memory to 8-byte 824 boundaries on 64-bit systems, which may fix crashes on systems 825 such as sparc64 (thanks Ryan Freeman and Edd Barrett). 826 * The configure script now checks for libm, fixing compile problems 827 on Fedora Linux (thanks Sander van Dijk). 828 * Sound distortion with certain music files when played back using 829 OPL (eg. Heretic title screen). 830 * Error in Windows when reading response files (thanks Porsche 831 Monty, xttl, Janizdreg). 832 * Windows Vista/7 8-bit color mode issues (the default is now to run 833 in 32-bit color depth on these versions) (thanks to everybody who 834 reported this and helped test the fix). 835 * Screen borders no longer flash when running on widescreen 836 monitors, if you choose a true-color screen mode (thanks exp(x)). 837 * The controller player in a netgame is the first player to join, 838 instead of just being someone who gets lucky. 839 * Command line arguments that take an option now check that an 840 option is provided (thanks Sander van Dijk). 841 * Skill level names in the setup tool are now written the same as 842 they are on the in-game “new game” menu (thanks AXDOOMER). 843 * There is no longer a limit on the lengths of filenames provided to 844 the -record command line parameter (thanks AXDOOMER). 845 * Window title is not lost in setup tool when changing video driver 846 (thanks AXDOOMER). 847 848### libtextscreen 849 * The font used for the textscreen library can be forced by setting 850 the TEXTSCREEN_FONT environment variable to “small” or “normal”. 851 * Tables or scroll panes that don’t contain any selectable widgets 852 are now themselves not selectable (thanks Proteh). 853 * The actions displayed at the bottom of windows are now laid out in 854 a more aesthetically pleasing way. 855 856## 1.4.0 (2010-07-10) 857 858 The biggest change in this version is the addition of OPL emulation. 859 This emulates Vanilla Doom’s MIDI playback when using a Yamaha OPL 860 synthesizer chip, as was found on SoundBlaster compatible cards. 861 862 A software OPL emulator is included as most modern computers do not 863 have a hardware OPL chip any more. If you do have one, you can 864 configure Chocolate Doom to use it; see README.OPL. 865 866 The OPL playback feature is not yet perfect or 100% complete, but is 867 judged to be good enough for general use. If you find music that 868 does not play back properly, please report it as a bug. 869 870### Other changes 871 * The REJECT overflow emulation code from PrBoom+ has been 872 imported. This fixes demo desync on some demos, although 873 others will still desync. 874 * Warnings are now generated for invalid dehacked replacements of 875 printf format strings. Some potential buffer overflows are also 876 checked. 877 * The installation instructions (INSTALL file) have been clarified 878 and made more platform-agnostic. 879 * The mouse is no longer warped to the center of the screen when the 880 demo sequence advances. 881 * Key bindings can now be changed for the demo recording quit key 882 (normally ‘q’) and the multiplayer messaging keys (normally ‘t’, 883 ‘g’, ‘i’, ‘b’ and ‘r’). 884 885## 1.3.0 (2010-02-10) 886 887 * Chocolate Doom now runs on Windows Mobile/Windows CE! 888 * It is possible to rebind most/all of the keys that control the 889 menu, shortcuts, automap and weapon switching. The main reason 890 for this is to support the Windows CE port and other platforms 891 where a full keyboard may not be present. 892 * Chocolate Doom now includes a proper Mac OS X package; it is no 893 longer necessary to compile binaries for this system by hand. The 894 package includes a simple graphical launcher program and can be 895 installed simply by dragging the “Chocolate Doom” icon to the 896 Applications folder. (thanks to Rikard Lang for extensive testing 897 and feedback) 898 * The video mode auto-adjust code will automatically choose windowed 899 mode if no fullscreen video modes are available. 900 * The zone memory size is automatically reduced on systems with a 901 small amount of memory. 902 * The “join game” window in the setup tool now has an option to 903 automatically join a game on the local network. 904 * Chocolate Doom includes some initial hacks for compiling under 905 SDL 1.3. 906 * Recent versions of SDL_mixer include rewritten MIDI code on Mac OS 907 X. If you are using a version of SDL_mixer with the new code, 908 music will now be enabled by default. 909 * Windows Vista and Windows 7 no longer prompt for elevated 910 privileges when running the setup tool (thanks hobbs and MikeRS). 911 * The Windows binaries now have better looking icons (thanks 912 MikeRS). 913 * Magic values specified using the -spechit command line parameter 914 can now be hexadecimal. 915 * DOOMWADDIR/DOOMWADPATH can now specify the complete path to IWAD 916 files, rather than the path to the directory that contains them. 917 * When recording shorttics demos, errors caused by the reduced 918 turning resolution are carried forward, possibly making turning 919 smoother. 920 * The source tarball can now be used to build an RPM package: 921 rpmbuild -tb chocolate-doom-VER.tar.gz 922 923### Compatibility 924 * The A_BossDeath behavior in v1.9 emulation mode was fixed (thanks 925 entryway) 926 * The “loading” disk icon is drawn more like how it is drawn in 927 Vanilla Doom, also fixing a bug with chook3.wad. 928 * Desync on 64-bit systems with ep1-0500.lmp has (at long last) been 929 fixed (thanks exp(x)). 930 * Donut overrun emulation code imported from Prboom+ (thanks 931 entryway). 932 * The correct level name should now be shown in the automap for 933 pl2.wad MAP33 (thanks Janizdreg). 934 * In Chex Quest, the green radiation suit colormap is now used 935 instead of the red colormaps normally used when taking damage or 936 using the berserk pack. This matches Vanilla chex.exe behavior 937 (thanks Fuzztooth). 938 * Impassible glass now displays and works the same as in Vanilla, 939 fixing wads such as OTTAWAU.WAD (thanks Never_Again). 940 941### Bugs fixed 942 * Memory-mapped WAD I/O is disabled by default, as it caused various 943 issues, including a slowdown/crash with Plutonia 2 MAP23. It can 944 be explicitly re-enabled using the “-mmap” command line parameter. 945 * Crash when saving games due to the ~/.chocolate-doom/savegames 946 directory not being created (thanks to everyone who reported 947 this). 948 * Chocolate Doom will now run under Win95/98, as the 949 SetProcessAffinityMask function is looked up dynamically. 950 * Compilation under Linux with older versions of libc will now work 951 (the semantics for sched_setaffinity were different in older 952 versions) 953 * Sound clipping when using libsamplerate was improved (thanks David 954 Flater) 955 * The audio buffer size is now calculated based on the sample rate, 956 so there is not a noticeable delay when using a lower sample rate. 957 * The manpage documentation for the DOOMWADPATH variable was fixed 958 (thanks MikeRS). 959 * Compilation with FEATURE_MULTIPLAYER and FEATURE_SOUND disabled 960 was fixed. 961 * Fixed crash when using the donut special type and the joining 962 linedef is one sided (thanks Alexander Waldmann). 963 * Key settings in a configuration file that are out of range do not 964 cause a crash (thanks entryway). 965 * Fix ear-piercing whistle when playing the MAP05 MIDI music using 966 timidity with EAWPATS (thanks entryway / HackNeyed). 967 968### libtextscreen 969 * There is now a second, small textscreen font, so that the ENDOOM 970 screen and setup tool can be used on low resolution devices 971 (eg. PDAs/embedded devices) 972 * The textscreen library now has a scrollable pane widget. Thanks to 973 LionsPhil for contributing code to scroll up and down using the 974 keyboard. 975 * Doxygen documentation was added for the textscreen library. 976 977## 1.2.1 (2008-12-10) 978 979 This version just fixes a crash at the intermission screen when 980 playing Doom 1 levels. 981 982## 1.2.0 (2008-12-10) 983 984 Happy 15th Birthday, Doom! 985 986 * Chocolate Doom now has an icon that is not based on the 987 proprietary Doom artwork. 988 * There is now memory-mapped WAD I/O support, which should be useful 989 on some embedded systems. 990 * Chex quest emulation support is now included, although an 991 auxiliary dehacked patch is needed (chexdeh.zip in the idgames 992 archive). 993 994### Compatibility 995 * The armor class is always set to 2 when picking up a megasphere 996 (thanks entryway). 997 * The quit screen prompts to quit “to dos” instead of just to quit 998 (thanks MikeRS) 999 * The “dimensional shambler” quit message was fixed. 1000 * Fix crash related to A_BFGSpray with NULL target when using 1001 dehacked patches - discovered with insaned2.deh (thanks CSonicGo) 1002 * NUL characters are stripped from dehacked files, to ensure correct 1003 behavior with some dehacked patches (eg. the one with portal.wad). 1004 1005### Bugs fixed 1006 * “Python Image Library” should have been “Python Imaging Library” 1007 (thanks exp(x)). 1008 * The setup tool should no longer ask for elevated permissions on 1009 Windows Vista (this fix possibly may not work). 1010 * The application icon is set properly when running under Windows XP 1011 with the “Luna” theme. 1012 * Fix compilation under Cygwin to detect libraries and headers from 1013 the correct environment. 1014 * The video code does not try to read SDL events before SDL has been 1015 properly initialised - this was causing problems with some older 1016 versions of SDL. 1017 1018## 1.1.1 (2008-04-20) 1019 1020 The previous release (v1.1.0) included a bug that broke compilation 1021 when libsamplerate support was enabled. The only change in this 1022 version is to fix this bug. 1023 1024## 1.1.0 (2008-04-19) 1025 1026 * The video mode code has been radically restructured. The video 1027 mode is now chosen by directly specifying the mode to use; the 1028 scale factor is then chosen to fit the screen. This is helpful 1029 when using widescreen monitors (thanks Linguica) 1030 * MSVC build project files (thanks GhostlyDeath and entryway). 1031 * Unix manpage improvements; the manpage now lists the environment 1032 variables that Chocolate Doom uses. Manpages have been added for 1033 chocolate-setup and chocolate-server, from the versions for the 1034 Debian Chocolate Doom package (thanks Jon Dowland). 1035 * INSTALL file with installation instructions for installing 1036 Chocolate Doom on Unix systems. 1037 * Support for high quality resampling of sound effects using 1038 libsamplerate (thanks David Flater). 1039 * A low pass filter is applied when doing sound resampling in an 1040 attempt to filter out high frequency noise from the resampling 1041 process. 1042 * R_Main progress box is not displayed if stdout is a file (produces 1043 cleaner output). 1044 * Client/server version checking can be disabled to allow different 1045 versions of Chocolate Doom to play together, or Chocolate Doom 1046 clients to play with Strawberry Doom clients. 1047 * Unix manpages are now generated for the Chocolate Doom 1048 configuration files. 1049 * The BSD PC speaker driver now works on FreeBSD. 1050 1051### Compatibility 1052 * Use the same spechits compatibility value as PrBoom+, for 1053 consistency (thanks Lemonzest). 1054 * The intercepts overrun code has been refactored to work on big 1055 endian machines. 1056 * The default startup delay has been set to one second, to allow 1057 time for the screen to settle before starting the game (some 1058 monitors have a delay before they come back on after changing 1059 modes). 1060 * If a savegame buffer overrun occurs, the savegame does not get 1061 saved and existing savegames are not overwritten (same behaviour 1062 as Vanilla). 1063 1064### Bugs fixed 1065 * Desync with STRAIN demos and dehacked Misc values not being set 1066 properly (thanks Lemonzest) 1067 * Don’t grab the mouse if the mouse is disabled via -nomouse or 1068 use_mouse in the configuration file (thanks MikeRS). 1069 * Don’t center the mouse on startup if the mouse is disabled (thanks 1070 Siggi). 1071 * Reset the palette when the window is restored to clear any screen 1072 corruption (thanks Catoptromancy). 1073 * mus2mid.c should use `MEM_SEEK_SET`, not `SEEK_SET` (thanks 1074 Russell) 1075 * Fast/Respawn options were not being exchanged when starting 1076 netgames (thanks GhostlyDeath). 1077 * Letterbox mode is more accurately described as “pillarboxed” or 1078 “windowboxed” where appropriate (thanks MikeRS) 1079 * Process affinity mask is set to 1 on Windows, to work around a bug 1080 in SDL_mixer that can cause crashes on multi-core machines (thanks 1081 entryway). 1082 * Bugs in the joystick configuration dialog in the setup tool have 1083 been fixed. 1084 1085## 1.0.0 (2007-12-10) 1086 1087 This release is dedicated to Dylan “Toke” McIntosh, who was 1088 tragically killed in a car crash in 2006. I knew Dylan from IRC and 1089 the Doomworld forums for several years, and he had a deep passion 1090 for this game. He was also a huge help for me while developing 1091 Chocolate Doom, as he helped point out a lot of small quirks in 1092 Vanilla Doom that I didn’t know about. His death is a great loss. 1093 RIP Toke. 1094 1095 This is the first release to reach full feature parity with Vanilla 1096 Doom. As a result, I have made this version 1.0.0, so Chocolate 1097 Doom is no longer beta! 1098 1099### Big new features 1100 * Multiplayer! This version includes an entirely new multiplayer 1101 engine, based on a packet server architecture. I’d like to thank 1102 joe, pritch, Meph and myk, and everyone else who has helped test 1103 the new code for their support, feedback and help in testing this. 1104 The new code still needs more testing, and I’m eager to hear any 1105 feedback on this. 1106 * A working setup tool. This has the same look and feel as the 1107 original setup.exe. I hope people like it! Note that it has some 1108 advantages over the original setup.exe - for example, you can use 1109 the mouse. 1110 1111### Other new features 1112 * New mus conversion code thanks to Ben Ryves. This converts the 1113 Doom .mus format to .mid a lot better. As one example, tnt.wad 1114 Map02 is now a lot closer to how Vanilla says. Also, the music on 1115 the deca.wad titlescreen now plays! 1116 * x3, x4 and x5 display scale (thanks to MikeRS for x5 scale). 1117 * Fullscreen “letterbox” mode allows Chocolate Doom to run on 1118 machines where 1.6:1 aspect ratio modes are unavailable 1119 (320x200/640x400). The game runs in 320x240/640x480 instead, with 1120 black borders. The system automatically adjusts to this if closer 1121 modes are unavailable. 1122 * Aspect ratio correction: you can (also) run at 640x480 without 1123 black borders at the top and bottom of the screen. 1124 * PC speaker sound effect support. Chocolate Doom can output real 1125 PC speaker sounds on Linux, or emulate a PC speaker through the 1126 sound card. 1127 * Working three-screen mode, as seen in early versions of Doom! To 1128 test this out, put three computers on a LAN and type: 1129 1130 chocolate-doom -server 1131 chocolate-doom -autojoin -left 1132 chocolate-doom -autojoin -right 1133 1134 * Allow a delay to be specified on startup, to allow the display to 1135 settle after changing modes before starting the game. 1136 * Allow the full path and filename to be specified when loading 1137 demos: It is now possible to type “chocolate-doom -playdemo 1138 /tmp/foo.lmp” for example. 1139 * Savegames are now stored in separate directories depending on the 1140 IWAD: eg. the savegames for Doom II are stored in a different 1141 place to those for Doom I, Final Doom, etc. (this does not affect 1142 Windows). 1143 * New mouse acceleration code works based on a threshold and 1144 acceleration. Hopefully this should be closer to what the DOS 1145 drivers do. There is a ‘test’ feature in the setup tool to help 1146 in configuring this. 1147 * New “-nwtmerge” command line option that emulates NWT’s “-merge” 1148 option. This allows TiC’s Obituary TC to be played. 1149 * The ENDOOM screen no longer closes automatically, you have to 1150 click the window to make it go away. 1151 * Spechit overrun fixes and improvements. Thanks to entryway for 1152 his continued research on this topic (and because I stole your 1153 improvements :-). Thanks to Quasar for reporting a bug as well. 1154 * Multiple dehacked patches can be specified on the command line, in 1155 the same way as with WADs - eg. -deh foo.deh bar.deh baz.deh. 1156 * Default zone memory size increased to 16MB; this can be controlled 1157 using the -mb command-line option. 1158 * It is now possible to record demos of unlimited length (by 1159 default, the Vanilla limit still applies, but it can now be 1160 disabled). 1161 * Autoadjusting the screen mode can now be disabled. 1162 * On Windows, the registry is queried to detect installed versions 1163 of Doom and automatically locate IWAD files. IWADs installed 1164 through Steam are also autodetected. 1165 * Added DOOMWADPATH that can be used like PATH to specify multiple 1166 locations in which to search for IWAD files. Also, “-iwad” is now 1167 enhanced, so that eg. “-iwad doom.wad” will now search all IWAD 1168 search paths for “doom.wad”. 1169 * Improved mouse tracking that should no longer lag. Thanks to 1170 entryway for research into this. 1171 * The SDL driver can now be specified in the configuration file. 1172 The setup tool has an option on Windows to select between DirectX 1173 and windib. 1174 * Joystick support. 1175 * Configuration file option to change the sound sample rate. 1176 * More than three mouse buttons are now supported. 1177 1178### Portability improvements 1179 * Chocolate Doom now compiles and runs cleanly on MacOS X. Huge 1180 thanks go to Insomniak who kindly gave me an account on his 1181 machine so that I could debug this remotely. Big thanks also go 1182 to athanatos on the Doomworld forums for his patience in testing 1183 various ideas as I tried to get Chocolate Doom up and running on 1184 MacOS. 1185 * Chocolate Doom now compiles and runs natively on AMD64. 1186 * Chocolate Doom now compiles and runs on Solaris/SPARC, including 1187 the Sun compiler. Thanks to Mike Spooner for some portability 1188 fixes. 1189 * Improved audio rate conversion, so that sound should play properly 1190 on machines that don’t support low bitrate output. 1191 1192### Compatibility fixes 1193 * Check for IWADs in the same order as Vanilla Doom. 1194 * Dehacked code will now not allow string replacements to be longer 1195 than those possible through DOS dehacked. 1196 * Fix sound effects playing too loud on level 8 (thanks to myk for 1197 his continued persistence in getting me to fix this) 1198 * Save demos when quitting normally - it is no longer necessary to 1199 press ‘q’ to quit and save a demo. 1200 * Fix spacing of -devparm mode dots. 1201 * Fix sky behavior to be the same as Vanilla Doom - when playing in 1202 Doom II, the skies never change from the sky on the first level 1203 unless the player loads from a savegame. 1204 * Make -nomouse and config file use_mouse work again. 1205 * Fix the -nomusic command-line parameter. Make the snd_sfxdevice 1206 snd_musicdevice values in the configuration file work, so that it 1207 is possible to disable sound, as with Vanilla. 1208 * Repeat key presses when the key is held down (this is the Vanilla 1209 behavior) - thanks to Mad_Mac for pointing this out. 1210 * Don’t print a list of all arguments read from response files - 1211 Vanilla doesn’t do this. 1212 * Autorun only when joyb_speed >= 10, not >= 4. Thanks to Janizdreg 1213 for this. 1214 * Emulate a bug in DOS dehacked that can overflow the dehacked frame 1215 table and corrupt the weaponinfo table. Note that this means 1216 Batman Doom will no longer play properly (identical behavior to 1217 Vanilla); vbatman.deh needs to also be applied to fix it. (Thanks 1218 grazza) 1219 * Allow dehacked 2.3 patches to be loaded. 1220 * Add more dehacked string replacements. 1221 * Compatibility option to enable or disable native key mappings. 1222 This means that people with non-US keyboards can decide whether to 1223 use their correct native mapping or behave like Vanilla mapping 1224 (which assumes all keyboards are US). 1225 * Emulate overflow bug in P_FindNextHighestFloor. Thanks to 1226 entryway for the fix for this. 1227 * Add -netdemo command line parameter, for playing back netgame 1228 demos recorded with a single player. 1229 * The numeric keypad now behaves like Vanilla Doom does. 1230 * Fix some crashes when loading from savegames. 1231 * Add intercepts overrun emulation from PrBoom-plus. Thanks again 1232 to entryway for his research on this subject. 1233 * Add playeringame overrun emulation. 1234 1235### Bugs fixed 1236 * Fix crash when starting new levels due to the intermission screen 1237 being drawn after the WI_ subsystem is shut down (thanks pritch 1238 and joe) 1239 * Catch failures to initialise sound properly, and fail gracefully. 1240 * Fix crasher in 1427uv01.lmp (thanks ultdoomer) 1241 * Fix crash in udm1.wad. 1242 * Fix crash when loading a savegame with revenant tracer missiles. 1243 * Fix crash when loading a savegame when a mancubus was in the 1244 middle of firing. 1245 * Fix Doom 1 E1-3 intermission screen animations. 1246 * Fix loading of dehacked “sound” sections. 1247 * Make sure that modified copyright banners always end in a newline 1248 - this fixes a bug with av.wad (thanks myk) 1249 * Added missing quit message (“are you sure you want to quit this 1250 great game?”). 1251 * Fix when playing long sound effects - the death sound in 1252 marina.wad now plays properly, for example. 1253 * Fix buffer overrun on the quicksave prompt screen that caused a 1254 mysterious cycling character to appear. 1255 * IDCLEV should not work in net games (thanks Janizdreg) 1256 * Stop music playing at the ENDOOM screen. 1257 * Fix sound sample rate conversion crash. 1258 * Fix “pop” heard at the end of sound effects. 1259 * Fix crash when playing long sounds. 1260 * Fix bug with -timedemo accuracy over multi-level demos. 1261 * Fix bug with the automap always following player 1 in multiplayer 1262 mode (thanks Janizdreg). 1263 1264## 0.1.4 (2006-02-13) 1265 1266 * NWT-style merging command line options (allows Mordeth to be played) 1267 * Unix manpage (thanks Jon Dowland) 1268 * Dehacked improvements/fixes: 1269 * Allow changing the names of graphic lumps used in menu, status bar 1270 intermission screen, etc. 1271 * Allow changing skies, animated flats + textures 1272 * Allow changing more startup strings. 1273 * Allow text replacements on music + sfx lump names 1274 * Fix for plutonia map12 crash. 1275 * Fix bug with playing long sfx at odd sample rates. 1276 * Big Endian fixes (for MacOS X). Thanks to athanatos for helping 1277 find some of these. 1278 * Install into /usr/games, rather than /usr/bin (thanks Jon Dowland) 1279 1280## 0.1.3 (2006-01-20) 1281 1282 * Imported the spechit overrun emulation code from prboom-plus. Thanks to 1283 Andrey Budko for this. 1284 * New show_endoom option in the chocolate-doom.cfg config file allows 1285 the ENDOOM screen to be disabled. 1286 * Chocolate Doom is now savegame-compatible with Vanilla Doom. 1287 1288 * Fixes for big endian machines (thanks locust) 1289 * Fixed the behavior of the dehacked maximum health setting. 1290 * Fix the “-skill 0” hack to play without any items (thanks to Janizdreg 1291 for pointing out that this was nonfunctional) 1292 * Fix playing of sounds at odd sample rates (again). Sound effects 1293 at any sample rate now play, but only sounds with valid headers. 1294 This is the *real* way Vanilla Doom behaves. Thanks to myk for 1295 pointing out the incorrect behavior. 1296 1297## 0.1.2 (2005-10-29) 1298 1299 * Silence sounds at odd sample rates (rather than bombing out); this 1300 is the way Vanilla Doom behaves. 1301 * Handle multiple replacements of the same sprite in a PWAD. 1302 * Support specifying a specific version to emulate via the command line 1303 (-gameversion) 1304 * Fix help screen orderings and skull positions. Behave exactly as 1305 the original executables do. 1306 1307## 0.1.1 (2005-10-18) 1308 1309 * Display startup “banners” if they have been modified through 1310 dehacked. 1311 * Dehacked “Misc” section support. 1312 1313### Bugs fixed 1314 * Doom 1 skies always using Episode 1 sky 1315 * Crash when switching applications while running fullscreen 1316 * Lost soul bounce logic (do not bounce in Registered/Shareware) 1317 * Mouse buttons mapped incorrectly (button 1 is right, 2 is middle) 1318 * Music not pausing when game is paused, when using SDL_mixer’s 1319 native MIDI playback. 1320 * Pink icon on startup (palette should be fully set before anything is 1321 loaded) 1322 1323## 0.1.0 (2005-10-09) 1324 1325 * Dehacked support 1326 * WAD merging for TCs 1327 * ENDOOM display 1328 * Fix bug with invalid MUS files causing crashes 1329 * Final Doom fixes 1330 1331## 0.0.4 (2005-09-27) 1332 1333 * Application icon and version info included in Windows .exe files 1334 * Fixes for non-x86 architectures 1335 * Fix uac_dead.wad (platform drop on e1m8 should occur when all 1336 bosses die, not just barons) 1337 * Fix “loading” icon to work for all graphics modes 1338 1339## 0.0.3 (2005-09-17) 1340 1341 * Mouse acceleration code to emulate the behaviour of old DOS mouse 1342 drivers (thanks to Toke for information about this and 1343 suggestions) 1344 * Lock surfaces properly when we have to (fixes crash under 1345 Windows 98) 1346 1347## 0.0.2 (2005-09-13) 1348 1349 * Remove temporary MIDI files generated by sound code. 1350 * Fix sound not playing at the right volume 1351 * Allow alt-tab away while running in fullscreen under Windows 1352 * Add second configuration file (chocolate-doom.cfg) to allow 1353 chocolate-doom specific settings. 1354 * Fix switches not changing in Ultimate Doom 1355 1356## 0.0.1 (2005-09-07) 1357 1358 First beta release 1359