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


  • Content count

  • Joined

  • Last visited


About zokum

  • Rank

Recent Profile Visitors

706 profile views
  1. zokum

    ZokumBSP development

    Surprise 25 year anniversary release. http://doom2.net/zokum/zokumbsp/fetch Mostly speed optimizations and better debugging output.
  2. zokum

    Chocolate Doom

    This shouldn't be a problem. Just start up whatever registers keypresses and mouse movement as soon as the game starts, and let the player have all of the rest of the loading to "quickstart" some movement. A minimum load sequence of say 2 seconds would be nice as the load process would probably become pretty instant on a modern system, making it hard to get the key presses done in time for the gameplay start. Extremely fast starts is probably a problem with vanilla Doom as well, but you could always mitigate this with stupid solutions like putting the game on a slow network drive or a slow usb stick and have cache turned off etc.
  3. zokum

    Chocolate Doom

    This won't affect demo playback I think. The bug is that Chocolate Doom doesn't properly register all key presses very early in the game. Choco handles the movement instructions just fine internally, it plays back demos correctly. It just doesn't register that these keys have been pressed. The problem might lie elsewhere in the stack of how keypresses are handled, outside of Chocolate Doom and inside a library.
  4. zokum

    Chocolate Doom

    It would be interesting to see if this regression is something that exists in the non-source Linux versions of the game. Does this problem exist in the the early source ports based on the 1.10 source? Maybe the DOS versions have this minor advantage over the Linux ports? If this is the case, this minor gameplay change would be an interesting find to document in the wiki.
  5. zokum

    Chocolate Doom

    From the first tic I think. If you look at the screenshot, SL40 is missing from the first two ticks, but the turn and move forward are registered correctly.
  6. zokum

    Things about Doom you just found out

    That piece of code is there to make the boss monster audible no matter where you are. I think this tweak makes the most sense on e2m8, where there's a high chance you will wakup up the cyber by first attacking the lost souls and the boss will be far away. On the other maps it isn't all that important. It got carried over into Doom 2, so map08 has that slightly different audio model as well. The game just checks if it's map 8, regardless of what episode, and Doom 2 has one episode internally.
  7. zokum

    Chocolate Doom

    IPX support is a very cool addition. A doom port with some sort of API could finally allow for some decent client side bots to play against with the original executable on relevant hardware :) Something I have always wanted since i tried similar things with Quake in the mid 90s. Client bots "cheat" a lot less, they don't do voodoo stuff like picking up weapons from afar, shoot too fast etc like the Reaper bot in Quake did. I think I have a 2xP150 machine with 128 meg somewhere. That would make for a great retro machine. Very unusual config, but it should be able to run a lot of games, although some games would probably choke on the amount of memory.
  8. zokum

    ZokumBSP development

    I've been ill for a week so development has crawled to a halt. Any spare brain cycles I have had has been used to watch the chess world championship. Here's what I plan to do for the next version: * Add new linedef pseudo-types. * Add parameter-linedef type. * Dummy sector support. * Fix 32bit blockmap support and use it internally for reject without optimizations to avoid problems. * Mystery features that are fairly pointless. * A few 24bit color tweaks to better colorize the output. * Better "quiet" output settings for use from tools that do not display the text output anyway, like Doombuilder etc.
  9. As always, this is also a test wad for port developers. Ideally all the data should be handled just like doom2.exe handles it, or better. I don't think this will be troublesome for ports, but experience has taught me that ports can have some odd code changes and optimizations.
  10. Warning: This is a technique for Doom compatible maps. If you're mapping for Boom, Eternity, 3dge, (insert favourite port here), etc, you might not need this. This has only been tested in Chocolate Doom. Block Rocking Bytes, version 1.2 update! http://doom2.net/zokum/brb/zokblok1-2.zip Map01 to map03 information The maps have not changed since the last release. Map 04 information The term oversized map has been coined for maps that would generate a too big blockmap with conventional techniques. The term outside in this context refers to the area outside the normal play area where the players and monsters roam. In this case the map spans such a big area that the entire map would make the blockmap size about 111kilobyte. This is far larger than the conventional limit of about 65k with current tools. This map has a blockmap of less than 9 kilobytes, despite being about 20000 by 20000 game units big. The map is so large and open that in a few places you can reach max drawing distance limits. This can be fixed by making a more interesting map design where you can't stand in the southwest corner and see all the way up to the far northeast corner of the map etc. I am sure someone can build something way nicer than the 5-10 minutes I spent on making this and trimming it down so that draw distance problems weren't too bad. This is a technical concept map, not an architecture map. You get this oversized effect by tagging the outside architecture linedefs with the tag 999. This excludes these lines from the blockmap and also from the area the blockmap spans. There will be a linedef type added for this at some point to make it easier to remember and use in editors. If you look at the map, the blockmap only spans and has full collission detection for small earth area in the center of the map. Outside of this the collission detection should work fine vs floors and ceilings, but not walls. Care has to be taken when designing maps to avoid this becoming an immersion breaking problem. For an outer wall, you should be able to tag the outside edge, it's enough that the inner edges are collidable by being on the blockmap. ZokumBSP doesn't quite build reject maps for such large maps correctly, so for the time being just build with -rz, I will try to fix this. There is a very minor bug in the latest released ZokumBSP where it uses vertex 0 as the base values for leftmost, rightmost, topmost, bottom vertex. This can create a larger blockmap if vertex 0 is only used for excluded outside walls. This can be circumvented by having vertex 0 in the main play area of a map. This is already fixed in the source on GitHub. The command line i used was: zokumbsp -rz overs001.wad -o testing.wad This is something that I've been researching for only a few hours after having thought about it now and then for a few days, so there might be some problems that show up with this approach. Hopefully people can safely play around with this a bit and create som really great vistas in their maps.
  11. zokum

    ZokumBSP development

    Here's what it looks like in 16 color mode: As for speed: ./zokumbsp -b- -r- -na=mw=2m=b doom2.wad map11 This build previously took 2 minutes and 36 seconds for the BSP part, and now takes less than 23 seconds.
  12. zokum

    ZokumBSP development

    I've been busy coding, I think there will be a new release soon. Nothing exciting, but some important stuff and quality of life fixes. *Sped up the bsp multi-algorithm a fair bit, 5-6 times at least. *Big speedup of the default bsp algorithm, especially on the bigger maps. *I have decided to turn on -nu as a default option. This fixes a lot of problems with invisible floors. *There's been output fixes to make it easier to see how close many of the entries are near the limits. * Many minor fixes and tweaks to the output. Hopefull this will work fine on both Linux and Windows. *Better summary when using -sm (m=multiple). *Switch to show all entry stats except totals, -sa (a=all). *Minor color tweaks when using -c on Linux.
  13. Id outsourced some of the soundstuff and aparently also the first version of the networking code. By doing this, they could concentrate on some of the more interesting features they had planned for the game. I'm not sure about Wolfenstein 3d, but it is aparently very picky about the soundblaster support. Many cards with sb emulation do not work with this game, so having a card that works in wolfenstein 3d is aparently a gold standard of emulation. If this was the case, it would seem very reasonable to just outsource the soundcard support and get it to run with well-tested code that worked with many soundcards. The DMX library didn't quite live up to what they had envisioned, but newer versions of the game did get support for more soundcards like the Pro Audio Spectrum and AWE 32 etc. I would also say that the OPL midi instruments that come with this library are quite decent, even if the implementation is a bit buggy if one tries to make different sounds. This stuff is well documented in another thread here on doomworld. All in all it seems id tried to outsource a fair bit of stuff and use well-tested components instead of doing everything on their own so they could spend more time on features, testing and innovative code solutions.
  14. The problem with VLB was that it ran at the same frequency as the bus. A 50MHz cpu that wasn't clock doubled would mean a VLB gfx card and other things ran at that speed as well. Many cards couldn't handle this, and there were issues with stability and image degradation. That is why the 486 DX2 66MHz runs at a double of 33, the 75MHz at 33MHz * 3 and the 100MHz at 33*3. Doubling a 50MHz bus to run a 100MHz cpu would have led to the same problems you had with your 50MHz system. Thhere were 80MHz systems that are 2x40MHz and a lot of other variations, but these were non-intel cpus. Other vendors produced a slew of 486-compatible chips with various speeds and enhancements. The VLB was a simple solution while they were waiting for the PCI standard, it was tightly tied to the 486 CPU. Before this one basically had ISA at ~8MHz and at most 16bit. PCI was a much more cozy 32bit 33MHz interface, and with amuch better form factor and the way it worked behind the scenes was better. I am keeping EISA and MCA out of the picture due to costs. For home consumers though, VLB was the preferred choice. DirectX was an ok way to standardize things like video modes, but the VESA group had mostly fixed this, check out things like scitech display doctor. The main thing about DirectX was that it did this for video, sound, modems, mice, keyboards, joysticks, netowrking etc. One unified interface instead of having to test tons of configurations, support weird and badly documented hardware. Early versions of DX weren't the best, but after a few versions things started to work well enough for it to be a usable standard. DX also opened up the market for smaller vendors, since things like Soundblaster emulation was no longer a required standard for soundcards etc. Games could have midi support without a ton of work. Doom was released 4-5 years before this was a working standard, so it relied on supporting the most common configuration. A few soundcards, a basic vga mode and a non-fpu cpu. A notable exclusion of the Doom soundcard support is the lack of support for the Roland MT32. It would have been interesting to hear the soundtrack optimized for an MT32, with new samples and custom instruments and all that jazz that the MT32 supported. Dune 2 had a soundtrack written especially for the MT32, try listening to that one compared to the GM version.
  15. The Pentium 60 and 66 MHz were introduced in March 1993. I think they could run the game at 35 fps at least some of the time. These were at that time extremely highend machines, and I doubt they were a platform id targetted. They're more Final Doom and Quake platforms. As for Mode X, it's not really one specific resolution, it's a set of different resolutions that require a bit of manual fiddling to set up. As for the hi-color mode, here's a fair bit of documentation with screenshots from version 0.4: