### v0.27.5
- DSDAHUD lumps are "merged" now so only redefined huds are changed
- Fixed umapinfo bunny scroller crash
- Fixed volume issue on song restart in OPL (rfomin)

### v0.27.4
- Added background fps limit menu option
- Added option to hide stat totals until they are reached
- Added option to hide stat labels (unectomy)
- Added missing quitmsg dehacked keys (t-117)
- Changed invalid sndinfo definition to a warning
- Fixed some note skipping in opl (rfomin)
- Fixed textured automap showing in strict mode
- Fixed mapinfo Passover melee range height check
- Fixed undefined buffer issue with screenshots and viddump
- Fixed an overflow causing distant sprites (~8k map units) to not be rendered
- Fixed fullscreen cwilv replacement render position on entering screens

### v0.27.3
- Fixed duplicate wipe when reloading with use while dead
- Fixed opengl renderer being unusable for some players

### v0.27.2
- Added dsdademo header if using mapinfo in legacy formats
- Fixed -dsdademo desync

### v0.27.1
- Restored opl player
- Upgraded to opl3 emulation (rfomin)
  - You can switch back to opl2 with config option mus_opl_opl3mode
- Fixed crash related to opengl colormap management
  - Unfortunately, this reverted the fix for boom colormap + invuln in opengl

### v0.27.0

This update brings UDMF support out of beta with an official `dsda` UDMF namespace, adds MAPINFO support, and fixes a ton of bugs. Other highlights include a smooth light fade option for opengl, improvements to the build mode, and (retroactive) ambient sound support.

#### MAPINFO
- Added support for MAPINFO
  - Includes episode, cluster, map, and skill definitions
  - Configure gravity, jumping, special activation rules, and much more.
  - MAPINFO is opt-in and can be enabled in a wad by adding `use_mapinfo` to the DSDAPREF lump
  - See the full specification [here](../docs/mapinfo.md).
- Added new MAPINFO features
  - `Passover` and `NoPassover` map flags (enable or disable finite height)
  - `Colormap` property to change map colormap (e.g., for underwater levels)
- MAPINFO is intended for use with UDMF maps, but legacy map formats have access to some features

#### UDMF
- Finalized the dsda UDMF namespace
  - See the full specification [here](../docs/udmf.md).
- Optimized the custom udb config to remove obsolete specials and arguments
- Added new UDMF features
  - Wall texture scrolling properties (no special action required)
    - xscroll[top, mid, bottom], yscroll[top, mid, bottom]
  - Floor / ceiling scrolling properties (no special action required)
    - xscroll[floor, ceiling], yscroll[floor, ceiling], scroll[floor, ceiling]mode
    - The scroll mode decides whether textures, static objects, players, and / or monsters are affected
  - Sector thrust properties (no special action or object required)
    - xthrust, ythrust, thrustgroup, thrustlocation
    - The thrust group determines whether static objects, players, monsters, projectiles or WINDTHRUST actors are affected
    - The thrust location determines whether grounded, airborne, or ceiling actors are affected
  - Separate floor and ceiling skies as sector properties (no special action needed)
  - Friction as a sector property (no special action required)
    - frictionfactor and movefactor
  - Colormap quality of life
    - Colormap as a sector property (no special action or control sector needed)
    - Special action Map_SetColormap (change the map colormap)
    - Special action Sector_SetColormap (change the colormap for a sector tag)
- Fixed the "slow scrollers don't move objects" bug

#### Ambient Sound / SNDINFO
- Added support for ambient sounds defined by SNDINFO
  - Configure attenuation, volume, timing, etc
  - Compatible with all map formats
  - See the full documentation [here](../docs/sndinfo.md)

#### Graphics & Sound
- Added HiDPI support (bkoropoff)
- Added smooth fake contrast option (bkoropoff)
- Added smooth gl light fade option (bkoropoff)
- Added fine-grained fluidsynth chorus and reverb settings (bkoropoff)
- Removed opl2 midi player
- Removed pc speaker emulation

