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

Source port support for new IWAD names

Recommended Posts

The new IWAD filenames are now in place. We now need to lead an effort to get as many source ports as possible to recognize these new filenames as IWAD names.

The IWAD filenames that source ports should recognize are:

  • freedoom1.wad - official name, "Freedoom: Phase 1"
  • freedoom2.wad - official name, "Freedoom: Phase 2"
  • freedm.wad - official name, "FreeDM"
I'm going to list as many different (relevant) source ports as I can below, along with their current status. If you contact the maintainers of a source port, please post in the thread. As we proceed I'll update the status.

Odamex: Bug filed and Fixed
Doomsday Engine: Contacted, Bug
PrBoom: Not yet contacted
PrBoom+: Fixed as of SVN r4365
ZDoom / GZDoom: Contacted and Now supported
Eternity Engine: Supported as of Eternity SVN r2842
Chocolate Doom: Bug filed and fixed.
Doom Legacy: Fixed as of SVN r1081.
Remood: Contacted
ZDaemon: Contacted and "rejected because they have their own naming scheme already". But "the ZLauncher Single-Player dialogue and the ZSWizard will pick up the Freedoom/FreeDM IWADs with or without the new names, they can be selected and used"
Zandronum: Contacted
3DGE: Not yet contacted
Risen3D: Not yet contacted
Doom Retro: Not yet contacted
Mocha Doom: Not yet contacted

If there are others I've missed please mention them in the thread and I'll add them to the list.

Share this post


Link to post

Doom Retro and DelphiDoom are a couple more for the list, possibly Mocha Doom if Maes hasn't abandoned it.

Share this post


Link to post

ZDaemon devs make a good point: shouldn't different versions of Freedoom have different names so that you could actually, I don't know, distinguish between them?

Share this post


Link to post

Hopefully we never have to actually read that lump. EE uses it just to recognize that the IWAD is "Freedoom" version, so that a couple of things happen:

  • When searching common IWAD locations in order to populate system.cfg with file paths, IWADs with that lump fall into the variables for Freedoom IWAD locations and not ones for the regular game.
  • At startup, Freedoom is acknowledged specially by printing "Freedoom Phase 1 version" or Phase 2 version, depending on the gamemode.
If I ever have to actually look *inside* that lump, then it would really mean you guys are doing something wrong (ie. breaking the game or demanding customized behavior extending beyond vanilla or BOOM compatibility).

Share this post


Link to post

Having to look inside the wad to find out the version number sounds inconvenient. Maybe you should be able to do that by just looking at the file name. Every sane mapper who frequently re-releases the same wad with updates names it differently each time because it makes managing different versions much easier, avoids the confusion in multiplayer ports with people having different versions and GetWAD being unable to find some specific version, etc. Having hundreds of different wads all with the same name is kind of a disaster if you think about it.

Share this post


Link to post

Yeah, but if ports have to look for IWADs ranging from Freedoom1-v00000001 to Freedoom1-v99999999, that's going to be super-inconvenient as well. Besides, the aim of newer versions is to replace older versions, not live side-by-side with them.

If online ports want to check the version number to make sure that everybody's using the same thing, then they can read a lump or perform other operations (like computing a CRC32/MD5/SHA1/whatever sum or something). The presence of the FREEDOOM lump is enough to identify it as Freedoom; if you want to go further then you pretty much have to get a more involved check than just looking at filename and lump presence.

