Source Ports Latest Topicshttps://www.doomworld.com/forum/6-source-ports/Source Ports Latest TopicsenFastDoom: DOS Vanilla Doom optimized for 386/486 processorshttps://www.doomworld.com/forum/topic/116001-fastdoom-dos-vanilla-doom-optimized-for-386486-processors/ Note: I stole this from the Vogons thread, and after being notified by this by Leilei on the ZDoom forums.

 

Introduction:

''This is FastDoom for DOS, a port of Doom based on PCDoom v2 by @nukeykt. The goal of this port is to make it as fast as posible for 386/486 personal computers. It includes code from other ports as Crispy Doom, MBF and Russian Doom, as well the original PSX and Jaguar Doom ports, so I send kudos to them.''


FastDoom is covered under the GPL 2.0 and made by Victor ''Viti95'' Nieto.

Shoutout to @MrFlibble for his post in trying FastDoom to run with REKKR. 
 

Features at a glance:

  • Added FPS ingame viewer. Enabled with "-fps"
  • Added FPS calculation after timedemo runs
  • Added option to render visplanes (ceiling and floors) without textures. Enable with "-flatsurfaces"
  • Added option to render Spectres and invisible objects like real transparent objects (harder to see, a little faster to render). Enable with "-flatshadows"
  • Added option to render sky as a flat fixed color. Enable with "-flatsky"
  • Added option to render Spectre and invisible objects like the Sega Saturn port did. Enable with "-saturn"
  • New option to show only objects that are not far away from the player. All the enemies are still rendered as they're important. Enabled with "-near"
  • PC Speaker uses all sounds available (just for fun!)
  • Lot's of optimizations to make the game run faster / smoother (Executable is smaller than regular Doom)
  • Removed low memory limit (may cause crashes with low RAM)
  • NEW DETAIL LEVEL: POTATO. It renders the full scene with a quarter width resolution (max 80x200). 16-bit ISA video cards can play the game full screen much better!! A Western Digital Paradise PVGA1A ISA (1989) can render the game at a constant >25 fps with a 486DX-50. Enabled with "-potato" command parameter and low detail selected
  • New option to allow more than 8Mb of memory allocation. Enabled with "-ram"
  • Removed network gaming support
  • Removed joystick support
  • Removed Y mouse movement (move forward/backwards)
  • Added autorun support (F11 key).
  • Added mono sound support. Enabled with "-mono" parameter.
  • Added low quality sound support (8000Hz instead of 11025Hz). Enabled with "-lowsound" parameter.
  • Replaced DOS/4GW with DOS/32A providing a good speedup!
  • Removed gamma correction support

Media:

Benchmark demo done with version 0.2:
 

 

Live demo, done with version 0.3:
 

 

Downloads:

]]>
116001Wed, 29 Jul 2020 09:08:18 +0000
GZDoom Errorhttps://www.doomworld.com/forum/topic/142890-gzdoom-error/ I have been using ZDoom since September, since GZDoom says this:

 

----------------------------------------------

 

Fatal Error - GZDoom 4.10.0 64-bit

 

DOOM 2: Hell on Earth

 

Execution could not continue.

 

Unable to load shader Default:

Init Shader 'Default':

Vertex shader:

Vertex shader was successfully compiled to run on hardware.

 

Fragment shader:

Fragment shader was successfully compiled to run on hardware.

 

Linking:

Vertex shader(s) failed to link, fragment shader(s) failed to link.

unexpected error.

unexpected error.

 

-------------------------------

 

I don't even want any kind of shaders, I just want to play regular doom, that is unless these shaders are necessary. 

 

Computer info (i got most of this from the stickers on it)

Acer Aspire Laptop

Windows 7 OS

Quad Core and AMD Radeon Graphics.

A8 Vision AMD

 

i don't want to type the whole thing if this is an easy fix.

 

 

 

 

]]>
142890Fri, 19 Jan 2024 21:42:42 +0000
GZDoom 4.11.3 classic Doom feel settingshttps://www.doomworld.com/forum/topic/142691-gzdoom-4113-classic-doom-feel-settings/ I wanted to share the settings I'm using to make GZDoom 4.11.3 feel like classic Doom while using the Vulkan renderer.

 

588640839_GZDoomSettings.png.384bd54f059b78ad483e06d0215307f1.png

 

The easiest way to configure GZDoom is to use the Options Search function. If you're looking for one of the below settings without searching, make sure you set

Simple options menu: Off

 

gzdoom.ini is saved in a user folder now, so there is no need to copy your gzdoom.ini to a new install. Save the file somewhere safe for future use.

 

The below settings may need tweaking depending on your preferences and screen resolution.


Mouse Options

Always Mouselook: Off

 

Compatibility Options

Compatibility mode: Doom

 

Automap Options

Map colour set: Traditional Doom

 

HUD Options

Crosshair: Off

Scaling factor: 1.0

Aspect ratio: 1.2

 

HUD Options > Scaling Options

User interface scale: Adapt to screen size

Alternative HUD: 1

HUD preserves aspect ratio: Off

 

Sound Options

Randomize pitches: On

 

Display Options

Sprite shadows: Default

Use fuzz effect: Fuzz

Classic Transparency: ZDoom (Forced)

Use fake contrast: On

Rocket Trails: Off

Blood Type: Sprites & Particles

Bullet Puff Type: Sprites & Particles

 

Display Options > Hardware Renderer

Sector light mode: Software

Banded SW Lightmode: On

Fog mode: Standard

Fog forces fullbright: Off

Enhanced night vision mode: Off

Adjust sprite clipping: Smarter

Smooth sprite edges: Off

Fuzz style: Software

Particle style: Square

Rendering quality: Quality

Multisample: Off

 

Display Options > Hardware Renderer > Postprocessing

Bloom effect: Off

Lens distortion effect: Off

Ambient occlusion quality: Off

FXAA quality: Off

Dither output: Off

Tonemap mode: Palette

 

Display Options > Texture Options

Texture filter mode: None

Anisotropic filter: 16x

High Quality Resize mode: Off

High Quality Resize multiplier: Off

Resize textures: On

Resize sprites: On

Resize fonts: On

Resize model skins: On

 

Display Options > Dynamic Light Options

Dynamic lights (software): Off

Dynamic lights (hardware): Off

Lights affect sprites: No

Lights affect particles: No

Light shadowmaps: No

 

Set video mode

Resolution scale: Lowest possible scale

Scale Factor: 1.00

Use Linear Scaling (Fullscreen): No

]]>
142691Tue, 09 Jan 2024 04:26:36 +0000
GZDoom doesn't load certain wad fileshttps://www.doomworld.com/forum/topic/142892-gzdoom-doesnt-load-certain-wad-files/ First time setting up GZDoom. Works fine with the vanilla doom.wad, doom2.wad and heretic and hexen.wad files. 
I also bought Doom and others again on Steam, to have the extra levels, never had those before. GZDoom autodetects those Steam installs and loads them fine.
However, when I copy those WAD files from the Steam install directories towards my GZDoom folder, GZDoom doesn't load them, doesn't show them in the launcher, and when dropping them on the gzdoom.exe, nothing happens at all. I don't want to use the autodetected Steam stuff, I just want the wad files to work.
When I load the same wad files with RetroDoom, they do work.
What am I doing wrong?

]]>
142892Fri, 19 Jan 2024 21:55:24 +0000
DOOM Retro v5.2.1 (updated January 12, 2024)https://www.doomworld.com/forum/topic/66518-doom-retro-v521-updated-january-12-2024/ image.png.9b322e8a0cb1b333e6e361efb78a45f9.png

 

UPDATED JANUARY 12, 2024: DOOM Retro v5.2.1 has been released! Please visit www.doomretro.com to check it out...

ORIGINAL POST ON DECEMBER 10, 2013: On this day exactly 20 years ago, id Software released a little game you might know called DOOM. And now, in celebration of this anniversary date, and after over three years of development in relative secrecy, I’m proud to finally announce the debut release of DOOM Retro, my very own DOOM source port.

DOOM Retro represents what I want DOOM to be today, in all its gritty, unapologetically pixelated glory. I’ve strived to implement a set of features and a certain level of attention to detail and restraint while still upholding a deference for that classic, nostalgic DOOM experience we all hold dear. DOOM Retro’s extensive release notes list what I’ve accomplished so far in an attempt to achieve this goal. DOOM Retro is based on Chocolate DOOM.

This project is by no means complete, and will probably forever be in a constant state of development. My intent is to release updates on a regular basis, ever seeking that goal of perfection. I have a long way ahead, and I encourage you to please leave a comment on this post, or on the DOOM Retro site, with any feedback, bug reports, etc. you may wish to impart, as well as follow the @doomretro account on Twitter.

Please visit www.doomretro.com.

]]>
66518Tue, 10 Dec 2013 05:26:04 +0000
This is Woof! 12.0.2 (Dec 13, 2023)https://www.doomworld.com/forum/topic/112333-this-is-woof-1202-dec-13-2023/ woof.png

 

Woof! is a continuation of the Boom/MBF bloodline of Doom source ports.

 

