If DISE is stuck trying to update, run this command in Command Prompt.

Saturday, December 31, 2011

Painting test :)

I am just testing the map feature and painting on it within DISE. Doesn't look perfect yet but it's coming along! :) Actually, after testing a bit more, I'm not entirely convinced that DISE does it wrong after all. Here's why:
  1. Paint in DISE, then save.
  2. Restart DISE, then reload the game-save. Looks good! Just as I saved it.
  3. Load it in-game, then quit the game (which saves it).
  4. Load it in DISE. Looks just like it was in-game (with the errors).
The game was probably never meant to display explored areas like this, but I am slightly disappointed. :)

Preview: Visual map

It's not ready for release just yet, and I still have some concerns regarding performance, and the explored area seems slightly off at the bottom... However, please check it out! :)

Update: The explored area was correct after all. I had simply explored slightly more in-game before saving and loading it in DISE! :D
Added a new screenshot to "prove" it! Well, except one tile is either wrongly explored in DISE, or the game doesn't like it... (; - -)

The map is from, by the way! :)

Would you like a notification when DISE finishes saving?

You know, a tiny popup in the main window or something that stays for a second or two, then disappears. It's just to see that something happened (DISE should never fail, though). Many programs has this fancy feature, even if it doesn't take long to save.

Would you like to have such a feature anyway? Please answer the poll! :)
Oh, and I'll of course make it optional if you vote for this. :)

Please see examples further down.

Should I do it?


Thursday, December 29, 2011

Application icon for DISE

I guess it was about time I made an icon for DISE. This is what I have so far, and I plan to use it for DISE. :)
What do you think?

Another sample. I think it can be improved. Trying to make something that will look alright as a 16x16 icon (and favicon).

Update 2:

Release: Alpha 48

I'm pretty happy to release this one! :D

What's new
  • Inventory lists:
    • Delete items with the Delete key.
    • Clear the selection with the Escape key.
    • Navigation with the arrow keys (up/down).
  • Medkits can be assigned to quick slots.
  • Finally tracked down and caught a bug which caused a crash on startup, then I released it back to nature. This was more likely to happen on slower computers because the bug was so quick. I was unable to fix this earlier because I couldn't detect the bug's presence easily (don't get me wrong, not saying your computer is slow).
  • Fixed a bug where the integrity check on update would fail if the hash had zeroes in it. I made sure that the hash for in this release doesn't have zeros in it, to make it a bit less painful for you.

Tuesday, December 27, 2011

Release: Alpha 47

If you try to reveal the map, please look for anything that could be missing or wrong. :)

What's new
  • Reveal the map (screenshots). It's on the Misc. tab. Experimental, since all the values are just set to max, but it seems to work.
  • Changed the item attributes randomizer to generate values all the way up to 4294967295 (highest possible value), after a user discovered the value being higher that the current max in the Bloodbath Arena DLC.
  • Minor changes.

Revealing the map

I'm experimenting with revealing the map, and I think it's pretty successful so far.

Spoiler alert

Here are some screenshots taken from a new game, before and after revealing the map.

Chapter 1

Chapter 10

If you use DISE alpha 42-45, you should update

While writing this post, I removed 4 other posts related to this, to keep the blog cleaner.

These versions are affected by a "feature" gone wrong (a bug, in other words).

They have one or both of the following issues:
  • Destroyed/Empty backups.
  • Will never receive automatic updates again.
I thought I could simply apply a hack on the server to crash these versions (so that you would know something was up, and would check the blog), but the code proved to be more robust, so it is impossible after all. Sorry.

Of course, DISE shouldn't corrupt your game-saves (especially not for the PC), even if you lost backups.

Monday, December 26, 2011

Release: Alpha 46

Please don't use alpha 42-45 because backups will be broken/empty. I really am sorry for any inconvenience.
I'll do better to make sure something like that doesn't happen again.

What's new
Fixed a bug/failed feature with backups. The "feature" was simply removed for now.


Release: Alpha 45

Warning: Backups are broken

Quick fix before I get some rest. :)

What's new
  • Removed quick slot from exported data. You could end up with two weapons using the same quick slot. Or at least it would look like it, and I personally don't think it looks cool. :)
I didn't bother providing backwards compatibility with alpha 44 for the few people who used alpha 44 (maybe between 2 and 5?), so you have to manually remove the QuickSlot line from the exported file, in order to import it in alpha 45.


Release: Alpha 44

I chose to skip the official release of alpha 43 so that everyone receives this update. :)

