Jump to content

Question About ZDoom Console


Summer Deep

Recommended Posts

I'm playing the '1000 Lines 2' megawad in ZDoom, UV continuous format. All was fine until the end of MAP06, when the game repeatedly crashed before it could autosave. Thus I could only start MAP07 with an idclev pistol start.

 

A reasonable solution seemed to be to use the ZDoom Console's commands to restore my health and ammo to what it had been at the end of the previous map. This went fine, except that I could find no way of reinstating my rockets. The commands 'give rocket', 'give rockets', 'give rckt' and 'give rckts' all were rejected as invalid. Could anyone please suggest the correct form to use here?

 

A it turned out, this wasn't such a big deal, as plenty of boxes of rockets turned up near the start of the level.

 

Any suggestions also as to why the game may have crashed? MAP06 marks the end of the first episode in this wad, so I'm wondering whether there was some kind of death exit that ZDoom couldn't handle? I'm also wondering whether crashes in this sourceport will become more common with new wads, as ZDoom is no longer being developed.

Share this post


Link to post

ZZDoom doesn't crash, it's not a death exit. Those maps were developed for a recent GZDoom version.

About the console i think they are rocketammo and rocketbox.

Share this post


Link to post
2 minutes ago, drfrag said:

ZZDoom doesn't crash, it's not a death exit. Those maps were developed for a recent GZDoom version.

About the console i think they are rocketammo and rocketbox.

Wiki says it was developed for Vanilla, not specifically GZDoom.

Share this post


Link to post
12 minutes ago, drfrag said:

Interesting but there's some specific support for GZDoom as i get some errors in the console.

Well it contains a zmapinfo lump apparently.

 

EDIT: Some errors about Author and compat_explode2.  Seems ZDoom doesn't have these in its definitions while GZDoom does (no issues at all)

Edited by Gibbon

Share this post


Link to post

Thanks for that - 'Rocketbox' proved to be a serviceable command, though interestingly 'give rocketbox 10' simply gives the player 10 rockets, not 10 boxes of rockets.

 

The other stuff all sounds very interesting, but I'm afraid it's gone a bit over my head....

Share this post


Link to post

The correct way would be to put give rocketbox this gives you a box of rockets (5 rockets).  Adding an integer (a number) will give you that amount of rocket ammo.

Edited by Gibbon

Share this post


Link to post
1 hour ago, drfrag said:

Must be something fixed later. But does it crash only on windows or everywhere?

Everything.

 