MBF stands for "Marine's Best Friend" and is widely regarded as the successor of the Boom source port by TeamTNT. It serves as the code base for popular Doom source ports such as PrBoom+/DSDA-Doom or The Eternity Engine. As the original engine was limited to run only under MS-DOS, it has been ported to Windows by Team Eternity under the name WinMBF in 2004. Woof! is developed based on the WinMBF code with the aim to make MBF more widely available and convenient to use on modern systems.

 

To achieve this goal, this source port 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 still look very familiar to the original MBF.

 

In summary, this project's goal is to forward-port MBF.EXE from DOS to 21st century and remove all the stumbling blocks on the way. Furthermore, just as MBF was ahead of its time, this project dedicates itself to early adoption of new modding features such as DEHEXTRA+DSDHacked, UMAPINFO and MBF21.

 

Please visit the project homepage for more information:
https://github.com/fabiangreffrath/woof

 

 

Woof! 12.0.2 is released on Dec 13, 2023.

 

A complete list of new features, improvements and bug fixes can be found on the release page:

 

https://github.com/fabiangreffrath/woof/releases/latest

 

Binaries for Windows are available here:

 

https://github.com/fabiangreffrath/woof/releases/download/woof_12.0.2/Woof-12.0.2-win32.zip

https://github.com/fabiangreffrath/woof/releases/download/woof_12.0.2/Woof-12.0.2-win64.zip

 

An AppImage for Linux is available here:

 

https://github.com/fabiangreffrath/woof/releases/download/woof_12.0.2/Woof-12.0.2-Linux.appimage

 

Have a lot of fun!

- Fabian

]]>
112333Fri, 28 Feb 2020 22:07:24 +0000
DoomLegacy 1.48.14https://www.doomworld.com/forum/topic/141973-doomlegacy-14814/ Have committed the latest release of DoomLegacy, 1.48.14.

[ OLD: Binaries will be released, I don't know when, depending upon when the other people involved get around to that during this busy holiday season.

I have already reminded them about making the 64 bit binaries too. ]

[ EDIT: binaries are up at SourceForge

DoomLegacy 1.48.14 downloads at SourceForge

]

 

SourceForge-DoomLegacy

 


From the whatsnew.

 

1.48.14 SVN1657 (2023-11-30)

 

FEATURES 1.48.14

 

* UMAPINFO, derived from umapinfo-lib (GPL) written by Michael Bäuerle, who has allowed us to use and modify it in DoomLegacy (FR_0100). In DoomLegacy the original library code got heavily modified, eliminating use of FLEX and YACC, removing internal structure hiding, and making it embedded in DoomLegacy. Errors and messages were rewritten to attach to DoomLegacy error reporting.

 

* Add viewfit control. This allows a wider monitor to be used with drawing at correct aspect ratio.

auto: auto select based on actual screen size.

stretch: stretch to fit screen.

fit width: fit to screen width, scale to correct aspect ratio.

fit height: fit to screen height, scale to correct aspect ratio.

 

BUG FIXES 1.48.14

 

* In Pagodia.wad, Map06, the hanging vine texture had visual artifacts. (AUR008, texture #624, lump 132961). Due to some of the patch columns being totally empty, some of the columns of the generated texture had the 0xFF termination, in the wrong place. Fixes bug 687.

 

* In Lost Civilization Map04, the arch texture ARC1ABRN was rendered with black holes. The wad uses it on a wall and as a masked texture, next to each other. These two uses generate incompatible texture formats.

The use on a wall had texture generation using the TM_picture format. The masked use requires a TM_masked compatible texture format. To fix this, gave the masked texture draw the capability to generate an extra texture_render holding a TD_2s_ready texture.

 

* The MIDI output included some padding of Track 0, that caused the Win10 and Win11 MIDI player to delay the track and change it to a piano. Do not know why these were in the MIDI output. The Track 0 padding has been disabled, and may be removed entirely (eventually). The Program_Change inclusion is now enabled by control variable "midi_create_program", which is default 0. The midi compression is enabled by control variable "midi_compress", which is default 1. These are not in any menu, can be changed by console. This fixes bug 0674.

 

* Add JOYSTICK_SUPPORT compile-time option, so that joystick code can be disabled. This was necessary due to some port situations not having joystick hardware.

 

* Steven Newbury has been trying to compile for DOS. These are changes based on a something he summitted. I suspect this may not be complete. It covers some network problems with DOS. Within djgppdos, there are DOS sound fixes and many other fixes to bring the DOS port up to date with the interface.

 

* Fixing complaints from gcc 11.2. Also snprintf does not honor string max field size. Must copy possibly long strings to some shorter buffer first. The code_size seems to have been reduced by 56K, perhaps due to new compiler.

 

* Fix error from w104_23. When BOB_MOM code was made a standard feature, one of the compile tests was missed. Removing the BOB_MOM define, made some of the old code active again. This may have had some obscure effect upon when the weapon bobbing stops. Have removed that old code. Some other cleanup, ptr declares.

 

* Disabled a RANGECHECK in wi_stuff as many wads violate those assumptions. Fixed many other typo and ptr declares encountered while working on UMAPINFO.

]]>
141973Fri, 08 Dec 2023 15:48:50 +0000
Nugget Doom 2.3.1 (updated December 15th, '23)https://www.doomworld.com/forum/topic/125256-nugget-doom-231-updated-december-15th-23/ 506257410_Banner128pL2.png.8f20e7b83fe2d06f1af05ef98f447b41.png Icon by @Korp

 

Nugget Doom is, pretty much, Woof! with some additions, most of which are inspired by or taken from other ports and mods, but with a few of my own ideas.

 

Take a peek!

dbp59.png.46661b03bd19b366b35b22a55443c9f6.png

WAD: DBP59: Zeppelin Armada - Further down the post is an explanation of what's going on in this screenshot, plus more screenshots.

 

What's that name?
It's funny, I like it. If you wish, you can relate it to the addition of Crispy Doom features (chicken nuggets are crispy?), and/or to the inclusion of bits (nuggets) of code from multiple other sources.

 

Why another source port?
Crispy doesn't support Boom/MBF, Woof! lacks certain Crispy features, and PrBoom+ and its forks simply feel off. This is my subjective solution, by and (at least) for myself.
 

What does it have to offer?
A few highlights:

  • Support for higher resolutions up to 9X (1800p).
  • Setting to Organize Saves by IWAD.
  • Extra Gibbing setting, to force gibbing when killing with the Berserk Fist, Chainsaw and SSG.
  • Bloodier Gibbing, you can guess what it does.
  • Things move over/under Things setting.
  • Changeable FOV, as featured in Doom Retro.
  • Minimap: enter the Automap and press the corresponding key (which you'll have to bind) to enable it.
  • Tag Finder from PrBoomX.
  • Key to teleport to Automap pointer.
  • Milestone Completion Announcements; they will inform you that you've killed all enemies, acquired all items or found all secrets once you complete said goals.
  • Smart Totals from So Doom.
  • Bobbing Percentage settings, to decrease the bobbing intensity of the view and weapon separately, and Bobbing Styles from Zandronum.
  • Damage Tint Cap and Bonus Tint Cap settings, to attenuate or disable said screen tints.
  • Jumping and Crouching.
  • NUGHUD, a lump by means of which you can customize the Crispy HUD (see resources further down the post).
  • Most of Crispy Doom's accessibility settings (I haven't implemented the toggle for Flickering Sector Lights yet, sorry).
  • The Chaingun, and also the Chaingunner under some conditions, can now use a dedicated "DSCHGUN" sound effect if provided.

  • Some fun new cheats:
    • 'VALIANT' for fast weapons;
    • 'FULLCLIP' for infinite ammo (yes, it's a GTA:SA reference, feel free to propose something more fitting);
    • 'GIBBERS' to force gibbing on dying enemies;
    • 'IDFLY' to, well, fly;
    • 'SUMMON' to spawn an actor, hostile or friendly, through its mobjtype index;
    • 'MDK' to perform ZDoom's absurdly-high-damage hitscan attack;
    • 'SAITAMA' for an MDK Fist!;
    • 'BOOMCAN' for explosive hitscan attacks (yet another GTA reference, this time a Chinatown Wars one)
    • 'TURBO' as an in-game version of the -turbo command line parameter.
  • A batch of Doom compatibility settings to fix some quirks and change some details.

Check the readme at the GitHub repo (linked below) for the full feature list and more info.

 

Explanation of the screenshot above, and more screenshots:

Spoiler

Notable features being shown off in the screenshot above are Extra Gibbing, Bloodier Gibbing and a NUGHUD, and also Translucent Weapon Flashes.

 

Now, other screenshots:

planisf2.png.63adb3ace98214d14331330d8a266409.png

WAD: Planisphere 2 - This one shows off 8X resolution. Were it not for compression, it'd be a 4480x1920 image, but you can still make out details like the medkit on the dock just above the Pistol.

 

rnd04.png.64a3b26e02af1fc59056527adeaf8b5b.png

WAD: Overboard - The only notable feature is the not-so-relevant Alternative Arms Display, which is the reason why the numbers displayed in the ARMS widget are different.

 

BOOM.png.2c9cf437b8190c01e1616b4c1f1157ab.png

WAD: The Journey - You can see a new crosshair type and a VERY clear example of Bloodier Gibbing.

 

nughud_test.png.7af21f35862834e8ae235ec0b5b1dd49.png

This is an example of what can be done with NUGHUD. The graphic used is an edit of the fullscreen-helmet-HUD-thingamajig from the Doom 0.2 Alpha.

 

 

Some final things I'd like to mention:

Spoiler
  • Don't be fooled; I don't consider myself a coder, or programmer... whichever is the adequate title, as far as I see it I lack plenty of experience regarding code and projects as a whole, and what little I know as of now I learned as a hobby, not professionally. You might notice that my workflow was messy by looking at my early commit history in the GitHub repo (4 consecutive updates to the README? Come on!).
  • New Woof commits are usually only merged in the event of new Woof releases, to somewhat make sure said commits are stable.

 

DISCLAIMER: 

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!

 

With all that said, here are direct download links for the latest release!

Windows 32-bit Standalone

Windows 64-bit Standalone

Linux AppImage

NUGHUD Resources: Usage guide; NUGHUD Collection.

 

For more info, check the GitHub repo. Please, feel free to ask for help and to provide any feedback or suggestions, either here or in the Discord server.

Hope you have fun!

]]>
125256Tue, 19 Oct 2021 07:59:04 +0000
DSDA level tables.https://www.doomworld.com/forum/topic/142806-dsda-level-tables/ I found out the level tables record your progress in each level and was wondering if using saves or anything prevents it from doing so. I'm on level 29 on ICHINICHI.wad and noticed that two levels didn't have anything recorded for. Also I was wondering what the Sk5 thing is and if its related to pistol starts? I've been pistol starting each map but each level is blank in that category.

]]>
142806Mon, 15 Jan 2024 21:20:27 +0000
Doom RPG Port Reverse Engineering Update (version 0.2.1) Source Code Releasehttps://www.doomworld.com/forum/topic/129997-doom-rpg-port-reverse-engineering-update-version-021-source-code-release/ As we promised, the Doom RPG port for PC is finally here. created using SDL2 and BREW version doomrpg.mod original file reverse 
engineering.

 