Some of you may have been affected by the trouble I had just now, and more of you will unfortunately not be able to receive further updates if you're on alpha 42 or pre-43. The only thing I can do is apply a hack on the server which will crash your alpha 42/pre-43... Can't say I feel tempted, even if I want you to know to check the blog. :(

However, there's new, cool stuff in this release! :D

What's new
  • Export/Import inventory to/from file.
  • Export/Import game progress to/from file (experimental).  Please tell me if something important is missing when you find out (assuming you will).
  • Added map/location/spawn point/active quest to Preview tab (no proper text yet though, and it's read-only).
  • Improved error detection on updates.
  • Suppressed silly error message after updating, when everything went alright after all.
  • Minor improvements/changes.
  • From pre-alpha-43:
    • "Fixed" a crash when trying to open files from the menu. I am not even sure what caused it in the first place. I didn't touch the code, and it still fixed itself after I tried many things.
    • Some minor changes.
Exported inventory & game progress
The file is exported as XML. Please see the contents to see exactly which information is stored. Please note that the info stored there may change.

Since I am not able to read quest progress data 100% correctly yet, I just dump the raw data. Therefore, it cannot be converted to a different format (PC -> Xbox 360). It is safe to try however.


Saturday, December 24, 2011

Pre-alpha-43 test (update: new package)

Please don't comment on my blog if you experience the same crash(es) in this release, because I'll either ask you to e-mail me or ignore the comment. You can however comment if it works fine, and if your issue hasn't been commented on already (include the version of DISE (mpress, upx ultrabrute, upx or uncompressed), and where/when it crashed so that we know). d-(^_^)o

After trying all 4 versions of DISE and you still have the same crash(es):
  • Please e-mail me, and
  • include where/when it crashes (exact steps to reproduce, if possible),
  • and which operating system you have (Windows XP, Vista, 7, etc).
I ask you to e-mail me so that I can ask for more specific information if needed. I won't send spam, and as far as I know, I don't have any viruses that snatches your e-mail address to send you spam. I won't sell your address either. I hope that will make it easier for people to e-mail me and not continue posting on my blog after I ask them to e-mail me. :)

The test
Since some people are experiencing a strange crash, I imagine a few possible reasons:
  • Issue was introduced after upgrading wxWidgets (C++ framework). Maybe bug or change in behavior, and I need to update my code.
  • The EXE packer/compressor (UPX). It's like zip/rar/etc, just specifically made for EXE/DLL/etc.
As an attempt to rule out the packer, I have included 4 versions of DISE:
  • Uncompressed/Untouched
  • UPX (highest compression)
  • UPX (highest compression and "ultra-brute")
Don't be alarmed if your anti-virus software complains about any of these.

Download (new package)

Thank you for helping me help you. :)

Friday, December 23, 2011

Release: Alpha 42

Thanks for all your suggestions and for reporting issues. Your patience as well. :)

Note: If you get this message saying this after updating, please don't worry about it:
"[...] dise.exe.updbak' couldn't be removed [...]"
The file was probably removed after all, and who knows why it says that it couldn't. The next version of DISE should suppress the message. You're more likely to see similar messages (even when nothing was wrong) due to logging in wxWidgets 2.9. :)

What's new
  • Updated wxWidgets to version 2.9.3.
  • Worked around a very strange issue where "0" somehow wasn't "0" (when it seemed to be, and it worked fine before). The issue just came out of nowhere, causing a crash when starting DISE and no update was found. Bug in wxWidgets or something else. Just strange.
  • Switched item condition slider (which didn't do anything anyway) with a text field because I haven't figured how to calculate the max condition. -1 = unbreakable/not used (usually firearms and other things).
  • Added button to randomize the "attributes" value.
  • Added some more tool tips (hover your mouse cursor over a text field, etc, to see info).
  • Minor changes.

Thursday, December 22, 2011

Release: Alpha 41

If you have trouble with user preferences or just want to reset everything, this should make it easier for you.

What's new
  • Reset/Delete all preferences (Preferences dialog).
  • Added command line argument "-deletepref" to reset/delete all preferences. Just run "dise.exe -deletepref".
  • Game storage location doesn't have to exist, so it can now be cleared or set to anything.

Release: Alpha 40

Yay for increasing the release number! It's easy to just bump it up and keep track of less numbers. I guess someone else thinks so, too, with Chrome 16. Wait, I thought it was 14, then 15 just moments ago. Oh well!

What's new
  • Fixed a bug introduced in alpha 38. If you didn't have a game-save open before clicking OK in Preferences, DISE would crash. Let's hope I didn't break anything else! (^o^)/

Release: Alpha 39

I think that some of you will like this release! :)

Semi-geek alert
Also, I really hope that you won't get a file integrity error like with the last update. I attempted to improve the update download process to hopefully make it more reliable.. I think I did an alright job.

Then, as I was looking into why the downloads were corrupted after downloading them, I noticed that the MD5 hash was still wrong after my wonderful attempt to fix/improve it. How come?

After my efforts, I went into my database and saw that it was indeed wrong. In the database, I mean. I had swapped the hash with a different one. ( ̄。 ̄;)

What's new
  • Move/Copy items from one game-save to another! Open DISE for each of your game-saves, then simply drag & drop items between them. :) Move = drag & drop, Copy = Ctrl + drag & drop. It's best to scroll all the way up if you select multiple items, or just select one at a time (limitation by virtual list controls, and even MS Excel has this limitation).
  • Preferences dialog can be resized (workaround if your computer is setup to use big fonts/high DPI).
  • Improved the update downloading process. Let's see if it defeats bad downloads (when I haven't accidentally swapped the hashes).
  • Fixed/Improved: If you have the game on Steam, the game storage location (game-saves and profiles) is saved automatically when DISE starts. This way, you won't need to open Steam first the next time you start DISE.

Tuesday, December 20, 2011

Release: Alpha 38

I have been quiet lately, but I did go back to work again, and I give you a better DISE now. :)

However, I really wish I could have included all the features I planned for this release. Those will have to wait until I (or someone) figure(s) out how to properly read the quest progress data.

What's new
  • Detects Xbox 360 content package file (which contains your actual game-save) and tells you what to do about it instead of saying that the file is unsupported. This is temporary until DISE supports these packages. :)
  • Improved support for Xbox 360 game-saves. Hopefully, they will not get corrupted anymore.
  • Export/Convert game-save to different formats (experimental): (depends on reading the quest progress correctly)
    • PC (load this in-game)
    • PC (raw/uncompressed)
    • Xbox 360 (inject this into content package)
    • Xbox 360 (raw/uncompressed)
  • Optimized skill trees. Switching character is quite a bit faster.
  • Optimized app startup a bit (a little faster).
  • Fixed Xbox 360 game-saves being repaired using data from a PC game-save.
  • Save item order (inventory). Right-click a list and save the order. * Please read more below.
  • Minor fixes and optimizations.
