Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Should this be made into one of the new DFHack plugins? (This is not binding)

Yes, I want to be able to use it with the DFHack console
- 288 (45.6%)
No, I like the stand alone QT version
- 140 (22.2%)
Both
- 204 (32.3%)

Total Members Voted: 631


Pages: 1 ... 63 64 [65] 66 67 ... 106

Author Topic: Runesmith - A DC like tool  (Read 366070 times)

Truean

  • Bay Watcher
  • Ok.... [sigh] It froze over....
    • View Profile
Re: Runesmith - A DC like tool
« Reply #960 on: February 25, 2011, 12:43:54 pm »

Toady doesn't *know* or *make* the offsets per se. Offsets are actually really just numbers that specify how far from the beginning of a program an address is, so to find something's location in memory you take the offset for what you want to look at and then add that to the base address of the programs stack frame (little box? of memory). So while he couldn't just tell us, what he could do is dump the pointers to things like the creature vector which would mean we wouldn't have to sit and sift through DF's memory.

So as an example, say we knew where toady lived and we wanted to get from there to the nearest shop. Consider toady's to be the beginning of the program and the location of the shop to be an offset, it would be much faster if he told us where the shop was in relation to his house than if we had to search every street manually.

I hope I simplified it enough :)

Offset... off ...set. How far off is the thing you want set from some starting point. 

Your definition is better informed and clearly more accurate. Do you think there is a reasonable way to persuade Toady to "tell us where the shop is in relation to his house,"  is so we don't have to sit and sift?
Logged
The kinda human wreckage that you love

Current Spare Time Fiction Project: (C) 2010 http://www.bay12forums.com/smf/index.php?topic=63660.0
Disclaimer: I never take cases online for ethical reasons. If you require an attorney; you need to find one licensed to practice in your jurisdiction. Never take anything online as legal advice, because each case is different and one size does not fit all. Wants nothing at all to do with law.

Please don't quote me.

sizeak

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #961 on: February 25, 2011, 12:55:33 pm »

Maybe, I was thinking something like a petition or a pledge list or something where people could say "right, if you make this easier for use, we'll each donate $5, it's not much but there are 500 of us". No one would have to donate if he didn't do it, but if he did, he'd get a lot of reward donations for it.
Logged
Runesmith - http://www.bay12forums.com/smf/index.php?topic=59056.0 - A Dwarf Companion like tool

Truean

  • Bay Watcher
  • Ok.... [sigh] It froze over....
    • View Profile
Re: Runesmith - A DC like tool
« Reply #962 on: February 25, 2011, 02:42:05 pm »

Maybe, I was thinking something like a petition or a pledge list or something where people could say "right, if you make this easier for use, we'll each donate $5, it's not much but there are 500 of us". No one would have to donate if he didn't do it, but if he did, he'd get a lot of reward donations for it.

Yeah, the only problem I see with that would be people signing the list and then not donating the $5....

