Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 5 6 [7] 8 9 ... 28

Author Topic: Dwarf Fortress 0.43.04 Released  (Read 106538 times)

NCommander

  • Bay Watcher
  • Dwarven Military Master
    • View Profile
    • SoylentNews
Re: Dwarf Fortress 0.43.04 Released
« Reply #90 on: June 21, 2016, 07:14:53 pm »

I took a look at this more in-depth, and I suspect we're crashing on exit because of a C runtime mismatch between SDL and Dwarf Fortress.The other support libraries might also be effected. Dumping the imports table for SDL.dll shows its linked against msvcrt.dll, which is the system C runtime, and not supposed to be used by userland appliactions. The creation dates suggest these libraries were compiled nearly 7 years ago.

I can't get the crash-on-exit for me, probably because I'm running Windows 10, and I don't have easy access to a Windows 7 machine at the moment. Can someone post a crash dump? Its a pain to enable on Windows, and this is the best article I can find on the subject: https://www.veritas.com/support/en_US/article.TECH74145; if someone wants to drop in #dfhack and ping me, I'll be glad to try and talk them through the process.


Got one, thanks!
« Last Edit: June 21, 2016, 07:45:24 pm by NCommander »
Logged
Quote from: TheFlame52
Fucking hell man, you aren't just getting the short end of the stick, you're being beaten with it.
Quote from: NRDL
Is your plan really to flush water into hell, and have the CARP marines fight them without threat of flame or disease?  If so, you are awesome, and one of the greatest DF military visionaries I've seen yet ( not that I've seen that many, or any, for that matter )

Libash_Thunderhead

  • Bay Watcher
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #91 on: June 21, 2016, 07:20:00 pm »

Logged

Toady One

  • The Great
    • View Profile
    • http://www.bay12games.com
Re: Dwarf Fortress 0.43.04 Released
« Reply #92 on: June 21, 2016, 07:57:26 pm »

Quote from: mifki
Btw, old runtime DLLs can not be removed from DF package so that they don't cause confusion.

I couldn't parse this -- they can't be removed or they should be removed?  I wasn't sure if one of my old fmod dlls somehow connected back to them or whatever nightmare scenarios come up.

I've been handling pre-64bit errors and warnings all day.  I should know if a day or two how much trouble there will actually be will basic saving and loading and whatever else...  then we can throw 64 bit dlls into this stew and work it all out.
Logged
The Toad, a Natural Resource:  Preserve yours today!

mifki

  • Bay Watcher
  • works secretly...
    • View Profile
    • mifki
Re: Dwarf Fortress 0.43.04 Released
« Reply #93 on: June 21, 2016, 08:11:16 pm »

Quote from: mifki
Btw, old runtime DLLs can not be removed from DF package so that they don't cause confusion.

I couldn't parse this -- they can't be removed or they should be removed?  I wasn't sure if one of my old fmod dlls somehow connected back to them or whatever nightmare scenarios come up.

I've been handling pre-64bit errors and warnings all day.  I should know if a day or two how much trouble there will actually be will basic saving and loading and whatever else...  then we can throw 64 bit dlls into this stew and work it all out.

Oops, can NOW be removed. I don't see fmod or any other dlls using them. Btw, fmod.dll isn't used as well, only fmodex.dll is used.
EDIT: fmod.dll is used by legacy version, and fmodex.dll by SDL version.

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #94 on: June 21, 2016, 08:15:38 pm »

Incidentally, I don't have a fort with one handy, and naturally dfhack isn't available so I can't fake one up, has anyone checked artifact armor damage, or if you know offhand, Toady? I would guess they don't take damage.
Logged
Engraved here is a rendition of an image of the Dwarf Fortress learning curve. All craftsdwarfship is of the highest quality. It depicts an obsidian overhang which menaces with spikes of obsidian and tears. Carved on the overhang is an image of Toady One and the players. The players are curled up in a fetal position. Toady One is laughing. The players are burning.
The VectorCurses+1 tileset strikes the square set and the severed part sails off in an arc!

NCommander

  • Bay Watcher
  • Dwarven Military Master
    • View Profile
    • SoylentNews