"More below" :)
Save item order (inventory)
Items are normally ordered in-game by the time you picked them up. You can now sort them in DISE, then save the order, but there are some catches:
  • New items you pick up in-game will be in the order you pick them up.
  • The items can't be sorted completely in-game (even if they can in DISE). This is because items are stored in separate lists in the game-save file. There are 4 lists (quick slots, storage, etc). It means that the next time you open the same game-save in DISE, the items will still be sorted, but grouped together by those lists. DISE combines all lists into one (except for storage) so that you don't have to operate with different lists. If you sorted from A-Z, items may appear from A-Z 3 times in your inventory (3 lists). I hope I explained it alright.
  • Weapons assigned to quick slots will not be sorted in-game. The game depends on the actual order in the file, so changing that would mess up your quick slots.

Monday, December 19, 2011

Alpha 38 coming soon :)

I'm doing some testing, and getting help from someone else with testing as well. If it goes well, I can release alpha 38 within 24 hours or so. :) Thank you for your patience!

This version should have improved support for Xbox 360 game-saves (my tests were successful but I'll test a bit more), optimizations and some other fixes.

Thursday, December 15, 2011

This is what's up lately

Geeks needs some rest, too!
Not my cat, by the way.
You probably noticed that I haven't released a new version of DISE for a little more than a few days?

I made some improvements for the next version already, and I realized that I had to read the whole game-save file in order to implement a feature that I had already pretty much completed.

That's when I started working on understanding the quest progress data which I mentioned before, and after countless hours with hard work, I was still unable to figure it out, exactly.

I usually never give up, and... Well, I'll admit that I forgot to take care of myself, and realized that I needed a break from everything.

I'll be fine soon, and so will DISE (with or without quest-related features and other planned things). :)

Saturday, December 10, 2011

Trying to read quests properly, but I'm stuck and need help

This post is a bit technical, so here's the GEEK ALERT.

Update Jun 2 2012: Source code: Reading quest data from saves (you can help!)

For the last few days, I've been trying hard to figure out exactly how the quests are read by the game, for several reasons:
  • Improved fixing of corrupted saves
  • Converting/Exporting game-saves
  • A step towards a quest progress editor
It has proven to be a bit difficult for me, but I haven't given up. I could however use all the help I can get if you're familiar with x86 assembly code and using a debugger/disassembler.

I don't expect to receive any help from anyone, but I would appreciate it if you can and if you're willing. :)

I'm going to show you some of my work, in case you get interested and you're up for helping. Maybe it'll even help me understand it better just by posting this and looking at it again.

The data I'll show you was taken after starting a new game (prologue), going down into the elevator and stepping right outside to reach the checkpoint.

All quest progress data:
04000000 E59A39DB 02000000 01 03000000 01 04000000 00 26000000 2F000000 91010000 00 01000000

The parts being read will be highlighted. The current values being read will have this color while subsequent reads will have different colors.

I'm going to name the main function readQuests, and the functions inside readQuestX<number>, and some in there, readQuestsX<number>_<number>, etc.. Just to call them at least something that is somewhat meaningful, but without nesting them deeply.

Question marks in the code just means that I don't know what they are and/or where the values come from.

My "code" here isn't in any specific language, and doesn't include all the logic. It's just an attempt to explain kind of how this works.

Please note that I also don't guarantee that the info here is correct.

04000000 E59A39DB 02000000 01 03000000 01 04000000 00 26000000 2F000000 91010000 00 01000000

uint32 count = 4
 // not equal to the number of quests seen in-game, nor the amount of "tasks" or "steps"
uint32 unk1 = 0xDB399AE5
while i < count:

   This is read later
   This is read even later
04000000 E59A39DB 02000000 01 03000000 01 04000000 00 26000000 2F000000 91010000 00 01000000

int32 questId = 2 // maybe
bool thisIsTheLastQuest = true // maybe something like that (last quest in this loop), but I don't know. Probably not hasFinishedQuestStep (or task or whatever). Update: this name must be wrong, but not totally off.

if (questId < 0) or (questId >= 403): return false
if not thisIsTheLastQuest: return true
ptr = ? // pointer to some interface or something?
if ptr: // maybe safe to assume that this always happens
count = ?
while j < count:
  x = address to the memory reallocated earlier
  // I think it reads int32 here sometimes, but not with the quest data I'm using this time

// This is where it gets a bit tricky
readQuestX3_2() or someOtherFunction() // calls readQuestX3_2() the first time, but calls someOtherFunction() the the recursive call (at least the first call)

   This is read later
   This is read even later
04000000 E59A39DB 02000000 01 03000000 01 04000000 00 26000000 2F000000 91010000 00 01000000
int32 unk1 = 0x26 // or 38 (dec)
if unk1 == 0: return true
bounds check on unk1, return false if outside of bounds
return true

// Loop + read recursively
count = ? // 1 in this case
while i < count:

// doesn't read from the file, but reallocates some memory

In the end...
I managed to highlight all of the reads here, but I'm having a hard time figuring how the game chooses to read sometimes and not read other times, and figuring out the count value in some loops.

I wonder if the game just knows the values already, so that we can't simply read the quest data without knowing what the game already knows prior to reading.

Like I said earlier, I don't expect to receive any help from anyone, but you know how to contact me. :)

Tuesday, December 6, 2011

How to edit saved game with DISE and Modio (Xbox 360)

This less-than-a-minute long video I made shows you how to do it (as the title says) quick and easy. Please pause/rewind if it's too quick. :)

Modio version: 3.0.
DISE version: alpha 37.

You can get Modio from the official website or from my download section.
More user-made videos can be found here.


Monday, December 5, 2011

Automatic extraction/injection of game-save (Xbox 360)

