Skip to content

Cherry Doom is a fork of Nugget Doom with more additional features.

License

Notifications You must be signed in to change notification settings

xemonix0/Cherry-Doom

 
 

Repository files navigation

Cherry Doom

Cherry Doom Icon

Code Size License Release Release Date Downloads Commits Since Latest Release Last Commit Continuous Integration

Cherry Doom is a fork of Nugget Doom intended to add even more features.

Note: this README and the rest of documentation are updated on a per-commit basis, meaning that they may not correspond to the latest release.

If you're seeking information on the version you're using, please refer to the documentation included with it.

Demo compatibility notice

Although the new code has been written with the intention of not breaking demo compatibility, it has not been properly tested yet. RECORD DEMOS AT YOUR OWN RISK!

Features

Important to note:

  • This feature list is relative to Nugget Doom's
  • Some of Cherry Doom's features come from other sources. The initial implementations for those are ported from (p.f.) or inspired by (i.b.) said sources. These acknowledgements are included in the feature list
  • Some config variables (CVARs) don't have a corresponding menu item and can only be changed by editing cherry-doom.cfg. For these, a "CFG-only" label is present and the CVAR name is included for guidance

General

  • Mute Inactive Window setting [p.f. International Doom]
  • Floating Powerups setting [p.f. International Doom]
  • Rocket Trails setting [p.f. Doom Retro] (with extended customization via the Rocket Trails Interval and Smoke Translucency settings)
    • Just like in Doom Retro, rocket trails are disabled if a DSDHacked patch replaces the rocket smoke thing definition or any of its states or sprites
  • Mouselook option for the Stretch Short Skies setting to enable sky stretching only when mouselook is enabled

Intermission screen

  • Settings to show Health & Armor and Weapons widgets alongside the detailed time widget
  • Setting to adjust intermission kill percentage to follow UV max speedrun requirements (CFG-only: inter_accurate_kill_count)
    • Specifically, it prevents resurrected and Icon of Sin-spawned monsters from increasing the totals, and also makes 100% show up for maps without monsters
  • Items percentage is now 100% on maps without items

Status Bar/HUD

  • Movement widget: shows the current player movement and strafing speeds

Crosshair

  • Disable On Slot 1 setting [i.b. Precise Crosshair mod]
  • Detection of Targets in Darkness setting (the required light level is customizable through the CFG-only hud_crosshair_dark_level CVAR) [i.b. Target Spy mod]

Enemies

  • Blood Amount Scales With Damage setting [i.b. Doom Retro]

Miscellaneous

  • Hints for some disabled menu items, explaining the reason they are disabled
  • Most setup menus have been rearranged (utilizing the new scrollable subpages feature) to make navigation easier
  • Disable Stats Tracking setting for the custom skill

Level Table

The Level Table, inspired by (and initially ported from) DSDA-Doom, provides a way to track your progress across the levels of a WAD.

This feature tracks statistics, such as the skill level, kills, items, secrets and time, and allows you to see all that information in one place (including a Summary screen, with overall statistics for the current WAD), also giving you the ability to warp to any map conveniently from the same screen.

Compared to DSDA-Doom's implementation, there are a few notable additions and changes:

  • Setting to toggle stats tracking (CFG-only: lt_enable_tracking)
  • Command line parameter to disable stats tracking (-notracking)
    • This can be used as a temporary alternative to the lt_enable_tracking CVAR
  • Setting to toggle tracking kills and time for maps not beaten from a pistol start (CFG-only: lt_track_continuous)
    • This setting is enabled by default; the old behavior (before 2.0.0 and in DSDA-Doom) is equivalent to it being disabled
  • Setting to toggle resetting stats for the current level upon beating the level on a new best skill (except Nightmare) (CFG-only: lt_reset_on_higher_skill)
    • This setting is enabled by default; the old behavior is equivalent to it being disabled
  • The ability to see (and warp to, but not track stats for) all loaded maps (not just maps from the WAD that is the last in the load order), grouped by WAD filename
  • Stats tracking now ignores WADs without maps when creating data folders for stats files
  • Level Table Stats Format setting (CFG-only: lt_stats_format)
  • Press Del to erase selected map stats
  • "Reset to defaults" button repurposed for erasing current WAD stats
  • WAD stats are now written to the file every time a level is beaten, and not just when you quit the game
  • Various visual changes