Re: Dwarf Fortress 0.43.04 Released
« Reply #95 on: June 21, 2016, 08:25:03 pm »

So I'm rebuilt SDL to use VC14's runtime which still caused a crash for my tester. FMOD is also built against the system libc which might be problematic and maybe related, but I can't easily remove it from the Windows build to test. I need to get going but I did manage to coax windbg to pull out the full exception information from the minidump I got; this is for the basic DF binary.

http://pastebin.com/ppmhLABb

Toady can probably work with the PDBs to determine what offset is causing the crash (I can post instructions on how to do that in a bit). I talked with Quietust, and what looks like is happening is Dwarf Fortress goes to exit, signals to the C library its time to go, then deconstructors get called, and something goes boom. The actual fault is an NX exception. I'm still trying to convince windbg to give me useful information; I struggle with it every time I have to use it.
Logged
Quote from: TheFlame52
Fucking hell man, you aren't just getting the short end of the stick, you're being beaten with it.
Quote from: NRDL
Is your plan really to flush water into hell, and have the CARP marines fight them without threat of flame or disease?  If so, you are awesome, and one of the greatest DF military visionaries I've seen yet ( not that I've seen that many, or any, for that matter )

Random_Dragon

  • Bay Watcher
  • Psycho Bored Dragon
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #96 on: June 21, 2016, 08:30:09 pm »

...ahah! I think I now have body materials for megabeasts at a level that won't easily fall apart in a few hits from mundane wildlife. >w>

breadman

  • Bay Watcher
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #97 on: June 21, 2016, 08:37:33 pm »

Looking in Dependency Walker, the following DLLs appear to be required:
msvcp140.dll
vcruntime140.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
On Windows 8.1, I saw errors for msvcp140.dll before downloading it, then vcruntime140.dll, and now api-ms-win-crt-runtime-l1-1-0.dll, so I'd guess they'll all need to be included unless we're expected to install something.
Logged
Quote from: Kevin Wayne, in r.g.r.n
Is a "diety" the being pictured by one of those extremely skinny aboriginal statues?

Quietust

  • Bay Watcher
  • Does not suffer fools gladly
    • View Profile
    • QMT Productions
Re: Dwarf Fortress 0.43.04 Released
« Reply #98 on: June 21, 2016, 08:53:09 pm »

I've traced through the crash I'm getting, and it's happening when SDL terminates the "call_loop" thread started in main(). The actual crash came from NtTerminateThread inside ntdll.dll, so I'm suspecting memory corruption of some sort - AppVerifier might be able to help you track it down.
« Last Edit: June 21, 2016, 08:59:06 pm by Quietust »
Logged
P.S. If you don't get this note, let me know and I'll write you another.
It's amazing how dwarves can make a stack of bones completely waterproof and magmaproof.
It's amazing how they can make an entire floodgate out of the bones of 2 cats.

Thundercraft

  • Bay Watcher
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #99 on: June 21, 2016, 10:58:46 pm »

Quote
Allowed new citizens with some previously site-wide occupations to be reassigned

Does this refer to new migrants? Or visitors that applied for and was granted citizenship? I thought visitors granted citizenship could not be assigned to an occupation.

Quote
Allowed some site-wide occupations for dwarves

Site-wide? ??? Does this mean there are new occupations which apply to the entire fort instead of a specific location?
Logged

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #100 on: June 22, 2016, 12:04:21 am »

Derp on my part, I hadn't noticed that waaaaay back I had changed the [ARMOR_LEVEL:x] values for stuff while trying to see what effect it had, and upon changing them back to the vanilla ones I was able to get hearthpeople and such to generate with armor properly!
Logged
Engraved here is a rendition of an image of the Dwarf Fortress learning curve. All craftsdwarfship is of the highest quality. It depicts an obsidian overhang which menaces with spikes of obsidian and tears. Carved on the overhang is an image of Toady One and the players. The players are curled up in a fetal position. Toady One is laughing. The players are burning.
The VectorCurses+1 tileset strikes the square set and the severed part sails off in an arc!