I happened to come across HashIt by synmuffin of, which is a tool for resigning/rehashing e.g. the save_0 file from the Xbox 360. From the looks of HashIt's code (I had a quick peek), it can extract and replace files, and of course resign/rehash the package. It's open source and coded in C++/Qt!

If you read my earlier posts, I said that I had no time to make an extractor/injector at that time, but by studying HashIt's source code as well as articles on, I look forward to learning more about this and further developing DISE. :D

Release: Alpha 37

Those who don't have Steam installed may find this release less annoying. For everyone else, there's nothing new this time. :)

By the way, feedback on the Xbox 360 support would be much appreciated, perhaps even some game-saves I can do some testing with. It's still experimental, even if my own tests indicate that it works (more or less, though with a few quirts which may or may not be DISE's fault). :)

What's new
  • Improved handling of Steam not being installed.

Sunday, December 4, 2011

Release: Alpha 36

If you used an old version of DISE to change your character and/or reset your skills and you're having problems now, then you should reset your skills again. The reason is that only half the job was done before, and DISE now relies it being done properly. :)

What's new
  • Improved handling of improper "skill tables" (or what to call them), and suggests resetting your skills.

Skills icon pack

The icons are based on the ones on

Simply extract the archive to where you placed dise.exe. The icons should be in assets\skills\images.



Release: Alpha 35

Things can't always go right the first time! This fixes some mistakes I did in the last release. :)

What's new
  • Changed item color from "Purple" to "Violet". I can't always tell the difference easily between some colors, but an internal file in the game does mention "violet" in this context, instead of "purple". :)
  • Embedded the font I use on the Skills tab, so that the skill trees will be displayed like in the screenshot.

Release: Alpha 34

Note: This release is not heavily tested, so it's okay to send me hate mail. I really like happy mails best, though. :D

Edit: I forgot to embed the font DISE uses on the Skills tab. I'll fix it in the next release!

For now, I thought about implementing something very basic for adding skills and such. I ended up putting some extra efforts into it, so it's a little less basic than I planned. Still needs some optimizing and other improvements, though. :)

As always, please report any nasty critters! :D

What's new
  • Edit your skill trees. Add/Reset individual/all skill trees. Whether it works or not, you can also give one character's skills to to a different character.
  • Changing character: Instead of forcing resetting skills, only suggests doing it.
  • Changed item color from "Purple" to "Violet". I thought I changed it but I forgot to change the actual text. :S I'll fix it in the next release!
Supports skill icons, but the icon pack will be available separately a little later. :)

I don't know if most of these even work. Either way, you could pretend that in this mess lies the key to surpassing yourself and evolving into an ugly, raging mutant who is practically invincible. Mankind is not worried about petty zombies anymore. :(


Wednesday, November 30, 2011

Release: Alpha 33

I just wanted to fix this before getting some rest. :) ((_ _))zzZZ

What's new
  • Fixed the Clear-button for the mods you can add and added it back (I shouldn't have removed it in the first place).

Release: Alpha 32

Some embarrassing problems were fixed and some other things were improved/added. My lame excuse is that I was really tired before releasing, and I really wanted to release before going to bed. (; -_-) Oh, that's right! I work for free! :D

What's new
  • Search through items that you can add.
  • Switched the spin control for "attributes" to a regular text control. The spin control allowed for a value up to 2147483647 while the real value can be up to 4294967295.
  • Fixed a bug when clearing a mod from an item. Mods would appear like " (text is missing)". I don't know if it has any negative effects in-game, but if you experience this issue, I suggest clearing the mods again now.
  • Removed Clear-button in the list of mods where you can add items. I thought it was not needed, and it would crash DISE anyway. On second thought, it is needed after all, so I'll fix it and add it back in the next release. Oh my, I need to rest now.
  • Fixed a bug when opening uncompressed Xbox 360 game-saves (crash).

Monday, November 28, 2011

Release: Alpha 31

This should prevent the crash caused by corrupted updates. I know it's rude to point my finger at someone, but I'm doing it at my web host because I have problems with them lately. Of course, DISE could do more to fix corruptions, though (but it shouldn't happen this often in the first place). If an update fails now, you can try to update again. It's not deal but it's better than nothing. :)

What's new
  • File integrity check on updates.
  • Unlock all chapters (profile). Note: Xbox 360 isn't supported this time, but if the Xbox 360 version of the game also has the profile file (, I will make DISE compatible. :)
  • Refresh the opening screen when closing the opened file.
  • Added chapter in opening screen.
  • Update character level text (preview tab) when changing level/XP.
  • Fixed a bug causing a newly added item to lose its (friendly) name after applying a mod.
  • Clear/Remove mod assigned to item.
  • "Backup limit is reached" dialog: Changed button "No" to "Cancel" to make it more clear that the file is not saved.
  • Some other changes/fixes.

Sunday, November 27, 2011

Release: Alpha 30

A kind of small update this time, but not completely useless. But hey, it doesn't matter since you can skip it if you don't like it! :D

What's new
  • Added prefixes to item names when mods are assigned.
  • Inventory lists' columns' width are saved.
Mod's prefix in name

Corrupted updates

I'm seeing this again right now, and I don't really know why it happens. I did however notice that the connection to my web host's  FTP server timed out several times, so it makes me believe that the issue lies on their side. I hope this doesn't keep up!

Either way, I'll make DISE verify updates before applying them (and if this keeps up, change my web host, which currently is HostGator). :)

If you have issues, please use the manual download link on this blog.

Release: Alpha 29

This release was meant to only add a feature to assign mod blueprints for items, but I guess you don't mind that I included some more improvements. :D

You can now open game-saves for PC and Xbox 360, as well as uncompressed ones (for both formats). If you have access to game-saves for PS3, then I assume it will work in DISE as well. It's not tested much, and I hope it doesn't interfere with the existing support for PC game-saves.

To open Xbox 360 game-saves, you have to:
  • Use Modio, Horizon or similar, then extract your game-save. The first save_* file(s) you'll find contains the actual game-save, so open this first and extract the actual game-save.
  • Load it in DISE.
To save Xbox 360 game-saves, you have to:
  • Save it in DISE (open an Xbox 360 game-save first).
  • Use ModioHorizon or similar, then inject your game-save.
  • Remember to rehash/resign if it's not done automatically.
What's new
  • Experimental support for Xbox 360 game-saves. I haven't been able to do much testing yet, so I suggest not using it for anything serious (but please go ahead and test).
  • Open uncompressed game-saves.
  • Improved detection of (non-)supported files.
  • Assign mod blueprints to items. I haven't made any restrictions, so you're free to test this with any item.


Friday, November 25, 2011

Xbox 360 support

I'm working on supporting the Xbox 360 format as well. It's not going to be completely straight-forward (yet), though. It's just that you'll need to extract the game-save first with Modio, Horizon or something else, then inject it again and resign the package when you're done. I don't have the time to make my own extractor/injector at the moment, so I may look into providing an addon in the future using a 3rd party program/library.

Well, with all that said... The first successful test was indeed successful (duh). :D Not just that, converting an Xbox 360 game-save to the PC format worked as well! :)

Wednesday, November 23, 2011

Release: Alpha 28

In order to get it out today, I had to leave out unlocking chapters. If you read my earlier post, you may recall that I had troubles with memory corruption and such, so it has taken some time for me to fix up things. The list of improvements and new things is a little longer this time, so I hope that makes up for the wait and that the promised chapter-unlocker this time. :)

