Fork of dsda-doom with experiments

Overview

dsda-doom-experiments

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

The current experiment in place is:

  • Monsters launching projectiles will attempt to lead their target to increase chances their projectile hits the target if the target is moving in a constant linear trajectory.
2021-10-06-doom-target-leading-1.mov

dsda-doom v0.21.3

This is a fork of prboom+ with extra tooling for demo recording and playback, with a focus on speedrunning. For builds, discussions, and bug reports, check out the release thread on doomworld.

Patch Notes

Hexen Support (beta)

  • DSDA-Doom includes demo-compatible support for hexen.
    • Use -iwad HEXEN.WAD (-file HEXDD.WAD for the expansion)
      • Or drag wads onto the exe
    • You can force hexen engine behaviour with -hexen (shouldn't be necessary)
    • Probably doesn't work with the windows launcher (same as heretic)
  • Don't need to supply complevel (hexen is complevel 0 by necessity)
  • There are a variety of sound and graphical oddities - the ones I've looked into are consistent with chocolate hexen (hexen itself is a bit more hacky - that's just how it is).
  • Cheat codes are implemented
    • indiana is also available for heretic
    • Codes from doom and heretic can be used as well (some won't make sense though)
  • Notes / Todo
    • Hexen has a kind of "auto save" feature that creates checkpoints when you transition between maps within a cluster. This is not implemented.
    • Hexen cross-map memory is incomplete - you can break scripts or other things when changing maps, given the right circumstances. None of these quirks are fixed. They're required for demo compatibility.
    • Hexen stores cross-map memory in save files - in dsda-doom this data is stored in memory, and when you save the game it will also save the cross-map memory in your save file.
    • Setting the "Status Bar and Menu Appearance" option to "not adjusted" will have no effect for hexen (it will default instead to "Doom format")
    • The "Apply multisampling" automap option is disabled for hexen
    • Automap colors are not configurable for hexen
    • Some of the more advanced features are not implemented for hexen yet, and using them may cause crashes or other odd behaviour. This includes ghost players, key frames (working but not always in sync), and the analysis code
    • Advanced hud is not implemented for hexen
    • Some menus extend over the hud. This will be cleaned up later
    • Palette translations for ex hud / settings fonts are not great right now
    • Monster counter doesn't work as expected, due to cluster format (ex hud / levelstat)
    • Hexen-style skies aren't implemented yet (layering, etc)
    • The ALTSHADOW thing flag isn't affecting the rendering
    • Dynamic fade palettes aren't being used
    • The yellow message variant isn't implemented

Heretic Support (beta)

  • DSDA-Doom includes demo-compatible support for heretic (all the demos stored on dsda are in sync).
  • Heretic game logic should be set automatically if you use HERETIC.WAD as the iwad. If it doesn't work, please use the -heretic commandline option. This flips a switch in the engine that determines all the core game data.
  • The prboom+ launcher doesn't work properly with heretic.
  • You do not need to (and can't) set the complevel when playing heretic. It is implicitly set to 0, since heretic is based on doom v1.2.
  • Setting the "Status Bar and Menu Appearance" option to "not adjusted" will have no effect for heretic (it will default instead to "Doom format").
  • The "Apply multisampling" automap option is disabled for heretic.
  • Automap colors are not configurable for heretic.
  • Some of the more advanced features are not implemented for heretic yet, and using them may cause crashes or other odd behaviour. This includes ghost players, key frames (working but not always in sync), and the analysis code.
  • Dehacked support for heretic isn't implemented yet.
  • Advanced hud is not implemented for heretic.
  • Some menus extend over the hud. This will be cleaned up later.

New Stuff

  • Use -analysis to write an analysis.txt file with run details.
  • Use -track_pacifist to enable a "Not pacifist!" message to appear when breaking the category rules.
  • Use -track_100k to enable a "100K achieved!" message to appear when reaching 100% kills on a map.
  • Use -time_keys to show a split when you pick up a key.
  • Use -time_use to show a split when you press the use key.
  • Use -time_secrets to show a split when you find a secret.
  • Use -time_all to enable all the split options.
  • Use -export_ghost ghost to write a ghost file (.gst).
  • Use -import_ghost ghost_a ghost_b ... to import ghost files (.gst).
  • Use -tas to disable strict mode.
  • Use -first_input f s t to "build" the first command of a tas, where f = forwardmove, s = sidemove, and t = angleturn.
    • Example: -first_input 50 50 32 will do a quarter turn left and sr50 forward right.
  • Through the use of automatic and manual key frames, you can now rewind the game.
  • The time with tics is now displayed on the intermission screen (top left corner).
  • The extended hud provides a hybrid of the classic and advanced huds.
  • Use the "restart current map" key while demo recording to perform an in-game restart. Known issue: solo net is not preserved properly.
  • You can configure multiple input profiles.
  • You can configure multiple keys to one action.
  • You can bind (many) cheats.
  • You can cycle through alternate palettes (for testing purposes). The cycle starts with PLAYPAL, followed by PLAYPAL1 to PLAYPAL9.
  • Also see patch notes.

Changes

  • Smart Totals renamed to Max Totals and fixed to show kill constraint for max.
  • If there is a demo name clash and overwriting is off: use incrementing name demo-12345.lmp.
  • Removed the "continue from save slots set in demos" feature. The implementation was confusing and bugged.
  • Mouse sensitivity: multiply your pr+ value by 1.6 in order to get the same result. This change was done to create a 1:1 relationship between mouse input and the turning value created in the game. See "Fine Sensitivity" in the settings below to handle fractions.
  • Vertical mouse movement and mouse strafing carry fractional values, so you eventually move even at a very slow input speed.
  • Mouse scales show integer values and have no limits.
  • Also see patch notes.

New Settings

  • Strict Mode: disable TAS options while recording, unless using -tas.
  • Cycle Ghost Colors: cycle through the 4 player colors when spawning ghosts.
  • Automatic Key Frame Interval (s): time between automatic key frames.
  • Automatic Key Frame Depth: how many key frames to store (max rewind length).
  • Extended Hud: add extra info on top of the default hud.
  • Wipe At Full Speed: always display the wipe animation at normal speed.
  • Track Demo Attempts: show the attempt count (session / total) when starting a demo.
  • Fine Sensitivity: hundredths of a point adjustment to horizontal mouse sensitivity.
  • Also see patch notes.

Key Frames

Key frames capture the game state at a given moment, similar to save files. By automatically recording key frames at fixed intervals, it is possible to "rewind" the game. This can be used during normal play, while recording (tas) demos, and during demo playback. You can also set a manual "quick key frame" at a specific point and rewind to that moment at any later time. When storing a key frame while recording, a backup file is created (backup-ttt.kf). You can continue a demo from a key frame like so: -record x.lmp -from_key_frame backup-1234.kf -complevel x. While recording from a key frame, the demo restart key will return you to the original key frame, even if you have made other key frames later on.

Ghosts

A ghost follows the life of the player recorded in the ghost file. This can be useful to compare demos, or to compete against demos while you play. For movies, ghosts that enter the next map ahead of the player will pause until that map is reached. Ghosts that are left behind will fast-forward to the current map.

Analysis File

This file contains summary data about a run in key-value pairs. Current contents:

  • skill, 1 to 5.
  • nomonsters, 1 or 0 (-nomonsters parameter).
  • respawn, 1 or 0 (-respawn parameter).
  • fast, 1 or 0 (-fast parameter).
  • pacifist, 1 or 0.
  • stroller, 1 or 0.
  • reality, 1 or 0 (no damage taken).
  • almost_reality, 1 or 0 (only nukage damage taken).
  • 100k, 1 or 0 (100% kills as seen on intermission).
  • 100s, 1 or 0 (100% secrets as seen on intermission).
  • missed_monsters, monsters left alive (not including icon spawns).
  • missed_secrets, secrets left uncollected.
  • weapon_collector, 1 or 0 (0 if no weapons).
  • tyson_weapons, 1 or 0 (only pistol, chainsaw, and fist used).
  • turbo, 1 or 0.
  • category, UV Max, NoMo, etc.

Category Detection

If multiple categories are detected, the first match in this list is chosen: UV Max, UV Tyson, Stroller, Pacifist, UV Speed

Example: if you complete UV Tyson on a map and collect all the secrets, the analysis will show UV Max.

Use the extra flags (pacifist, stroller, tyson_weapons) to check the details.

Irrelevant categories for a run are ignored. E.g., you won't see NM 100S if a map has no secrets and you won't see Pacifist if a map has no monsters.

Credits

  • The DSDA-Doom icon was designed by Mal (129thVisplane). Thanks!
You might also like...
DOOM ported to the dos-like framework

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

WebAssembly from Scratch: From FizzBuzz to DooM.

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

Experiments with Mozzi, mostly on SAMD21 chips

mozzi_experiments Experiments with Mozzi, mostly on SAMD21 chips Sketches eighties_dystopia - A swirling ominous wub that evolves over time Demos "eig

An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Klipper-dev - Kevin's development repository for Klipper experiments.

Welcome to the Klipper project! https://www.klipper3d.org/ Klipper is a 3d-Printer firmware. It combines the power of a general purpose computer with

Procedural Generation Experiments
Procedural Generation Experiments

Procedural Generation Experiments What is this? This application is a tool to create and paint L-System in a fully interactive and dynamic way. “But,”

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

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

A DOOM 32 extension for DOS using increased limits beyond what DOOM32 provides.

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

🗺️ OMAPS.APP — Offline OpenStreetMap maps for iOS and Android. A community-driven fork of MAPS.ME.
🗺️ OMAPS.APP — Offline OpenStreetMap maps for iOS and Android. A community-driven fork of MAPS.ME.

OMaps is an open source cross-platform offline maps application, built on top of crowd-sourced OpenStreetMap data. It was publicly released for iOS and Android.

Releases(v0.21.3-exp)
Owner
jsd1982
ALttPO main developer
jsd1982
experiments with the Gameboy Advance serial interface

(I'm hedging my bets with this repo name. I'd want to add more serial setup tutorials. For example, I bought a bunch of Gameboy Advance wireless adapt

Ties Stuij 30 Oct 18, 2022
Doom port for InfOS - the University of Edinburgh Informatics research operating system used in the UG3 OS course

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

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

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

null 3 Jun 10, 2021
mimikatz is a tool I've made to learn C and make somes experiments with Windows security

mimikatz is a tool I've made to learn C and make somes experiments with Windows security

Benjamin DELPY 16.4k Nov 19, 2022
Doom port to the Ikea Tradfri RGB1923R5 and any device using Silicon labs EFR32MG21 based modules

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

null 20 Aug 2, 2022
Experiments using the RPI Zero GPU for FFT (1D and 2D)

RPI0_GPU_FFT Experiments using the RPI Zero GPU for FFT/IFFT 1D/2D For an input 4194304 (1D), the GPU was around 7X faster than np.fft.fft and np.fft.

Ricardo de Azambuja 30 Nov 15, 2022
Experiments with plauger 'standard C library' source code

STANDARD C LIBRARY CODE DISK V. 2.0 This diskette contains all the source code from ``The Standard C Library,'' by P.J. Plauger (Englewood Cliffs, N.

Luca Bolognese 1 Oct 27, 2021
old 'cross' project of DooM for various platforms

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

null 2 Nov 5, 2021
Doom ported to a nRF52840-based BLE dongle

nRF52840 Doom Doom port to an nRF52840-based USB BLE dongle, the Adafruit CLUE board, and any device using Nordic Semiconductors nRF52840. Coded by Ni

null 29 Jun 26, 2022
My experiments with Linux for the Apple M1 platform, based on Asahi and Corellium patches

Linux kernel ============ There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML an

Danny Lin 9 Oct 24, 2021