This is my first port made for PC and I hope this works for you too. 

 

Special thanks goes to @Anarkavre as thanks to him we got the original Brew game files.

 

You need to get the original files to be converted into a friendly format for the port, you can get them from Archive.org, you can search 
"Doom RPG BREW" on SOFTWARE menu.

 

Run the BarToZip program to convert the file doomrpg.bar into a DoomRPG.zip, then you run the DoomRPG.exe

Hope you enjoy it, best regards.

 

Updates:

* The BarToZip tool is updated to generate the DoomRPG.zip file. This update allows you to convert PMD sound files to WAV without the use of the external program (PureVoice/pvconv.exe) from previous versions.

 

Bugfixes:

* Accuracy upgrade (+1 Accuracy) purchase is correctly added to both player and stats.
* Game prologue messages are displayed correctly with the corresponding text.

 

Español

Como lo prometimos el port de Doom RPG para pc esta aquí, este port está creado con SDL2 y se utilizó ingenieria inversa del
archivo doomrpg.mod del juego original de la version BREW.

 

Este es mi primer port que he creado para pc, espero que sea funcional para ustedes también.

 

Agradecimientos especiales a Anarkavre ya que gracias a el obtuvimos los archivos originales del juego de la version BREW.

 

Es necesario tener los archivos originales para ser convertidos en un formato más amigable para el port, puedes consegir los 
archivos alojados en Archive.org, lo pueden buscar en el apartado de SOFTWARE con el nombre de "Doom RPG BREW"

 

Ejecutan el programa BarToZip para convertir el archivo doomrpg.bar a DoomRPG.zip, luego ejecutan el port DoomRPG.exe

 

Espero que lo disfruten, saludos.

 

Actualizaciones:

* La herramienta BarToZip se actualiza para generar el archivo DoomRPG.zip. Esta actualización le permite convertir archivos de sonido PMD a WAV sin el uso del programa externo (PureVoice/pvconv.exe) de versiones anteriores.

 

Correcciones:

* La compra de mejoras de precisión (+1 Accuracy) se agrega correctamente al jugador y a las estadísticas.
* Los mensajes del prólogo del juego se muestran correctamente con el texto correspondiente.

 

Source Code

DoomRPG_Port.zip

DoomRPG_Port - v 0.2.zip

DoomRPG_Port - v 0.2.1.zip <- Update 16/01/2024

 

image.png.377a562edf9f3e32b1c3a3deed541378.pngimage.png.a5381aa95ccc874c15106d8ba7157cab.pngimage.png.5690df6ab42017c72c58a11ff06647f8.png

]]>
129997Wed, 29 Jun 2022 03:11:37 +0000
prboomX 2.7.0 (Nov 3, 2023)https://www.doomworld.com/forum/topic/136554-prboomx-270-nov-3-2023/ Release Download Page

Source Code

 

PrBoomX

 

JadingTsunami's PrBoom-Plus Fork

This is my own personal fork of PrBoom-Plus. It contains quality-of-play upgrades that I like and you may or may not.

 

Installation

  • Install the latest PrBoom-Plus
    • Note: You may need the dependencies here for Windows. The DLLs are in the bin/ folder.
  • Download the latest prboomX release for your operating system
  • Unzip the binaries alongside your PrBoom-Plus installation.
    • Your PrBoom-Plus settings and save games will be kept separate from prboomX. You can use both alongside one another without conflict.
  • Run the prboomX executable.

 

Features

  • Zip file support
    • Note all WAD/DEH/BEX in the zip will be loaded
  • Drop-down console (default key bind: ~)
    • 16-command history, use up/down arrows
    • Cheats work in the console
    • Command listing below
  • "Buddha" cheat similar to GZDoom
    • Also adds regeneration if you stand still, similar to modern FPS games
  • Targeted massacre cheat: tntsem
    • Kills only monsters currently targeting the player
  • Optional uncapped framerate limiting
  • Option to organize save games based on loaded content (WAD, DEH, etc.)
    • Note the order in which content is loaded matters
  • Option to fix blockmap bug (will not apply to demos/net games, uses blockmap bug fix from Terry Hearst, adapted from similar PR for Woof)
  • Time warp (travel forward/backward in time while playing)
  • Bind console commands to keys or mouse buttons (binds are saved on exit; key/button list)
  • Optional enhancements to the allmap powerup:
    • Secrets in undiscovered parts of the map are bright yellow
    • Secrets in discovered parts of the map are bright purple
    • Found secrets are dark purple
    • Lines can't be hidden from the map
    • Tag finder: Pressing "X" while in nofollow highlights the sector or line under the crosshair and shows the activating line/sector if any.
      • This lets you figure out what switches do or uncover how to open secrets if you are stuck.
  • And more: see the project page on GitHub for an up-to-date feature listing

magic_sector.gif

 

Console commands

resurrect
god
noclip
noclip2 (noclip+fly)
quit / exit
print (prints a message)
toggle_psprites (turns off player weapon sprites, good for screenshots)
snd_sfxvolume / snd
snd_musicvolume / mus
kill <class>
give <thing>
note <message> (write notes to a dated text file, useful for quick notes while playtesting)
mdk
plat_skip (when enabled, press the "use" key to trigger a lift you're standing in to raise immediately)
bind [key] [command] (bind any key to any one or more console commands)
unbind [key]
[config file setting] (read config file settings from the console)
mapfollow (start/stop the automap in follow mode)
complevel (show current compatibility level)
complevel N (change compatibility level to N where N is 0-17)
switchweapon N (switch weapon to N where N 0-8 or weapon name)
am_warpto (warp/teleport to automap crosshair position)
am_summon <class> (summon class enemy/thing/etc. to automap crosshair position)
am_summonfriend <class> (summon class friendly enemy/thing/etc. to automap crosshair position)
freeze (toggle freeze mode on/off)

 

]]>
136554Sun, 11 Jun 2023 19:32:34 +0000
RealDOOM: DOOM Ported to 16-bit Real Modehttps://www.doomworld.com/forum/topic/140155-realdoom-doom-ported-to-16-bit-real-mode/ RealDOOM is a port of vanilla DOOM (forked from PCDoomv2) made to run in Real Mode. (Coincidentally, Doom8088 was being worked on at the same time, with a similar goal but a different starting point.) It runs through the use of EMS to use memory beyond 640kb.
 

I've been working on this since June, and the project now sort-of runs in 16-bit mode. Timedemo 2 seems to work right, but demos 1 and 3 have desyncs or memory-related crashing bugs. It's kind of in an alpha state. It'll run pretty okay on 233 MhZ hardware and up, using EMM386 whether real hardware or on 86box. DOSBox isn't recommended, it seems to struggle with 16 bit applications or EMS. It will of course also run on 16 bit computers. You probably want close to 620 KB free and 3-4 MB of EMS minimum right now.

 

Basically, you can't really just take the original codebase and build for 16 bit for many reasons. Slowly, the code was rewritten with more and more 16-bit style restrictions, until it became possible to actually build the code with a 16-bit compiler. You can still build and run the code in 32-bit mode, and it will use a sort of EMS emulator, simulating what the 16 bit code is doing. The 32-bit codebase is a lot more stable than the 16-bit one, but eventually they should end up pretty equal.

 