One more thing: All skills could not be reset before (such as Logan's Boomerang), because there was another set of references to them which I didn't know about before. They are cleared now, so please check if everything will reset properly now. It's confirmed to be reset properly now. :D

Please see this post.

What's new
  • Improved resetting skills (all skills should be reset now.. hopefully). 
  • New opening screen (load game-save/profile more easily). 
  • Show items' mod blueprint (inventory list) + sort. 
  • Show items' color (inventory list) + sort (white/normal-orange/best). 
  • Mod blueprints are sorted alphabetically (Mods/Collectibles tab). 
  • Available items are sorted alphabetically (Inventory tab). 
  • Allow you to skip an update. 
  • Added "Check for updates" in main menu (under Help).
  • Added "Close" in the main menu (under File). Use this to get back to the opening screen. 
  • Move/Clone multiple items between inventory/storage at once (like before, hold down Ctrl while dragging and dropping). 
  • Main window's size is saved and restored. 
  • Repair items. For now, just "Repair all". Weapons' condition is set to 1000, so the condition indicator may look funny in-game, since it may overlap and you may see a hole in the middle of it, or it may just look like it's not full.
  • Improved handling of items' names (especially when no friendly name was found). 
  • Updated texts from the game (there's nothing new, they are just a little more correct).
  • Improved error detection/notification when syncing.
  • Some smaller changes.

Tuesday, November 22, 2011

Preview: Alpha 28 (update 3)

I'll add new screenshots to show the progress with alpha 28 when I have the chance. :)

New opening screen

  • Color and mod blueprint displayed in the inventory lists.
  • Available items are sorted alphabetically.
  • Repair all items.

Mod blueprints are sorted alphabetically.

You can choose to skip an update.

Saturday, November 19, 2011

Alpha 28 delayed

I have been struggling so much the last days and I have really burned out my energy while doing so. :(

The problem is memory heap corruption. If you know what that means, you know that it's difficult to find the exact location and it may be very time-consuming.

I have also seen some strange stuff happening with updates (crash). If it crashes, I suggest downloading it from the blog post.

I can at least share with you the things I had planned for this release:
  • Improve resetting skills (all skills should be reset now). A person commented and mentioned an issue while switching character and some skills transferring to the new character.
  • Unlock all chapters.
  • Show weapon's mod blueprint (inventory list).
I really wanted to release it early, but it is just impossible to release it before I fix it all up again. It could take some days. I need to regain some energy as well.

Thanks for your patience.

Tuesday, November 15, 2011

Release: Alpha 27

Another release so soon, which was mainly meant to fix an issue with date/time (after upgrading wxWidgets). However, I didn't feel good about releasing something that did nothing new for perhaps most people, so I managed to get a useful thing in here as well.

What's new
  • Change your character's level regardless of your current level. From 60 to 1 is okay. :)
  • Fixed a crash related to date/time.

Monday, November 14, 2011

Release: Alpha 26

I've promised a few things before, such as changing weapons' color and required level and the other attributes (damage, etc). I've implemented the first two this time, but it would have taken some more time if it weren't for two people (Warefaroo and Daniel) who shared their knowledge about reading/writing the color and required level. :)

What's new
  • Change weapons' color and required level. Note that some weapons appear to have a minimum/maximum required level, and firearms don't seem to use the color attribute.
  • Layout (inventory) is saved/restored. For now, just the splitters.
  • A few smaller fixes/changes.

Saturday, November 12, 2011

Release: Alpha 25

Note: Seems like the attributes' max value is too low. I thought I changed it. It doesn't do much good to most people anyway, so I won't release a new version just to fix that, but instead implement changing the color and required level first. :)

Note 2: If DISE seems to crash, try to click No (just continue running it). This is probably because of some incompatibilities with the new wxWidgets, and should be alright if you just click No. :)

It may not seem like a whole lot has changed in this release, but a lot of things have changed internally and caused another bunch of problems. One problem after another. However, most of it is hopefully sorted out now. In the not-unlikely event that you find strange bugs, just spam my e-mail inbox. :)

