v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "User talk:Rick"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
Line 321: Line 321:
  
 
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)
 
Are you sure that's right? Reveal.exe isn't working for me with this.--[[User:Eiba|Eiba]] 00:19, 25 February 2008 (EST)
 +
 +
Could someone please write how to find these addresses and offsets? I tried to figure it out but I must be doing something wrong.
 +
I used L. Spiro's Memory Hacking Software to search for strings in memory of dwarf fortress, but only managed to find address for DWARF_FORTRESS at 008D9A58 for version 176.38c. I can't find any other address. For example, when searching for string MAP I got almost 200 results (case insensitive) but none of them were on addresses beginning with 014. I don't have any idea how to search for offsets.
 +
Thanks in advance for any helpful information.

Revision as of 11:58, 27 February 2008

Requests

Hey there. Thanks for writing reveal.exe. It's made my dwarves' lives so much easier!

Do you take requests?

And is this the right place to ask? Runspotrun 20:32, 10 November 2007 (EST)

Yes, and yes. --Rick 20:49, 10 November 2007 (EST)
Excellent! Now, I don't know how many people would use it, but I'd love to see a utility that would allow me to choose the temperature/forest/shrub/surroundings/neighbours when starting out. I like to stick to the same sort of areas, but it can be a pain finding them on the map - if they exist at all. Problem is, I think most people take what they're given, region-wise... so I don't think it'd have much of an audience. What do you think? Runspotrun 20:55, 10 November 2007 (EST)
Er, I haven't just described startpoints.exe, have I? Runspotrun 21:01, 10 November 2007 (EST)
Well, if you're not averse to requests... A utility to activate the subterranean flag on indoor areas would be awesome for those of us who'd like to build surface castles in cold/freezing terrain without our dwarves dying of frostbite. -EarthquakeDamage 22:45, 10 November 2007 (EST)
I'd like a rock/gem/ore tool. Would be really neat. Especially the ore/gem one. Also, maybe water/magma creation tools if possible?--Spelguru 01:29, 11 November 2007 (EST)
Something similar to the old skills.exe would be great! --Vanan 11:44, 19 November 2007 (EST)
What I'd like is some way to search for a particular tile on the map. Probably the easiest thing for you to code is to have reveal.exe have an option where it prints the map data to a file in some simple text format (Just a simple list of 'Z,X,Y "tile code"' would be sufficient. mapping what tiles have what value would be nice, but not necessary.) I want to answer the question "Is the raw material for the item the possessed dwarf is asking for somewhere on my map, and if so, where?" --Warnold 23:08, 9 December 2007 (EST)
I would like to request something that teleports items. --Demosthenes 02:05, 16 December 2007 (EST)
Is it possible for a utility to remove excess stone? (name and amount in command line) --Jackard 07:35, 16 December 2007 (EST)

Wild Praise

Thank you so much for your incredible work! Your applications add so much fun to the game! --Vanan 13:56, 17 November 2007 (EST)


Astonishing response time for 33e! --Geofferic 01:04, 9 December 2007 (EST)

In reply to

Your statement to me on my page, "Don't subject your opinion unto others. (Though I think you were just trying to be funny...) --Rick 03:54, 31 October 2007 (EDT)"

Of course I was. But some people have no real sense of humor.

Also, some people believe they can do things they tell others NOT to do. Your statement is a perfect example of this. You tell me not to subject others to MY opinion, but in doing so you are subjecting me to YOUR opinion. Oh yes, you are one of the VIPs in the DF community, because you wrote a couple utilities. So I suppose I should be humble in your presence, and bow to someone so great. I would do that, but when I bow, I do it facing AWAY from that person, and I drop my trousers at the same time. Still want me to bow to your greatness?

I read other contributions here that voice their opinions the same as I did. I wonder if you said the same thing to all of them as well? Tho since I was able to read the pages they wrote, you clearly did not delete their words as you did mine. And while other entries I made were either deleted or edited, as I expected them to be, since I am not a great wiki writer, you were the only one to send me a somewhat nasty note.