Compiling

The Cherry Doom source code is available at GitHub: https://github.com/xemonix0/Cherry-Doom.

It can be cloned via

git clone https://github.com/xemonix0/Cherry-Doom.git

Linux, and Windows with MSYS2

The following build system and libraries need to be installed:

Usually your distribution should have the corresponding packages in its repositories, and if your distribution has "dev" versions of those libraries, those are the ones you'll need.

Once installed, compilation should be as simple as:

cd cherry-doom
mkdir build; cd build
cmake ..
make

After successful compilation the resulting binary can be found in the src/ directory.

Windows with Visual Studio

Visual Studio 2022 comes with built-in support for CMake by opening the source tree as a folder.

Install vcpkg https://github.com/Microsoft/vcpkg#quick-start-windows. Integrate it into CMake or use toolchain file:

cd cherry-doom
cmake -B build -DCMAKE_TOOLCHAIN_FILE="[path to vcpkg]/scripts/buildsystems/vcpkg.cmake"
cmake --build build

CMake will automatically download and build all dependencies for you.

Legalese

Files: *
Copyright:
© 1993-1996 Id Software, Inc.;
© 1993-2008 Raven Software;
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 1999-2004 by Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze;
© 2004 James Haley;
© 2005-2006 by Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko;
© 2005-2018 Simon Howard;
© 2006 Ben Ryves;
© 2007-2011 Moritz "Ripper" Kroll;
© 2008-2019 Simon Judd;
© 2017 Christoph Oelckers;
© 2019 Fernando Carmona Varo;
© 2020 Alex Mayfield;
© 2020 JadingTsunami;
© 2020-2024 Fabian Greffrath;
© 2020-2024 Roman Fomin;
© 2021 Ryan Krafnick;
© 2021-2024 Alaux;
© 2022 Julia Nechaevskaya;
© 2022-2024 ceski;
© 2023 Andrew Apted;
© 2023 liPillON;
© 2023-2024 Xemonix.
License: GPL-2.0

Files: src/beta.h
Copyright: © 2001-2019 Contributors to the Freedoom project.
License: BSD-3-Clause

Files: src/dogs.h
Copyright:
© 2017 Nash Muhandes;
© apolloaiello;
© TobiasKosmos.
License: CC-BY-3.0 and CC0-1.0

Files: src/nano_bsp.*
Copyright: © 2023 Andrew Apted.
License: MIT

Files: src/u_scanner.*
Copyright:
© 2010 Braden "Blzut3" Obrzut;
© 2019 Fernando Carmona Varo.
License: BSD-3-Clause

Files: src/v_flextran.*
Copyright:
© 2013 James Haley et al.;
© 1998-2012 Marisa Heit.
License: GPL-3.0

Files: src/v_video.*
Copyright:
© 1999 by id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman;
© 2013 James Haley et al.
License: GPL-3.0

Files: src/wad_stats.*
Copyright: © 2021-2023 Ryan Krafnick.
License: GPL-2.0

Files: cmake/FindSDL2.cmake, cmake/FindSDL2_net.cmake
Copyright: © 2018 Alex Mayfield.
License: BSD-3-Clause

Files: miniz/*
Copyright:
© 2010-2014 Rich Geldreich and Tenacious Software LLC;
© 2013-2014 RAD Game Tools and Valve Software.
License: MIT

Files: opl/*
Copyright:
© 2005-2014 Simon Howard;
© 2013-2018 Alexey Khokholov (Nuke.YKT).
License: GPL-2.0

Files: soundfonts/TimGM6mb.sf2
Copyright:
© 2004 Tim Brechbill;
© 2010 David Bolton.
License: GPL-2.0

Files: textscreen/*
Copyright:
© 1993-1996 Id Software, Inc.;
© 2002-2004 The DOSBox Team;
© 2005-2017 Simon Howard.
License: GPL-2.0

Files: win32/win_opendir.*
License: public-domain