As some people probably already heard, I made a font editor to edit the font format in Command & Conquer 1. Well, happy coincidence, it turned out this works for a bunch of other games, including Dune II. But that's not all; while implementing some of the pre-Dune2 font formats on request of Tomsons23, one of my strongest supporters and researchers in this journey, I got a request (from FunkyFr3sh) to also implement Dune 2000 support.
Now, as people around here most probably already know, Dune 2000 was, in fact, not made by Westwood, and as a result, the font's internals were completely different from the Westwood formats. But we figured it out anyway
So, without further ado... the Westwood Font Editor:
Current version: 1.5.4 (21/12/2016)
The project is built on the .Net framework v3.5
Its code is licensed under the WTFPL.
Download: Downloads folder
Source code: (C#) Sources folder
Original development thread: (at cncnet.org) https://forums.cncnet.org/index.php?topic=6810.0
* * *
Note on Dune 2000 support:
The text encoding dropdown list has an extra "Dune 2000 text encoding" item at the bottom. The reason for this is that the font is strangely reordered.
Dune 2000 has a text encoding translation table called "FONT.BIN", apparently meant to line up the used special characters in the font without leaving gaps. (Though, strangely, this isn't used to optimize the font in any way.)
For example, if you need the character "ä", that's byte 0xE4 in the text encoding used by the game (Windows-1252; standard US / Western European). If you look on address 0xE4 in FONT.BIN, you'll see the value there is 0x80. This means that character "ä" is at index 0x80 (128) in the fonts.
So, in short: ä = 0xE4 ==> table index 0xE4 ==> value 0x80 => font index 0x80
(The editor actually does the reverse; going from font table index to character by looking up in which spot in the table each index value is, but you don't need to do that, since Dune 2000 text files are just in Windows-1252 encoding)
If you want to add fonts for a different text encoding to the game, I advise you to get rid of this whole nonsense by replacing FONT.BIN with a 256-byte file containing a simple sequence of bytes from 00 to FF, so each character simply gets mapped onto itself. This does require re-ordering all characters on the font to actually take their correct place... but I've already done that for you guys
Dune 2000 fixed fonts: http://nyerguds.arsaneus-design.com/project_stuff/2016/WWFontEditor/resources/Dune2000FontsFixed.zip
* * *
Full list of supported types / games, as of v1.2.1:
WWFont v1:
-Wargame Construction Set
-A Nightmare On Elm Street
-DragonStrike
-Circuit's Edge
WWFont v2
-BattleTech The Crescent Hawk's Revenge
-Eye of the Beholder
-Eye of the Beholder II The Legend of Darkmoon
WWFont v3
-The Legend of Kyrandia
-Dune II
-Lands of Lore The Throne of Chaos
-The Legend of Kyrandia Hand of Fate
-The Legend of Kyrandia Malcolm's Revenge
-The Legend of Kyrandia Malcolm's Revenge Installer
-Command & Conquer
-Command & Conquer Installer
-Command & Conquer Red Alert
-Command & Conquer Red Alert Installer
-Lands of Lore Guardians of Destiny
-Lands of Lore Guardians of Destiny Installer
-Command & Conquer Sole Survivor
-Lands of Lore III
WWFont v4
-Tiberian Sun
-Tiberian Sun Installer
-Tiberian Sun Firestorm
-Tiberian Sun Firestorm Installer
-Lands of Lore III Installer
IGFont (Dune 2000 was made by Intelligent Games, not by Westwood)
-Dune 2000