Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
jval

DelphiDoom 2.0.7.735 - UDMF + UMAPINFO + MBF21 (May 1, 2022)

Recommended Posts

On 26/12/2016 at 10:48 AM, jval said:

Pascal code maps to C (and C code maps to Pascal) very well, almost as an Injective function.
On the other hand, Java is a fully OOP language, so Maes had to deal with a total OOP rewrite of the code.

 

Actually, mapping everything to OOP was the easy part: due to its Objective-C roots, Doom has actually a very OOP-friendly structure which became more evident the more I worked on it, and in many cases I didn't even have to change the code of some functions for them to work. Globals also mapped cleanly to singletons, no problem there.

 

What WAS a PITA however was the lack of unsigned types, lightweight objects and typedefs in Java, which made some mappings unintuitive  and clunky to use (e.g.fixed_t -> int, angle_t -> long, unsigned short -> char), the heavy use of function pointers and union types (thinker functions) etc. which required some non-trivial reengineering.

Edited by Maes

Share this post


Link to post
On 2/9/2017 at 0:34 AM, Death Egg said:

I haven't tried this port yet.  What benefits does it have over other ports,  any port unique features? 

 

The most characteristic features of DelphiDoom are:

  • Fast multithreading software renderer with true color output, external textures, transparency, voxels, and post processing effect to eliminate perspective distortion
  • Custom actor definition (ACTORDEF lumps)
  • Advanced script engine (PascalScript) to customize levels and actors (procedures, functions, recursion, loops, user defined types, dll function calls etc)
  • Support for all official releases of Doom, Heretic, Hexen, Strife & Chex Quest (including the very first Doom Shareware 0.99, Heretic Wide Area Beta and Strife Teasers)
  • Developed in Pascal language

Share this post


Link to post

Amazing work! Is there any DNA from the quake engine ? Also, i think it's too soon to worry about zdoom compatibility, but does it have any ?

 

Looking forward to future updates!

Share this post


Link to post
On 5/9/2017 at 7:33 PM, GhoulDesecrator said:

Amazing work! Is there any DNA from the quake engine ? Also, i think it's too soon to worry about zdoom compatibility, but does it have any ?

 

Looking forward to future updates!

 

The only thing that DelphiDoom shares with the quake engine are the MD2 model typedefs.

 

There is no zdoom compatibility.

 

Edited by jval

Share this post


Link to post

A new meintainance release (ver 2.0.2.703) is available.

 

This release includes new features such as:

  • Support for PCX images as external textures.
  • New mobj functions to control flow depending on map & world variables.
  • Support for 'TEXTURE3' texture lump.
  • Builds map nodes if missing from wad file.

 

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.3/

Share this post


Link to post

And why not all digits from 0 to 9 outright? I can see a point in saving letters for potential new formats akin to TEXTURES, but digits...

Share this post


Link to post
4 minutes ago, scifista42 said:

And why not all digits from 0 to 9 outright? I can see a point in saving letters for potential new formats akin to TEXTURES, but digits...

 

I consider multiple TEXTURE3 lumps inside the WAD structure as more appropriate behaviour, since using TEXTURE4, TEXTURE5 etc will cause uncertainty among loading at once multiple mods.

But ... for now, only one single TEXTURE3 lump is supported (the one at the last WAD loaded).

I stick to that since the purpose of TEXTURE3 lump is to:

  • provide textures that are using existing patches (PNAMES)
  • easy declaration of texture names (set numpatches to zero and use a hi resolution replacement between HI_START & HI_END lump markers).

Future plans include the creation of an extended (probably with scipt/text-based syntax) declaration of user defined textures. Before that I want first to find out how other ports deal with custom texture definition (ZDoom, Vavoom, others?) and make a compatible implementation.

 

Share this post


Link to post
On 9/5/2017 at 3:10 PM, jval said:

post processing effect to eliminate perspective distortion

How does that effect work?

Share this post


Link to post
13 minutes ago, dpJudas said:

How does that effect work?

 

You can look at that thread: https://www.doomworld.com/forum/topic/64148-delphidoom-progress-in-3d-perspective-in-software-mode-now-with-voxel-support/#comment-1165911

 

It's a compination of

  • zaxisshift
  • aspect ratio changing depending on the look up/look down angle
  • panning and stretching of horizontal lines depending on the line Y position
  • a trapezoid to rectangle transformation
Edited by jval : syntax

Share this post


Link to post

A new meintainance release (ver 2.0.3.704) is available.

 

New features:

  • PascalScript can now access DLLs from inside pk3 files. (or WAD files if using the PK3ENTRY lump). (download DLL inside WAD Example)
  • Smooth freelooking. Now the engine does not ignore the slight variations in mouse movement as noticed by RTC_MArine:
