Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Hello71

Pages: [1] 2 3 4
1
And finally, could you say a bit more about DF crashing when quitting therapist.  I've yet to experience it as therapist has closed without having this effect but I have yet to unpause a game with 38.1.  What use conditions are likely to trigger it, and possible workarounds for safe(ish) use with linux 64 in the meantime.
Writing strings on Linux replace the string data pointer with a buffer that was not properly allocated. This make DF crash when it try to deallocate the buffer, this can happen when quitting (destroying the string after saving), it doesn't seem to corrupt the save, or when replacing the string (changing the same string from the game after it was changed from DT). The safe workaround is to not change strings from DT.

I am experimenting with injecting a call to std::string::assign instead so the memory is managed correctly.

tip: ptrace is painful enough as it is, don't try to reimplement ld.so, I suggest just shell out to gdb. it will have minimal problems as long as you make sure that df is stopped by SIGSTOP and not just by ptrace attachment.

2
I suggest doing it incrementally. First write read_/write_raw that communicates with dfhack, then change the actual manipulations one by one.

Also, I suggested once to write df-structures using real C++ headers. Dunno what came of that, but I think it would make this easier (or not?).

If you have questions about DT's operation, you can ask me in #dwarftherapist on freenode.

3
Hello71, are you still reading this thread? While trying to merge everything, I discovered that you added some commits since I made my patches based on fd5d9a0. I cannot rebase my patches because db7016a broke the whole repo. You should really be more careful with your commits (and be more descriptive in the commit messages because they are really not helpful either). I was going to create a new upstream repo but I will wait for you tell me your plans for this project before going any further.

heh, I can hardly bother to actually work on it, you want useful commit messages? :P

that one I think I did dos2unix on all the files, and some other stuff too. I guess you could do git diff -w if you wanted to merge the other changes manually or something.

