VOGONS


Zdoom fork?

Topic actions

Reply 80 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

I've been testing hx dos with the different zdoom versions. zdoom v117c (win32) shows video, but doesn't work yet. However, there are a couple of reports that hx dos works with v217. There are hints here:
https://forum.zdoom.org/viewtopic.php?f=18&t=9198

The dosbox debugger helped find many of the win32 functions which are problematic in hx dos. I used the hx dos dpmild32 tool to run zdoom.exe [dpmild32 zdoom.exe].

Reply 81 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

For testing valiant.wad (2015) maps, the attached eternity.exe may replace the same filename from eternity-dos-v33302.zip. The following maps load with this update: 01, 05, 11, 19, 29.

The update is a workaround to startup errors:

--- ETERNITY-ORIG//r_data.c	2017-04-22 22:17:17 -0400
+++ ETERNITY//r_data.c 2017-05-05 01:25:51 -0400
@@ -406,7 +406,7 @@ static void R_GenerateLookup(int texnum,

texturecompositesize[texnum] = csize;

- if (err) // killough 10/98: non-verbose output
+ if (0) // killough 10/98: non-verbose output
{
// sf: error_printf
error_printf("\nR_GenerateLookup: Column without a patch in texture %.8s",

Reply 82 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Most of the maps in the Valiant megawad are dependent on the ZDBSP map format. It is listed as a MBF megawad, but requires a doom source port that supports this "zdoom extended node" format. There is a list of these ports from the doomwiki: ZDoom 2.5.0+, GZDoom 1.5.0+, PrBoom+ 2.5.0.7+, Eternity Engine 3.39.20+, Crispy Doom 2.3+ and Doom Retro 1.8+.

There is further discussion about it here:
https://github.com/fabiangreffrath/crispy-doom/issues/43

And the code is mainly in p_setup.c which I backported from crispy doom and chocolate doom. However, it showed that the megawad is not well supported under this version of Eternity for DOS. It seems that the memory requirements are too high for the ZDBSP maps, even though it is possible to load the presumably non-ZDBSP maps listed in the above post.

I haven't tested many other recent Boom- and MBF-compatible megawads to determine whether they load in Boom or MBF clients, or instead are actually ZDBSP maps (zdoom format).

Reply 83 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

The above memory limitation occurs with >110,000 nodes. Artificially limiting the # of nodes allows further reading of the uncompressed ZDBSP format. However, continued reading of this extended format leads to an error in P_RemoveSlimeTrails(). Removing that function remedies the errors and loads the level, but there is no further progression beyond 2 iterations in a loop of P_LoadThings().

Also, tested with z_zone.* memory functions, but without an effect. One test is to verify the ZDBSP code by incorporating it into Zdoom-CL. If that works, then it may be possible to replace the z_zone memory allocations with a general allocation function which is robust with high memory use.

Reply 84 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Segmentation violation confirmed by building v3.39.20 a DOS binary. Shows very similar error to v3.33.02 with the uncompressed ZDBSP code. However, it can start vanilla doom until a level is loaded. Attached the patch for v3.39.20 so others could repeat the test.

Also, attached patch to build the Eternity v3.33.02 DOS version with support for the uncompressed ZDBSP map format. This shows an error like in v3.39.20 where loading the zdbsp maps. Attempted several tries to debug and it is possible to modify code to load a vanilla doom map, but there seems to be many places in the zdbsp code which conflict with the DOS memory system. An above post has further details.

From testing in the older Windows versions of Eternity, the map format is not necessarily the only incompatibility in zdbsp style maps, so I think Zdoom-LE is an alternative in Windows 95. It should be possible to port features back to Zdoom-CL, but there are other features in recent maps which suggest Zdoom-LE as a better choice.

Current maps, including those listed as Boom compatible, should be tested against clients other than zdoom and its derivatives. The alternative is to have other doom ports continually porting zdoom code back into their clients. This limits the ports in pursuing their goals and results in a single thread of engine development.

Reply 85 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached Eternity DOS build (v3.33.02-2). Includes patches. These binaries are unsupported, user takes responsibility for their use.

Reply 86 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached experimental version of Eternity DOS build (v3.39.20). Includes patches. These binaries are unsupported, user takes responsibility for their use.

Note that this version is currently set at VGA only and the ZDBSP maps require >192Mb of RAM. The console input is very slow after starting a level and not all levels will load. Testing with Valiant megawad.

Reply 87 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached Eternity DOS build (v3.39.20). Includes patches with detailed information. The above issues were resolved. These binaries are unsupported, user takes responsibility for their use.

Resolution is changed by v_mode command and ZDBSP maps may require >256Mb of RAM.

Reply 88 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached Eternity DOS build (v3.39.20-2). Includes patches and a readme file. Fixed issues with menu options. These binaries are unsupported, user takes responsibility for their use.

Edit: tested several zdoom 1.23 beta and 2.0 wad files. They load in this version of Eternity, but they depend on MAPINFO and a few missing thing types. However, it is possible to use "noclip" to bypass the areas dependent on the thing types. An example is the Invisible Bridge (thing type 9990).

Below is a Perl script to help in converting the MAPINFO to EMAPINFO so that Eternity may read the level information:

# Converting MAPINFO from old zdoom format to eternity v33920
# export MAPINFO from megawad to local drive via a lump editor (SlumpEd)
# use Perl script to help convert MAPINFO to EMAPINFO format
# create a new lump named EMAPINFO in megawad
# copy script output to EMAPINFO and verify it looks correct
# save the changes

while(<>){
@array_sky=();
@array_music=();
@array_levelname=();

chomp;
if($_ =~ /^map/){
$valid_block=1;
$x++;
print "[MAP0",$x,"]\n";

@array_levelname = split(/"/,$_);
$array_levelname[1] =~ s/"$//;
print "levelname=",$array_levelname[1],"\n";
}elsif($_ =~ /^sky/){
@array_sky = split(/ /,$_);
print "skyname=",$array_sky[0],"\n";
# print "sky2name=",$array_sky[1],"\n";
}
elsif($_ =~ /^music/){
@array_music = split(/ /,$_);
$array_music[1] =~ s/^D_//;
print "music=",$array_music[1],"\n\n";
}
}

Reply 89 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached Eternity DOS build (v3.39.20-5). Includes patches and a readme file. Fixed additional issues with menu options and backported code bits from Allegro v442. User takes responsibility for use of binaries.

Reply 90 of 94, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

... sorry wrong thread.

Last edited by dr.zeissler on 2017-06-09, 18:57. Edited 1 time in total.

Retro-Gamer 😀 ...on different machines

Reply 92 of 94, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

"About DOOMGL i think the source code got lost and was recovered much later."

I have opened another thread. I have tested a lot, but these old DoomGL/Hexen/Heretic are simply fast and look amazing on old hardware and therefore my favorites. I'll have to checkout, if there are sources available.

Retro-Gamer 😀 ...on different machines

Reply 93 of 94, by hail-to-the-ryzen

User metadata
Rank Member
Rank
Member

Attached Eternity DOS build (v3.39.20-7). Includes patches and a readme file. Fixed additional issues with menu options, added a video mode console option, and reduced the size of the Allegro library dependency by excluding support for non-8-bit color depths. User takes responsibility for use of binaries.