The goal for RealDOOM is really to make the port run as fast as possible as a 16-bit executable with the same level of quality, etc. as the original game. It may turn out futile to try and get this to run at smooth speeds on 16 bit processors, but I'll try to take it as far as reasonably possible. Then once that's done, it can also always be forked and modified with some tradeoffs between quality and speed. I don't want to start making those tradeoffs earlier than necessary though.

 

I haven't made major efforts on optimizations yet as it took a few months just to get the game to work as a 16-bit executable at all. It only started working last week and I haven't worked out all the bugs yet. To be honest, I had hoped to clean up the 16-bit build a little bit more before posting this here - but I'm going on a month-long trip starting tomorrow and I might not have much time to work on this in the near future... oh well. 

 

Known (Major) Issues
- Savegames dont work
- No sound (need to find a 16 bit compatible library or write from scratch?)
- Untested outside of doom1 shareware for now.
- 16 bit mode has some desyncs and memory bugs, but it's almost there.

 

Work that has been done

 - Removal of some features (multiplayer, joystick...)

 - Lots of optimizations especially to lower conventional memory usage and size of the executable

 - Zone memory manager rewritten to use EMS, "MEMREFs" passed around between functions instead of pointers, lots and lots of code rewritten to support this.

 - Lots of changed types, explicitly declared bit sizes, etc. to make 16/32 bit both work off the same codebase.

 

 

RealDOOM on real hardware 286-20:

 

 

RealDOOM on 86box Pentium MMX 233

 

 

 

I want to shout out Viti95, who wrote FastDOOM of course, which I referenced for a lot of code removal and optimizations, and he personally contributed a couple of optimizations to RealDOOM as well.

]]>
140155Thu, 21 Sep 2023 04:12:02 +0000
Helion - C# (0.9.2.6 1/1/23 - Goodbye BSP tree rendering)https://www.doomworld.com/forum/topic/132153-helion-c-0926-1123-goodbye-bsp-tree-rendering/ Hello everyone,

 

Helion is a new port developed in C# using .NET Core by WChrisK and myself. The main objectives of Helion are to have readable code along with good performance. Usually these are counter-intuitive but we put a good amount of effort to hit these goals. It's my hope that those interested in the source find it easy to understand and can learn how games like Doom work. Helion is different from most ports in that started entirely from scratch and isn't based off any existing code base. Some very specific code sections were basically translated line by line such as enemy action functions to match the original game. The base of Helion uses ZDoom specifications like decorate, mapinfo, gameinfo, and ZDoom action specials etc. We weren't looking to re-invent the wheel with new formats.

 

Helion supports decorate/ZDoom specials. However, it is partial and implemented up to a point to support Vanilla, Boom, and MBF21. If a wad includes both dehacked and decorate, the dehacked will be used by default as it's currently more stable.

Screenshots:

Spoiler

Note: hud.showfps and hud.showstats set to 1

 

Doom 2 MAP01:

screenshot_Helion_DOOM2_MAP01.png.eaf6a0f2afd96117a1428d0f85d13c88.png

 

 

Doom E1M1:

screenshot_Helion_e1m1.png.b11f7827f2899f4fba3a2a1147470c01.png

 

Eviternity MAP29:

screenshot_Helion_eviternity_map29.png.b5800e82ad4dabcf6dd846a751f3c69e.png

 

Fractured Worlds MAP05:

screenshot_Helion_fracturedworlds_map05.png.20b9435027083643f0c9e74950092101.png

 


Rendering Options:

Spoiler

render.staticmode - Enabled by default. Only uploads map geometry to the GPU when changed.
render.blockmap - Enabled by default. Uses the blockmap for rendering sprites and dynamic sectors. When disabled it will use the BSP tree.
render.maxdistance - 6000 by default. Stops rendering sprites and dynamic sectors past this distance. Tweak this value to gain more performance or render sprites in the distance to your liking.
render.floodfill - Enabled by default. Emulates vanilla flood filling with missing upper and lower textures.



Testing Tech:

Spoiler

Helion has full testing capabilities where every vanilla action special is tested for expected behavior. This was accomplished by creating a world simulation without rendering and manually ticking the simulation and asserting expected values (like sector height values etc). Code for these tests can be seen here:
https://github.com/Helion-Engine/Helion/blob/master/Tests/Unit/GameAction/Vanilla/VanillaActions.cs
Examples for Vanilla boss behavior tests. This tests behavior where sectors tagged 666 lower when barons die, or the level exits when the cyberdemon dies in E2M8.
https://github.com/Helion-Engine/Helion/blob/master/Tests/Unit/GameAction/Boss.cs

 

Brain dump of more technical features:

Spoiler

Brain dump of more technical features:
Console with searching and auto-complete features.
    Page Up/Page Down to scroll.
    'Commands' to view all commands.
    'Search [text]' to view all commands containing the search text.
    Press tab once will display all matching commands.
    Press tab on a completed command will display the documentation for the command.
    Double pressing tab will auto-complete.
OpenGL 3.3:
    Vsync support.
    Decoupled rendering with interpolation.
    Alpha/transparency support.
    Examples of rendering console commands: (render.vsync, render.maxfps).
HUD support:
    Minimal hud.
    Crosshair that changes red when targeting.
    Full hud background can be changed with hud.backgroundtexture console command. Can be any texture/flat/patch/image.
    Hud scaling using hud.scale console command.
Mouse look support.
    mouse.look 0 in console to disable.
    game.autoaim 0 to disable autoaim.
Automap:
    Zoom in and out with +/- keys.
    Look around with arrow keys.
    mark.add console command to add a flashing map marker.
    Lines requiring keys are colore matched.
    Teleport lines are colored green.
Screenshots with print screen key.
Midi/mus playback using Fluidsynth.
    Default sound font can be changed in the SoundFonts folder.
Supports 3D physics with 3D bridge things and things walking on other things.
    Can be disabled with console command compatibility.infinitelytallthings.
Vanilla light dropoff emulation.
Uses the vanilla random table.
Widescreen asset support.
Uses ZDoom as a base. Currently only supports enough ZDoom features for Vanilla/Boom functions.
Supports wad, pk3, zip, and direct folders.
Supports nearly all Boom features.
    Wads such as Eviternity and Fractured Worlds are fully functional.
    Does not support light level changes as door opens/closes.
    Does not support bumping off walls when sliding on ice floors.
    Does not support colored sectors.
    Does not support all intricies of friendly monsters from MBF.
Supports MBF21.
Dehacked, BEX, and DEH extra.
Decorate (not fully functional).
Statistics.
    Show statistics on hud with hud.showstats
    Output after level completion with -levelstat (same output format as Boom).
Save/Load menu.
    Automatically writes level with name.
    Only shows results for the current wad(s).
Demos.
    Uses -record/-play parameters like original.
Uses zdbsp (painfully) translated into C#.
   https://github.com/nstlaurent/zdbspSharp

 

tldr
Supports Doom shareware, the Ultimate Doom, Doom II, TNT, Plutonia, and Chex Quest IWADS (IWAD can be dropped in main folder, but there is no selection UI)
Supports usual parameters such as -iwad, -file, -skill, -warp, +map
Supports Vanilla, Boom*, MBF21. dehacked, bex, dehextra
Windows - Windows 7 minimum
.NET 7 runtime. Should prompt if not already installed. (Note: not required if using 'with runtime' packages)
https://dotnet.microsoft.com/en-us/download/dotnet/7.0
OpenGL 3.3 required
Config.ini / console for configuration
mouse.look 0 and game.autoaim 1 for classic configuration

hud.showstats 1 for hud stats

 

For error: Unable to load DLL 'glfw' or one of it's dependencies:
https://aka.ms/vs/17/release/vc_redist.x64.exe

 

*Download here:
https://github.com/Helion-Engine/Helion/releases/latest

 

*Source:
https://github.com/Helion-Engine/Helion

Benchmarks

 

Credits:
We tried to credit specific ports and people/teams as much as possible in code.

Obviously id software, as we referenced the original source.
Randi Heit and the ZDoom team for zdbsp and the ZDoom format specifications.
Lee Killough and the Boom team. MBF was referenced for constants and functionality to match Boom special functionality.

@Redneckerzand @Doomkid for play testing.

]]>
132153Sun, 30 Oct 2022 10:32:57 +0000
Load a whole folder for mods with .pk3 files inside on GZDoomhttps://www.doomworld.com/forum/topic/142744-load-a-whole-folder-for-mods-with-pk3-files-inside-on-gzdoom/ Howdy.

 

I'm trying to create a batch file to automatize my GZDoom experience (I don't like a lot of GUIs, so I will try to automatize anything I can) and I've faced that I cannot run .pk3 files when trying to load a folder via command line.

Here's what I've tried to do:

start files/gzdoom -iwad dir/doom2 -file dir/doom_complete_midi.pk3 mods

