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


  • Content count

  • Joined

  • Last visited

About SaladBadger

  • Rank
    Senior Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. SaladBadger

    Things about Doom you just found out

    regarding enemies shooting projectiles above or under the player, Linguica spent some time analyzing that and determined that the main problem is mostly the inaccurate nature of P_AproxDistance. The approximation will be far enough from the actual distance in some cases that the game gives the projectile either too much or too little velocity on the Z axis.
  2. SaladBadger

    Things about Doom you still don't understand

    honestly this is more of a "I haven't done sufficient study" thing more than anything but I'm still not sure what it is in the mess of polar coordinates Doom does for perspective-correct texture mapping in the outer loop of the wall and floor/ceiling renderers. it's a little more clearcut in the prerelease code where everything is way more by the book, but Carmack's polar coordinate stuff for the release game proves more confusing.
  3. Later versions added support for MIDI directly, otherwise you had to use MUS. Any MIDI had to fit the limitations imposed by the MUS format, though. As mentioned Hexen also added CD music.
  4. for whatever it's worth, I need to make a test level to verify this (I wrote a level converter to convert the final level format into the alpha one, but it's a little annoying to get modern level editors to let you overlap sectors without being smart about it) but I think the alpha renderers would have allowed simple room over room. Kinda moot, since thing->thing collisions are in 2D so if there was a thing in the lower room it would block things in the upper room). The limitations otherwise would probably be similar to earlier Build games, like Duke Nukem 3D, where you can't see both the top and bottom of the stack at the same time.
  5. SaladBadger

    Things about Doom you just found out

    I've finally been going back and cleaning up my Doom 0.5 reverse engineering project, for the sake of integrating the DOS systems code and perhaps also eventually do the same for 0.4. One thing this cleanup entails is reorganizing the source so that the way types are defined more closely matches what the debug information shows, seemingly the Doom source at the time, instead of having one big "doomdef.h" containing every public definition, had a bunch of smaller headers for each namespace. This cleanup is mostly done, but I need to validate that things are matching. But anyways, for the neat-ish things, while working on this I noticed a couple of structure and enum definitions I missed in my first pass. The most interesting is for psprites. In the released Doom game there's only 2 psprite layers, the weapon layer and the muzzle flash layer. But the alpha versions have 11. Only 2 are actually used anyways, but the identities of the other layers are interesting. We knew they had shell casings at some point that ended up unused, but do we really need 9 layers for it? Well, this enum clears up things... typedef enum { ps_smoke, ps_flash, ps_weapon, ps_shell1, ps_shell2, ps_shell3, ps_shell4, ps_gore1, ps_gore2, ps_gore3, ps_gore4, NUMPSPRITES } psprnum_t; Well, the shell casings are there, but now I'm super curious what the smoke and gore layers would entail, and if any sprites were ever made for them. Sadly, I suspect we'll never know for sure, the psprite sources weren't released with Romero's stuff from 2015, and it's been made pretty clear that zenimax wasn't happy with Romero distributing that stuff anyways. May be worth emailing him anyways..
  6. I opened up a bug report for this What's happening is that objects are rendering with the wrong sector's lighting, for some reason.
  7. SaladBadger

    free(): invalid pointer on Chocolate doom

    PU_CACHE will tell Chocolate Doom that it's free to discard that allocation for something else if it runs out of memory. (which can potentially happen even on modern machines with lots of memory since it uses an 16 MB heap by default). PU_STATIC makes it stay in memory until explicitly freed. I think more context is needed to figure out what's going on with the allocations, since I'm not even sure why this would cause problems with C's free function
  8. SaladBadger

    FCAN sprite in Ultimate Doom IWAD?

    For some reason, they got stuffed at the end of the episode 2/3 sprite set, no idea why. Maybe they just thought they were going to use them for e4 but ended up not doing so. Somehow the projectiles for Doom 2 monsters also ended up in there
  9. not huge into the artstyle, but wow that remix of the original theme song is doing things for me, I'd love to have a full version of it.
  10. SaladBadger

    Things about Doom you just found out

    The control screen in Doom 2 on the GBA has this image, which seems to be of a PC source port rather than the actual GBA port. The thing I'm curious about is what port could this be? There's an extra menu item that wouldn't be there usually. It feels like it has that ZDoom yellow tint (though it could just as easily be due to the lower color depth on the GBA, and the weird palette they used) but I don't remember ZDoom ever having a really long option in the menu right above the Quit Game option.
  11. SaladBadger

    Partial Doom alpha network driver

    sheer laziness, that's about it. OpenWatcom did the job well enough and it runs in DosBox well enough (as well as the pcem virtual PC I use for further testing)
  12. SaladBadger

    Partial Doom alpha network driver

    heh, honestly I'm just fine with the satisfaction of getting this nonsense working in the first place. I got it working with Alpha 0.5, though I had to make some minor patches to the binary to make it work, since some refactoring broke the starting of net games. Sadly I misremembered and things that cross sectors still aren't linked. Also looking at adapting the network code from IPXSETUP, but at some point the novelty of it's wearing off so no idea if I'll get to the actual multiplayer state. Maybe for two players only.
  13. SaladBadger

    Partial Doom alpha network driver

    ... Well, kinda. It only generates random player commands for player 2 so far, since I wanted to verify that it works before I actually do anything, but amazingly it seems to: Doom 0.4 and 0.5 watch for a block of memory installed at an interrupt vector 0x60 to 0x68, and if it finds it will use that to hold some of the game state, including player commands. If it includes a vector number for network callbacks, it will treat the game as a netgame and run some extra code for synchronization. This driver synchronizes the fake player 2 with player 1 and then generates a random ticcmd, but hypothetically it shouldn't be hard to get this communicating over a network. I don't know if it'll stay synced at all, but I guess there's only one way to find out. My early source code and driver are here. Put it in your alpha 0.4 directory and run "ALPHANET" to start the game. This has only been tested in Dosbox-X and may not work on a real machine. I've also had problems with the alpha constantly crashing, I think due to leaky state between sessions, you may need to restart Dosbox in order to run it again. Otherwise, watch as player 2 zips off into the sunset and then finds some obscure physics bug to vanish until they randomly reappear again. ALPHANET.zip The source code has been compiled with a recently nightly build of OpenWatcom, can't comment on whether or not it'll work in any other version. The player will probably vanish the moment they leave the starting sector since the game doesn't have any code to relink the player. Alpha 0.5 does, so I'll probably adapt this to work with it.
  14. I've been curious if any emulator can run the Doom alpha's high color mode. The Dr. Dobbs overview on the Sierra High Color DAC mentions that the Tseng Labs ET4000 can do high color rendering, but trying it with a ET4000 emulated in pcem produces weird artifacts



    I also tried DosBox-X, which also emulates the ET4000, but the effect is even worse, with the screen being divided into a bunch of small tiles and flickering heavily. I don't know if the emulation is wrong or if Doom's high color mode is just incompatible.

    1. SaladBadger


      After playing with more devices, the Cirrus Logic CL-GD5429 is the closest I've gotten so far, but it's not 100% right, it seems to be wanting linear memory organization but Doom is using planar memory.


  15. SaladBadger

    Texture Archaeology

    Some of the greebles on the toy were made into wall textures, from what I remember