I lied, another problem I see is that it would then be easier for people to illegitimately copy his work. :(
Logged
The kinda human wreckage that you love

Current Spare Time Fiction Project: (C) 2010 http://www.bay12forums.com/smf/index.php?topic=63660.0
Disclaimer: I never take cases online for ethical reasons. If you require an attorney; you need to find one licensed to practice in your jurisdiction. Never take anything online as legal advice, because each case is different and one size does not fit all. Wants nothing at all to do with law.

Please don't quote me.

Aranador

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #963 on: February 25, 2011, 06:21:35 pm »

Actually - *IF* Toady wanted to do anything even remotely like support this - he would build in callable functions to the program.  It would represent a change in design strategy - and could even lead to splitting the UI from the 'core' program which would in turn open the door for 3rd party graphical UIs.  In other words - he wouldn't bother to support memory hacks, he'd go ahead and support data manipulation tools.  Or he'd directly code in cheatie bits and side step the need for all this.

But currently DF is programmed as a monolithic slab of code.  Toady wants to write the program of his dreams, and I imagine he has less of an interest in doing other stuff at user request when they'd take such a massive reprogramming effort.


Do not get me wrong - I loved Runesmith.  It was an absolutely brilliant, and amazingly useful tool - especially for setting up a succession fort with dwarves for the players - or my favorite - turning a possession into a fey mood.  But it is gone now - it wasn't Toady's masterpiece, and there is no reason to expect Toady to devote any of his time to Runesmith.
« Last Edit: February 25, 2011, 06:24:42 pm by Aranador »
Logged

JanusTwoface

  • Bay Watcher
  • murbleblarg
    • View Profile
    • jverkamp.com
Re: Runesmith - A DC like tool
« Reply #964 on: February 25, 2011, 06:28:00 pm »

Actually - *IF* Toady wanted to do anything even remotely like support this - he would build in callable functions to the program.  It would represent a change in design strategy - and could even lead to splitting the UI from the 'core' program which would in turn open the door for 3rd party graphical UIs.  In other words - he wouldn't bother to support memory hacks, he'd go ahead and support data manipulation tools.  Or he'd directly code in cheatie bits and side step the need for all this.
Problem with this (same idea comes up every so often, prolly's been mentioned before in this thread) is that if you have 3rd parties maintaining the interfaces / 3rd party tools, what happens when DF significantly updates? The 3rd party tools have to update as well. If any of the maintainers looses interest, they we're immediately back to just the core game. Except people are going to want to blame Toady that their favorite 3rd party tool doesn't work...

Personally, I think it's worth the risk, but so far as I've heard, Toady doesn't. And in the end, it's really only his decision that matters. :)
Logged
You may think I'm crazy / And I think you may be right
But life is ever so much more fun / If you are the crazy one

My blog: Photography, Programming, Writing
Novels: A Sea of Stars, Confession

Rumrusher

  • Bay Watcher
  • current project : searching...
    • View Profile
Re: Runesmith - A DC like tool
« Reply #965 on: February 25, 2011, 08:15:10 pm »

Actually - *IF* Toady wanted to do anything even remotely like support this - he would build in callable functions to the program.  It would represent a change in design strategy - and could even lead to splitting the UI from the 'core' program which would in turn open the door for 3rd party graphical UIs.  In other words - he wouldn't bother to support memory hacks, he'd go ahead and support data manipulation tools.  Or he'd directly code in cheatie bits and side step the need for all this.
Problem with this (same idea comes up every so often, prolly's been mentioned before in this thread) is that if you have 3rd parties maintaining the interfaces / 3rd party tools, what happens when DF significantly updates? The 3rd party tools have to update as well. If any of the maintainers looses interest, they we're immediately back to just the core game. Except people are going to want to blame Toady that their favorite 3rd party tool doesn't work...

Personally, I think it's worth the risk, but so far as I've heard, Toady doesn't. And in the end, it's really only his decision that matters. :)
won't this mean third party tools need to drop their source code as well? so that when they drop off the face of the earth someone can pick up their past work. kinda like how Dwarf companion creator Bart. helps out Sizeak on his version of his work, and the Dwarf therapist/Dfhack members work hard on getting those offsets updated for the next release.
Logged
I thought I would I had never hear my daughter's escapades from some boy...
DAMN YOU RUMRUSHER!!!!!!!!
"body swapping and YOU!"
Adventure in baby making!Adv Homes

telamon

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #966 on: February 25, 2011, 10:13:28 pm »

Actually - *IF* Toady wanted to do anything even remotely like support this - he would build in callable functions to the program.  It would represent a change in design strategy - and could even lead to splitting the UI from the 'core' program which would in turn open the door for 3rd party graphical UIs.  In other words - he wouldn't bother to support memory hacks, he'd go ahead and support data manipulation tools.  Or he'd directly code in cheatie bits and side step the need for all this.
Problem with this (same idea comes up every so often, prolly's been mentioned before in this thread) is that if you have 3rd parties maintaining the interfaces / 3rd party tools, what happens when DF significantly updates? The 3rd party tools have to update as well.

WARNING: Programming rant

Well, if we want to get into programming paradigms... not exactly.
If there's anyone here (besides me) who programs in an object-oriented language, you'll know the concepts I'm thinking of. When a person writes a library or a chunk of code (at least following OOP paradigm), they try to separate interface from implementation. This means that they create a unified interface for the code that controls how the code's users will be able to access that code, and the people who will write stuff based on their code only need to know how to operate the interface. They don't need to know what steps the interface parts take to get the job done (the implementation that powers the interface); only the code writer need worry about that. By sealing the implementation off from the users of your code, you ensure that they can only access it in ways that you can control. This also means that, if you decide to change your code, the users of that code don't need to rewrite their programs, because your interface didn't change (even if the things that that interface does to your internal code have changed). Of course, sometimes the interface has to change to accommodate new stuff, and that's how it goes.

It's like driving a car. When you drive a car, you hop in, put on your seat belt, and then you have a series of controls to operate the car: steering wheel, pedals, various other systems, etc. You don't need to know the exact specs on the car, and who was responsible for milling the third piston cylinder in the engine block, because these things are irrelevant to you. All you need to know how to do is operate the car (its interface), and you trust that the car itself (the implementation) will do the rest. If the car maker decides to switch from one engine type to another (four stroke to two stroke, who knows), you don't need to learn a whole new way to drive a car and get a whole new license, as long as the old system can still operate this newly changed engine.
Of course, there are times when you will want to understand some of how the car works. If you need to move big cargo, for example, it's good to know how much torque your engine can output, because you need to know if you can move that stuff with the car. (This is like a sorting algorithm; the implementation of the sorting algorithm makes a big difference in speed.) And sometimes, you need to just do things from the ground up. A racecar driver probably has a team that builds the car with him/her, or contracts out special parts from manufacturers and assembles the car independently, because they need to optimize and perfect every little bit, to squeeze every drop of oomph out of their car. They can't afford to get some consumer car because the implementation, in such a case, is simply too important to let someone else handle it.

As an even more relevant example, look at DF itself. We don't have to care how DF works, as long as we know how to play. As long as Toady makes sure that certain keys have certain effects, we don't worry about how exactly he codes those functions of the game, because they do what we want. Toady can change the code itself, and as long as the controls are the same, we can still play the game. Of course, as new concepts are added to the game, new controls are added in for players to work with these elements, and these are things we have to learn. For example, back in the days of 2d DF, the leap to 3d DF was quite significant. *big* changes like this would obviously require a bit of a reboot.
In this case, we are worried about more than the interface, because we want to manipulate things that aren't available in the interface (that's the point of tools like Runesmith). In addition, we don't want DF to lag so much that it's unplayable, so we need to know "enough" about its code to be assured that, when we open up our fort, it won't crash instantly from the two thousand kittens we have wandering through it.

tl;dr Good programming for this kind of situation separates the interface from the implementation, so updates would not break the interface layers (unless they were truly groundbreaking updates, in which case it's justified). Maxima or Mathematica work in this way - you have a kernel underneath that does the work, and interchangeable interfaces for users to operate the kernel.
Of course, Toady has the last word, and if the system isn't already programmed to work like this, we're talking about an explosive revision - months of refactoring and re-engineering to code that (currently) works pretty well for the end user. Converting all your code to make it fit a whole new system is... an intense task, to say the least. It would be awesome if it happened; personally though I'd prefer that the game's arc development continue as it's going, because there's some interesting stuff coming up as I understand.

Just a rant from a semi-experienced hobbyist programmer.
« Last Edit: February 25, 2011, 10:16:13 pm by telamon »
Logged
Playing DF on Windows 98 since.... ?
At 55 frames per minute.

Jay

  • Bay Watcher
  • ☼Not Dead Yet☼
    • View Profile
Re: Runesmith - A DC like tool
« Reply #967 on: February 25, 2011, 10:23:54 pm »

Do not get me wrong - I loved Runesmith.  It was an absolutely brilliant, and amazingly useful tool - especially for setting up a succession fort with dwarves for the players - or my favorite - turning a possession into a fey mood.  But it is gone now - it wasn't Toady's masterpiece, and there is no reason to expect Toady to devote any of his time to Runesmith.
Why are you saying this in the past tense?
It's not dead, just can't be updated until we have working offsets.
Quote from: sizeak, previous page
Also: Runesmith isn't dead at all, it's just missing offsets for the newer versions. I just play .16 instead personally since it works fine with it :D
Logged
Mishimanriz: Histories of Pegasi and Dictionaries

Truean

  • Bay Watcher
  • Ok.... [sigh] It froze over....
    • View Profile
Re: Runesmith - A DC like tool
« Reply #968 on: February 26, 2011, 04:51:49 am »

Do not get me wrong - I loved Runesmith.  It was an absolutely brilliant, and amazingly useful tool - especially for setting up a succession fort with dwarves for the players - or my favorite - turning a possession into a fey mood.  But it is gone now - it wasn't Toady's masterpiece, and there is no reason to expect Toady to devote any of his time to Runesmith.
Why are you saying this in the past tense?
It's not dead, just can't be updated until we have working offsets.
Quote from: sizeak, previous page
Also: Runesmith isn't dead at all, it's just missing offsets for the newer versions. I just play .16 instead personally since it works fine with it :D

Yeah, that's like calling all utilities dead. Stonesense isn't dead; DFHack isn't dead; this isn't dead. Just because it doesn't have "pop-in-the-microwave" ready to eat timing doesn't mean it's dead. Free. Hell, with twitter, I know people too lazy to read past the second line of this post. They suck, and by definition won't know to be offended. :P
Logged
The kinda human wreckage that you love

Current Spare Time Fiction Project: (C) 2010 http://www.bay12forums.com/smf/index.php?topic=63660.0
Disclaimer: I never take cases online for ethical reasons. If you require an attorney; you need to find one licensed to practice in your jurisdiction. Never take anything online as legal advice, because each case is different and one size does not fit all. Wants nothing at all to do with law.

Please don't quote me.

telamon

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #969 on: March 04, 2011, 06:13:46 pm »

I don't play .19 personally, but has anybody tried hack's new creature offsets on runesmith? They work for .19 apparently (not .18, but I haven't tried).
Logged
Playing DF on Windows 98 since.... ?
At 55 frames per minute.

Dreggon

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #970 on: March 05, 2011, 03:56:16 am »

If I had any idea how, I'd try and make it work.
Logged

sizeak

  • Bay Watcher
    • View Profile
Re: Runesmith - A DC like tool
« Reply #971 on: March 05, 2011, 08:32:48 am »

V0.1.8 has been released to be DF 0.31.19 compatible

The download link has been updated to the new version but I haven't tested all the offsets yet!
Logged
Runesmith - http://www.bay12forums.com/smf/index.php?topic=59056.0 - A Dwarf Companion like tool

peterix

  • Bay Watcher
    • View Profile
    • Dethware
Re: Runesmith - A DC like tool
« Reply #972 on: March 05, 2011, 11:00:25 am »

Awesome.
Let me know if there's anything wrong :)
« Last Edit: March 05, 2011, 12:17:45 pm by peterix »
Logged

Jay

  • Bay Watcher
  • ☼Not Dead Yet☼
    • View Profile
Re: Runesmith - A DC like tool
« Reply #973 on: March 05, 2011, 12:00:20 pm »

All skills in my fort are reported as "Unknown [255]", and if I write any other changes I make, all of their skills get set legendary (presumably to level 255)
FAKE-EDIT: I should test it without my mods.
EDIT:  Works fine in vanilla.
EDIT2: Bah, now it's working on the modded version too.  ???

EDIT3: In any case, Runesmith crashes when you try to edit moods.
« Last Edit: March 05, 2011, 12:51:10 pm by Jay »
Logged
Mishimanriz: Histories of Pegasi and Dictionaries

Truean

  • Bay Watcher
  • Ok.... [sigh] It froze over....
    • View Profile
Re: Runesmith - A DC like tool
« Reply #974 on: March 05, 2011, 12:57:18 pm »

Thank you to those who update these programs; we enjoy them greatly. :)
Logged
The kinda human wreckage that you love

Current Spare Time Fiction Project: (C) 2010 http://www.bay12forums.com/smf/index.php?topic=63660.0
Disclaimer: I never take cases online for ethical reasons. If you require an attorney; you need to find one licensed to practice in your jurisdiction. Never take anything online as legal advice, because each case is different and one size does not fit all. Wants nothing at all to do with law.

Please don't quote me.
Pages: 1 ... 63 64 [65] 66 67 ... 106