The files folder is where I keep everything aside from my batch file (soon to be .exe), the dir folder is where I store all my "main" files to make everything run with the minimum stuff (Wadsmoosh'd Doom as a pwad and Doom 2 as an iwad, since for some reason when loading Wadsmoosh as an iwad the launch text defaults to "Doom: Complete: Wadsmoosh" while I've edited in GAMEINFO.txt), and mods is where I would like to just add my mods directly. As a matter of fact, it actually works with wads, but doesn't with .pk3 files; while GZDoom logs that it finds them (shows "adding [insert directories]/mods, 3 lumps"), it doesn't automatically load them.

 

As an example of what I mean, here's part of the log:

 

  • With Lt. Typhon v6 as a mod:
GZDoom version g4.11.3
W_Init: Init WADfiles.
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/gzdoom.pk3, 672 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/game_support.pk3, 3307 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/dir/doom2.wad, 2919 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/game_widescreen_gfx.pk3, 214 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/dir/doom_complete_midi.pk3, 3341 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/mods, 4 lumps
C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/mods:typhon_v6.wad: V_END marker without corresponding V_START found.
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/mods:typhon_v6.wad, 1229 lumps
  • With Metadoom v7.1 as a mod:
GZDoom version g4.11.3
W_Init: Init WADfiles.
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/gzdoom.pk3, 672 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/game_support.pk3, 3307 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/dir/doom2.wad, 2919 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/game_widescreen_gfx.pk3, 214 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/dir/doom_complete_midi.pk3, 3341 lumps
adding C:/Users/ghrv_/Desktop/DOOM Classic - Complete/files/mods, 2 lumps

 

Is making a folder that reads .pk3 files automatically possible? Or my only way is to add them to my autoload each time or create shortcuts for each one of those?

]]>
142744Fri, 12 Jan 2024 11:03:26 +0000
Source Ports personal deal breakers (Jan 9, 2024)https://www.doomworld.com/forum/topic/141224-source-ports-personal-deal-breakers-jan-9-2024/ I was wondering what some deal breakers for you guys are, here is my list:

 

  • Complevels: VanillaLimit removingBoom, MBFMBF211 2
  • FOV: 90 makes me nauseous, I tried to revert back for a while but I need ≥100 settings on widescreen monitors.
  • Native screen resolution (OpenGLVulkanDirect3D): I love how smooth OpenGL and Vulkan feel. With the new palettes and colors features implementations it looks almost 100% like software and it's becoming more and more a deal breaker because of their speed. Also they can match the desktop native resolution.
  • 800p (Software renderer): modern times, modern monitors with ≥1080p resolutions, if a port only supports 400p it's going to be too grainy. This setting doesn't break any vanilla experience so it's kind of a must on today's ports IMO.
  • Widescreen: Kinda implied with the first point, essential for modern monitors. They all have this.
  • Extended HUD (K: I: S:): DSDA-Doom 1 2, Nugget Doom 1 2, Woof! 1 2International Doom 1 2.
  • Level stats. Example: GZDoom 1, DOOM Retro 1, Crispy Doom 1 2. I hide it now and only show it in the automap so any kind of level stats is good, I need to learn to actually play the game before caring about those stats. They all have this.
  • SoundFont loaderFluidSynth or whatever works. I like to have RLNDGM.sf2 (or a good SC-55 sf) consistent with all my ports. It's becoming less and less of a deal breaker for me, some ports don't support it and I found out that I'm not missing it at all, the OS MIDI system is just fine.

 

A few more personal findings and observations..

🟢 Keep it in my ports.

🟣 Keep the settings in my ports.

🟡 Undecided. / Need to test more.

🔴 Not for me. / Don't care for right now (might change my mind in the future).

  • "Main"/main fork of the category (they are all forks in a way or another)
    • Fork
      • Fork of the/a fork

 

My configs: https://rentry.org/doomconfigs

Comparison: https://rentry.org/doomconfigs#comparison

Favorite WADs: https://rentry.org/doomfavwads

 

Download Dev Builds: https://nightly.link

 

- VanillaLimit removingBoom, MBF and MBF21. Software, OpenGLVulkan:

  • 🟢 GZDoom (dev builds): any resolution in software and hardware modeThe most complete. A bit sluggish on maps with huge amount of monsters. I found that if I set 1280x720 it runs much much better in software mode or just use hardware renderer matching the monitor resolution. UDMF compatible. Running it in Vulkan mode. Necessary port for beautiful pk3 wads like Lullaby, Bastion of Chaos, Hurt, Elementalism, Insanity Edged, Winter's FuryCorrupted Cistern etc. It can run all IWADs.
    • 🔴 VKDoomany resolution in software and hardware modeI already use GZDoom, can't find a reason to keep this one too but I'll keep testing it. UDMF compatible.

- VanillaLimit removingBoom, MBF and MBF21. Software, OpenGL, Direct3D:

  • 🔴 DOOM Retro400p. Great Chocolate fork and very smooth. It can run in Software, OpenGL or Direct3D mode (vid_scaleapi: The API used to scale every frame ("direct3d9", "direct3d11", "opengl" or "software"). Default = "direct3d11"). My configs.

- VanillaLimit removingBoom, MBF and MBF21. Software, OpenGL:

  • 🔴 Odamex (dev builds): any resolution in software and hardware modeZDoom > csDoom fork with focus on multiplayer, not for me/don't care for it.
  • 🔴 Eternity Engine (dev builds): native screen resolution supported. Doesn't save the FOV settings. Many features that other ports don't have but still not for me, I run it occasionally for Eternity only wads but I don't want another port right now. The latest dev builds with multithreaded renderer works wonders for the smoothness but it still feels sluggish. UDMF compatible.
  • 🟢 DSDA-Doom: native screen resolution supported. Insanely customizable, it's much smoother in OpenGL mode matching the monitor resolution, fastest of them all in hardware renderer mode. It can also run Heretic and Hexen. UDMF compatible. Cannot disable infinitely tall actors.
    • 🔴 From DOOM With Love: native screen resolution supported. Nice DSDA fork, it has some cool additions but it doesn't keep up with DSDA's updates.

- VanillaLimit removingBoom, MBF and MBF21. Software renderer only:

  • 🔴 Woof! (dev builds): 400p, no FOV. Cannot disable infinitely tall actors.
    • 🟣 Nugget Doom (dev builds): up to 4K. My favorite and fastest of them all in software only mode.
      • 🔴 Cherry Doom (dev builds): up to 4K. Nice Nugget fork that focuses on new/different/testing features, a cool one is the Level Table merged from DSDA.

 

- All red below this line, changed my mind on the complevels and it's a deal breaker now. -

 

- Vanilla, Limit removing, Boom and MBF. Software, OpenGL:

  • 🔴 ZDoom: any resolution in software and hardware modeDiscontinued, don't care for it.
    • 🔴 LZDoom: any resolution in software and hardware modeFork for lower end computers, don't care for it.
    • 🔴 RZDoom: any resolution in software and hardware modeFork/continuation of classic ZDoom, not for me, I only need GZDoom in this category.
  • 🔴 PrBoom+/PrBoom-Plus (dev builds): native screen resolution supported. Discontinued, people still use it so it's here but I like DSDA more.
    • 🔴 PrBoomX (dev builds): native screen resolution supported. Great continuation of PrBoom-Plus with lots of new and cool features but I personally only need DSDA in that category.

- Vanilla, Limit removing and Boom. Software, OpenGL:

  • 🔴 Zandronum (dev builds): any resolution in software and hardware modeFocuses on multiplayer, not for me/don't care for it.
    • 🔴 Q-Zandronum: any resolution in software and hardware modeMain port for the awesome multiplayer mod QC:DE. Can't find more info on this one, if it uses MBF, MBF21 etc. but since it's a Zandronum fork I'll keep it here. Not for me but QC:DE deserves a try. 

- Vanilla and Limit removing. Software, Direct3D:

  • 🔴 International Doom: up to 1200p, FOV, D1-SSG mod, FluidSynth, VSync, Direct3D, Extended HUD (K: I: S:)... what more to say. Cannot disable infinitely tall actors.

- Vanilla and Limit removing. Software renderer only:

  • 🔴 Crispy Doom (dev builds) (dev builds GitHub): 400p, no FOV. Cool trick: you can load DOOM2 as PWAD for DOOM1 to get the SSG. It can also run Heretic, Hexen and Strife.
  • 🔴 Russian Doom (dev builds): 800p. Great Chocolate Fork, development just picked up, cool stuff coming and promising port. Cannot disable infinitely tall actors.

- Vanilla. Software renderer only:

  • 🔴 Chocolate Doom (dev builds). 200p, no FOV, no Widescreen, 35 FPS cap, no VSync. Cannot disable infinitely tall actors.

 

Remember, this is just a PERSONAL list, every port is awesome in its own way. Thank you to all the devs for keeping Doom great, fun and more alive than ever.

]]>
141224Thu, 02 Nov 2023 21:32:17 +0000
Any way to change emulated resolution in GZ doom?https://www.doomworld.com/forum/topic/142759-any-way-to-change-emulated-resolution-in-gz-doom/ Im playing a GZ-doom based game and the hud isnt laying out correctly, its supposed to look like the first image, but instead it looks like the second

Before you say to screw around with scaling settings, I did all that and literally only one did anything and it made it look like the third image.

I noticed that the game was emulating a resolution much higher than my PC actually has. I know this is by design, but is there a way I can change that? I think that's what is going wrong.
 