I left out some things for this release so that I could finally get it out, then bring them back in again later. :)

What's new
  • Upgraded wxWidgets. Makes the UI look slightly different overall and maybe behave differently in some cases.
  • Updated Open Steamworks sources. Someone apparently had issues with syncing, so maybe this helps.
  • Sort your inventory (and currently only that). Can't save the new order yet.
  • A little more flexible UI (inventory). Your customized layout can't be saved yet.
  • Improved spin controls. You can press Escape to cancel input (old value is restored).
  • Removed the ugly icon I added earlier in the list column headers (for now, even though it was planned for this release). 1 click = sort ascending (a-z), 2 clicks = sort descending (z-a), 3 clicks = don't sort.
  • Show/Hide item categories has been removed (for now, even though it was planned for this release) because of the layout change. You can still use the splitters, though.
  • Changed the Level/Dmg and Dur/Han fields into one field (like it is originally). It's too technical to use for most people anyway, and it makes it easier for geeks like me to do some testing. :)


Getting ready for releasing alpha 25 now

Finally, I have sorted out all the nasty and even silly problems (I hope), and getting ready for a release shortly (hours or less). :) Things should go more smoothly from now on. :D

However, please don't expect too much this time since I have had a ton of issues, a lot of stitching things back together again, and very little rest. Even though I never liked coffee much, I've even been having Cappuccino and 100% Arabica espresso, almost every day!

Thursday, November 10, 2011

Some more info/updates on alpha 25 (update)

Well, besides a ton of problems and my GUI framework making trouble instead of helping me, etc, there are some good things as well.

For example, I added two splitters as you can see here, and you can also show/hide the categories. Oh yeah, and I made a small, ugly icon to show whether the items are displayed ascending or descending. Sorting is only (partially) implemented for the inventory so far.

You could hide the stuff you don't need. :)

However, all these things that we may take for granted, don't come without problems. For example, the small icons changes their position, right-aligning does not work anymore, and when you have hidden the the stuff with the splitter, they pop out again (just a bit) when you resize the window. I'll blame wxWidgets, only again (I guess it's not supposed to be easy.)

As you may have noticed, this release is taking some time to get ready for release. I have had tons of problems just so that I could actually start working on the stuff I wanted to work on.

For instance, I decided to upgrade wxWidgets (to get rid of bugs, I hope(d)). That meant that some of my code wouldn't be compatible anymore. That's one thing I have been working on (making it compatible).

Now, I was lucky(?) enough that my GUI editor (wxFormBuilder) made incompatible code as well! Luckily (really), it was just a small thing, and the GUI editor is open-source, so I managed to fix it by myself eventually.

So far, so good! At least until I saw that the splitters I added earlier now made the background color just gray (not white, like it should). Nothing made it use the Windows theme's white color. Not even setting the color manually. So... I did a pretty big makeover which caused lots of organizing code and what-not.

Here's what alpha 25 currently looks like:

I can now continue my work on the sorting.

Thanks a lot for your patience, again! It's much appreciated. :)

Monday, November 7, 2011

List sorting in DISE / Anonymous commenting on the blog (update 2)

I'm looking more into sorting items in DISE. I could do something simple, but I want to make something good. Something good takes time and efforts.

That aside, I have opened up for anonymous commenting on the blog. :)

I've been struggling with this for days, but I think I have my solution now. I still need some time to fix everything up. I just wanted to show you my first successfully sorted inventory, and that things should go better for me soon. Thanks for your patience! :)

Update 2:
Sorting is now pretty functional. Here you can see that the items are sorted alphabetically (and reversed) and by quantity/ammo. :D

Tuesday, November 1, 2011

Release: Alpha 24

Since I'm updating client/server code, I'll take this chance to discontinue auto-update support for DISE alpha 14 and earlier. All versions later than alpha 14 will continue receiving updates after changing a few things on the server. :)

I have been trying hard to figure out exactly how the attributes/unknown/level/dur/han (whatever to call them) work, but I am not there yet. If you're familiar with debugging x86 assembly code, you can give it a try as well. In game_x86.dll at offset 0x0046D0F1, the game reads that/those value(s). At time of writing, the offset is valid for the latest Steam version (updated 1.3.0).

My Steam copy of the game freezes when I attach the debugger (OllyDbg), so I am using "the other" copy which always just works.

What's new?
  • Display item names by technical name (e.g. "CraftPart_Battery") or friendly name ("Battery"). May be useful for telling the difference between some items. Please find it under Tools > Preferences > Naming.
  • Update-check uses less bandwidth when there are no updates available.

Sunday, October 30, 2011

Release: Alpha 23 (fixes a serious bug)

This release is only meant to fix the bug present in alpha 22, which deleted all of your backups and then crashed, if you deleted backups manually and then let DISE overwrite your old backup(s).

Just to humor you, I'll explain the problem. :)

The buggy code:

// How many do we need to delete? Make room for the new backup
unsigned deleteCount = (backupFolders.GetCount() - maxBackupCount) + 1;

First, I missed "int" after "unsigned", but that that's not the problem (does not matter in this case). Let's say we have 10 backups, and the max is 10. After deleting 3 manually, we have 7 backups left. This is the simple math:

// How many do we need to delete? Make room for the new backup
unsigned int deleteCount = (7 - 10) + 1;

Normally, deleteCount would equal -2, but since deleteCount is so-called unsigned, it can't have negative numbers. Instead, deleteCount equals 4294967294. That's why DISE crashed. It tried to delete 4294967294 backups! (; -_-)

Anyway, I fixed it, so please get this release instead of the last one. :)

What's new?
  • Fixed a bug present in alpha 22, which deleted all of your backups and then crashed, if you deleted backups manually and then let DISE overwrite your old backup(s).

