Skip to content

Commit

Permalink
Update patch notes / Add Limit-Removing documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
andrikpowell committed Aug 10, 2024
1 parent a8ddcdc commit 9609b11
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This is Arsinikk's own personal fork of DSDA-Doom with new added features and im
### New Features
- Native [widescreen](./docs/ws.md) and [animated background / menu element](./docs/animbg.md) lump support
- Support for [GAMEVERS](./docs/gamevers.md) lump in combination with [COMPLVL](./docs/complvl.md) to further specify Vanilla compatibility.
- Support for `-limitremoving` or `-lr` to disable overflow errors and emulation under Vanilla compatibility
- [Limit-Removing](./docs/limit_removing.md) Support to record/playback demos and/or play casually without overflow errors and emulation under Vanilla compatibility
- added [Extended HELP](https://www.doomworld.com/forum/topic/111465-boom-extended-help-screens-an-undocumented-feature/) screens (`HELP01`-`HELP99`) for Doom2/Plutonia/TNT _(previously only accessible via Doom 1)_.
- Added new scaled fuzz effect for Spectres and invisibility effects in the software renderer ([Thanks Lovey](https://github.com/kraflab/dsda-doom/pull/359))
- New "berserk" and "armour" Statusbar elements *(Options > Status Bar / HUD > Status Indicators)*
Expand Down
9 changes: 7 additions & 2 deletions docs/gamevers.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
## GAMEVERS Lump

The GAMEVERS lump can be used only when the [COMPLVL](complvl.md) lump has the key of `vanilla`, to specify an exact vanilla complevel.
The GAMEVERS lump can be used only when the [COMPLVL](complvl.md) lump has the key of `vanilla`, to specify an exact vanilla complevel and turn on [limit-removing](limit_removing.md).

GAMEVERS will not be read if COMPLVL is absent or if COMPLVL has any other key than `vanilla`.

Regarding limit-removing, the order of precedence is highest to lowest: parameter > lump > config. This means that if a complevel is set through a parameter without limit-removing (example: `-complevel 2`), the GAMEVERS `limit` will be ignored and the game will run **without** limit-removing.

### Specification

The GAMEVERS lump has a key and a value:
Expand All @@ -24,8 +26,11 @@ The `key` defines the specific complevel, while the `value` defines limit-removi
- Selects complevel 3, for Ultimate Doom compatibility.
- `final`
- Selects complevel 4, for Final Doom (Plutonia, TNT) compatibility.
- `limit`
- Allows the port to automatically detect the vanilla complevel, while turning on [limit-removing](limit_removing.md) mode.
- When using this, the second `value` is not needed.

### Values

- `limit`
- Runs complevel under limit-removing mode. Removes overflow errors and emulation. Omit to run in normal mode. (Note this can be overriden by parameters).
- Runs complevel under [limit-removing](limit_removing.md) mode. Removes overflow errors and emulation. Omit to run in normal mode. (Note this can be overriden by parameters).
44 changes: 44 additions & 0 deletions docs/limit_removing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Limit-Removing Functionality

The term "limit-removing" has been used in the Doom Community for over a decade, and yet there hasn't been a definition ascribed to it. Some consider Boom wads to be limit-removing, while others see it more as a glorified vanilla complevel.

*Nyan Doom* strives to define "limit-removing" as a standard (similar to a complevel) for the benefit of mappers, players, and speedrunners.

### Specification

"Limit-Removing" is a Vanilla complevel that removes the all vanilla overflows. "Vanilla" refers to `complevels 0-4`.

When playing/recording demos or just playing casual in "Limit-Removing" mode, the following overflows and warnings are disabled:

- Spechits Overflow
- Reject Overflow
- Intercepts Overflow
- PlayerInGame Overflow

Note that `Boom` / `MBF` / `MBF21` features are ***NOT*** supported when running in "Limit-Removing" mode *(exceptions being sky transfers, music changes, and other non-demo breaking features)*

### Parameters
"Limit-Removing" can be toggled on in a few different ways:
- `-complevel #r`
- The `#` can be `0-4` for vanilla complevels. The `r` is short for "removed"
- Examples: `-complevel 0r`, `-complevel 4r`
- `-limitremoving` or `-lr`
- These parameters can be used with the classic `-complevel #` parameter
- Examples: `-complevel 2 -lr`, `-complevel 4 -limitremoving`

### Autoload via Lumps
"Limit-Removing" can be toggled via lumps placed in a wad. Note that Parameters will overwrite the following lumps.
- The [`COMPLVL`](complvl.md) lump must use have the value of `vanilla`
- The [`GAMEVERS`](gamevers.md) lump can then specify an exact complevel, with the value `limit` following after.
- A single value of `limit` can also be used, allowing for automatic choosing of the complevel based on the IWAD.

### Final Notes
Please note that the order of precedence is highest to lowest: parameter > lump > config.

This means that if a complevel and/or "limit-removing" is (or is not) set through a parameter, that will take precedence over the contents of `COMPLVL` and `GAMEVERS`.

### Example (Precedence)

If a wad is loaded with the parameters `-complevel 2`, and has `GAMEVERS` (and `COMPLEVEL`) with the value of `final limit`, then the wad will be loaded with complevel 2 without "limit-removing" turned on.

The `final` value for complevel 4 would be ignored for the complevel 2 parameter, and the `limit` value would be ignored since the parameter `-complevel 2` does not specify "limit-removing".
16 changes: 16 additions & 0 deletions patch_notes/v1.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,21 @@
- Added a 'wait for keyboard press' for the terminal ENDOOM output on Windows
- Added and fixed MacOS and Linux support

### v1.1.8
- Don't show ENDOOM after playing lump or recording a demo
- [Limit-Removing](../docs/limit-removing.md) Overhaul
- Now supports `-complevel #r` format (only for complevels 0-4).
- `-complevel 2r` would load a wad in `complevel 2` with `limit-removing` on.
- Note that `-complevel 2` would load a wad without limit-removing, and would overwrite the [COMPLVL](../docs/complvl.md) and [GAMEVERS](../docs/gamevers.md) lumps.
- The console will now print if `limit-removing` is active via `-complevel #r`, `-limitremoving`, or `-lr`
- [GAMEVERS](../docs/gamevers.md) now will print if limit-removing is activated via the lump in the console.
- "Skip IWAD Story Text" config option added.
- When turned on, the default IWAD story text will be skipped in a PWAD if the story text hasn't been replaced.
- Uses 2 checks to determine the skip. 1) if the story text matches the default text for that current screen, and 2) if the map before the text screen has been replaced by the PWAD.
- When loading only the IWAD, the default IWAD story text will **NOT** be skipped.
- Only works for Doom 1, Doom 2, Plutonia, and TNT text screens
- The skip is completely disabled if `UMAPINFO`, `UDMF / ZDoom`, or `Heretic / Hexen` are detected.
- Obviously disabled when recording / playing demos

### For the Future...
- [See planned features](/patch_notes/future.md)

0 comments on commit 9609b11

Please sign in to comment.