Here is a backtrace from macOS on a full debugging session.  WE should probably fix it.  I'll get started.

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00000001002fa966 rzdoom`DIntermissionScreen::Init(this=0x00000001172c6bd0, desc=0x00000001172c6850, first=true) at intermission.cpp:114:6
   111 {
   112 texname = GStrings[texname+1];
   113 }
-> 114 if (texname[0] != 0)
   115 {
   116 mBackground = TexMan.CheckForTexture(texname, FTexture::TEX_MiscPatch);
   117 mFlatfill = desc->mFlatfill;
Target 0: (rzdoom) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001002fa966 rzdoom`DIntermissionScreen::Init(this=0x00000001172c6bd0, desc=0x00000001172c6850, first=true) at intermission.cpp:114:6
    frame #1: 0x00000001002fb700 rzdoom`DIntermissionScreenText::Init(this=0x00000001172c6bd0, desc=0x00000001172c6850, first=true) at intermission.cpp:293:9
    frame #2: 0x00000001002fd2f5 rzdoom`DIntermissionController::NextPage(this=0x00000001172c0b00) at intermission.cpp:781:13
    frame #3: 0x00000001002fd079 rzdoom`DIntermissionController::DIntermissionController(this=0x00000001172c0b00, Desc=0x00000001172c0b90, DeleteDesc=true, state='\x01') at intermission.cpp:742:6
    frame #4: 0x00000001002fa736 rzdoom`DIntermissionController::DIntermissionController(this=0x00000001172c0b00, Desc=0x00000001172c0b90, DeleteDesc=true, state='\x01') at intermission.cpp:731:1
    frame #5: 0x00000001002fda6e rzdoom`F_StartIntermission(desc=0x00000001172c0b90, deleteme=true, state='\x01') at intermission.cpp:905:53
    frame #6: 0x000000010030221c rzdoom`F_StartFinale(music="$MUSIC_READ_M", musicorder=0, cdtrack=0, cdid=0, flat="$BACKEP2", text="1K22TEXT", textInLump=0, finalePic=0, lookupText=16, ending=false, endsequence=(Index = 0)) at intermission_parse.cpp:877:3
    frame #7: 0x00000001000a3085 rzdoom`G_WorldDone() at g_level.cpp:1100:5
    frame #8: 0x000000010025c18d rzdoom`WI_updateNoState() at wi_stuff.cpp:1140:3
    frame #9: 0x000000010025fbc0 rzdoom`WI_Ticker() at wi_stuff.cpp:2064:3
    frame #10: 0x0000000100099725 rzdoom`G_Ticker() at g_game.cpp:1205:3
    frame #11: 0x00000001000724e4 rzdoom`TryRunTics() at d_net.cpp:1942:4
    frame #12: 0x000000010006495e rzdoom`D_DoomLoop() at d_main.cpp:1003:5
    frame #13: 0x0000000100067e06 rzdoom`D_DoomMain() at d_main.cpp:2622:4
    frame #14: 0x000000010000c29d rzdoom`(anonymous namespace)::OriginalMain(argc=8, argv=0x0000000100680170) at i_main.mm:205:3
    frame #15: 0x000000010000c016 rzdoom`-[ApplicationController applicationDidFinishLaunching:](self=0x0000000100f27bc0, _cmd="applicationDidFinishLaunching:", aNotification="NSApplicationDidFinishLaunchingNotification") at i_main.mm:311:7
    frame #16: 0x00007fff2070eb13 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
    frame #17: 0x00007fff207aa5a9 CoreFoundation`___CFXRegistrationPost_block_invoke + 49
    frame #18: 0x00007fff207aa524 CoreFoundation`_CFXRegistrationPost + 496
    frame #19: 0x00007fff206dfd8e CoreFoundation`_CFXNotificationPost + 736
    frame #20: 0x00007fff21451bb8 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 59
    frame #21: 0x00007fff22f29040 AppKit`-[NSApplication _postDidFinishNotification] + 305
    frame #22: 0x00007fff22f28d92 AppKit`-[NSApplication _sendFinishLaunchingNotification] + 208
    frame #23: 0x00007fff22f25f31 AppKit`-[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 541
    frame #24: 0x00007fff22f25b87 AppKit`-[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 665
    frame #25: 0x00007fff2147d306 Foundation`-[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 308
    frame #26: 0x00007fff2147d176 Foundation`_NSAppleEventManagerGenericHandler + 80
    frame #27: 0x00007fff264fa7f3 AE`___lldb_unnamed_symbol71$$AE + 2184
    frame #28: 0x00007fff264f9f0e AE`___lldb_unnamed_symbol70$$AE + 34
    frame #29: 0x00007fff264f2c23 AE`aeProcessAppleEvent + 448
    frame #30: 0x00007fff289718a2 HIToolbox`AEProcessAppleEvent + 54
    frame #31: 0x00007fff22f20210 AppKit`_DPSNextEvent + 2046
    frame #32: 0x00007fff22f1e545 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1364
    frame #33: 0x00007fff22f10869 AppKit`-[NSApplication run] + 586
    frame #34: 0x000000010000c946 rzdoom`main(argc=8, argv=0x00007ffeefbff7f0) at i_main.mm:539:2
    frame #35: 0x00007fff2063cf3d libdyld.dylib`start + 1

 

Share this post


Link to post

Like i said it was fixed and luckily it doesn't crash in LE. 2.8.1 was a solid release but there were many bugs like in any other release. I applied hundreds of fixes but unfortunately that added other bugs, a 2.8.2 release would have been possible but i thought it wasn't worth (so i didn't propose it). Besides LE was very messy at first.

Try "- fixed: DIntermissionScreen::Init did not handle non-existent strings in the string table and crashed on a NULL pointer." by Graf, that must be it.

Share this post


Link to post

It's not stealing xD , you could cherry-pick it from the ZDoom repo. Besides there wasn't a conflict with that one.

Share this post


Link to post
2 minutes ago, drfrag said:

It's not stealing xD , you could cherry-pick it from the ZDoom repo. Besides there wasn't a conflict with that one.

Yeah, I love how it is really simple.  A nice clean fix that makes sense.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...