edit: I don't have any plans for continuing DT. I think dfhack has most of DT's functions already, or something? (I don't actually play DF)

4
Just if someone else stumbles over this: using the newest (0.43.05-r07) Lazy Newb Pack/ PeridexisErrant's Starter Pack with its default settings of dfhack will prevent DT from connecting to DF, at least on Windows.
To get it working you have to comment out the line
Code: [Select]
enable title-versionin the dfhack.init in or around line 214
The reason is probably that DT searches for a window with the name "Dwarf Fortress" and having the "title-version" plugin enabled changes the name of the window...

my fork searches for both window name "Dwarf Fortress" and executables named "Dwarf Fortress.exe".

5
After i downloaded the lastest LNP pack, i cant use Dwarf Therapist, it crashes every time it tries to connect to DF, any ideas on what it could be?
It's simply unstable. See the last 10 or so pages of this thread. I don't know why, sorry.

Hi,

I really like Dwarf Therapist because there's no easier way to organize 150 dwarves. However, I have no idea where to start using it for the latest 43.05, 64-bit version. I have downloaded the Peridexes' starter pack and the included Dwarf Therapist doesn't run. I've downloaded the 3.5.1X64 and 3.5.2X64 files linked here a couple pages back and it still doesn't work.

My VC redist is up to date, but I have no idea what is an opengssl or how is it relevant to dwarf therapist or where to get it.


Would it be possible to just put in one neat bunched up archive a fixed Dwarf Therapist for 64 bit, along with possible things needed to get it to run? Just something I could install and run with latest dwarf fortress? And get Splinterz to put it on the front page?

It's driving me nuts how completely fragmented it all is.

I am including my latest Dwarf therapist log:

Spoiler (click to show/hide)
From the log, it looks like DT started up and was able to read units from your fort. Are you sure that's the right log?

Anyway, I have no idea why it needs OpenSSL - I don't recall previous builds needing it. Assuming you're referring to the builds from http://www.bay12forums.com/smf/index.php?topic=122968.msg7392774#msg7392774, those are "43.5.1" and "4_35_2" (no idea why the version number formats are different). Splinterz didn't post those builds, he hasn't been online for over 4 months, and hasn't posted here for almost a year, so it's unlikely that he'll be able to work with those builds. PleaseBugMeNot has also disappeared after posting those (almost 3 months ago). Also, even if you do manage to get it working with OpenSSL, it seems to be pretty unstable for some people, so there's no guarantee that it would work.

for downloading memory layouts. splinterz added "updater" in newest DT commits

6
I am not particularly interested in working on DT at this point (mainly because DF is closed source, but good luck convincing toady to open it), but I would be willing to answer questions about DT internals and review (and possibly pull in) patches in #dwarftherapist on freenode.
I know what you mean, but it's probably best DF stays closed source. Far too often on open-source projects I'd get livid non-grateful developers blaming me for their workplace problems... their fault for using a free opensource utility/library in beta stage for their $$$ product in their workplace, then they have the nerve to blame me for their failure to meet deadlines and demand I immediately fix edge-case bugs which show up when it is integrated into *their*, not *my* systems for free!? I was idealistic before then, but I'm permanently turned off after those incredibly disrespectful experiences.

In Toady's case he'd probably just get a bunch of ripoff clones made by developers asking $10-20 on Steam for their rudimentary artwork/theme/style changes. It's happened with other open-sourced games, even when only a fraction of the codebase/art was open-sourced.

there are some good arguments for not opening source, but this isn't one of them. graphics packs already exist, and libgraphics is already "open", so poor-quality derivatives can already be made. the way to block this is with skillful licensing, not wholesale blocking. this isn't the place for such arguments though, topic is already 200+ pages.

I would hope he has made plans for who has stewardship of the game when he passes on.

maybe.

Also regarding the DT fork, the const function parameters in the DT code are best const for maintainability, as they both make the code clearer and make future accidental logic errors involving those parameters become compiler errors. It is good practice.

I disagree, there are legitimate reasons to modify value function parameters, and certainly "const int&" for a parameter that is kept local is at best make-work for the compiler (and human reader).

7
where can I get the most recent version of DT for DF x64 43.05.... confusion ensues when I read the posts here.

As far as I can tell there are a few experimental versions but nobody is maintaining a 64-bit Therapist yet.

On x64 linux DF 43.05 I've had the best luck with DanFritz's fork, due to a "participants" assertion failure he appears to have fixed: https://github.com/DanFritz/Dwarf-Therapist/commit/ea784aa347c618ce5ef21485f72c7995db6ea9bc

If you want the most recent version suitable for you, just look at the github's fork interface, and browse the recent forks. Realize they may just be fixing own their problems, e.g. x64 linux, not mac os: https://github.com/splintermind/Dwarf-Therapist/network Nobody appears to have a 43.05 x64 macos memory layout yet, you'd need to use an older DF in that case.

fwiw I fixed that better (probably) ages ago.

8
splinterz's binaries should work with latest 32-bit DF, as long as you put in a suitable INI (I dunno where from).

for 64-bit DF, there are at least two lines:

splinterz's x64 branch. dunno how well it works if at all.
my fork, independently 64-ified. I didn't add any memory layouts, you will need to get one from lethosor or make one yourself using dfhack. (I don't know how; ask lethosor) mostly works on Linux, apparently doesn't work on Windows. might work on Mac if you make a memory layout with dfhack.

I don't know which PleaseBugMeNot's is derived from. I am not particularly interested in working on DT at this point (mainly because DF is closed source, but good luck convincing toady to open it), but I would be willing to answer questions about DT internals and review (and possibly pull in) patches in #dwarftherapist on freenode.

9
@PleaseBugMeNot

I tried using your version on 0.43.05 64-bit (after importing the correct memory map) and it segfaults on reading dwarves. Here's a backtrace, if you get me a version with debug symbols I could get a better one.

Spoiler (click to show/hide)

why did you compile it in 32 bit mode

10
linux, 32 bit

Spoiler (click to show/hide)

why are you building 64-bit version on 32-bit machine

11
I think someone was working on 64-bit Windows support, but I don't know if there's a build anywhere.