After all, it's not like there aren't multiple versions of doom.wad and doom2.wad (and even tnt.wad and plutonia.wad). Whatever problem you want Freedoom to solve for you by getting unique names is a problem that is already left unsolved by IWADs that are immensely more popular and important (let's be honest about it). Sooo.... Find something for your online ports that work with the gajillion versions of doom.wad out there, and if you're a good engineer you'll find out that it will also work with a kazillion versions of Freedoom1.wad as well!

Share this post


Link to post
Memfis said:

ZDaemon devs make a good point: shouldn't different versions of Freedoom have different names so that you could actually, I don't know, distinguish between them?

We *could* ship every new version with a different WAD name, but that would mean that we'd have to go through the same tedious process seen in this thread, for every single new release.

Literally, every time a new Freedoom release came out, it wouldn't work in any source port.

Quasar is right - for his use case. Eternity Engine doesn't have the same problems as ZDaemon or other multiplayer ports: they have the important requirement that all players are playing on not only the same WAD, but the same versions of those WADs. So their approach sort of "makes sense", but it's pretty disappointing that ZDaemon won't just recognise Freedoom's IWADs as IWADs out of the box.

Share this post


Link to post

When someone currently has no commercial IWAD present zdaemon downloads our renamed freedoom 0.7 version.

Typical ZDaemon. :p

1. In their eye, nobody's going to play Freedoom for playing Freedoom: it's just a fallback for playing Doom maps.
2. The official Freedoom builds are not under ZDaemon's control, so instead ZDaemon users are fed a custom ZDaemonized version from the ZDaemon servers.

Share this post


Link to post
Gez said:

... computing a CRC32/MD5/SHA1/whatever sum ...

This is the only technologically proper solution to exact version verification. Asking people to have exactly named files instead of doing a proper version check with a hash code is just bad programming.

Share this post


Link to post

Well, at least for GetWAD and similar services surely it is easier to find freedoom-1234516.wad than freedoom.wad that matches some CRC32 sum (no need to download hundred various wads and check them all).

fraggle said:

Literally, every time a new Freedoom release came out, it wouldn't work in any source port.

You mean it wouldn't get auto-detected I guess? But even so you probably could make it so the source ports would detect all files starting with freedoom or something.

Share this post


Link to post

Server broadcast checksum and at least one URL where the file can be downloaded. Clients verify if the local file exists and matches the checksum, and if not download from given URL; then verify the checksum again and if it still doesn't match, the client flames the server automatically on the forum for being a dumbass.

Seems a pretty simple and solid solution.

Share this post


Link to post

Why don't any of the source ports even have a manual way of loading the iwad in without needing detection anyway?

Share this post


Link to post
Gez said:

Server broadcast checksum and at least one URL where the file can be downloaded.

If all servers always provided 100% working URLs, there wouldn't be any need for GetWAD in the first place. The server browser program would just download the wad from the given link and everyone would be happy. But this isn't the case at all, so the ability to find a wad somewhere else is necessary.
But I agree with you that this is a rather silly thing to argue about. :)

Share this post


Link to post
Avoozl said:

Why don't any of the source ports even have a manual way of loading the iwad in without needing detection anyway?


They do. portname.exe -iwad superchocobomansiondeluxe10000.wad will work.

XCOPY: Use quote rather than code tags for this kind of things.

Share this post


Link to post

The AltWAD function within ZDaemon requires the freedoom IWAD(s) to have a version identifier in the filename.

It makes it far easier for a new (or existing) player to download the new version. Rather than an existing player attempting to join with an older version (with the same filename) and getting booted out instead due to there being a mismatch (altered files not withstanding).

That is only related to the AltWAD function.

If however you want to create a Freedoom server or start a single-player game with the new IWAD names, you will be able to do so. I can confirm that the "Game" combobox within the ZLauncher Single-Player dialogue and the ZSWizard will pick up the Freedoom/FreeDM IWADs with or without the new names, they can be selected and used.

The IWAD column in the ZLauncher will reflect the filename that is being used.

It does not seem like a good idea to have any updated WADs distributed without the filename being adjusted, it becomes highly problematic in the case of multiplayer games.

One might argue that the commerical IWADs have varying versions floating around, yet they do have to be purchased.

Share this post


Link to post
AF-Domains.net said:

If however you want to create a Freedoom server or start a single-player game with the new IWAD names, you will be able to do so. I can confirm that the "Game" combobox within the ZLauncher Single-Player dialogue and the ZSWizard will pick up the Freedoom/FreeDM IWADs with or without the new names, they can be selected and used.

This sounds good enough. Thanks for clarifying!

wesleyjohnson said:

DoomLegacy svn1081, will recognize
freedoom1.wad and freedu.wad,
freedoom2.wad and freedoom.wad
freedm.wad

That's great. Thanks!

Share this post


Link to post

To download the wad or not download the wad.
With DoomLegacy this is a command line choice.
If a user has a slow connection they should not be forced to download a file they already have.
The ways to check on the wad version may vary.
File names cannot be trusted, but they also are not generally version specific. Look at Linux libraries as an example. Versioned names works for identifying libs and against using libs.
The file may be versioned in /usr/lib, but all users reference it through a un-versioned link name.
Do not 'need' any capability in Doom to do the same for versioned wad names, but you do need links, which are not universal across all platforms (DOS ??).

Trying to impose some scheme across all Doom ports will meet the same fate as all previous attempts at organizing wads (undescribably varied).

Share this post


Link to post

Excellent. Thanks for chasing that up. All the major source ports support the new names now, so I think we're pretty much done.

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
×