April 25, 2024, 01:09:34 AM

Username
Password

  Show Posts
Pages: [1]
1  Modifications / Tools / Re: What is x and y in a frame from an .SPR sprite file? on: March 17, 2024, 04:03:34 AM
After some quick experimenting, I was able to find out some info, but I don't have a definitive answer for whether we can say x and y are for purpose P for every sprite (I could still be wrong).

I wrote my findings up here so it was easier to attach images: https://gist.github.com/jonathaningram/79fe2fdf331f6b98c2e4542c83e625e0

2  Modifications / Tools / What is x and y in a frame from an .SPR sprite file? on: March 14, 2024, 01:49:20 AM
In http://wiki.dark-omen.org/do/Updated_Sprite_Format, we have:

signed short X;        // = X position of this frame
signed short Y;        // = Y position of this frame

But I don't really get what they are meant to be used for. For example, here's a random set of x,y,width,height from one sprite's frame:

x: -23, y: -31, width: 49, height: 31

Even in this example, if the sprite is 31 pixels tall, what could a y position of -31 be referring to?

Any ideas?
3  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: January 08, 2020, 10:28:35 PM
Just wanted to drop a quick note here so say thanks Ghabry. Your hard work is paying off and I'm successfully decoding the fonts and able to display them. I'm still working through some of the unknown parts which mostly seem related to glyph layout and positioning so I'm not ready to share anything yet.

I'll post back here with any of my additional findings on the unknown parts, plus a link to my decoder and also (hopefully) a surprise screenshot of my progress putting the .FNT (and other) decoders to use.
4  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: January 06, 2020, 11:54:33 PM
Just a quick thought on:

> ALso this 16 color stuff doesn't make complete sense as there is no value for "draw transparent" here (000000FF).

The first value in the colour table is hex FF 00 FF 00 (RGB 255, 0, 255). This is the same colour that is used in the BMP files in DO (e.g. in PICTURES folder) to represent transparency. So this could be the same story in the font files too.

Also I believe the SPR files were in BGRA order.
5  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: January 06, 2020, 11:31:38 PM
Awesome Ghabry, I'll give it a go. Thanks so much for helping out.
6  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: January 05, 2020, 01:58:08 AM
The investigation continues for me. I posted on another forum just now to see if anyone else has any ideas (https://forum.xentax.com/viewtopic.php?t=21572).

In the meantime, here's my best guess at what each of the fonts are used for:

- F_BOOKBD.FNT (books font, bold?)
- F_BOOKS.FNT (books font, standard text?)
- F_BOOKSR.FNT (books font, red?)
- F_BOOKSW.FNT (books font, white?)
- F_HELP.FNT (?)
- F_MENBG.FNT (menu font, big)
- F_MENBGR.FNT (menu font, big, red)
- F_MENSM.FNT (menu font, small)
- F_MENSMR.FNT (menu font, small, red)
- F_MESS_E.FNT (message font, English? if English, why is there no German?)
- F_MESS_F.FNT (message font, French? if French, why is there no German?)
- F_TITLE.FNT (?)
- F_TOOL.FNT (tooltip font?)

"BOOKS" fonts probably means anything in the game that is text written on parchment or paper (e.g. troop roster, troop catalog, magic item catalog).

For the main menu fonts, when you hover over an item, it goes red, so that's why I believe the ones ending in R are for red fonts. If that's the case, theoretically there would be some sort of colour table or red RGBA colour in the font file. Same story with the books red font—this is probably used for when you're replenishing troops in the troop roster. Note: the game ships with English, French and German variations of some assets, so this is why I'm confused about whether the _E and _F fonts are for English and French, respectively. It may be possible though if either or both of the _E and _F fonts can be combined for German? Probably not really that useful in helping to decode anyway...
7  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: December 29, 2019, 10:42:11 AM
Thanks all. Looking forward to any findings you have—I've been continuing my own research and trying to work it out over the past few days but no luck yet. I'll keep trying though.
8  Modifications / Tools / Re: Looking for info on DO .FNT font file format on: December 26, 2019, 04:44:30 AM
Sounds great thanks olly. Looking forward to hearing your findings.
9  Modifications / Tools / Looking for info on DO .FNT font file format on: December 24, 2019, 03:28:09 AM
Hi everyone, does anyone have any information on what format the DO fonts are encoded in? I'd like to be able to decode them I so I can render them in my program.

For example, there is a font named F_BOOKBD.FNT.

Old Windows fonts are apparently named as such but through a hex inspector the DO fonts seem to start with the string "FONT" whereas that's not mentioned in the Windows .FNT spec so I don't think they are the same.

Thanks Smiley
10  Modifications / Tools / Re: New Go library for decoding SPR files on: December 23, 2019, 05:40:44 AM
OK I just added decoding for .M3D files. Nothing fancy—all my work is really just porting the Python and C# source code I found on the internet to Go.

The example command in the GitHub repository is just meant to illustrate decoding the models and writing them out as JSON files—I wouldn't expect the output of this command to be useful aside from inspecting the contents of the model files.
11  Modifications / Tools / New Go library for decoding SPR files on: December 12, 2019, 11:18:28 AM
Hey everyone, I wrote a package in Go that can decode Dark Omen's .SPR files. The package allows you to work with the frames in-memory in your program. For example, you can dump them out as PNG images. The Go package for doing SPR-related things is named encoding/spr.

Take a look and let me know what you think. I think I've got the method correct (based off http://wiki.dark-omen.org/do/DO/Updated_Sprite_Format). I'm 99% sure I've done the Zero Runs decompression correctly, but happy to hear otherwise. I mention this because there's a few sprites that end up having some frames decoded as width=0, height=0 which can't be dumped as an image. I think it checks out because these frames also have a corresponding frame type of 5 which means the frame is empty—just not sure why the frames would actually even exist if they are empty (unless it's meant to render nothing in the game for that sprite's frame).

There's probably still a bit of work to do in the encoding/spr package. For example an old version of the sprite decoding method talked about an 'action' property and I haven't revisited that after implementing the newer version. Also, the package provides the user enough information to dump out the frames as PNG, but I haven't checked that there's enough information to do other useful things with the sprite and frames.

If you look in cmd/spr-dump you can see an example program for how you should be able to download the program and run it against your Dark Omen CD to see all of the sprites being decoded and dumped to an output directory on your file system. I didn't test it on Windows but it should work...

The package will probably undergo heavy development if I'm able to keep adding things to it. I'll likely add in GitHub releases, so any binaries/executables (like cmd/spr-dump) will be released in the GitHub repo as prebuilt downloadable executable files—and because Go makes it so easy, they'll be available for Linux, macOS and Windows!

Here is the GitHub URL: https://github.com/jonathaningram/dark-omen
Pages: [1]