On 26/12/2016 at 6:07 PM, RTC_Marine said:

* When freelooking, I have to give the mouse a good push to make it work, slight variations in mouse movement do not register

  • Internal save/load version updated to version 2.03 for all branches.
  • Added gl_no_glfinish_hack console variable to avoid with OpenGL slowdown on systems with Intel HD4000 and Windows 10 (default is True).  Further information can be found at intel communities forum
  • Will load configuration file (*.ini) of previous versions.

 

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom 2.0.3/

Share this post


Link to post

A new meintainance release (ver 2.0.3.705) is available.

 

New features/fixes:

  • Hud drawing speed optimizations in 2560 x 1440 & 3840 x 2160 resolutions.
  • Fixed music pitch problem as mentioned by RTC_Marine:

 

On 26/12/2016 at 6:07 PM, RTC_Marine said:

* Music playback is fine for a couple of seconds after starting a level, then the pitch drops for the whole song

 

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.3/

Share this post


Link to post

Version 2.0.4.708 is available.

 

Most notable new features:

  1. Added "Gravity" sector field (controlled by PascalScript).
  2. Presice rw_distance and rw_offset calculation (https://www.doomworld.com/forum/topic/70288-dynamic-wiggletall-sector-fix-for-fixed-point-software-renderer/?do=findComment&comment=1340433)

  3. Visplanes with the same texture now match up far better than before. (https://www.doomworld.com/forum/topic/70288-dynamic-wiggletall-sector-fix-for-fixed-point-software-renderer/?do=findComment&comment=1342176)

  4. R_PointToAngle function in rendering replaced with a floating point equivelant to eliminate glitches in huge maps. Now the engine can handle huge maps like SUNDER.WAD/MAP14 and SUNLUST.WAD/MAP28.
  5. Precalculated finesine and finecosine tables replaced with larger and more accurate equivelants (rendering only - not logic).
  6. Small speed improvements to the software renderer by better expoiltation of multiple CPU cores.
  7. Fixed glitches to the dynamic lighmap (OpenGL).
  8. Lot of other fixes:

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

Share this post


Link to post

This port looks very promising. I quite like the visual effects applied to it.

Though I wish the launcher had saveable options, so that I don't need to dabble on the settings every time I want to play a game.

Otherwise, keep it all up!

Share this post


Link to post

Version 2.0.4.711 is available.

 

Most notable new features:

  1. Speed optimizations to the software rendering.
  2. Corrected z-fighting between corpse and dropped item that occupy the exact same spot (software renderer).

  3. Multiple thread utilization for:

    • spans and 3d middle floors drawing.

    • depthbuffer calculation.

  4. Fixes to sky drawing.

  5. Fixes to Hexen fog levels rendering (32 bit color software).

  6. Screen DPI awareness when running in Windows 8.1 or greater.

  7. The launcher automatically saves the last options and use them the next time as suggested by taufan99.

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

 

 

On 12/28/2017 at 1:11 AM, taufan99 said:

This port looks very promising. I quite like the visual effects applied to it.

Though I wish the launcher had saveable options, so that I don't need to dabble on the settings every time I want to play a game.

Otherwise, keep it all up!

 

 

Share this post


Link to post

Version 2.0.4.714 is available.

 

image.png.bcf878391b735ab4a30a7680ffcaadfa.png

 

Most notable new features:

  1. Speed optimizations to the software renderer on maps with big number of drawsegs. (using multiple lists of drawsegs).
  2. Menu beautifications.
  3. Option to switch to ESDF keyboard movement.
  4. New icon, that resembles an ancient temple of Delphi archaeological site.
  5. If infinite state cycles detected will exit with I_Error. (from Chocolate Doom)
  6. Interpolate sector flag can be controled within PascalScript.
  7. Hi-resolution lookup tables are calculated using multiple threads if possible.
  8. More smooth fake3d effect when looking up/down.

Fixes:

  1. Fixed the accuracy of status bar drawing in 8 bit color display mode.

  2. Now correctly executes console commands on AUTOEXEC lump.

  3. Corrected some desync problems with vanilla 1.9 demos (problem appeared in version 2.0.4 build 708).

  4. Projectile weapons (plasma, rocket, bfg) are no longer firing off center to the right when zaxisshift is disabled (thanks Khorus).

  5. Will not attempt to play demos from unsupported versions.

  6. Fixed small issues with the multithreaded dephbuffer calculation when the software renderer touches a 3d floor.

 

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

Edited by jval : Update lost images

Share this post


Link to post

Version 2.0.4.715 is available.

 

New features:

  1. Support for 16 or 32 sprite angles.
  2. Support for PNG images for sprites inside S_START/S_END namespace. "grAb" chunk support for setting offsets.
  3. Added -forcecompatibilitymode command line parameter. It has the same effect as -compatibilitymode, but it is not preserved inside the config file.
  4. DD_IDE tool displays the available ACTORDEF functions in the Library tab.

Fixes/improvements

  1. Completely new code for midi files (*.mid). Now the midi files do not freeze the game when restarting as noticed by Khorus. Also the Sound Volume in midi files now works.
  2. Midi and MP3 music will pause playback when the PAUSE keyboard button is pressed (to pause the game).
  3. Will not spawn terrain splashes in case of a bridge designed with self-referencing sectors. (crossing a bridge over a river will not spawn splashes).

  4. Fixed bug in DelphiHexen branch that always calculated zero thrust in P_DamageMobj.

  5. Corrected demo recording bug. Problem appeared in version 2.0.3.704.

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

Share this post


Link to post

Version 2.0.4.718 is available.

 

Latest improvements include:

  • The parameters of ACTORDEF functions can access Global Pascalscript Map & World variables.
  • Usage of multiple cpu cores for HUD drawing.
  • Sprite sorting uses conditionally (depending on number of vissprites) various sorting algorithms to improve performance (see also this post). Also the sorting process takes place in parallel with columns and spans drawing as suggested by @zocum here.

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

Share this post


Link to post

Version 2.0.4.719 is available.

 

Latest improvements include:

  • Fixes to PNG textures, faster loading, fixed problems with latest DHDP
  • ZLib updated to version 1.2.8
  • Corrected some issues with PK3ENTRY lump (long filename aliases inside WADs)
  • OpenGL model rendering using external DLLs. Example here. This feature may be used as a loader for unsupported model formats, and it's functionality will be enriched in future releases.
  • ACTORDEF functions parameters/declaration appear to the DD_IDE tool for all branches (Heretic, Hexen & Strife), not only Doom.

Download link at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

Share this post


Link to post

Version 2.0.4.720 is available.

 

DOWNLOAD LINKS:

  • Executable (Also includes launcher, the DD_IDE tool and the script command line compiler - ddc)
  • Source Code

 

Latest improvements:

 

Voxels:

  • Added support for slab6 VOX voxels.
  • Now recornizes kvx voxels inside the VX_START/VX_END namespace.
  • For debugging purposes added vox_exportlightmap console command (OpenGL version only). Exports the current lightmap into a ddvox voxel.

OpenGL Rendering:

  • Limit OpenGL framerate to monitor refresh rate is now preserved and executed right from defaults.
  • Lower memory utilization for OpenGL renderer (visplane declaration does not include the unneeded for the gl renderer visindex arrays).

Game Logic:

  • Added 'CANPASS' alias for 'PASSMOBJ' flag in ACTORDEF definitions.
  • Added pushfactor mobjinfo field. It determines how much a PUSHABLE mobj can be pushed. Default is FRACUNIT div 4 (25% of pusher speed)
  • Added PS_GetMobjInfoPushFactor PascalScript function. Returns the PushFactor of mobjinfo.
  • Parse SNDINFO & SNDINFO.txt entries from PK3 files.
  • Fixes to SNDINFO parsing.
  • A_Jump* mobjinfo functions will check if parameter is a label and jump to it.
  • We can now define interval for THINKERs inside ACTORDEF lumps. Example using the THINKER keyword can be downloaded here.
  • Added A_RandomGoto & A_ResetHealth ACTORDEF functions.

User Interface:

  • We can use PG_UP & PG_DOWN keys in the console to view the previous messages.

New Tools:

 

Download at sourceforge: https://sourceforge.net/projects/delphidoom/files/DelphiDoom%202.0.4/

 

Edited by jval

Share this post


Link to post

Glad to see new versions still coming out! There's definitely some nice features to play with, and the advanced software renderer is great for my Ryzen 1600. Some of the other tools you've been working on such as the voxel editors must be of interest to a few people out there, too.

 

A couple of usability issues, though. While I'm the sort of user that doesn't mind using a .cfg to change my controls (I recall you stating coding in menus would be rather difficult), being able to change a few more functions would be handy such as weapon keys, automap controls etc. It would also be nice to be able to turn off the Y axis on the mouse.

 

Looking forward to future versions :)

Share this post


Link to post
2 hours ago, Khorus said:

A couple of usability issues, though. While I'm the sort of user that doesn't mind using a .cfg to change my controls (I recall you stating coding in menus would be rather difficult), being able to change a few more functions would be handy such as weapon keys, automap controls etc. It would also be nice to be able to turn off the Y axis on the mouse.

 

Looking forward to future versions :)

 