Release: Alpha 22

With this release, I hope to make some things a lot better for you all! Mainly a much improved backup system and more choices for you!

Based on my last poll, both category lists can be either restored or reset on restart, and since more people voted for "Reset" than "Retain", resetting is default.

You can now either keep an unlimited or limited amount of backups, as well as automatically overwrite the oldest backups (if you have a limit).

Backups will be stored in <your chosen folder>\<game-save file name>\<date & time>.
The date/time format is yyyymmddhhmmss.
Example: C:\saves\my_backups\save_0.sav\20111030200344\save_0.sav
In this case, it's Oct 30 2011, 20:03:44.

Please check it out and let me know how you (dis)like it! :)

Big note
Edit 2:
Okay, after more testing, it seems like the bug is serious after all. Deleting several backups manually causes DISE to delete everything and then crash. Please just jump down to --- End of big note ---.

I wrote the big note as quickly as I could, without testing this properly first. After giving it a little more testing, it seems like the bug isn't as serious as I thought. After trying it again, it didn't delete all of my backups, nor did it crash after deleting a a few backups. However, it did crash after I deleted all of my backups manually and then chose Yes. If you give this some testing, please let me know how serious it is.

Actually, I couldn't understand why DISE would delete all of the backups, so maybe I simply deleted them all earlier either intentionally or accidentally, and chose Yes. My short term memory can sometimes be, well, short! ┐('~`;)┌
--- End of big note ---

I found a serious bug, but it's easy to avoid. If your backup limit is reached, don't choose Yes to overwrite your oldest backups if you already deleted some manually! It will cause DISE to delete all of your backups and then crash! If you deleted your backups manually, choose No.

What's new?
  • Improved backup system.
  • More user preferences that you can set.

Please see the big note first!

Saturday, October 29, 2011

Preview: Alpha 22

More choices for the user is being worked on for this release. Regarding the categories, I think I can say that the people have spoken; they want more choices! :)


Friday, October 28, 2011

Release: Alpha 21

I've been working on retaining user preferences for this release, but I have also been struggling a lot with canceling syncing (bugs in wxWidgets or its documentation, mulithreading + race conditons, etc). Maybe that technical stuff isn't very exciting.

Anyway, I'm having some trouble with a decision, and you'll be able to help me! Do you think that your selections for the inventory categories should be saved and restored after restarting the editor, or should it be reset (to All)?

Thanks for your vote! :D

Retain or reset?


What's new?
  • Implemented user preferences.
  • Steam Cloud sync confirmation box when saving.
  • Steam Cloud syncing is now enabled by default (but you must confirm, at least once).
  • Fixed the sync process hanging when trying to cancel it, which caused Steam to tell you to close the game when closing Steam.
  • Some other UI changes/improvements.


Wednesday, October 26, 2011

Release: Alpha 20

A basic feature that people have been waiting for, is now here. :) Browsing available weapons and other items should be easier with the categories implemented. :)

What's new?
  • Implemented categories for available inventory items.
  • The "Quick slot" column in your inventory has been moved and renamed to "Q", to free some space.


Tuesday, October 25, 2011

Release: Alpha 19

What's new?
  • Added blueprints from game update 1.3.0 (listed below).
  • Improved compatibility with unknown collectible items.
  • Added a basic feature to add unknown collectible items (useful for testing).
  • Started implementing "Preferences" (it's not actually functional yet).
  • Some UI changes.

New blueprints
  • Assasin's Poison Mod
  • Bleed Bomb
  • Juggernaut Gauntlets Mod
  • Hot Rod Mod
  • Heavy Duty Mod
  • Medieval Mod
  • Pick-a-choo Mod
  • Shocking Sledge Mod
  • Justice Mod
  • Gordon's Revenge Mod
  • Bloody Mary Mod
  • Police Brutality Mod
  • Devastating Home run Mod
  • Shredder
  • Bluntly shocked Mod
  • Taser
  • Wolverine's Claws Mod


Advertisement(s) (update)

Okay, please don't freak out because of the ads. I don't like this either. Popups and everything. Nasty! Please hold on while I fix it!
Also, does my blog load horribly slow now? (after adding the ads)

Changed my mind. Had a bad feeling about those anyway. Ad-free again for now. (yay, I don't love ads either)

You probably noticed it by now. Yes, it's up there! Is it cool or not?

I don't want to annoy you with advertisements, so I try not to. Maybe it's better to keep it on the right side, tucked away. Ah, but then I earn nothing. :(

At least there's one good thing: I don't like coffee but I'll drink it for the money I earn from advertisements, so that I can keep working. :D

I'm using adBrite, in case you were interested. :)

Er.. I just learned that I can't use adBrite with a free blog... Must think of something...

Monday, October 24, 2011

Release: Alpha 18 (with Steam Cloud sync)

Big note: Whether you experience trouble or not with this release (regarding syncing, perhaps), such as losing progress like trollguy here, please either comment or send me an e-mail!

The next version if finally here, and it comes with some cool stuff, mainly Steam Cloud syncing!

This means that you should have no more "corrupted" game-saves, no more having to close/restart Steam, no more trouble! :D At least that's my intention, but as always, please send me some hate-mail for whatever reason you have! :)

What's new?
  • Steam Cloud syncing (sync-on-save or on-demand). Auto-sync disabled by default for now.
  • Updated item texts.
  • Fixed a bug which caused a crash when opening more than one game-save in one session.


Saturday, October 22, 2011

Steam Cloud support in DISE

I have been playing a bit with Open Steamworks, so that I can perhaps implement automatic sync'ing of your game-saves. If it all works out, you should (hopefully) have no more problems with "corrupted" and missing game-saves with Steam! The first tests look promising! :D

Friday, October 21, 2011

Release: read_profile beta 2

After receiving a file, I confirmed a data type to be a wide string, so I have updated this tool to support it.

By the way, this is a console application, so it's meant to be run via the command prompt. :)


Release: Alpha 17

Some fixes and some new things! I think what you'll find interesting is the recovery feature this time, since it's a little better. All of your (salvageable) quest progress will be recovered. It doesn't check the quest tree and try to recreate earlier quests you have completed. I am not sure if it's needed either, but I still think that it would be ideal to do it somehow.

While working on this release, I learned that the new update (1.3.0) has increased the character level cap to 60 as well as added new collectible items/weapon mods. I'll try to add those (collectibles) in the next release.

I have done some testing preior to release, and would like to do some more, but I really wanted to release before resting (and it has been a long day, night and morning now).
( -_-)zzZZ

As always, please let me know if you experience trouble with the editor. :)

What's new?
  • Recovers your quest progress (at least what's possible to recover).
  • A bunch of internal changes
  • Fixed a bug where the mods/collectibles didn't get cleared when loading a new game-save
  • Added Windows UAC shield icon to "Update Now" button
  • Fixed a couple memory leaks related to auto-update
  • Fixed unknown items not appearing in the inventory
  • Added more items
  • Updated characters' level/XP in accordance with the new game update (1.3.0)
  • Improved some compatibility with 3rd party mods and future updates (collectible items/weapon mods and character level/XP). Please note that my editor was mainly made to work with a vanilla copy of the game, but I do plan to improve it
  • Added "Clear selection" to the context menu for inventories
  • Spin controls updates value (item quantity, cash, ammo, etc) immediately when clicking the arrows
  • Minor UI improvement

Wednesday, October 19, 2011

Preview: Alpha 17 (rescues your quest progress)

I'm working on a nice feature for this release, mainly recovering your quest progress instead of replacing it all with a fresh one or copy it from another game-save. Of course, only the salvageable data can be retrieved, so you will still lose quests, just not everything! :) Exactly how much depends on how much is actually in the file.

Release: read_profile beta 1

Update: I guessed that one value type was "wide string", but since I wasn't sure, those values can't be read correctly. Now that I have confirmed it, I'll release beta 2 after fixing it! :)

An addition to my internal research tools is the read_profile tool, but why not just release it to the public in case someone can have fun with it, or just to have a better view of the file? :)
Maybe someone else did it already (I have no idea), but here you go anyway!

It can output to a readable ("pretty") format, and CSV so that you can perhaps import it into Excel if you prefer.

You can easily save the content to a text file like this:

read_profile csv>csv.txt

Note: It can only read the file, not change it.


Reads Dead Island profile (.pro) files.

Version: beta 1
Author: Steffen L

read_profile <input file> [format]

Formats: csv, pretty (default), pretty2
Sample output
C:\Program Files (x86)\Steam\userdata\xxxxxxxx\91310\remote\out\profiles>read_profile
L_GameVisibility: 1
L_GameVisibilityArea: 1
L_PublicSlots: 4
L_PrivateSlots: 0
L_VacSecured: 0
L_MRedXp: 0
L_MBlueXp: 0
L_Team: 1
L_MpChrB: 8
L_MpChrR: 18
L_MpSkinR: -1
L_MpSkinB: -1
L_Difficulty: 2
L_MpMode: 5
L_MpPublicSlots: 12
L_MpPrivateSlots: 0
L_MinPlayersToStart: 6
L_MinTeamPlayersToStart: 6
L_MpTDM_SL: 75
L_VoiceChatEnabled: 1
L_MpWLife: 0
L_MpWTraffic: 1
L_MpTLimit: 900
L_MpMap: 0
L_MpScenario: 0
Character: 3
CC_Count: 4
30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 08 00 00 00 04 00
00 00 01 00 00 00
CE_Count: 0
LPP_Count2: 0
LastSave: "save_0.sav"
SaveSlots_Count: 1
00 00 00 00
GameFinished: 0
GameFinishedAnnounced: 0
TutorialFinished: 1
FirstJoinAnnounced: 0
Dlc_Count: 1
02 00 00 00
ArenaIntroShown: 0
RunTime: 12960124159
Stats_CRC: 337241572
27 00 00 13 00 00 00 00 28 00 00 13 00 00 00 00 40 00 00 13 00 00 00 00 41 00
00 13 00 00 00 00 42 00 00 13 00 00 00 00 43 00 00 13 00 00 00 00 26 00 00 13
00 00 00 00 27 00 01 13 00 00 00 00 28 00 01 13 00 00 00 00 40 00 01 13 00 00
00 00 41 00 01 13 00 00 00 00 42 00 01 13 00 00 00 00 43 00 01 13 00 00 00 00
26 00 01 13 00 00 00 00 27 00 02 13 00 00 00 00 28 00 02 13 00 00 00 00 40 00
02 13 00 00 00 00 41 00 02 13 00 00 00 00 42 00 02 13 00 00 00 00 43 00 02 13
00 00 00 00 26 00 02 13 00 00 00 00 27 00 03 13 00 00 00 00 28 00 03 13 00 00
00 00 40 00 03 13 00 00 00 00 41 00 03 13 00 00 00 00 42 00 03 13 00 00 00 00
43 00 03 13 00 00 00 00 26 00 03 13 00 00 00 00 25 00 00 13 00 00 00 00 44 00
00 13 02 00 00 00 45 00 00 13 00 00 00 00 1b 00 00 23 f0 42 18 00 00 00 00 00
47 00 00 13 00 00 00 00 48 00 00 13 00 00 00 00 49 00 00 13 00 00 00 00 4a 00