I'm not aware of any issues that would prevent my branch from working on Windows, as long as a suitable memory layout is provided. (but I haven't tried it, so it *probably* doesn't work.)

I tried building on Windows and it fails on dfinstance.cpp:

Code: [Select]
D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstance.cpp: In static member function 'static DFInstance* DFInstance::newInstance()':
D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstance.cpp:127:34: error: invalid new-expression of abstract class type 'DFInstanceWindows'
     return new DFInstanceWindows();
                                  ^
In file included from D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstance.cpp:60:0:
D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstancewindows.h:33:7: note:   because the following virtual functions are pure within 'DFInstanceWindows':
 class DFInstanceWindows : public DFInstance {
       ^~~~~~~~~~~~~~~~~
In file included from D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstance.cpp:24:0:
D:/msys64/home/szymon/Dwarf-Therapist/src/dfinstance.h:137:19: note:    virtual USIZE DFInstance::write_string(VIRTADDR, const QString&)
     virtual USIZE write_string(VIRTADDR addr, const QString &str) = 0;
                   ^~~~~~~~~~~~
CMakeFiles/DwarfTherapist.dir/build.make:302: recipe for target 'CMakeFiles/DwarfTherapist.dir/src/dfinstance.cpp.obj' failed
make[2]: *** [CMakeFiles/DwarfTherapist.dir/src/dfinstance.cpp.obj] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/DwarfTherapist.dir/all' failed
make[1]: *** [CMakeFiles/DwarfTherapist.dir/all] Error 2
Makefile:105: recipe for target 'all' failed
make: *** [all] Error 2

g++ 6.3 on MSYS2

haha, I was too eager removing the const refs. fixed that particular issue.

12
I think someone was working on 64-bit Windows support, but I don't know if there's a build anywhere.

I'm not aware of any issues that would prevent my branch from working on Windows, as long as a suitable memory layout is provided. (but I haven't tried it, so it *probably* doesn't work.)

13
Can someone give me a link to Hello71's compiled build or his guide how to do so? Didn't find it in the thread.

it's on this page. (by 10 posts)

14
@Hello71, I saw your instructions post, I checked your github, I saw https://github.com/Hello71/Dwarf-Therapist/blob/DF2016/share/memory_layouts/linux/v0.43.05.ini and I started compiling. I only did some basic testing, but it seems to work for me when running with root privileges on Arch Linux 64-bit. Thanks a lot!

don't run as root, turn off yama ptrace (the security gains are basically non-existent while we still use X)

15
To all, when reporting issues, include the following information:

1. Exactly which DF version are you using? Not "latest", not "windows". "0.43.05 Windows 64-bit".
2. Exactly which DT version are you using? Not "latest", not "from the link" (what fucking link???). "37.0.0 from https://github.com/splintermind/Dwarf-Therapist/releases/" or "master from https://github.com/Hello71/Dwarf-Therapist", or better "c07ccde from https://github.com/Hello71/Dwarf-Therapist".
3. Exactly what memory layout are you using? "Included" if you didn't download one separately.

You don't have to be a cunt about it.

Version 0.43.05, 32-bit, as was suggested.
Windows 10, 64 bit,
The direct link that has been included in the very first post of this thread labeled "Latest Release", like anyone would.
The memory layout linked to me through lethosor.  (https://github.com/splintermind/Dwarf-Therapist/tree/DF2016/share/memory_layouts.)

firstly, I didn't even quote your post or reference you in mine, just stating useful points for problem reports that I can refer back to later if needed. second, this is free support for a free program. I don't expect you to know how to use sodding WinDbg, but it would be a lot easier if you at least tried to provide a precise problem report. you'll note that I fixed the problem that was reported with the exact error message without complaining. took me a while, but it was sort of a weird issue. so yeah, I'm a cunt for actually trying to help instead of just ignoring a terrible question, which is what I should have done.

try compiling splinter's DF2016 from source. if that doesn't work, pastebin your log.

Pages: [1] 2 3 4