#### HUD
- Added `show_label` option to the `weapon_text` hud component (unectomy)
- Adjusted default light blue font
- Added status bar health / armor / ammo colors to the `DSDATC` lump
  - stbar_health_bad
  - stbar_health_warning
  - stbar_health_ok
  - stbar_health_super
  - stbar_armor_zero
  - stbar_armor_one
  - stbar_armor_two
  - stbar_ammo_bad
  - stbar_ammo_warning
  - stbar_ammo_ok
  - stbar_ammo_full
- Added exhud ammo color config by percent to the `DSDATC` lump
  - exhud_ammo_bad
  - exhud_ammo_warning
  - exhud_ammo_ok
  - exhud_ammo_full
- The hud key now cycles through the status bar

#### Build Mode
- Added armor, health, ammo, and blockmap width to the brute force attribute list
- Added `brute_force.keep <frame>` console command: keep the existing command
- Added `have` brute force condition (keys and weapons)
- Added `brute_force.nomonsters` / `bf.nomo` console commands
  - Perform a faster brute force by ignoring monster interactions (may desync)
  - Use `brute_force.monsters` / `bf.mo` to reset to the regular brute force mode
- Added a check to prevent entering brute force while outside build mode
- Basic input now respects the `-stroller` argument

#### Demo Recording
- Disabled minimap and textured automap when recording in strict mode
- Added `-force_old_zdoom_nodes` for edgecase demo playback on maps that have multiple zdoom node versions (known case is `entropy.wad`)
- Added demo time to the composite time component (shows if the demo includes a map restart after death)
- Added `-track_playback <split_file_base>` which treats demo playback as an attempt for split tracking
  - Use the same base name as used in `-record` to affect the same split file
- The skill level must now be specified on the command line when recording demos

#### Miscellaneous
- Improved clarity of texture error messages
- Added `-uv` and `-nm` command line arguments (shorthand for `-skill 4` and `-skill 5`)
- Added `player.set_vx / set_vy / set_vz` console commands
- Added an error if the `-command` console command fails at launch
- Added author to the map announcement feature
- Added non-keyboard control of confirmation dialogs (use menu enter / back)
- Changed intermission to show 100% kills and items when there are none on the map
  - Due to demo compatibility constraints, these won't "count up" to 100%
- Removed gibdth data (potential source of cross-port incompatibility)
- Improved ansi endoom windows compatibility (rfomin)

#### Bug Fixes
- Fixed a crash caused by an off-by-one error in the sprite count
- Fixed a crash caused by zero-length ledge linedefs in cl11+
- Fixed backspace from skill selection showing the episode menu when there is only one episode (e.g., in kdikdizd)
- Fixed nightmare skill warning showing up for heretic / hexen skill 5
- Fixed issue with reversing build mode in cl7-9
- Fixed issue with combining manual key frames with build mode reverse in vanilla complevels
- Fixed rare crash in line of sight check
- Fixed various features not working in solo-net mode (next map key, `-pistolstart`, etc)
- Fixed opengl not respecting the screen multiply setting (bkoropoff)
- Fixed some brute force conditions getting ignored depending on the order
- Fixed some brute force targets displaying a value in the message when there is none
- Fixed trackers not resetting properly when loading a previous state
- Fixed player damage tracking reporting the wrong value sometimes when rewinding
- Fixed an issue that would cause graphical oddities and / or crashes for some players
- Fixed a crash caused by repeat uses of brute force
- Fixed mouse buffering while the mouse is disabled
- Fixed big health / armor exhud components not using the text color config
- Fixed ammo components not coloring by the ammo percent config
- Fixed a crash occurring in maps with inconsistent nodes
- Fixed an automap freeze when dying while using the minimap
- Fixed position in level table resetting when reopening it
- Fixed a crash when using the quartz flask hotkey on the title screen
- Fixed the ammo_text component having the wrong order under alternate alignment
- Fixed a broken hack related to software midtex clipping
- Fixed a crash when using `-time_use` without the associated component
- Fixed negative coordinate rounding in the console
- Fixed custom colormaps combined with invulnerability yielding the wrong colormap in opengl
- Fixed alt-tab causing the wrong palette to appear under certain conditions
- Fixed reload on use while dead carrying a command over
- Fixed displayplayer in coop demo playback
