I’m happy to announce that Dwarf Fortress Remote 1.30 is available on the App Store. Main new feature of this version is support for creature graphics. Default Spacefox tileset and tileset packages available from mifki.com/df/extras have been updated to include matching creature graphics sets.
Also in this release:
Reconnection to games will now be faster, however initial connection may be slower due to creature graphics processing.
When designating, cancel button will now return to the first corner selection instead of cancelling the designation mode completely. This can be reverted to the old behaviour in System Settings. Also, long pressing cancel button will cancel designation straight away.
Fixed a crash when filtering unit list with flashing (having legendary skill level) units on screen. Fixed some names flashing to black instead of light gray.
If you’re running DF Remote in a Docker container, below are the instructions to update to the latest version of Dwarf Fortress.
- Find the name of your container. It may be
df1if you followed standard instuctions. Otherwise, use
docker pscommand and use your name in place of
df1in following commands.
- Make sure you have saved your game and stop the container:
docker stop df1
- Update server image:
docker pull mifki/dfremote
- Start a new container using the same data folder:
docker run -dtp 1235:1235/udp --volumes-from df1 --restart=unless-stopped --name=df_new mifki/dfremoteand set a password:
docker exec df_new ./dfhack-run remote pwd "YOUR_PWD_HERE"
- Make sure you can connect to the new server.
- Delete the old container:
docker delete df1and rename the new container to the old or standard name, if you wish:
docker rename df_new df1
I have added search functionality to the in-app help. Apart from being just useful, this will allow me to add more content much more easily, not worrying how players are going to find it. Especially for things that are not related to any particular game screen, like materials, items and general game concepts.
By the way, you can also access the help in your browser here.
I’m happy to announce that Dwarf Fortress Remote 1.20 is available on the App Store. This release brings support for DF version 0.43.03, almost the latest game release, and contains several other improvements.
What’s new in the game
Releases 0.42 and 0.43 greatly change the game. You can now designate taverns, libraries and temples, and set tavern keepers, scholars and other occupations. Visitors, including other races, will come to your fortress to work in this locations or join your military, petition for residency and citizenship. Dwarves and visitors will spend time drinking, dancing, playing music, reading books, praying and discussing various matters. Children will play with toys. Art forms and musical instruments are randomly generated, latter requiring to be assembled from several parts.
Another set or changes is related to workshop jobs and manager orders. It is now possible to set certain job details like material, size, type of decoration and image. Manager orders can target specific workshops, start conditions and repeat frequency can be set (although not all of this is currently supported in Remote, see below).
I’ve decided to release the new version now, even though some of the new game features are not supported. This will allow me to work on other great things, like sound and creature graphics, while also implementing the remaining new game features in the next application updates.
Image specification for jobs is not fully supported - you can’t create a custom image or choose an image related to historical figure. Engraving designation image specification is not supported altogether. Setting conditions for manager orders and per-workshop orders are not supported.
Saves from 0.40 are compatible with 0.43. You can follow the new simplified setup instructions to configure a new server, and continue playing your games with new features. However some of the new stuff may not be available until you create a new world.
If you have installed any of the tilesets, you will need to download them again to ensure correct rendering in version 0.43.
I will also post upgrade instructions for Docker users shortly.
- Current job/activity is shown in unit query mode for the selected unit
- Support for auto-mining modes
- Quick erase mode - a new button to quickly switch from designation modes to ‘remove designations’ mode and back
- Confirmation is shown when trying to offer/seize goods and when trying to trade with huge trader profit
- When issuing a squad move command, long press OK button to do it without returning to the squads list afterwards
- Show magma-safe status in stone preferences view
And finally, number of bug fixes
- Fixed assignment of animals to chains and activity zones
- Fixed not being able to view wagon in look mode
- Fixed not being able to create new uniforms after deleting all existing ones
- Fixed manager timer not being reset after adding new manager orders, resulting in manager not validating them for a long time
Consider supporting Bay 12 Game if you like Dwarf Fortress.
There’s a binary package available for those who wants to help testing plugins and all the functions. As with the OS X version, main plugins seem to work, but I expect some data structures to be incorrect. Several global addresses are also missing for Windows version.
Recently I spent couple days helping DFHack team with support for the new 64-bit Dwarf Fortress version in DFHack. Of course, I was primarily interested in the OS X platform. There were several things that needed to be done in this case:
Scripts to find globals
There is number of scripts in jjyg/df-misc repo that need to be run on new binaries to extract addresses of global variables and vtables, and other stuff. The author is away, and I don’t have any Ruby knowledge, so I decided to write my own scripts for Hopper. They are now available in mifki/df-hopper-scripts, couple of them even support Windows (and Linux support should be easy to do).
Update Lua to 5.3 and make sure DFHack builds for 64-bit
We needed to update Lua from 5.2 to 5.3 to support 64-bit integer numbers (in particular, memory addresses). Also I had to bunch of
int32_t variables to
intptr_t. Other than this, there were no major difficulties with DFHack. Lethosor fixed an issue with vararg functions that suddenly started to crash on 64-bit.
Update DF structure definitions
long type is used in the DF graphics code, so those structures needed to be updated. But that was easy. While the big problem is that in many places, when we don’t know the meaning of a field in some structure, we simply use
int32_t type for it. However, some of this fields are actually pointers, and while this wasn’t a problem on 32-bit, now all the pointers changed size, and a lot of data structures became incorrect. On the bright side, now we can better understand what are pointers and what are integers in DF structures.
It took long time to find such fields in
world_data and some other structures, but in the end I got a working 64-bit DFHack with most of the plugins (that I’ve tried) working.
Repos with 64-bit fixes (look for
64-bit branches): pronvit/dfhack, pronvit/df-structures, pronvit/scripts. The last one has an updated
devel/find-offsets script to find almost all of the required global addresses.
I don’t have any more time to work on this (need to release DF Remote with support for DF 0.43.03 as soon as possible), and what needs to be done now is just further testing of all plugins to make sure all data structures are correct. I don’t know how much time this is going to take and who is working on it now.
Even hating Windows as much as I do, I must admit, the ability to run Linux software on Windows 10 is pretty awesome. I just installed the required packages with
apt-get as I would do on real Linux, downloaded Dwarf Fortress, and it worked. Oh, you also need an X server for GUI stuff. I guess, you can use this for development, like building DFHack, without a separate, real or virtual, Linux machine.
On the other hand, it woudln’t be Windows, if it worked without issues. Of course, I don’t use Windows anywhere (apart from XP VM to build plugins), so upgraded Win 7 on one of my office machines just for fun. And it was DF kind of !!fun!!.
First, I found a tray icon to launch the upgrade assistance, or whatever it’s called. However, it told me that I have some incompatible virtual network adapter installed, that no-one needs for ages, but it definitely could not proceed with such a terrible incompatibility. There was a link to buy a new PC though.
I then removed that adapter as well as tons on other software I don’t need. To my surprise, the upgrade application still complained about the same thing and there was no retry button or anything that would tell what to do after fixing the listed issues. Apart from the link to buy a new PC, of course.
Ok, it seems there’s an application running daily that updates the compatibility report. I will never understand why I have to wait a day, so I quickly found a command to force the scheduled task to run. No luck here though, the application checks the date itself, so the only option was to change the system date.
However, I found what seemed to be a solution - you can download a stand-alone upgrade application to start the process. I did that, it started to check the compatibility again and… said my display was not compatible. I had no idea what that meant - video adapter, the monitor itself or what - there was no additional information or hints what to do next. Of course there was a link to buy a new PC.
I tried to update video drivers but that didn’t help, and the last option was to burn an upgrade DVD, but started to look like not much fun, so I gave up.
The next day, I checked the standard upgrade notification again, and, surprise, it was ready to upgrade this time, and had no issues with display. And the upgrade process even didn’t get stuck at 76% or any other number like for some other people in the office.
In short, some things are really cool, user experience is below acceptable as usual, Notepad application still has only 1 step of undo - welcome to 2016.
I spent last few days improving df-luacheck tool and now can actually use it to update DF Remote server scripts for new DF/DFHack versions. That’s pretty awesome and otherwise it would require a lot more time to check all the code manually. It also found several errors in the existing DF Remote code for 0.40.24.
As for the application itself, I will now work on setting details for work orders. Then some general improvements from my big to-do list, and I think I will be ready to release a new version with support for 0.42/0.43.