Difference between revisions of "Woof!"

From DoomWiki.org

[checked revision][checked revision]
m (Revision: Clean up)
m (Compatibility modes: Grammar)
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{InfoboxSourcePort
+
{{InfoboxSoftware
 
|title = Woof!
 
|title = Woof!
 
|logo = [[Image:Woof.png|240px]]
 
|logo = [[Image:Woof.png|240px]]
 
|developer = [[Fabian Greffrath]]
 
|developer = [[Fabian Greffrath]]
 
|baseparent = [[WinMBF]]
 
|baseparent = [[WinMBF]]
|programming language = {{wp|C (programming language)|C}}
+
|programming language = {{wp|C (programming language)|C}}
 
|status = Active
 
|status = Active
 
|initialversion = 0.9.0
 
|initialversion = 0.9.0
Line 21: Line 21:
 
Woof!'s name was inspired by Doom's [[logo]] turned upside down, which spells ''Wood''. As this would be a rather silly name, it was thus named Woof, after the barking sound dogs make, and a reference to Marine's Best Friend.
 
Woof!'s name was inspired by Doom's [[logo]] turned upside down, which spells ''Wood''. As this would be a rather silly name, it was thus named Woof, after the barking sound dogs make, and a reference to Marine's Best Friend.
  
==Main Features==
+
== Main features ==
 
* The code has been made 64-bit compatible.
 
* The code has been made 64-bit compatible.
* The code has been ported to [[Wikipedia:Simple DirectMedia Layer|SDL-2]], the game scene is now rendered to screen using hardware acceleration (if available).
+
* The code has been ported to {{wp|Simple DirectMedia Layer|SDL-2}}, the game scene is now rendered to screen using hardware acceleration (if available).
 
* The level building code has been upgraded to use unsigned data types internally, which allows for loading maps that have been built in "extended nodes" format. Furthermore, maps using nodes in [[DeePBSP]] and (compressed or uncompressed) [[ZDBSP]] formats can now be loaded.
 
* The level building code has been upgraded to use unsigned data types internally, which allows for loading maps that have been built in "extended nodes" format. Furthermore, maps using nodes in [[DeePBSP]] and (compressed or uncompressed) [[ZDBSP]] formats can now be loaded.
 
* The renderer has been upgraded to use 32-bit integer variables internally, which fixes crashes in levels with extreme heights or height differences (e.g. ludicrm.wad MAP03).
 
* The renderer has been upgraded to use 32-bit integer variables internally, which fixes crashes in levels with extreme heights or height differences (e.g. ludicrm.wad MAP03).
 
* Fullscreen mode can be toggled in the General menu section or by pressing Alt+Enter, and it is now saved in the config file.
 
* Fullscreen mode can be toggled in the General menu section or by pressing Alt+Enter, and it is now saved in the config file.
 
* The complete SDL input and event handling system has been overhauled based on code from [[Chocolate Doom]] 3.0.
 
* The complete SDL input and event handling system has been overhauled based on code from [[Chocolate Doom]] 3.0.
* The search path for [[IWADs]] has been adapted to modern requirements, taking the install locations for common download packages into account.
+
* The search path for [[IWAD]]s has been adapted to modern requirements, taking the install locations for common download packages into account.
* On Windows systems, support for dragging and dropping [[WAD]] and [[Dehacked]] files onto the executable has been added.
+
* On Windows systems, support for dragging and dropping [[WAD]] and [[DeHackEd]] files onto the executable has been added.
* Screenshots may be saved in [[Wikipedia:Portable Network Graphics|PNG]] format if the SDL2_Image library is found at runtime.
+
* Screenshots may be saved in {{wp|PNG}} format if the SDL2_Image library is found at runtime.
 
* The sound system has been completely overhauled, using SDL_Mixer.
 
* The sound system has been completely overhauled, using SDL_Mixer.
 
* The original [[Spectre]]/[[Partial invisibility effect]] has been brought back.
 
* The original [[Spectre]]/[[Partial invisibility effect]] has been brought back.
 
* The flashing disk icon has been brought back.
 
* The flashing disk icon has been brought back.
 
* Support for [[helper dog]]s and beta emulation from MBF is now unconditionally enabled.
 
* Support for [[helper dog]]s and beta emulation from MBF is now unconditionally enabled.
* Support for the [[MBF21]] specification. (Version 6.0.0)
+
* Support for the [[DEHEXTRA]] standard. (Version 3.1.0 onward)
* [[UMAPINFO]] support.
+
* Support for the [[MBF21]] specification. (Version 6.0.0 onward))
 +
* Support for the [[DSDHacked]] extension. (Version 7.0.0 onward)
 +
* [[UMAPINFO]] and [[COMPLVL]] support.
 
* Modern WASD movement scheme by default.
 
* Modern WASD movement scheme by default.
* Playback of [[Vanilla Doom]] [[demos]] has been vastly improved.
+
* Playback of [[Vanilla Doom]] [[demo]]s has been vastly improved.
 
* Support for the [[Doom 3: BFG Edition]] IWAD files.
 
* Support for the [[Doom 3: BFG Edition]] IWAD files.
 
* Support for the [[Freedoom]] IWAD files.
 
* Support for the [[Freedoom]] IWAD files.
* Support for the [[DEHEXTRA]] standard. (Version 3.1.0 onward)
 
  
==History==
+
== Compatibility modes ==
 +
Woof! supports various compatibility settings to adjust its behavior, much like those initially implemented for [[MBF]]. In addition to individual settings for each difference in behavior, it allows the user to set ''compatibility levels'' to behave like earlier versions and modifications of the [[Doom engine]]. With the compatibility levels, Woof! may provide almost flawless compatibility with regular [[demo]]s, as well as those recorded with Boom engines.
 +
 
 +
To change compatibility levels, the ''Default complevel'' menu setting can be used in-game. The game can also be launched with the [[Source port parameters#-complevel <compatibility level>|{{c|-complevel}}]] [[parameter]] followed by one of the following aliases or numbers:
 +
 
 +
{| {{prettytable}}
 +
!Alias!!Level!!Emulated engine
 +
|-
 +
|vanilla||2||[[Versions of Doom and Doom II#v1.9|Doom v1.9]]
 +
|-
 +
|vanilla||3||[[The Ultimate Doom#Engine|Ultimate Doom]] & [[Doom95]]
 +
|-
 +
|vanilla||4||[[Final Doom#Engine|Final Doom]] (emulates exclusively the release with [[Final Doom teleporters do not set Z coordinate|bugged teleports]])
 +
|-
 +
|boom||9||Boom v2.02
 +
|-
 +
|mbf||11||[[MBF]]
 +
|-
 +
|mbf21||21||[[MBF21]]
 +
|}
 +
 
 +
== History ==
 
Woof! formally started development on December 11, 2019, when [[Fabian Greffrath]] in a [[Doomworld]] thread titled: "WinMBF goes 64 bit (WinMBF64 aka 3.0)"<ref>{{Dwforums|id=110648}}</ref> mentioned in a {{dwforumsp|2053997|post}} to "''have started my own branch to achieve 64-bit compatibility meanwhile''". These first builds still carried the WinMBF moniker.  
 
Woof! formally started development on December 11, 2019, when [[Fabian Greffrath]] in a [[Doomworld]] thread titled: "WinMBF goes 64 bit (WinMBF64 aka 3.0)"<ref>{{Dwforums|id=110648}}</ref> mentioned in a {{dwforumsp|2053997|post}} to "''have started my own branch to achieve 64-bit compatibility meanwhile''". These first builds still carried the WinMBF moniker.  
  
 
Starting at version {{c|0.9.0}}, released on January 21 through this {{dwforumsp|2069457|post}} the port changed to its current name. It required the libraries shipped with Fabian's other port, [[Crispy Doom]]. After receiving enough feedback, Fabian then officially announced Woof! version 1.0.0 in a [[Doomworld]] thread titled: "This is Woof! 1.0.0 (Feb 28, 2020) [Updated WinMBF]"<ref>{{Dwforums|id=112333}}</ref>.
 
Starting at version {{c|0.9.0}}, released on January 21 through this {{dwforumsp|2069457|post}} the port changed to its current name. It required the libraries shipped with Fabian's other port, [[Crispy Doom]]. After receiving enough feedback, Fabian then officially announced Woof! version 1.0.0 in a [[Doomworld]] thread titled: "This is Woof! 1.0.0 (Feb 28, 2020) [Updated WinMBF]"<ref>{{Dwforums|id=112333}}</ref>.
  
==References==
+
== See also ==
<references />
+
* [[Nugget Doom]]
 +
* [[WinMBF]]
  
==External Links==
+
== External links ==
* [https://github.com/fabiangreffrath/woof/releases/latest Latest Woof! release build], at Github
+
* [https://github.com/fabiangreffrath/woof/releases/latest Latest Woof! release build], at GitHub
 
* [https://github.com/fabiangreffrath/woof Woof! website with full description, manual, and changelog]
 
* [https://github.com/fabiangreffrath/woof Woof! website with full description, manual, and changelog]
 
* {{dwforums|112333|Woof! thread on the Doomworld forums}}
 
* {{dwforums|112333|Woof! thread on the Doomworld forums}}
 +
 +
== References ==
 +
<references />
 +
  
 
{{s-start}}
 
{{s-start}}
Line 61: Line 88:
 
{{s-bef-cond|before=[[WinMBF]]}}
 
{{s-bef-cond|before=[[WinMBF]]}}
 
{{s-ttl|title=Woof!}}
 
{{s-ttl|title=Woof!}}
{{s-non|reason=Active}}
+
{{s-aft-cond|after=[[Nugget Doom]]}}
 
{{s-end}}
 
{{s-end}}
  
[[Category:Source ports]]
+
[[Category:Source ports by name]]
 
[[Category:Boom compatible]]
 
[[Category:Boom compatible]]
 
[[Category:Limit removing source ports]]
 
[[Category:Limit removing source ports]]
 
[[Category:MBF-compatible]]
 
[[Category:MBF-compatible]]
 
[[Category:Doom ports]]
 
[[Category:Doom ports]]

Latest revision as of 12:29, 9 January 2024

Woof!
Woof.png
Codebase WinMBF
Developer(s) Fabian Greffrath
Initial release 0.9.0 (2020-02-21, 4 years ago)
Latest release 14.3.0 (2024-03-15, 14 days ago)
Development status Active
Written in C
Target Platform Cross-Platform
License GNU General Public License v2+
Website Homepage
Source Repository

(Git)

GitHub

Woof! is a source port developed by Fabian Greffrath forked from WinMBF. Woof! is developed based on the WinMBF code with the aim to make MBF, originally by Lee Killough, more widely available and convenient to use on modern systems.

To achieve this goal, Woof! is less strict regarding its faithfulness to the original MBF. It is focused on quality-of-life enhancements, bug fixes and compatibility improvements. However, all changes have been introduced in good faith that they are in line with the original author's intentions and even for the trained eye, this source port should be hard to distinguish from the original MBF.

Woof!'s name was inspired by Doom's logo turned upside down, which spells Wood. As this would be a rather silly name, it was thus named Woof, after the barking sound dogs make, and a reference to Marine's Best Friend.

Main features[edit]

  • The code has been made 64-bit compatible.
  • The code has been ported to SDL-2, the game scene is now rendered to screen using hardware acceleration (if available).
  • The level building code has been upgraded to use unsigned data types internally, which allows for loading maps that have been built in "extended nodes" format. Furthermore, maps using nodes in DeePBSP and (compressed or uncompressed) ZDBSP formats can now be loaded.
  • The renderer has been upgraded to use 32-bit integer variables internally, which fixes crashes in levels with extreme heights or height differences (e.g. ludicrm.wad MAP03).
  • Fullscreen mode can be toggled in the General menu section or by pressing Alt+Enter, and it is now saved in the config file.
  • The complete SDL input and event handling system has been overhauled based on code from Chocolate Doom 3.0.
  • The search path for IWADs has been adapted to modern requirements, taking the install locations for common download packages into account.
  • On Windows systems, support for dragging and dropping WAD and DeHackEd files onto the executable has been added.
  • Screenshots may be saved in PNG format if the SDL2_Image library is found at runtime.
  • The sound system has been completely overhauled, using SDL_Mixer.
  • The original Spectre/Partial invisibility effect has been brought back.
  • The flashing disk icon has been brought back.
  • Support for helper dogs and beta emulation from MBF is now unconditionally enabled.
  • Support for the DEHEXTRA standard. (Version 3.1.0 onward)
  • Support for the MBF21 specification. (Version 6.0.0 onward))
  • Support for the DSDHacked extension. (Version 7.0.0 onward)
  • UMAPINFO and COMPLVL support.
  • Modern WASD movement scheme by default.
  • Playback of Vanilla Doom demos has been vastly improved.
  • Support for the Doom 3: BFG Edition IWAD files.
  • Support for the Freedoom IWAD files.

Compatibility modes[edit]

Woof! supports various compatibility settings to adjust its behavior, much like those initially implemented for MBF. In addition to individual settings for each difference in behavior, it allows the user to set compatibility levels to behave like earlier versions and modifications of the Doom engine. With the compatibility levels, Woof! may provide almost flawless compatibility with regular demos, as well as those recorded with Boom engines.

To change compatibility levels, the Default complevel menu setting can be used in-game. The game can also be launched with the -complevel parameter followed by one of the following aliases or numbers:

Alias Level Emulated engine
vanilla 2 Doom v1.9
vanilla 3 Ultimate Doom & Doom95
vanilla 4 Final Doom (emulates exclusively the release with bugged teleports)
boom 9 Boom v2.02
mbf 11 MBF
mbf21 21 MBF21

History[edit]

Woof! formally started development on December 11, 2019, when Fabian Greffrath in a Doomworld thread titled: "WinMBF goes 64 bit (WinMBF64 aka 3.0)"[1] mentioned in a post to "have started my own branch to achieve 64-bit compatibility meanwhile". These first builds still carried the WinMBF moniker.

Starting at version 0.9.0, released on January 21 through this post the port changed to its current name. It required the libraries shipped with Fabian's other port, Crispy Doom. After receiving enough feedback, Fabian then officially announced Woof! version 1.0.0 in a Doomworld thread titled: "This is Woof! 1.0.0 (Feb 28, 2020) [Updated WinMBF]"[2].

See also[edit]

External links[edit]

References[edit]

  1. Doomworld forums thread
  2. Doomworld forums thread


Source code genealogy
Based on Name Base for
WinMBF Woof! Nugget Doom