The wonderful world of -statcopy

In 2007 I wrote the first (to my knowledge) implementation of a Doom external statistics driver, named statdump.exe. The purpose of this feature in Vanilla Doom is still unclear to me, but it has since spawned a separate project which has proved very useful for regression testing of Chocolate Doom.

My original writeup, originally posted to the Doomworld forums, follows.


Vanilla Doom has a mysterious command line parameter named “statcopy”. The Doom FAQ describes it as “Unknown”. What does it do? Read on..

Doom comes with ipxsetup.exe and sersetup.exe, external programs that Doom communicates with to run multiplayer games over IPX networks and serial/modem lines. You run ipxsetup, and it runs Doom for you, adding a magic extra “-net” option that you never see. The -net option is used to specify a memory address that doom.exe and ipxsetup.exe use to communicate.

The “-statcopy” parameter is similar to “-net”: it's used to specify a buffer to pass the end-of-level statistics into. It's supposed to be passed by an external statistics-gathering program to capture the intermission screen statistics, just like how ipxsetup and sersetup pass “-net”. The only problem is that no such program has ever been written (at least, until now).

Over the past few days I've written what is, as far as I know, the world's first Doom external statistics driver. You can download it here.

My driver just saves the statistics to a file, which isn't very exciting. However, you could do more interesting things with it. For example:

The real mystery is why Id added this feature into Doom, though. However, it appeared in v1.666, which is the same time that the “-avg” / “Austin Virtual Gaming” parameter appeared. Maybe it's something to do with the Austin Virtual Gaming tournament? (See my tournament / big screen idea above for an example of how it might have been used).