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

nukeykt

Members
  • Content count

    68
  • Joined

  • Last visited

Everything posted by nukeykt

  1. Hi, As you know Doom source code as released in 1997 was not for original DOS version, but rather was Linux version cleaned up by Bernd Kreimeier. During clean up, code specific for DOS version was stripped out. Another big change was reorganizing header files, specifically doomdef.h, p_local.h and r_local.h were split to smaller header files. This is where Heretic sources comes in handy. Raven released their code as is, without any sort of clean up. Specifically it has majority of Doom's DOS specific code and header files organization is very close to Doom's original form. The goal of this project is to combine both these sources and get codebase that is close to the Doom's original codebase as possible. Actually I had this idea for a pretty long time and had previous attempts in the form of PCDoom and PCDoom-v2. This time I decided to start mostly from Heretic sources, gradually reverting Raven's code changes by comparing it to Linux Doom sources. I targeted id Anthology Final Doom EXE as it was closest to linuxdoom sources. Eventually I got compiling EXE, but as expected it had lots of differences to original EXE files. Then I gradually fixed all the differences and got EXE that identical to original EXE by behaviours. Once I covered both revisions of Final Doom, NY00123 volunteered and also covered a lot more Doom revisions down to prototype v1.666. This also includes Chex Quest. Meanwhile I decided to try to do the same for Strife executable using restored Doom code. As Strife source code was never released, I had to rely on reverse engineering of original EXE file. After finishing initial reversing resulted EXE had some differences to original EXE. Eventually after lots of trial and error and not without some help from NY00123 we eventually got EXE that identical to original EXE (up to usual garbage data between string literals and differences due to __LINE__ macro). As original release of Doom this does not include proprietary DMX code. You can use APODMX replacement library instead to get complete GPLv2 compatible codebase. TL;DR These repositories recreate different revisions of Doom and Strife codebase. Compiled EXE files are identical to original EXE in term of behaviours. In total both repositories cover 15 different revisions of Doom, Strife and Chex Quest. List of covered Doom revisions: List of covered Strife revisions: Doom repository Strife repository
  2. nukeykt

    Doom and Strife source code restoration

    Played cooperative game with @NY00123 using reconstructed doom v0.99 sources NY00123's video (uses APODMX) my video (uses DMX):
  3. nukeykt

    Doom and Strife source code restoration

    To celebrate upcoming doom's 30th anniversary gamesrc-ver-recreation now covers original shareware v0.99/v1.0 release https://bitbucket.org/gamesrc-ver-recreation/doom
  4. nukeykt

    Doom and Strife source code restoration

    Doom v1.2 restoration WIP https://bitbucket.org/gamesrc-ver-recreation/doom/src/doom12/
  5. nukeykt

    Is this Mac/PC Doom source code on ebay legit?

    Checked Doom II 1.7.sit archive, which appears to have v1.7 source code. And indeed after compiling it with right DMX version, I got exe that matches original v1.7 EXE byte-by-byte. @NY00123 a while back figured out that v1.7 and v1.7a have only one difference: startup screen version number. https://bitbucket.org/gamesrc-ver-recreation/doom/src/0e7f5b2cfa495f6675abdad7a3780107603f4fbc/d_main.c#lines-990 So I tried to correct header by appending "a" and recompile, and sure enough, I got exe that matches v1.7a byte-by-byte.
  6. nukeykt

    Is this Mac/PC Doom source code on ebay legit?

    can confirm that DOS doom sources are legit. DMX (dmx37lib), makefile/newdoom.lnk, DEFS.INC are missing but can be grabbed from elsewhere, e.g. gamesrc-ver-recreation. Using watcom 9.5b and then removing debug data and appending dos4gw I got exes that are identical to original ones, byte-by-byte.
  7. nukeykt

    Doom OPL Windows MIDI driver

    Doom OPL Windows MIDI driver. Demo: Extended version adds few cool features that is not available on vanilla Doom: 1) Full stereo panpot. 2) Emulate up to 8 OPL3 chips. Download: Standard version: doomopl.zip Extended version: opl3doom_ext.zip OPL patches (GENMIDI.OP2): https://www.dropbox.com/s/kpgdaysdbzu4cr6/genmidi.zip?dl=0 dmx_dmx.op2 - DMX, Heretic, Hexen, Doom Beta, Strife Demo dmx_doom1.op2 - Doom, Ultimate Doom, Chex Quest dmx_doom2.op2 - Doom II, Final Doom dmx_strife.op2 - Strife dmx_raptor.op2 - Raptor Installation: 1. Install Visual C++ 2017 Redistributable. 2. Install driver. If you have x64 system install both x86 and x64 versions. 3. Install GENMIDI.OP2. GENMIDI.OP2 installation: 1. Create OPLSynth folder in C:\ disk root. 2. Copy *.op2 files to C:\OPLSynth folder. 3. Rename needed op2 file to genmidi.op2. DMXOPTION toggles: OPL3 mode enable: Set DMXOPTION environment variable to "-opl3" Doom 1 1.666 mode enable: Set DMXOPTION environment variable to "-doom1" Doom 2 1.666, Heretic, Hexen mode enable: Set DMXOPTION environment variable to "-doom2" You also can combine OPL3 mode with Doom 1.666 modes. eg set variable to "-opl3-doom1" Extended version features: Full stereo pan pot. Set DMXOPTION environment variable to "-extstereo". Multiple OPL3 chip mode. Set DMXOPTION environment variable to "-chipsN", where N is number of emulated chips(up to 8 chips). VOGONS thread: http://www.vogons.org/viewtopic.php?f=9&t=36667
  8. nukeykt

    Doom and Strife source code restoration

    Bumping a thread with some news. Recently I started reverse engineering of the Doom 95 exe. Wanted to do this for a long time actually, mostly because it is directly derived from the DOS doom code and its exe was build using the Watcom compiler(same compiler used to build DOS Doom) and it included debug symbols(!!!). Now when we have perfect DOS doom sources recreation, it can be used as basis for this effort. Reverse engineering process is pretty starightforward: compile dos doom C modules with the right compiler settings and compare to the doom 95 code disassembly, then modify C code until compiled code matches byte by byte (or at least by behaviour). And of course windows/directx related code needs to be written purely based on disassembly. Today I finished first pass of reverse engineering and finally built exe. With some more bugfixing it is mostly working now.
  9. You probably can check gamesrc-ver-recreation's doom repository to see how things worked in original DOS version(s): https://bitbucket.org/gamesrc-ver-recreation/doom
  10. nukeykt

    Z_CT: Uh oh.

    DMX adds end of track event at the memory chunk end for single track midi formats and thus overwrites some of doom's heap data. You can either convert midi file to multitrack MIDI (format 1) or just add 3 extra bytes at the end of file in any hex editor.
  11. nukeykt

    Things about Doom you just found out

    Doom's OPL patches (well, actually Scott Host's patches) were in fact derived from stock OPL patches, that, for example, was used in Windows 3 adlib/sb drivers. While majority of patches were heavily edited/made from scratch there are still few patches that didn't change much or remained unchanged. I recorded few Doom midi files with both Doom and Windows 3 patches if you want to compare. Especially D_BUNNY and D_E2M7 are good examples. https://drive.google.com/drive/folders/1YgoFaf4lsssJlZqgKH54sgmpqumbJFTU?usp=sharing
  12. nukeykt

    Doom and Strife source code restoration

    Update to the Strife restoration A couple more revisions of the Strife executable are covered now: registered v1.1(aka v1.0) and registered v1.2. Both reconstructed EXEs are identical to the original EXE files (up to garbage data between string literals and differences due to the __LINE__ macro). Thus gamesrc-ver-recreation now covers all known registered versions of Strife. The next obvious step is to try to cover the demo versions of the Strife, but I expect much more differences because both demo versions use much earlier revisions of the executable, so I guess I'll leave this for later.
  13. nukeykt

    Doom and Strife source code restoration

    I don't recall changing any setting in my config file. DM me in discord, you can find me in chocolate doom server
  14. nukeykt

    Doom and Strife source code restoration

    I used vanilla dosbox 0.74-3 myself. Maybe you need reset disk cache in dosbox? (ctrl+f4) EDIT: btw, which revision of Doom you're building?
  15. nukeykt

    Doom and Strife source code restoration

    relative to DOBUILD.BAT. In my setup I have 2 folders: one for watcom and one for doom. In watcom folder I have 9.5b + TASM.EXE in BINW folder. In doom folder I have 2 folders: doom tree and dmx. Watcom is mounted on C drive and Doom on D drive. Thus DOBUILD.BAT is located at D:\DOOM\DOBUILD.BAT, dmx_r.lib is at D:\DMX\DMX37\LIB\DMX_R.LIB
  16. nukeykt

    Doom and Strife source code restoration

    did you put files in dmx37 subfolder? so lib file path will be ..\dmx\dmx37\lib\dmx_r.lib
  17. nukeykt

    Doom and Strife source code restoration

    TASM is part of Borland C. DMX code was leaked some time ago. Original link gone shortly after it became known. This post has mirror of dmx.zip. https://www.doomworld.com/forum/post/1521395
  18. nukeykt

    Doom and Strife source code restoration

    It doesn't, Apogee Sound System uses MIDI as native music format, thus if input music is in MIDI format APODMX will send it to ASS as is. For MUS music it converts it to MIDI under the hood.
  19. nukeykt

    Doom and Strife source code restoration

    Some reverse engineering work was involved actually. Heretic for example rewrote video subsystem completely, so I had to reverse engineer it instead. Also comparison between original and reconstructed EXE for the most part was done by using dissassembler output. Yeah, there're some substational differences between Apogee SS+APODMX and DMX. APODMX does not implement all the DMX features (FM double voices, CODEC/ENSONIQ support, GSS sounds, etc.), but it should be good for general use. Good question. I guess it could be called PCDoom again, heh. Actually it started as PCDoom-v3, but then I suggested NY00123 to include this to gamesrc-ver-recreation instead.
  20. nukeykt

    Doom and Strife source code restoration

    Watcom compiler and Turbo assembler are needed to compile these sources. See notes-restoration.md file for recommended compiler versions. I'm aware of its existence. but I don't have much desire/experience on reversing NextStep apps.
  21. Sorry for bumping this thread. Raptor lead dev recently went through raptor art files livestream and overpainted versions of this picture was there.
  22. https://doomwiki.org/wiki/DOOM2.EXE#Final_Doom
  23. nukeykt

    Duke Nukem 64 PC port

    Hi, I've added Duke Nukem 64 support to Rednukem (port of BUILD engine games based on Duke3D codebase using EDuke32 technology). You need to put Duke Nukem 64 cartridge ROM dump(Eu or USA version) into your Rednukem folder. Optionally you can add MIDI tracks from DUKE3D.grp or music folder from Megaton Edition and put into same directory. Splitscreen and multiplayer modes are not implemented and i'm not sure if i'll implement them at all. I would thank Fox, Hendricks266, TerminX, Maxi Clouds, NY00123, oasiz and Dzierzan for their help, suggestions and contributions. Video: https://www.youtube.com/watch?v=yh48FPXKuNM You can get latest build of Rednukem here: https://lerppu.net/wannabethesis/
×