drfrag Posted December 6, 2019 Released another build with the demo desync accesing menus fix (fabian) and SmileTheory's P_FindNextHighestFloor() change. https://github.com/drfrag666/chocolate-doom/releases/download/2.5.0b/RUDE-2.5.0b-win32.zip 2 Quote Share this post Link to post
drfrag Posted December 7, 2019 (edited) @Quasar: I've reverted the medusa fix (with MBF code) and restored the original code and merged your emulation branch. Planisphere 2 doesn't crash either but there i don't see any effect. @fabian: Which compiler are you using? For me Planisphere 2 (2016 version) crashes with the VS 2017 build and i think it's the same code, the map uses DeepBSP nodes and seems it's a compiler bug related to subsectors loading. Edited December 7, 2019 by drfrag 0 Quote Share this post Link to post
TheNoob_Gamer Posted December 8, 2019 (edited) 14 hours ago, Voltcom said: Hey I'm intrigued by this port but what does it really do that makes it different than Crispy? It modifies some stuff like the pistol and has a new difficulty from LZDoom. Edited December 8, 2019 by TheNoob_Gamer 0 Quote Share this post Link to post
Gez Posted December 8, 2019 15 hours ago, Voltcom said: Hey I'm intrigued by this port but what does it really do that makes it different than Crispy? https://github.com/drfrag666/chocolate-doom/commits?author=drfrag666 This should give you an idea of the kind of changes that are specific to this fork. 0 Quote Share this post Link to post
fabian Posted December 8, 2019 22 hours ago, drfrag said: @fabian: Which compiler are you using? For me Planisphere 2 (2016 version) crashes with the VS 2017 build and i think it's the same code, the map uses DeepBSP nodes and seems it's a compiler bug related to subsectors loading. I know planisf2.wad, but I don't know what you mean by the 2016 version. Where can I find it? Also, do you mean that Crispy crashes upon loading the map or your own port? The compiler for windows builds should be some sort of mingw. You'll have to ask @fraggle for details, because the builds are created on his machine. 0 Quote Share this post Link to post
drfrag Posted December 8, 2019 (edited) I explained what this is about in the first post. Actually i've removed the new skill level from the menu in LZDoom, it's not the same and here i've done what i wanted to do. I think Unholy Massacre is great and quite challenging, nothing to do with nightmare, here you face double the monsters and ammo balance is very tight (and there's less health), you'd better use the pistol and even the punch as much as possible (i've tweaked them a bit for this skill) or try to leave some baddies alone. Now i want to make the switch to SDL2 if i get support to pay another internet connection (see the LZDoom thread). I can't remember where i got it (i think from a doomworld thread not idgames), there was a version from 2012 without nodes and that one doesn't work, the one from 2016 with DeepBSP nodes does both here and in Crispy. It runs in my fork with the MinGW build (release) but crashes with VS 2017, i suspect the same will happen with Crispy (AFAIK it's the same code for that stuff). https://www.doomworld.com/forum/topic/61701-planisphere-2/ Edited December 8, 2019 by drfrag 0 Quote Share this post Link to post
fabian Posted December 9, 2019 (edited) 17 hours ago, drfrag said: i suspect the same will happen with Crispy (AFAIK it's the same code for that stuff). Not necessarily, if you only pick the one commit that introduces a feature but not the follow-ups. Any chance to build a Crispy binary with VS2017 and see if that crashes, too? Edited December 9, 2019 by fabian 0 Quote Share this post Link to post
drfrag Posted December 9, 2019 Will try. I search and pick the following commits and compare the code. 0 Quote Share this post Link to post
drfrag Posted December 9, 2019 I've managed to compile Crispy after changing #include <doomstat.h> in r_swirl.c to #include "doomstat.h". As expected the crash is the same. BTW Crispy doesn't launch without the sound libs and why are you using libmad and not libmpg123? The medusa emulation works well but cybie2.wad hangs after a while. Crispy also hangs (5.6.2), i used the "chainsaw" a lot near the parking looking at the vehicles but seems it doesn't matter, may be it's the dehacked patch. > crispy-doom.exe!P_GroupLines() Line 791 C crispy-doom.exe!P_SetupLevel(int episode, int map, int playermask, skill_t skill) Line 1235 C crispy-doom.exe!G_DoLoadLevel() Line 857 C crispy-doom.exe!G_InitNew(skill_t skill, int episode, int map) Line 2418 C crispy-doom.exe!G_DoNewGame() Line 2222 C crispy-doom.exe!G_Ticker() Line 1110 C crispy-doom.exe!RunTic(ticcmd_t * cmds, boolean * ingame) Line 95 C crispy-doom.exe!TryRunTics() Line 798 C crispy-doom.exe!D_RunFrame(...) Line 508 C crispy-doom.exe!D_DoomLoop() Line 576 C crispy-doom.exe!D_DoomMain() Line 2397 C crispy-doom.exe!SDL_main(int argc, char * * argv) Line 79 C crispy-doom.exe!main_getcmdline(...) Line 177 C crispy-doom.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char * szCmdLine, int sw) Line 205 C + &segs 0x00d4876c {crispy-doom.exe!seg_t *segs} {0x043db79c {v1=0x03a93134 {x=45875200 y=-801374208 r_x=45875200 ...} ...}} seg_t * * + &segs[ss->firstline] 0x04c1b79c {v1=0xcdcdcdcd {x=??? y=??? r_x=??? ...} v2=0xcdcdcdcd {x=??? y=??? r_x=??? ...} offset=-842150451 ...} seg_t * i 0 int numsubsectors 17352 int - seg 0x04c1b79c {v1=0xcdcdcdcd {x=??? y=??? r_x=??? ...} v2=0xcdcdcdcd {x=??? y=??? r_x=??? ...} offset=-842150451 ...} seg_t * + v1 0xcdcdcdcd {x=??? y=??? r_x=??? ...} vertex_t * + v2 0xcdcdcdcd {x=??? y=??? r_x=??? ...} vertex_t * offset -842150451 int angle 3452816845 unsigned int + sidedef 0xcdcdcdcd {textureoffset=??? rowoffset=??? toptexture=??? ...} side_t * + linedef 0xcdcdcdcd {v1=??? v2=??? dx=??? ...} line_s * + frontsector 0xcdcdcdcd {floorheight=??? ceilingheight=??? floorpic=??? ...} sector_t * + backsector 0xcdcdcdcd {floorheight=??? ceilingheight=??? floorpic=??? ...} sector_t * length 3452816845 unsigned int r_angle 3452816845 unsigned int fakecontrast -842150451 int + seg->sidedef 0xcdcdcdcd {textureoffset=??? rowoffset=??? toptexture=??? ...} side_t * + ss 0x0424a6ec {sector=0xcdcdcdcd {floorheight=??? ceilingheight=??? floorpic=??? ...} numlines=4 firstline=...} subsector_s * ss->firstline 196608 int + ss->sector 0xcdcdcdcd {floorheight=??? ceilingheight=??? floorpic=??? ...} sector_t * 0 Quote Share this post Link to post
fabian Posted December 10, 2019 Looks like structs aren't properly packed when compiled with MSVC. Could you try if the following patch helps? --- a/src/doomtype.h +++ b/src/doomtype.h @@ -69,8 +69,12 @@ #define PRINTF_ARG_ATTR(x) __attribute__((format_arg(x))) #define NORETURN __attribute__((noreturn)) +#else +#if defined(_MSC_VER) +#define PACKEDATTR __pragma(pack(pop)) #else #define PACKEDATTR +#endif #define PRINTF_ATTR(fmt, first) #define PRINTF_ARG_ATTR(x) #define NORETURN @@ -78,6 +82,8 @@ #ifdef __WATCOMC__ #define PACKEDPREFIX _Packed +#elif defined(_MSC_VER) +#define PACKEDPREFIX __pragma(pack(push,1)) #else #define PACKEDPREFIX #endif 0 Quote Share this post Link to post
drfrag Posted December 10, 2019 Yep, that fixed it. Don't forget to change the include. BTW guys i still need help to get a new internet connection.:( 0 Quote Share this post Link to post
fabian Posted December 16, 2019 On 12/9/2019 at 9:18 PM, drfrag said: The medusa emulation works well but cybie2.wad hangs after a while. Crispy also hangs (5.6.2), i used the "chainsaw" a lot near the parking looking at the vehicles but seems it doesn't matter, may be it's the dehacked patch. What do you mean it "hangs", could you elaborate a bit? 0 Quote Share this post Link to post
drfrag Posted December 16, 2019 Exactly that, the application stops responding but it's not a crash. 0 Quote Share this post Link to post
drfrag Posted December 17, 2019 Uploaded another test build with the latest changes from SmileTheory's v0.99 PR and Quasar's medusa emulation (tested in cybie2.wad). I reverted my slowdown emulation since it made Planisphere 2 unplayable (it's full of medusas but you don't see them). I bet medusas will be slow on a pentium anyway. https://github.com/drfrag666/chocolate-doom/releases/download/2.5.0c/RUDE-2.5.0c-win32.zip 1 Quote Share this post Link to post
fabian Posted December 18, 2019 On 12/16/2019 at 6:02 PM, drfrag said: Exactly that, the application stops responding but it's not a crash. Is this with plain Crispy Doom or did you apply some patch? Sorry, but I cannot seem to reproduce this. Would you mind sharing a savegame or a screenshot of the critical location on the automap? 0 Quote Share this post Link to post
drfrag Posted December 18, 2019 Sorry seems it's gone now in 5.6.3, so it must have been fixed after 5.6.2. I was testing with Crispy 5.6.2 in a window on win10 64 bit. Hanging it took a while so i'm not completely sure it's gone. I was near the parking lot looking at the vehicles using the "chainsaw". 0 Quote Share this post Link to post
drfrag Posted December 24, 2019 (edited) @fabian I've managed to make Crispy 5.6.3 hang with cybie2 sawing a few guys in the basketball court through the fence here: https://imgur.com/a/6QCI5OS Edited December 24, 2019 by drfrag 0 Quote Share this post Link to post
drfrag Posted December 26, 2019 I suspect someting wrong with the dehacked patch, with break all under VS i get this wall of text for the main thread: > crispy-doom.exe!PIT_CheckThing(mobj_s * thing) Line 462 C crispy-doom.exe!P_BlockThingsIterator(int x, int y, boolean(*)(mobj_s *) func) Line 529 C crispy-doom.exe!P_CheckPosition(mobj_s * thing, int x, int y) Line 546 C crispy-doom.exe!P_TryMove(mobj_s * thing, int x, int y) Line 582 C crispy-doom.exe!P_Move(mobj_s * actor) Line 302 C crispy-doom.exe!A_Chase(mobj_s * actor) Line 786 C crispy-doom.exe!P_SetMobjState(mobj_s * mobj, statenum_t state) Line 80 C crispy-doom.exe!P_MobjThinker(mobj_s * mobj) Line 587 C crispy-doom.exe!P_RunThinkers() Line 113 C crispy-doom.exe!P_Ticker() Line 152 C crispy-doom.exe!G_Ticker() Line 1265 C crispy-doom.exe!RunTic(ticcmd_t * cmds, boolean * ingame) Line 95 C crispy-doom.exe!TryRunTics() Line 798 C crispy-doom.exe!D_RunFrame(...) Line 508 C crispy-doom.exe!D_DoomLoop() Line 576 C crispy-doom.exe!D_DoomMain() Line 2397 C crispy-doom.exe!SDL_main(int argc, char * * argv) Line 79 C crispy-doom.exe!main_getcmdline(...) Line 177 C crispy-doom.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrev, char * szCmdLine, int sw) Line 205 C blockdist 2621440 int damage -858993460 int solid -858993460 boolean + thing 0x034b470c {thinker={prev=0x034b4644 {prev=0x034b457c {prev=0x034b44b4 {prev=0x034b43ec {prev=0x034b4324 {...} ...} ...} ...} ...} ...} ...} mobj_s * unblocking false (0) boolean MF_SOLID MF_SOLID (2) mobjflag_t - thing 0x034b470c {thinker={prev=0x034b4644 {prev=0x034b457c {prev=0x034b44b4 {prev=0x034b43ec {prev=0x034b4324 {...} ...} ...} ...} ...} ...} ...} mobj_s * + thinker {prev=0x034b4644 {prev=0x034b457c {prev=0x034b44b4 {prev=0x034b43ec {prev=0x034b4324 {prev=0x034b425c {...} ...} ...} ...} ...} ...} ...} thinker_s x -299845216 int y -47773792 int z -4194304 int + snext 0x034b457c {thinker={prev=0x034b44b4 {prev=0x034b43ec {prev=0x034b4324 {prev=0x034b425c {prev=0x034b4194 {...} ...} ...} ...} ...} ...} ...} mobj_s * + sprev 0x00000000 <NULL> mobj_s * angle 1073741824 unsigned int sprite SPR_BOSS (42) spritenum_t frame 3 int + bnext 0x034c73d4 {thinker={prev=0x034c730c {prev=0x034c7244 {prev=0x034c717c {prev=0x034c70b4 {prev=0x034c6fec {...} ...} ...} ...} ...} ...} ...} mobj_s * + bprev 0x00000000 <NULL> mobj_s * + subsector 0x03394760 {sector=0x03280c18 {floorheight=-4194304 ceilingheight=12582912 floorpic=37 ...} numlines=...} subsector_s * floorz -4194304 int ceilingz 12582912 int radius 1310720 int height 3670016 int momx 0 int momy 0 int momz 0 int validcount 0 int type MT_BRUISER (15) mobjtype_t + info crispy-doom.exe!0x00d8fbd0 {doomednum=3003 spawnstate=527 spawnhealth=120 ...} mobjinfo_t * tics 3 int + state crispy-doom.exe!0x00d7775c {sprite=SPR_BOSS (42) frame=3 tics=3 ...} state_t * flags 1077936134 int health 120 int movedir 2 int movecount 1 int + target 0x034ad07c {thinker={prev=0x034acfb4 {prev=0x034aceec {prev=0x034ace24 {prev=0x034acd5c {prev=0x034acc94 {...} ...} ...} ...} ...} ...} ...} mobj_s * reactiontime 0 int threshold 0 int + player 0x00000000 <NULL> player_s * lastlook 0 int + spawnpoint {x=-4624 y=-760 angle=180 ...} mapthing_t + tracer 0x00000000 <NULL> mobj_s * interp 1 int oldx -299845216 int oldy -48560224 int oldz -4194304 int oldangle 1073741824 unsigned int thing->flags 1077936134 int unblocking false (0) boolean 0 Quote Share this post Link to post
fabian Posted December 27, 2019 If the hang is because of the dehacked patch, it should be reproducible in plain Choco as well. 0 Quote Share this post Link to post
fabian Posted December 30, 2019 Indeed, I just got it to freeze Choco in a similar manner. 0 Quote Share this post Link to post
drfrag Posted January 7, 2020 It was for PRBoom, the map wouldn't run in vanilla due to medusa (Crashes Choco). 0 Quote Share this post Link to post
fabian Posted January 7, 2020 I have created a savegame with Crisp which I can load in Choco without crahing, but of course the fence will look corrupted. I can still get it to hang in the exact same code loop, then. 0 Quote Share this post Link to post
drfrag Posted January 7, 2020 For me it didn't hang without the dehacked patch, may be the patch is bad but i doubt it hung in PRBoom. 0 Quote Share this post Link to post
fabian Posted January 7, 2020 I think it has to do with the patch removing the NOBLOCKMAP flag from certain projectiles, but a detailed analysis will have to wait. 0 Quote Share this post Link to post
fabian Posted January 13, 2020 This is the savegame. Just load, hit the attack key and stand still. cybie_sav.zip 0 Quote Share this post Link to post
drfrag Posted January 21, 2020 Does the savegame work with vanilla? Perhaps someone could try, if it hangs there it's not a bug. 0 Quote Share this post Link to post
drfrag Posted January 21, 2020 I've merged with Choco3 and it's working but needs testing. That's why i've released a test build. https://github.com/drfrag666/chocolate-doom/releases/tag/3.1.0pre Next i want to port Widescreen from Russian Doom but i want it to be an option and as less intrusive as possible so the idea is to make it work only at max screen size. And i want to add the mugshot (only) for that mode. 0 Quote Share this post Link to post
SilverMiner Posted January 29, 2020 Another source port that says it supports sigil. Argh. Sigil is vanilla compatible and there is no need to write additional part of code that just prints a "Sigil" word in the episode menu and some more. 0 Quote Share this post Link to post
fabian Posted January 29, 2020 10 minutes ago, SilverMiner said: Sigil is vanilla compatible [citation needed] 2 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.