Think whatever you like of me, but at least I was contributing, and trying to give a few smiles along the way. Seems to me tho, that DF is fun, and it's wiki should be too. And, from other pages I read, others feel the same way I do. Maybe you should take a look around at some of their pages, and lighten up yourself a bit? Maybe trade with the elves for a tame blue jay, and drop it down your shorts. If that doesnt get a giggle out of you, maybe you should go join the undead at one of their ruins?

Wow, way to blow up that up, I was just jesting. I think I'll leave your words here, Darknight. --Rick 19:25, 17 November 2007 (EST)
Oh, and for the record, I did not remove your message, someone else did that. Check the page history. --Rick 19:29, 17 November 2007 (EST)

heal.exe bug?

Hmm... I've found that heal -hurt doesn't work on fire men, at least in 33b. It sets all their body parts to red, but the fire man just keeps wandering around and scaring my poor witless dwarves. I haven't found a living fire man yet in 33c so I can't check. Runspotrun 06:59, 28 November 2007 (EST)

Are firemen immune to pain? Hurt just nukes bodyparts, not kills creatures, most creatures who feel pain will die from that, but I guess ones who don't won't. --Rick 12:08, 28 November 2007 (EST)
Just checked - yes they are. That'd explain it then, ta. Runspotrun 14:38, 28 November 2007 (EST)

INI?

Does anyone see anything obviously wrong about this? I used various comparisons to come to these values (as well as what the hex fellow posted in the memory hacking section), and editing them as such into the reveal.exe allowed me to get that program to function, but the ini isn't reenabling the executables on its own:

[address]
DWARF_FORTRESS=0x0089C414 ; correct
MENU_STATE=0x0124565C ; maybe
FOCUSED_CREATURE=0x00C39548 ; correct
CREATURE_VECTOR=0x01420A48 ; correct
MOUSE_X=0x008FF290 ; pretty sure should be 008FF288
MOUSE_Y=0x008FF294 ; pretty sure should be 008FF28C
MOUSE_Z=0x008FF298 ; pretty sure should be 008FF290
MAP_DATA=0x01462568 ; correct
MAP_X_COUNT=0x01462580 ; correct
MAP_Y_COUNT=0x01462584 ; correct
MAP_Z_COUNT=0x01462588 ; correct
STARTING_DWARF_COUNT=0x0078A54E ; wrong.  0078A554 (value actually is dword at 0078A555)
STARTING_POINT_COUNT=0x00789703 ; correct (value actually is word at 0078970A)

[offset]
MAP_DATA_DESIGNATION_OFFSET=0x0260 ; dunno
MAP_DATA_OCCUPANCY_OFFSET=0x660 ; dunno
CREATURE_NAME_OFFSET=0x000 ; yes
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308 ; probably
CREATURE_X_OFFSET=0x0094 ; probably
CREATURE_Y_OFFSET=0x0096 ; probably
CREATURE_Z_OFFSET=0x0098 ; probably

Qalnor 14:05, 16 December 2007 (EST)

I commented the above. none of the corrections should affect reveal. I don't know what's going wrong.
0x517A5D 19:53, 16 December 2007 (EST)

I made a few mistakes when documenting the existing data, which probably threw you guys off. My user page has been updated for 33f. --Rick 20:41, 16 December 2007 (EST)
Thanks, to both of you. I'll have to go over what I was doing when I get home to try and see where I was going wrong. Qalnor 15:11, 17 December 2007 (EST)

Possible adjuststart enhancement

Hi! Merry culturally-appropriate politically-correct generic holiday!

I have found some interesting addresses that work well with adjuststart.

In .33f, the byte at 0078654B holds a constant that is the upper limit that starting skills can be advanced to. It is normally 5 (proficient). If you change it to 15, skills can be advanced to legendary. If you change it to 20, skills can be advanced to legendary+5.

Also in .33f, there's a pair of bytes at 00786466 and 00786608. If you set both to 0, then the 10 skills per dwarf limit is removed.

I've found equivalant addresses for all the .33 releases. They're in the memory hacking subpages.

—Preceding unsigned comment added by 0x517A5D (talk|contribs)

Did I not sign that? Oops. Well, I was tired. Thank you, VengefulDonut.
0x517A5D 22:02, 19 December 2007 (EST)
Very cool, I'll probably add these for the next release then. --Rick 04:18, 20 December 2007 (EST)

Update of utilities