image_png.png

3H8ja4T9.jpg

_hhASXTV.jpg

]]>
142759Sat, 13 Jan 2024 04:46:49 +0000
Which sourceport to use to play heretic nowdays?https://www.doomworld.com/forum/topic/142188-which-sourceport-to-use-to-play-heretic-nowdays/ Hello folks I was wondering what some of you use as a source to play heretic since there's so many. I did some research on my own and stumbled upon the doom wiki page mentioning the various sourceports.

https://doomwiki.org/wiki/Comparison_of_source_ports

Now I don't know if there are more of them not mentioned in the above list. I was looking for one that allows the resolution to be higher than the standard game and that doesn't change the gameplay at all. What do you guys and girls use to play it? Just to hear different opinions, etc. Thank you in advance.

P.S

I wasn't sure if this was supposed to be made in the DOOM general section.

]]>
142188Sat, 16 Dec 2023 20:15:53 +0000
International Doom 7.3 (December 31, 2023)https://www.doomworld.com/forum/topic/127710-international-doom-73-december-31-2023/ id-logo-git.png

 

International Doom is a small, functional and simple source port, created with help, efforts and bits of code from people around the world.

The project is based on Chocolate Doom and Crispy Doom, with significant additions from DOOM Retro.

 

Download version 7.3 (October 31, 2023)

 

Major features

  • Optional True Color render.
  • Up to x6 (1200p) rendering resolutions.
  • Uncapped framerate.
  • Additional, darker gamma-correction levels.
  • Support for OPL2, OPL3, MIDI, Fluidsynth and GUS music playback.
  • In-game keyboard and mouse bindings.
  • Various visual, audible, physical and demo enhancements.
  • Compatibility with vanilla-engine demos.
  • Removed limitations of vanilla engine.
  • Support for nodes in extended format (ZDBSP and DeePBSP).
  • Support for BEX/DEHEXTRA DeHackEd extensions.

 

Note: BOOM/MBF/MBF21 specifications are not supported.

]]>
127710Sat, 26 Feb 2022 09:57:22 +0000
P_CheckMissileSpawn bughttps://www.doomworld.com/forum/topic/142646-p_checkmissilespawn-bug/ You would think that every bug would be found by now.

 

The grenade launcher bug with DoomLegacy was tracked down to a bug in P_CheckMissileSpawn.

I found the same code in Boom, PrBoom, Eternity, and Chocolate Doom.  Every port derived from these probably has it.

 

The function P_CheckMissileSpawn in p_mobj.c has this


  // move a little forward so an angle can
  // be computed if it immediately explodes

  th->x += (th->momx>>1);
  th->y += (th->momy>>1);
  th->z += (th->momz>>1);

The problem is that the function P_UnsetThingPosition depends upon the position not being changed while the thing is linked into the block list.

These three lines modify the thing position, without doing an UnsetThingPosition first.

The UnsetThingPosition of the TryMove will try to unlink the thing from the blockmap based upon a block indexing dependent upon those x and y positions.

That small change is enough to put the x,y into a different block of the block map.

 

When the x,y of the thing is changed without unlinking from the blockmap list first, it tries to unlink in the wrong blockmap list.

 

The UnsetThingPosition in p_maputl.c has some Killough code for unlinking from the blockmap,  It does not check if the thing is in the blockmap or if anything is in the blockmap.

It only checks if the thing->bprev is NULL.  If it is NULL then that thing MUST have been at the head of the blockmap list, and so the blockmap list is set to thing->bnext.

This corrupts that list, and leaves the thing still at the head of the other blockmap list.

 

Later, when the thing gets linked into a blockmap list again, it can get linked to itself in the list.

Doing a blockmap scan on such a corrupted list will result in a tight loop, and the program will be hung.

 

 

This is the fix that I have used.


// Cannot change thing position while it is set in blockmap.
// Errors occur during unset because get different block.
#if 1
    // A slight difference may make demos lose sync.
    // move a little forward so an angle can
    // be computed if it immediately explodes
    fixed_t t_x = th->x + (th->momx >> 1);
    fixed_t t_y = th->y + (th->momy >> 1);
    th->z += (th->momz >> 1);  // does not affect blockmap
#else
    // move a little forward so an angle can
    // be computed if it immediately explodes
    th->x += (th->momx >> 1);
    th->y += (th->momy >> 1);
    th->z += (th->momz >> 1);
#endif

    if (!P_TryMove(th, t_x, t_y, false))
    {

 

Without such a fix the grenade launcher (dt-gren.zip) will cause corruption by halfway through the first level of doom2.  I have verified that with several attempts, and it is consistent.

I have verified that with this fix the faults stop and I was able to play through three levels using the grenade launcher (dt-gren.zip) without triggering the blockmap corruption detection code.

This was on DoomLegacy instrumented for the bug and with blockmap detection code in place.

 

 

-----

Another idea.

The unlinking can be made more idiot proof my keeping the link to the head of the blockmap in the bprev ptr when it is at the head of a blockmap list.

Then if the thing position is changed, no problem, because the unlinking from the blockmap is now independent of the current x,y position.

The first thing in the list has its bprev ptr set to point at the head of the blockmap list (instead of setting bprev to NULL).

It is detected by testing the bprev ptr as being between blocklinks and blocklinks_end, which is actually cheaper than the complicated test that it replaces.

If it points to the head then that target is updated as the head.  Otherwise it is updated as another thing.

When the head thing gets unlinked, this ptr can be copied to the next thing, same as before.

 

 

]]>
142646Sat, 06 Jan 2024 20:44:15 +0000
Crispy Doom 6.0 (Update: Mar 31, 2023)https://www.doomworld.com/forum/topic/67168-crispy-doom-60-update-mar-31-2023/ Update Mar 31, 2023: Crispy Doom 6.0 is released!


Crispy Doom is a friendly fork of Chocolate Doom that provides a higher display resolution, removes the static limits of the Doom engine and offers further optional visual, tactical and physical enhancements while remaining entirely config file, savegame, netplay and demo compatible with the original.

 

Please visit the Crispy Doom homepage for more information:

https://github.com/fabiangreffrath/crispy-doom/releases/latest

Binaries for Windows (x86/x64) are available here:
https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-doom-6.0.0-win32.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-heretic-6.0.0-win32.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-hexen-6.0.0-win32.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-strife-6.0.0-win32.zip

 

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-doom-6.0.0-win64.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-heretic-6.0.0-win64.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-hexen-6.0.0-win64.zip

https://github.com/fabiangreffrath/crispy-doom/releases/download/crispy-doom-6.0/crispy-strife-6.0.0-win64.zip


Have a lot of fun!

- Fabian

]]>
67168Thu, 30 Jan 2014 06:50:02 +0000
PsyDoom 1.1.1 - PSX Doom port (reverse engineered) for PChttps://www.doomworld.com/forum/topic/111024-psydoom-111-psx-doom-port-reverse-engineered-for-pc/ Update - latest Release (1.1.1 - June 13th, 2023):

https://github.com/BodbDearg/PsyDoom/releases

 

Most recently recorded video of the project:

 

 