DAOWAce

  • Bay Watcher
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #101 on: June 22, 2016, 12:43:46 am »

Probably doesn't need to be said, but I'm saying it anyway!

Applications compiled with Visual Studio 2015 need a new VC++ redistribute package installed.

This should come with modern games compiled with it (which gets automatically installed when installing said games), which is why some people are not having issues.

Basically, install the updated VC++ Redist from Microsoft for full compatibility with modern applications.

https://www.microsoft.com/en-us/download/details.aspx?id=48145

Everyone (on Windows) should realistically have this installed. Both files if you're on a 64bit operating system, since many applications are still 32bit.
« Last Edit: June 22, 2016, 12:51:32 am by DAOWAce »
Logged

Max™

  • Bay Watcher
  • [CULL:SQUARE]
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #102 on: June 22, 2016, 01:06:15 am »

Incidentally, if there is armor which you don't want to be worn regularly unless specified, armor level seems to control that spawning more accurately now.

Still curious if artifact stuff gets worn or not.
Logged
Engraved here is a rendition of an image of the Dwarf Fortress learning curve. All craftsdwarfship is of the highest quality. It depicts an obsidian overhang which menaces with spikes of obsidian and tears. Carved on the overhang is an image of Toady One and the players. The players are curled up in a fetal position. Toady One is laughing. The players are burning.
The VectorCurses+1 tileset strikes the square set and the severed part sails off in an arc!

NCommander

  • Bay Watcher
  • Dwarven Military Master
    • View Profile
    • SoylentNews
Re: Dwarf Fortress 0.43.04 Released
« Reply #103 on: June 22, 2016, 01:11:58 am »

I'm putting my debugging notes up for Toady in the hopes it helps him find the crash on exit bug:

  • My gut feeling is there is either a heap corruption bug, or one of DF's third-party modules needs to be updated for the new compiler.
  • Running Windows' heap debugger against the release binaries didn't flush any out, but the DF debugging build is more likely to catch such a bug if it exists.
  • The crash is exclusive to SDL/Win32. I ran the legacy win32 build through AppVerify and couldn't get a crash there.
  • fmodex.dll is linked against msvcrt.dll, this is a big no-no for userland appliactions. It may be a contributing factor; this is also true of several other of the dependency DLLs such as SDL
  • The crash does not happen consistently on Windows 10/x64 for me out of the box.
  • You can however get the same crash to happen by setting Application Verificar for Dwarf Fortress.exe, then enabling all Basics checks. The crash I get with this setup is identical to the one I've extracted from the minidump I posted earlier
  • If you run AppVerifier, you'll get an exception close to startup. This is because fmodex.dll grabs a HANDLE and leaks it. This can be safely "continued" through, and the intro movie will start I don't believe Visual Studio can see verifers debug messages, but they do show up in WinDbg.
  • I fished out the source code for SDL-1.2, and rebuilt it against Visual Studio 2015, which is now correctly linked against the VC15 runtime. I need to do the same for SDL_image/etc to make sure I can clear out as many msvcrt.dll instances as I can.

I'll take another crack at isolating this later. Hope these notes help somewhat.
Logged
Quote from: TheFlame52
Fucking hell man, you aren't just getting the short end of the stick, you're being beaten with it.
Quote from: NRDL
Is your plan really to flush water into hell, and have the CARP marines fight them without threat of flame or disease?  If so, you are awesome, and one of the greatest DF military visionaries I've seen yet ( not that I've seen that many, or any, for that matter )

Chase

  • Bay Watcher
  • I like video games
    • View Profile
Re: Dwarf Fortress 0.43.04 Released
« Reply #104 on: June 22, 2016, 01:45:33 am »

Derp on my part, I hadn't noticed that waaaaay back I had changed the [ARMOR_LEVEL:x] values for stuff while trying to see what effect it had, and upon changing them back to the vanilla ones I was able to get hearthpeople and such to generate with armor properly!

We've let toady down. I want to order him a pizza now :'(


Sorry Mr. Amphibian
Logged
Fantasy World Simulation Enthusiast
Pages: 1 ... 5 6 [7] 8 9 ... 28