key bindings menu is in my near future plans. I think I can use some ideas from prboom+/boom  m_menu.c . (Some times I regret that I used the original linux C source as a base and not boom).

About mouse I think I can put a sensitivity multiplier for both X & Y axis (eg from 0% to 200%).

 

Share this post


Link to post
39 minutes ago, jval said:

About mouse I think I can put a sensitivity multiplier for both X & Y axis (eg from 0% to 200%).

 

Actually that was easy:

 

SSHOT_Doom_20191012_221821542.jpg.20f2b3294fd7e353f7f59ec51eb05845.jpg

Share this post


Link to post

1) Is there any way to load kvx voxels from inside the zip(or pk3) file?

2) How can i specify dynamic light offsets, radius, and color in RGB?

3) Is there a way to load actor code not placed in actordef? For example i usualy place decorate code to a few txt files in zip_root\actors\lights.txt(or monsters.txt, decorations.txt etc) because it's quite comfortable - to split code by actor types and load usint #include function in Decorate.txt. I see it is similar to decorate, yes, but the file name is different from that one zdoom-type ports use. So is there any similar to #incluide function in delphidoom actordef?

 

I liked the way DelphiDoom works with software renderer, and I am interested in porting my alternative voxeling project to delphidoom, and need that functions to complete my work. Here are some screenshots of it using QZDoom:

