Devilution: Editing DiabloUI.dll resources

Created on 4 Jul 2018  路  3Comments  路  Source: diasurgical/devilution

As some of you know, I'm very engaged in using devilution to translate Diablo to my native language (brazilian portuguese), helping the translation for other languages in the process, as I did when adding support for utf-8 characters.

But now I hit a hard brick wall called "DiabloUI.dll". All of the main menu strings are there. I've been trying to hex edit it - something I have almost zero experience in - but I'm always getting wrong results. I know some people managed to successfully translate that file - since it was done in old spanish and portuguese translations that I've come across. So If someone can help me with the hex editing (I've read and watched plenty of tutorials, but none seems to address my specific issues with that file), well, that can be enough for now.

But truth is that's not really my thing. I would very much prefer editing a reverse-engineered DiabloUI.dll, and I suppose other translators would prefer that too. And the possibility of changing the main menu seems to be important for pretty much all future works that would use devilution as a base, such as enchancements, ports and of course mods. It's essential for the project's purpose, the way I see it.

So, @galaxyhaxz and @mewmew, is that on your plans for soon? If not, do you think it's "not-hard" enough that I could try and do it myself in a few days or weeks? At least for string translation purposes (the resulting code wouldn't have to be readable at all, for instance). I have zero experience with reverse-engineering code, very little with C++, but I'm graduate in computer science so I may have some resources.

All 3 comments

Related to reversal of DiabloUI.dll #41.

I think @galaxyhaxz stated at some point that the intention is to not reverse DiabloUI.dll or at least keep it to a minimum. The intention is rather to enable cross-platform support by rewrite DiabloUI.dll (see #17).

For hex editing, you can try this. Compile Devilution with a string that you wan to add to DiabloUI.dll (so that encodings are handled). Check what it compiles to and copy the hexadecimal bytes from Devilution.exe to DiabloUI.dll. Could work. Perhaps DiabloUI.dll is using its own graphics for font, in that case it would involve more work. Essentially replicating what you already did for Devilution.exe.

It may or may not get reversed, depending on how I feel over the next few months. The amount of work it took to get Devilution this far has me burned out, so it will be awhile.

Regarding editing the text, a program called "Resource Hacker" should do you good until we've reversed it. All of the title screen is handled through Windows-dialogs and not custom code:
link

@galaxyhaxz that's exactly what I needed, it worked perfectly. Thank you so much!

@mewmew I could swear I didn't find any Diablo UI related issues before creating this one, sorry for that. I guess I'll rename this one - since it's purpose was less general than that of the existing issue - and close it since it was virtually "solved" for me.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

utilForever picture utilForever  路  4Comments

AJenbo picture AJenbo  路  6Comments

nomdenom picture nomdenom  路  9Comments

AJenbo picture AJenbo  路  8Comments

AJenbo picture AJenbo  路  4Comments