Feature changes & improvements (1.1.0)

  • Added support for "GEC Master Edition Beta 4".
  • Classic renderer: add a new improved precision mode for rendering walls (enabled by default).
    • Helps prevent textures from sliding and stretching and improves temporal stability significantly, particularly when using uncapped framerates.
  • Added a variety of new map fixes for Doom, Final Doom, and GEC Master Edition Beta 3 & 4.
    • Demo compatibility with previous PsyDoom versions may be affected for some maps due to the changes.
  • The game now auto-pauses if the window loses focus.
    • This feature can be turned off if needed.
    • Auto-pause is also ignored for demo playback and recording since pause is not allowed in those scenarios.    
  • Vulkan renderer: tweak sprite splitting across subsector boundaries to try and improve the visual result of sprite ordering.
    • Take into account how much a sprite intersects geometry vertically when deciding whether to allow a split or not.
    • Disallow splits if the sprite intersects geometry too much.
  • Demo playback: show the intermission screen at the end if the level was completed.
  • Automap: implement opt-in extended automap coloring which shades live enemies and bonus items differently.
    • This makes identifying remaining enemies and items easier when used with the 'Map all things' cheat.
  • Multi-display environments: make PsyDoom start the game on the display where it is launched from.
    • Which display to use is determined by the mouse position at launch time.
    • Also allow the start display to be manually specified, if needed.
  • Launcher: default the mod directory chooser to the currently selected mod directory.
    • On Windows default it to the current working directory, if no valid mod directory is selected.
  • Add the option to trigger boss related specials when using the 'No monsters' cheat in singeplayer or co-op.
    • This option allows progress past maps which require boss enemies to be killed, even when there are no monsters.
  • Added the ability for mods to use widescreen menu background assets.
  • Finale: show the Arch-vile in the cast of characters if the current game or mod has the assets for it.
  • Single player: add the option to spawn deathmatch only things (if desired).
  • Single player: add an "IDFA" cheat for "Lots Of Goodies! (No Keys)".
  • Multiplayer: allow secret maps to be selected and map selection to wrap around on the main menu.
  • Co-op: add an option to disable friendly fire.
  • Co-op: add an option to preserve some ammo after dying and respawning.
  • Co-op: add an option to preserve keys after dying and respawning.
  • Co-op: add the option to spawn deathmatch only things.
  • Deathmatch: add a frag limit option.
  • Deathmatch: add the option to disable exits if no frag limit is set.
  • Deathmatch: add the option to trigger boss related special actions upon entering a map.
    • These are normally only possible to activate in single player, after killing all enemies of a certain type.
  • Tweaked the punctuation for some loading and saving related HUD messages.
  • Turned down the default mouse speed since it was probably too high for most users.
  • Disallow weapon switching from occurring when zooming in and out on the map.
    • Enables the mouse wheel to be bound to both zoom in/out and weapon switch.
  • Make the Arch-Vile, SS Tropper, and Commander Keen things use the same timings as the 'GEC Master Edition (Beta 4)' project.
    • This helps maintain demo compatibility between maps made for GEC ME Beta 4 and PsyDoom.
  • Save slots: truncate the map name if it is too long, or if it is multi-line.
  • Icon of sin: add the ability to manually specify the roster of enemies via map things with the 'MTF_SPAWN_BY_IOS' (0x100) flag.
    • In addition to this when the IOS is using this roster, enemies will occasionally spawn with special blending and will occasionally be nightmare.
    • This mirrors similar functionality in 'GEC Master Edition Beta 4'.
  • Made new MAPINFO additions and changes:
    • Added the following new settings to `GameInfo`:
      • `AllowWideOptionsBg`, `AllowWideTitleScreenFire`
      • `TexLumpName_BACK`
      • `TexLumpName_Inter_BACK`, `TexPalette_Inter_BACK`
      • `TexLumpName_OptionsBG`
      • `TexLumpName_STATUS`
      • `TexLumpName_TITLE`, `TexLumpName_TITLE2`, `TexPalette_TITLE2`
      • `TexPalette_TitleScreenFire`
      • `TitleScreenCdTrackOverride`
    • Removed the following settings from `GameInfo`:
      • `CreditsXPos_IDCRED2`, `CreditsXPos_WMSCRED2`
    • Added the following new settings to `Episode`:
      • `LogoPic`, `LogoPal`, `LogoX`, `LogoYOffset`
      • `IsHidden`
    • Added the following new settings to `Map`:
      • `NoIntermission`
    • Added new `CreditsPage` and `ClearCredits` definitions.

 

Bug fixes (1.1.0)

  • Fix an infinite freeze if there is no valid audio output device.
  • Arch-vile: fix a small error that might sometimes cause it to not raise corpses when it should.
  • Fix 'nightmare' style enemies resurrected by the Arch-vile not having 2x health.
  • Icon Of Sin: count spawned enemies towards the kill count if the kill count fix is enabled.
  • Status bar: fix the extension pieces for Vulkan widescreen not repeating sometimes for some extremely wide aspect ratios.
  • Fix the toggle key for uncapped framerate not working in all the same places as the renderer toggle key.
    • This fix can be useful to keep the two settings in lockstep, if you want to toggle between the classic renderer and uncapped FPS with the same key at the same time.
  • Fixed a bug where the level timer is not properly set after loading a save from the main menu or another map.
  • Final Doom: fix unintended/stray pixels on the key card sprites when visual map patches are active.
  • Launcher: fix vertical mouse wheel inputs not being recognized when binding an input to an action.
  • Fix the player being killable while in sector special '11'.
    • Mirror PC Doom behavior and don't allow enemies to kill the player while in this sector type.
  • Quickload: prevent strange sounds from sometimes playing when quick loading to another map.
    • Kill all active sounds immediately before loading the new map.
  • Lua scripting: count enemies spawned via 'P_SpawnMobj' towards the total kill count, if the kill count fix is enabled.
  • Warp menu: don't reset the map number if an attempt is made to open it again while it's already showing.

 

Feature changes & improvements (1.1.1)

  • Add the ability to choose between exclusive and borderless windowed fullscreen modes.
    • Previously PsyDoom only supported exclusive fullscreen.
    • Borderless windowed is the new default, since it handles multi-tasking better and there is no real performance difference in most cases.
  • Upgraded various third party libraries used by PsyDoom (such as SDL) for better OS and device compatibility.
  • HUD: tweak message priority for renderer/uncapped-fps toggle.
    • If toggling both at the same time then show a message for the renderer being toggled instead of uncapped fps being toggled.

 

Bug fixes (1.1.1)

  • Windows: fix invalid handling of Unicode characters in save data filepaths (#93).
    • This bug prevented user preferences and save files from being written successfully.
  • Fix the Wolfenstein SS enemy not dropping ammo clips.    
  • Vulkan renderer: fix excessive registry access while the Window is minimized. (#91).

 

---------------------------------------------------------------------------------

 

Original Post:

Hey everyone,

 

Just a quick post to let you all know about a project that I'm busy working on - a reverse engineered source port of PlayStation DOOM for PC. The project is currently at a very early stage and there is a *HUGE* amount of work to be done before my objectives are met, however as of right now the game is pretty much up and running. 

 

Check out this brief video demonstration:

 

This gives a nice platform for experimenting with the game and gradually converting over source code, piece by piece. Eventually my goal is to convert all of the game code over to easily readable/changeable C++, from it's current assembly-like form, and remove PSX bios and .exe dependencies etc.

 

In the spirit of openness and knowledge sharing (and also as a contingency, in case I get hit by a bus :P) I've also made the github repo public if you want to poke around and experiment:

https://github.com/BodbDearg/PsyDoom

 

As of right now I'm not doing any pre-made builds because this is at such an early stage and far from ready. If anyone is desperate to try though, let me know and I can put a build up on github - it's kind of a pain in the ass to run at the minute and not configurable at all.

 

Happy to answer any questions you might have about this, I can update this post also as new progress/developments are made.


Thanks!

]]>
111024Sun, 29 Dec 2019 12:26:16 +0000
GZDoom HUD Safe Zonehttps://www.doomworld.com/forum/topic/142568-gzdoom-hud-safe-zone/ So is there any way to define a safe zone for HUDs so they aren't always drawn in the absolute edges of the screen? I've got an ultrawide monitor and while it's nice to have additional peripheral vision in first person games, I would honestly prefer not having to completely shift my eyes away from the action to see what my health or ammo or whatever is because the fullscreen HUD insists on being stuck in the corner of the screen.

e: I just realized that Supplice has exactly this feature under the name "HUD offset", which only begs the question even more of why this isn't a feature in GZDoom proper.

]]>
142568Wed, 03 Jan 2024 04:15:11 +0000
Mod4Play: Lightweight replayer for IT/S3M/XM/MOD music in Chttps://www.doomworld.com/forum/topic/142616-mod4play-lightweight-replayer-for-its3mxmmod-music-in-c/ I spun off a library that I cobbled together for use with EDGE-Classic in case it may be of use for other ports wanting to implement playback of tracker music. It supports the "Big 4" module formats (IT/XM/S3M/MOD), requires only the C standard library, and is BSD-licensed.

 

It unifies two existing projects, ft2play and it2play, which are C ports of the original Fast Tracker 2 and Impulse Tracker 2 replayers. I have removed the dependencies on winmm (or SDL for non-Windows OSes) and created a small set of functions that should make it pretty easy to integrate into existing programs.

 

Although there are arguably lighter libraries for XM, S3M, and/or MOD playback (such as pocketmodmicromod/IBXM, and jar_xm/jar_mod), I struggled to find something that also supported IT playback and didn't want to pull in DUMB, XMP, or other/bigger solutions.

 

Downloads and usage instructions can be found at the Github repo.

 

PS: I have also spun off our C64 SID replayer in a similar fashion, but that is a bit more niche.

]]>
142616Fri, 05 Jan 2024 16:58:48 +0000
Risen3D 2.2.35 releasedhttps://www.doomworld.com/forum/topic/126388-risen3d-2235-released/ Introduction:
 

screenshot42.jpg                                                                          

 

It has been over 3 years, but i just noticed that Risen3D had a new release back on November 14, with an update December 17. So i figured, why not make a thread.

 

List of changes:

Spoiler

Requires; Win98/win2k/XP/Vista[32/64], Windows7[32/64], Windows8, or
Windows10 and at least DX8.

Please note: when updating Risen3D any analysis files that were previously
generated may be rebuilt.

New users should be aware that nodes and analysis file building with large
maps can take some time. This only happens when first run as any node file
that takes more than one second to build or analysis file that takes more than
three are stored allowing the start-up delay when next run to be minimised.

Although several options will be shown for window sizing within the in game
Control Panel/Video menu it is best to run in Fullscreen mode and to use, if the
monitor is not a crt type, the monitor's default resolution (which should also be
the desktop resolution).

GENERAL NOTES

1) Do not tick ‘Run this program as an administrator’ in properties else a
'User Account' window will be spawned each time R3D is started. Some
legacy programs require this setting to be ticked in order to run, R3D does not.

2) R3D is developed on a machine with modest hardware but it has been noticed that
on later/faster machines using Win10 that flashing can occur when running in
windowed mode. Most games today do not offer this as an option and only run in
fullscreen mode. It would seem that video drivers are optimised for fullscreen mode
as no flashing occurs using this. As such it is best to run R3D in the default fullscreen
mode where using Win10.