So how much longer do you suppose it might take to transition the utilities to 33f?--Heliopios 13:04, 19 December 2007 (EST)

With the .ini method there isnt really a need to rebuild the utilities for 32f. VengefulDonut 15:25, 19 December 2007 (EST)
And how exactly do you use memory.ini? I've created a new ini file (yes, it's a .ini, not a .ini.txt) and pasted everything under [code] tags for .33f, and lugged it into the dir. with the required executable (heal.exe in this case) but when I run it it still says it was built for .33e. Should I put it somewhere else? In any case, instructions for use are either inexistent or pretty well hidden here in the wiki.
Cheers. N35t0r 21:45, 19 December 2007 (EST)
Did you name it "memory.ini"? This worked for me with reveal.exe VengefulDonut 01:52, 20 December 2007 (EST)

Possible INI file syntax change

I would like to suggest a change to the format of MEMORY.INI. Instead of the [generic], [address], and [offset] sections (which in my opinion buy you nothing), I would suggest using sections keyed off the PE header timestamp. (You have previously indicated that you plan to convert to that method anyway.) So a sample .INI file might look like this:

; .33e
[475B7526]
MENU_STATE=0x01244654
FOCUSED_CREATURE=0x00C38540
CREATURE_VECTOR=0x0141FA40
MOUSE_X=0x008FE288
MOUSE_Y=0x008FE28C
MOUSE_Z=0x008FE290
MAP_DATA=0x01461560
MAP_X_COUNT=0x01461578
MAP_Y_COUNT=0x0146157C
MAP_Z_COUNT=0x01461580
STARTING_DWARF_COUNT=0x007893C5
STARTING_POINT_COUNT=0x0078857A
MAP_DATA_DESIGNATION_OFFSET=0x0260
MAP_DATA_OCCUPANCY_OFFSET=0x660
CREATURE_NAME_OFFSET=0x000
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308
CREATURE_X_OFFSET=0x0094
CREATURE_Y_OFFSET=0x0096
CREATURE_Z_OFFSET=0x0098

; .33f
[4763710C]
MENU_STATE=0x0124565C
FOCUSED_CREATURE=0x00C39548
CREATURE_VECTOR=0x01420A48
MOUSE_X=0x008FF288
MOUSE_Y=0x008FF28C
MOUSE_Z=0x008FF290
MAP_DATA=0x01462568
MAP_X_COUNT=0x01462580
MAP_Y_COUNT=0x01462584
MAP_Z_COUNT=0x01462588
STARTING_DWARF_COUNT=0x0078A555
STARTING_POINT_COUNT=0x0078970A
MAP_DATA_DESIGNATION_OFFSET=0x0260
MAP_DATA_OCCUPANCY_OFFSET=0x660
CREATURE_NAME_OFFSET=0x000
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308
CREATURE_X_OFFSET=0x0094
CREATURE_Y_OFFSET=0x0096
CREATURE_Z_OFFSET=0x0098

The main reason to do this is to allow data for multiple versions to be in the .INI file.
0x517A5D 18:22, 21 December 2007 (EST)

Agreed, will do this. --Rick 15:28, 22 December 2007 (EST)

33g memory.ini

0x517A5D looked these up and put them on the 33g memory hacking page, but did not actually put them in here. He copied/pasted from 33f. Mistake? I looked up the dwarf fortress tag and used his values for the ones I could see on the other page he posted (33g memory hacking page) and updated them. It works for reveal, but it's missing FOCUSED_CREATURE and CREATURE_VECTOR because I can't find them. --Paul 15:05, 22 December 2007 (CST)

