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

DelphiDoom 2.0

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_Doom.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/

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

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
×