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

WinDOOM 2.015 - stepping stone to a .NET port

Recommended Posts

WinDOOM 2.015



So why am I porting a 14 year old DOOM source port to modern compilers and modern Windows (VS2015 and Windows 10)? Because I wanted a .NET port of DOOM. There was one back in 2006 but Satan only knows where that guy who wrote it is now, let alone if he even has the source. So I had to roll my own.

The idea was to start with a clean straight Windows/DirectX port of Vanilla Doom, clean it up, refactor the code, etc., and then use that as a basis. So no flats/sprites-in-a-PWAD, no DeHackEd, no BOOM/MBF extensions, no SDL or other libraries; a clean straight Windows and DirectX source port.

WinDoom, as amended by Dean Wiley, fitted the bill. This is purer than Chocolate Doom - but it won't stay that way for long :P

It was quite a job to even get this far. The DirectX version it works with is old, the MUS2MIDI code was totally borked (I used public DOOM3 BFG source), the screenshot format is PCX which works is so old that even Paint.Net can't open it (had to use FastStone Image Viewer and IrfanView should work too).

Of course then there were the the usual crash fixes: Unterminated sprite list - fixed. High-resolution crash in r_things.c - still working on that one. Crash handler with stack dump - done.

Compiled with Visual Studion 2015 Community Edition.
Tested on Windows 10 with Doom Shareware, Ultimate Doom, Doom2, TNT and Plutonia.
Download program: WinDOOM2015x86.zip
Download source: WinDOOM2015src.zip
If you have Chrome it will ask to Keep or Discard these files as they are very careful about downloads.

Screenshots:






This is nothing serious, just a bit of fun for when I have the odd couple of spare hours :)
Of course I seem to be spending rather more time on it than I meant to :p

Oh and just for the lolz:

Share this post


Link to post

Good job, dude. Although I can't think of a use for it 😕

Then again, this is the Doom community, "just because" is our motto. Last year I got Doom95 to work on my Win 7 and for a while, I was using it to play vanilla pwads lmao.

Hey, maybe you could emulate Doom95's behaviour and create a Chocolate Doom95 niche port ... It was one of the first uses of directx 😁

Share this post


Link to post

Well, it's early days, but who know what the future holds? I read the guy in Chocolate Doom started that in much the same way, and it just grew and grew.

Well done on getting Doom95 to work :)

Oh and I apologise to Doom.NET guy, user Scet - apparently he is here and posted as recently as June this year. Be interesting to see if he notices this :)

Share this post


Link to post

I'd be curious to read a thread where you report that Paint.NET can't open the old PCX format. I wonder if the dev knows what it is or how to read it.

Share this post


Link to post
Lvangundy said:

I'd be curious to read a thread where you report that Paint.NET can't open the old PCX format. I wonder if the dev knows what it is or how to read it.

Are you crazy, of course they know what it is:
http://www.getpaint.net/doc/latest/HelpMenu.html

You think there aren't any programmers more than 30 years old or what?

Share this post


Link to post

I was sort of trying to be silly and serious haha. I guess it would have been more interesting to see their reaction in response to people asking for that format.

You never know man, there are lots of younger programmers that have never seen Turbo Pascal etc..


Doom in Pascal...hmm..

VGA said:

Are you crazy, of course they know what it is:
http://www.getpaint.net/doc/latest/HelpMenu.html

You think there aren't any programmers more than 30 years old or what?

Share this post


Link to post
MartinHowe said:

the screenshot format is PCX which works is so old that even Paint.Net can't open it


We recently made some changes in chocolate-doom git to the PNG screenshot writer so it wrote aspect-correct screenshots: which meant outputting 1600x1200 sized PNGs. There were some concerns about the file size, but it turned out they were generally a lot smaller than the equivalent 320x200 PCX. It turns out the PCX writer has some borked RLE that actually makes the files larger than if it didn't try to compress them.

Share this post


Link to post

Thanks for the heads-up and suggestions about PCX. I'll check out the PCX plugin for Paint.NET soon. In the meantime, having tried a screenshot at 1280x1024, I really should have increased the default heapsize earlier, LOL

int mb_used = 16; // Sensible on modern multi-gigabyte systems - MH 2015/08/23
Well, it's good enough for Chocolate Doom, so it's good enough for me :P

Share this post


Link to post

Hey I still exist, so what if I don't post much of anything.

I worked on various Doom projects from 2006 to 2010. Early ones where basically map viewers written in C# just based off the WAD format. Later some attempts where made to rewrite the C source in C#, but didn't get very far past rendering and basic collision, I think I had sector effects working too. The C-isms in the gameplay and software rendering code make a direct port to .NET difficult.

The last iteration was me rewriting what I could in C++. Not doing anything too crazy, but trying to eliminate what C-isms I could while still being able to compile and test the changes. I should point out everything was always based off Chocolate Doom.

I sent the C++ version to Meas for Mocha Doom, his Java port. Whether he used any of it or not, doesn't matter. I'd seriously suggest looking to Mocha Doom if doing a .NET port, especially reading that tech page on the site.

Share this post


Link to post

@Scet:
Thanks - interesting comments; I'll have a look at Mocha Doom now.

@Gez:
Yeah, I was big into Pascal at that time and thought DelphiDoom was awesome.

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
×