I just cross-referenced those 2 values with the 33f memory location page and updated them. Should work now, though I haven't tested. --Janus 16:27, 22 December 2007 (EST)
The currently listed FOCUSED_CREATURE and CREATURE_VECTOR values don't appear to work. --Zurai 22:20, 22 December 2007 (EST)
Hi Zurai. Do to my blunder, there was a short period where those two values were incorrect. You probably hit that window. Check the values in your copy against the ones shown now.
0x517A5D 22:59, 22 December 2007 (EST)
Heal.exe and warp.exe (only when trying to warp a creature - warp to find the coords of a tile works fine) both give me "An error has occured: please select a unit in 'view units' mode" using FOCUSED_CREATURE=0x00C40540 and CREATURE_VECTOR=0x01427B60, which are the values listed at the time of this writing. I've redownloaded both executables and re-made the ini from scratch, copy-pasting the values from the 33g listing, and it still occurs. Is anyone else having the same issue? Maybe my computer doesn't like heal or warp any more. Reveal works fine, though. --Zurai 18:45, 23 December 2007 (EST)
I found the problem. It was MENU_STATE. Yes, anyone else who tried to use these utils would experience the same problem. I have now edited the .33g memory.ini section again, and verified that warp.exe, heal.exe -hurt, and heal.exe all work. I'm really, really sorry for the mess up.
0x517A5D 22:39, 23 December 2007 (EST)
I'm having this pop up with the new memory.ini info for warp.exe: "An error has occured:failed to read block pointer for to block". --Corbine 03:19, 24 December 2007 (EST)
Well, let's go down the checklist. Due to a blunder on my part, the .33g memory.ini file was wrong for several hours. One of the mistakes causes that error message. Try deleting memory.ini and making a new one with the current data.
0x517A5D 14:29, 24 December 2007 (EST)
Deleted the memory.ini, made a new one and threw the new info into it, still same error. --Corbine 01:28, 25 December 2007 (EST)
Corbine, are you still experiencing this? I just realized I've left this hanging for a week. Sorry. Okay, next. Previous versions of warp have worked for you with previous versions of DF? Do other of Rick's utilities work for you? My tentative diagnosis is that part of your INI file is wrong. If the whole thing was wrong, it would merely complain that it was built for version .33e. I don't know which particular key being wrong gives that error, and I don't have a .33g test fort at the moment, so I can't easily check right now. But I could when I have time. Really, I'm puzzled.
0x517A5D 03:47, 31 December 2007 (EST)
Yes, mistake. Arrgh. I must have copied from the wrong editor window. Thank you both.
0x517A5D 17:08, 22 December 2007 (EST)
No worries, and thanks for posting the new memory locations in the first place. I personally was looking forward to that info so I could use reveal.exe to examine potential fortress locations in newly created 33g worlds, so it is much appreciated. --Janus 18:07, 22 December 2007 (EST)
I was all excited when I saw the 33g info up, then went to paste it into my ini and realised the data was the same... I figured you just accidentally pasted the wrong thing in. The only thing I could figure out how to look up was the Dwarf Fortress tag location, so it is appreciated that you looked all the rest up. With the world generation changing, it's nice to have reveal available to search for new sites. Paul 21:20, 22 December 2007 (EST)

38a

How would we update this? --Squeegy 20:22, 5 February 2008 (EST)


we can start by finding the relevant mem locations for 88a

[generic]
DWARF_FORTRESS=0x00C11218

[address]

MENU_STATE=
FOCUSED_CREATURE=
. CREATURE_VECTOR=
MOUSE_X=0x0092f288
MOUSE_Y=0x0092f28c
MOUSE_Z=0x0092f290
MAP_DATA=
MAP_X_COUNT=0x014929F0
MAP_Y_COUNT=0x014929F4
MAP_Z_COUNT=0x014929F8
STARTING_DWARF_COUNT=
STARTING_POINT_COUNT=

those are the easy ones. if we had map data and confirmed that the offset was correct at least Reveal.exe would work but I'm out of time today. --Shadetree 22:23, 6 February 2008 (EST)

I've found the other addresses. I won't guarantee that the offsets other than MAP_DATA_DESIGNATION_OFFSET, MAP_DATA_OCCUPANCY_OFFSET, and CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET are correct.

[generic]
DWARF_FORTRESS=0x00C11218

[address]
STARTING_POINT_COUNT=0x007AF4FA
STARTING_DWARF_COUNT=0x007B0345
MENU_STATE=0x0127599C
FOCUSED_CREATURE=0x00C69888
CREATURE_VECTOR=0x01450E98
MOUSE_X=0x0092F288
MOUSE_Y=0x0092F28C
MOUSE_Z=0x0092F290
MAP_DATA=0x014929CC
MAP_X_COUNT=0x014929E4
MAP_Y_COUNT=0x014929E8
MAP_Z_COUNT=0x014929EC

