Doom2 v1.92 - no more visplanes and drawsegs overflows

xttl said:

I guess you (entryway) instead opted to just move visplanes and drawsegs to the end of BSS and left some unused space to where they originally were?

yes you're right

Share this post


Link to post

Test this version please (sources are included)

                   : old limit => new limit
---------------------------------------------------------
visplanes          : 128 => 1024
drawsegs           : 256 => 2048
vissprites         : 128 => 1024
game-saving buffer : 180224(0x2c000) => 2883584(0x2c0000)

Share this post


Link to post

entryway said:
Test this version please (sources are included)

Scythe Map26 looks good; apparently all the monsters are visible. Nuts hangs with a venetian blinds loading (both Doom2 and the earlier "1.92" load it, though, with the disappearing sprites.)

I saved a game at the start of AV Map20 -skill 4 without issues, and I tried Gothic99: The first map hangs (perhaps that's expected given the map's monstrous specs.) Maps 3 to 8 load fine, no issues, but Map02 gets W_CacheLumpNum -2054038528 >= numlumps (the earlier 1.92 loads maps 2 to 8 without issue; no numlumps error on Map02.)

Share this post


Link to post

I tried with HR2 map32 and it crashes on my 2 computers... one is Win98 and other WinXP.

Share this post


Link to post
myk said:

but Map02 gets W_CacheLumpNum -2054038528 >= numlumps (the earlier 1.92 loads maps 2 to 8 without issue; no numlumps error on Map02.)

VinceDSS said:

I tried with HR2 map32 and it crashes on my 2 computers... one is Win98 and other WinXP.

try
CRACKER.EXE\Doom2 v1.9 => v1.92.2\vissprites\Undo

Share this post


Link to post

I have made new release without removal of limit of sprites because it has some problems with fixups

Share this post


Link to post

entryway said:
I have made new release without removal of limit of sprites because it has some problems with fixups

Yeah, once that crack was disabled/removed it worked fine, even on Map01 of Gothic99! I've been try a bunch of (otherwise plain) big maps and didn't have problems.

Share this post


Link to post

Cool stuff, but I'm wondering: Would it actually have been possible to do this before the source release? Or did it rely on knowing details of the engine that were only discovered from examing the sources?

Share this post


Link to post

There is nothing impossible, but it would be slightly more complex and require higher skills. I have increased restriction for visplanes about one year ago, using only sources codes and HIEW (HEX editor) and it wasn't difficult at all. One hour of work.

P.S. I have a question: does it work under DOS?

Share this post


Link to post

entryway said:
does it work under DOS?

I tested it booting to the DOS integrated into Windows 98 (DOS v7.0, I think they call it), and it works. Don't see why it wouldn't work on v5.0 or v6.x, as well.

Any news on the VISSPRITES hack, by the way? Would it be possible?

Share this post


Link to post

doom2-plus-1.92.4

limit                   : old => new
-------------------------------------------------
visplanes[MAXVISPLANES] : 128 => 1024 (*8)
drawsegs[MAXDRAWSEGS]   : 256 => 2048 (*8)
SAVEGAMESIZE            : 180224 => 2883584 (*16)
activeplats[MAXPLATS]   : 30 => 7680 (*256)

Share this post


Link to post

The worth of having vanilla exactly as it is with greater limits is undescribable. Great job as always.

Share this post


Link to post
myk said:

and I tried Gothic99: The first map hangs (perhaps that's expected given the map's monstrous specs.) Maps 3 to 8 load fine, no issues, but Map02 gets W_CacheLumpNum -2054038528 >= numlumps (the earlier 1.92 loads maps 2 to 8 without issue; no numlumps error on Map02.)

This WAD (from the archive) kills any version of doom2-plus on any maps

Share this post


Link to post

doom2-plus-1.92.5

limit                   : old => new
-------------------------------------------------
visplanes[MAXVISPLANES] : 128 => 1024 (*8)
drawsegs[MAXDRAWSEGS]   : 256 => 2048 (*8)
SAVEGAMESIZE            : 180224 => 2883584 (*16)
activeplats[MAXPLATS]   : 30 => 7680 (*256)
vissprites[MAXVISSPRITE] : 128 => 1024 (*8)
I think all the important limits are increased. Isn't it?