It's different from teamhellspawn's one, i plan to replace all the objects ingame, may be even monsters one day, using voxels created by myself :)

 

Screenshot_Doom_20191123_203826.png

Screenshot_Doom_20191123_204000.png

Screenshot_Doom_20191123_204045.png

Screenshot_Doom_20191123_204054.png

Screenshot_Doom_20191123_204526.png

Share this post


Link to post
19 hours ago, okbuddy said:

Are there any plans to bring any of the recent features/UI improvements from FPCDoom over to this?

 

I'm currently working on this, next release will come soon :)

 

1 hour ago, GRAU said:

1) Is there any way to load kvx voxels from inside the zip(or pk3) file?

2) How can i specify dynamic light offsets, radius, and color in RGB?

3) Is there a way to load actor code not placed in actordef? For example i usualy place decorate code to a few txt files in zip_root\actors\lights.txt(or monsters.txt, decorations.txt etc) because it's quite comfortable - to split code by actor types and load usint #include function in Decorate.txt. I see it is similar to decorate, yes, but the file name is different from that one zdoom-type ports use. So is there any similar to #incluide function in delphidoom actordef?

 

I liked the way DelphiDoom works with software renderer, and I am interested in porting my alternative voxeling project to delphidoom, and need that functions to complete my work. Here are some screenshots of it using QZDoom:

It's different from teamhellspawn's one, i plan to replace all the objects ingame, may be even monsters one day, using voxels created by myself :)

 

 

@GRAU Welcome to doomworld! Nice voxels!

 

1) kvx voxels can be loaded from:

  •  pk3/zip files with the .kvx filename extension
  •  Quake pak files with the .kvx filename extension
  • Wad files inside the VX_START / VX_END namespace (without extension obviously)

but can not be loaded from pk3/zip/pak files if they do not have the .kvx filename extension. 

 

2) Dynamic light offsets, radios, color etc are defined inside a LIGHTDEF lump. (the equivalent of ZDoom is GLDEFS). The subtractive, attenuate & dontlightself keywords are not supported. Dynamic lights definitions are currently supported in OpenGL mode only.

In software rendering are defined simply with GREENLIGHT, BLUELIGHT, REDLIGHT etc flags inside ACTORDEF actor definitions (or DEHACKED) and can not have any other parameters. Your post gives me motive to reuse some code from FPCDoom for dynamic lights (which fully supports them in software rendering).

 

Example of actor definition inside  ACTORDEF lump (or ACTORDEF.txt) (OpenGL & Software rendering)

Spoiler

ACTOR green_float_alien 22222
{
   Health 100
   Speed 10

   .....
   MONSTER
   +NORADIUSDMG
   +NOGRAVITY
   +FLOATBOB
   +FLOAT
   GREENLIGHT
   GREENBLOOD
   States
   {
   Spawn:
   .......... 
   }
}

 

3) Next version will fully support #include xxxxx directive (and the pascal style  {$INCLUDE xxxxx}) in all content definition lumps (ACTORDEF, MODELDEF, VOXELDEF, LIGHTDEF & SNDINFO)  and also include files could have their own include files.  In current version, you can place multiple ACTORDEF (ACTORDEF.txt) files inside different folders of pk3/zip/pak and DelphiDoom will parse them all.

 

 

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×