IMPORTANT NOTICE:
Due to significant changes that have had to be made previous savegames
are no longer supported.

All Risen3D scripted maps have been revised for use with v35 and a new map
which uses changes in v35, Doomsday Rocket, has been added.

As such we would advise existing users of v34 or lower that a new, clean install
is undertaken by;

1) Renaming your existing Risen3D folder to, say, Risen3Dold.
2) Installing the new version.
3) Moving the risen3D.cfg file from Risen3Dold to Risen3D.
4) Moving the existing R3DGames folder from Risen3Dold to the new Risen3D folder.
5) Reinstalling all model packs from our site.
6) If wanted download and install scripted games as required.
7) Hawkwind's addon pack can now be installed.
8) Run the newly installed Launcher and delete all savegames.
9) Delete the Risen3Dold folder.

 

Changes over v220-34 ...

  • GL4 nodes, built using r3dglbsp, is now supported by internal side unpacking code.
  • The advantage is that where, previously, GL5 nodes were used it is now possible to unpack sides without affecting the internal analysis code or proprietary 3D side definitions. This allows maps like Intercep2 map28 or Remnant map01 to have glow and analysis applied which was previously unsupported with GL5 nodes.
  • Note that this has nothing to do with the nodes shipped with a wad as these are ignored and are rebuilt internally. In practice Risen3Donly needs the THINGS, LINEDEFS, SIDEDEFS,VERTEXES and SECTOR lumps. The SEGS, SSECTORS, NODES, REJECT and BLOCKMAP lumps are ignored.
  • Hangs caused by zero length lines in maps with packed sidedefs fixed. This is rare to find and should not happen but with some map editors does happen. Although previously checked for with standard map definitions, where it is more common, with packed sides this fault could fly under the radar.
  • Various fixes have been made including adding MBF support for the original beta states. This means that wads, both old and new, that were previously unsupported can now be run. E.g: STRAIN (1997), DOTB_RC3.WAD, (2018) Eviternity.wad (2019).
  • Heightsec errors fixed. E.g. Criticality wad can now be run without rendering errors.
  • Wall scrolling bug fixed with some maps fixed (e.g. PC_CP map31) and sky scrolling is now better supported (both vertically and horizontally). Maps such as Adonis_RC3 map31 are now rendered correctly.
  • Special 38 (which calls EV_DoFloor with lowerFloorToLowest) had no effect if the sector was already at the lowest floor. In this case the highest floor surrounding needs to be substituted and now is. An example exists in bge2.wad E2M7 with line 894 that is tagged to S184.
  • Fix added to prevent archvile fire attacking where unsighted but in the same sector. (E.g. Cchest3 map05).
  • Elevator fix made (e.g. Cchest3 map24 with sector 51).
  • Channels are now set to 64 or 128. 128 should be used but 64 is allowed if there is a problem with early sound cards. None, however, have been found that require this.
  • Fault causing 3D sound to occasionally 'screech' fixed. NOTE: to enable 3D sound please see R3D_Docs\Help\R3D_Sound.txt.
  • 5.1 (3D) surround sound now plays correctly.
  • In model mode gun smoke can now be selected.
  • SKEL missile puffs now correctly drawn including smoke trails both in standard doom and with CFX models. The two types of trail, depending on whether they are homing, are also made more obvious.
  • Problem fixed where Vsync with some Intel chips had to be set manually in the Control Panel after starting Risen3D despite having been previously set and stored in the cfg file.
  • State sequence error corrected with the punch states. This now means the punch looks smoother.
  • The internal control panel UI has been tidied up with settings either shown or, where applcable, not shown in line with the settings chosen in the launcher or imposed by scripted maps.
  • Scripted map support has been extended by doubling the available range of scripted map spotsand the addition of further scripted keywords.
  • There are also many other changes made to deal with doom effects. A good example of one is with Valve/Valiant.wad map28 with its rather attractive platforms composed of lines rising from floors.
  • Risen3D cannot render two different skies simultaneously but code has been added to allow better rendering where sky changes are used when only one is visible such as with Valve/Valiant.wad map31.

 

Download:

  • Binaries: Here (Setup installer) and Here (Zipped)
  • Source code: Here
  • Comes with a new map: Doomsday Rocket. Download: Here

Drocket-6.jpgDrocket-3.jpg

 

More info:

Trivia:

  • Risen3D is derived from Doomsday 1.7.8 and was originally called Boomsday with the plugin called JBoom. It is basically JDoom, but with Boom and MBF extensions.
]]>
126388Sun, 19 Dec 2021 20:58:43 +0000
Text Screens not appearing in DSDA?https://www.doomworld.com/forum/topic/142631-text-screens-not-appearing-in-dsda/ When I was playing Ancient Aliens MAP10, a text screen didn't appear like it should at the end of the level like it does in GZDOOM. Is this a glitch or intentional about the source port? Also how do I turn it back on?

]]>
142631Sat, 06 Jan 2024 04:42:19 +0000
Another problem I have with DSDA Doomhttps://www.doomworld.com/forum/topic/142614-another-problem-i-have-with-dsda-doom/ I have been making a map for DSDA Doom in the UDMF format however I tried making an outside area with a sky. The only problem is that when I try to carry the sky texture over to a wall, it doesn't work. So far I have only made maps for GZDoom where all you have to do is get rid of the walls textures and it would work, however DSDA Doom seems to be different.

Here is what it looks like in the editor:

838588027_Screenshot2024-01-05214133.png.0558c150fe90fded6bf5273f44bf7d10.png

Here is how it looks in DSDA Doom:

1685565798_Screenshot2024-01-05214326.png.fe188556a35daa0cb4add391ae8e2c26.png

And here is how it looks in GZDoom:

image_2024-01-05_215843892.png.6007dc4b97b3dabae11d827ac0a5ff19.png

How do I fix this? Also I use OpenGL, if that changes anything.

]]>
142614Fri, 05 Jan 2024 11:01:31 +0000
A problem I have with loading maps for DSDA doomhttps://www.doomworld.com/forum/topic/142588-a-problem-i-have-with-loading-maps-for-dsda-doom/ I started to make a map that uses the DSDA doom UDMF format in Ultimate Doom Builder, however when I try loading it I get this error:

image_2024-01-04_154741494.png.208130ed70e0571a29be100379a3a5a4.png

How do I fix this?

]]>
142588Thu, 04 Jan 2024 04:52:18 +0000
Anybody ever get chocolate-doom-wii by gered compiled?https://www.doomworld.com/forum/topic/142538-anybody-ever-get-chocolate-doom-wii-by-gered-compiled/ I found out about this port when I was searching for Doom ports that supported 240p output for CRT televisions. There are like three other ports for the Wii, but they're all 480i output minimum. While those are readily available, there doesn't seem to be a pre-compiled .DOL file for this fork of Chocolate Doom anywhere online. The author said this port required SDL-Wii, but when I tried to compile that, it just gave me an error message. I probably did something wrong. Could someone please get this port compiled and see if it even works? It didn't sound like it was finished even at the time, and there hasn't been an update in 8 years.

]]>
142538Mon, 01 Jan 2024 17:11:47 +0000
What Doom port could I use to run my first Doom map? [Read Description{https://www.doomworld.com/forum/topic/142546-what-doom-port-could-i-use-to-run-my-first-doom-map-read-description/ I was just wondering what source port for Doom I could use to make my first wad/map. I want I port that I can download on my Mac and I want the port to play just like the original Doom game (except with crosshairs) I also want to know a good map maker that works with that port. And, maybe you could tell me how to run it. Or not. Maybe a YouTube tutorial could teach me that.

]]>
142546Mon, 01 Jan 2024 22:44:28 +0000
Chocorenderlimits/CRL 1.7 (January 3, 2024)https://www.doomworld.com/forum/topic/134756-chocorenderlimitscrl-17-january-3-2024/ CRL is a continuation of Chocorenderlimits source port created by RestlessRodent.

 

Armed with new features, QoL and technical improvements, it provides the ability to assist mappers in creation of Vanilla compatible maps, as well as checking some specific scenarios via additional ingame modes. The grave/tilde [~] key opens the in-game menu which can be used to change the settings and features, few extra key bindings are available in Setup executable / Configure CRL Controls menu.

 

Major idea is still same - this is crash-prone source port, which will print ingame warnings instead of crashing. However, no changes were made to to drawing code and important bugs like Tutti-Frutti and Medusa are still here, to preserve DOS executable behavior and look. Medusa is no longer critical though, and not crashing Windows executable. For vanilla-compatibility purposes, despite of being crash-prone in complex game scenes, this is not limit-removing source port and it will not be able to load huge maps.

 

Important bits of code has been ported from International Doom, Crispy Doom and DOOM Retro.

 

CRL Doom, version 1.7 (January 3, 2024)

 

CRL Heretic, version 1.0 (June 12, 2023)

 

GitHub repository

 

Project's Wiki with additional info about counters, game modes and cheat codes

 

]]>
134756Fri, 31 Mar 2023 06:51:45 +0000