Share this post


Link to post

You sir are god.

EDIT: While all important limits are covered it would be nice for a UDoom version for those UDoom PWADs with a lot of stuff.

Share this post


Link to post

entryway said:
I think all the important limits are increased. Isn't it?

I'd say so. Hah, I started laughing maniacally when I saw the visstrite hack working!

As for what HobbsTiger1 said, I'm assuming the Doom executable has all the same info but starting at different offsets... so it shouldn't be hard to build it.

Share this post


Link to post

entryway said:
This WAD (from the archive) kills any version of doom2-plus on any maps

You have to patch it with DeuSF, both sprites and flats, or remove the new sprites and rename FF_END to F_END, or else patch only the sprites and rename FF_END. Then all the maps work fine.

Share this post


Link to post

The new vissprite limit does seem to be adequate for most purposes. In Nuts.wad you still get a few vanishing, while Grove still has too many trees for it (though the darkness there with software rendering is at least as much of a problem in itself). I noticed a few sprites vanishing in Vile's original h232 demo, but surely not enough to be a problem.

I don't see much point extending the maxintercepts and maxspechits limits, and can't think of others of this type that could usefully be changed. I presume that Z_MALLOC errors are a different thing altogether? (My nutsp045 demo falls victim just as I'm pressing the exit switch.)

Share this post


Link to post
myk said:

As for what HobbsTiger1 said, I'm assuming the Doom executable has all the same info but starting at different offsets... so it shouldn't be hard to build it.

Yes. Two global replacements:
10 C0 05 00 => 00 70 17 00 (2 from 5)
10 A2 05 00 => 00 80 16 00 (all)
and increasing of the segment's size in header

Share this post


Link to post
Grazza said:

I don't see much point extending the maxintercepts and maxspechits limits

It can be done, but it will kill compatibility

Grazza said:

and can't think of others of this type that could usefully be changed

// 4 players, 4 buttons each at once, max.
#define MAXBUTTONS		16
But I do not know any maps/demos where it falls outside the limits

Share this post


Link to post

// 4 players, 4 buttons each at once, max.
#define MAXBUTTONS		16
But I do not know any maps/demos where it falls outside the limits [/B]



I can remember one old map with a lot of shootable buttons next to each other that crashed here. But that was so long ago that I don't remember what map it was.

Share this post


Link to post
Graf Zahl said:

I can remember one old map with a lot of shootable buttons next to each other that crashed here.

Crashed? It should show the message "P_StartButton: no button slots left!"

Share this post


Link to post

I see there was some potentially relevant discussion here.

Glancing through the source, I notice MAXSLIDEDOORS, MAXEVENTS and MAXANIMS, but I don't know exactly what or how important they are.

Share this post


Link to post
Grazza said:

I see there was some potentially relevant discussion here

activeceilings (MAXCEILINGS)

I did not wish to increase activeceiling limit because it does not cause error in DOS EXE and will lead to loss of compatibility

Share this post


Link to post
entryway said:

Crashed? It should show the message "P_StartButton: no button slots left!"



I consider that a crash. :D

Share this post


Link to post
Graf Zahl said:

I consider that a crash. :D


Theres quite a difference between a crash and halt or exit on error.

Share this post


Link to post

entryway said:
I think all the important limits are increased. Isn't it?

What about the max sound channels? Currently it's 8. If it's possible it probably shouldn't be raised over the value Boom uses (32, because both rely on Sound Blasters that might not support more channels).

Share this post


Link to post

ntvdm can emulate doom.exe to a t, not including sound, but if you could hack directsound support I would want your babies.

Share this post


Link to post
Csonicgo said:

ntvdm can emulate doom.exe to a t, not including sound, but if you could hack directsound support I would want your babies.


Get VDMSound

Share this post


Link to post

Hey, I'd like to thank entryway for making this program. I used it to practice on av map20 in tyson style, so if I ever complete that he deserves some credit for it. Also, I tried playing scythe2 with it but it did not work. It had a problem with numlumps or something. Is it possible to edit the program to make it work with scythe2?

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