[offset]
MAP_DATA_DESIGNATION_OFFSET=0x0260
MAP_DATA_OCCUPANCY_OFFSET=0x660
CREATURE_NAME_OFFSET=0x000
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x308
CREATURE_X_OFFSET=0x0094
CREATURE_Y_OFFSET=0x0096
CREATURE_Z_OFFSET=0x0098

If I understand how Rick's tools work, the offsets I've verified are the only offsets necessary. -- Jifodus 20:05, 7 February 2008 (EST)

confirmed that this works with Reveal.exe --Shadetree 18:41, 8 February 2008 (EST)

warp.exe and heal.exe do not work with this configuration. --Markham 11:28, 9 February 2008 (EST)

The reason the creature tools will work is due to some issue with how FOCUSED_CREATURE now behaves. Assuming the address is correct, and I'm 99.9% positive it's the correct address, a new method will have to be determined which unit is focused. Also, did your map have existing creatures? -- Jifodus 17:39, 9 February 2008 (EST)

Confirmed that adjuststart.exe works with this. --Squeegy 23:44, 10 February 2008 (EST)


176-38a

Any love on new offsets with version df_27_176_38a? What do you all use to dig up the offsets? A debugger running trace on particular strings?

I use IDA Pro Free, and do a binary match.

[generic]
DWARF_FORTRESS=0x008D8B08

[address]
STARTING_POINT_COUNT=0x007B995A
STARTING_DWARF_COUNT=0x007BA7B3
MENU_STATE=0x01287D14
FOCUSED_CREATURE=0x00C7BC00
CREATURE_VECTOR=0x01450E9C
MOUSE_X=0x00941288
MOUSE_Y=0x0094128C
MOUSE_Z=0x00941290
MAP_DATA=0x014A4EAC
MAP_X_COUNT=0x014A4EC4
MAP_Y_COUNT=0x014A4EC8
MAP_Z_COUNT=0x014A4ECC

[offset]
MAP_DATA_DESIGNATION_OFFSET=0x0260
MAP_DATA_OCCUPANCY_OFFSET=0x660
CREATURE_NAME_OFFSET=0x000
CREATURE_BODY_PART_HEALTH_VECTOR_OFFSET=0x030C
CREATURE_X_OFFSET=0x0094
CREATURE_Y_OFFSET=0x0096
CREATURE_Z_OFFSET=0x0098

Heal & Warp won't work due to FOCUSED_CREATURE not working properly. -- Jifodus 04:00, 17 February 2008 (EST)

0.27.176.38b

[generic]
DWARF_FORTRESS=0x008D8A58

[address]
MAP_DATA=0x014A50A0
MAP_X_COUNT=0x014A50BC
MAP_Y_COUNT=0x014A50C0
MAP_Z_COUNT=0x014A50C4
MENU_STATE=0x01287D14
FOCUSED_CREATURE=0x00C7BC04
STARTING_DWARF_COUNT=0x007AEB77
STARTING_POINT_COUNT=0x007BAE4A
MOUSE_X=0x0094128C
MOUSE_Y=0x00941290
MOUSE_Z=0x00941294
CREATURE_VECTOR=0x01463570

[offset]
MAP_DATA_DESIGNATION_OFFSET=0x0260
MAP_DATA_OCCUPANCY_OFFSET=0x0660
CREATURE_NAME_OFFSET=0x0000
CREATURE_X_OFFSET=0x0094
CREATURE_Y_OFFSET=0x0096
CREATURE_Z_OFFSET=0x0098
CREATURE_BODY_PART_HEAL_VECTOR_OFFSET=0x02FC

-- Jifodus 23:08, 24 February 2008 (EST)


Are you sure that's right? Reveal.exe isn't working for me with this.--Eiba 00:19, 25 February 2008 (EST)

Could someone please write how to find these addresses and offsets? I tried to figure it out but I must be doing something wrong. I used L. Spiro's Memory Hacking Software to search for strings in memory of dwarf fortress, but only managed to find address for DWARF_FORTRESS at 008D9A58 for version 176.38c. I can't find any other address. For example, when searching for string MAP I got almost 200 results (case insensitive) but none of them were on addresses beginning with 014. I don't have any idea how to search for offsets. Thanks in advance for any helpful information.