Shadowkey File Formats
Hello! I just got your email. Unfortunately, I never dug too far into Shadowkey's file formats, so I don't have any specific knowledge on the global.spr file. However, I happen to have spent a lot of time with file formats lately, so I might be able to help out a bit.
I don't know how much experience you have with this sort of thing, but in general, a custom file format will require writing a simple program to convert it to a standard one. For example, custom image formats will often be converted to BMPs (bitmaps), due to their simplicity.
Looking at the file through a hex editor, I see the following:
Offsets 0x0 - 0x3F0: a list of 4-byte values, 256 in total. They are probably unsigned integers, little-endian, though there are a few repeated values at the end.
Offsets 0x400 - 0x5F0: 512 null bytes (all 0s). It's possible this is part of the above section.
From there on, it's a bunch of binary data.
How many sprites do you think are being stored in this file? Are sprites always the same size? Are they RGBA? I'd look at the beginning sections and see if any of these numbers correspond to image dimensions or offsets within the file. They could also be defining a color palette.
- Thanks for the response, for how many sprites are in the file, that varies, I haven't found a file that definitively lists all sprites in the game, but there are sprite files for each individual zone (i.e azra_sprites.txt) which lists 1-219 each on new lines. Sprites aren't always the same size, there are different resolution sprites for interface, for weapon models, for icons and (I assume) textures, which makes things difficult. I do know that the file is RGBA, although doesn't seem to support semi-transparent pixels. I don't really have that much experience with dealing with these unknown and undocumented file types, it's out of my area of comfort, but I would really like to get the sprites for this game documented. (As mentioned in my email to you, there could be an as of yet undocumented Skeleton Key appearance in the lore). How easy, or hard, would it be to reverse engineer the format to get it to convert it to a readable one? Thal-J (talk) 22:41, 13 January 2020 (GMT)
- That's useful information. This sounds very doable.
- How easy, or hard, would it be to reverse engineer the format to get it to convert it to a readable one?
- I'm afraid that's hard to answer. It partly depends on personal experience, but it mostly depends on how complicated that particular file format is. A basic background in computer programming and file formats helps, but I've always seen these as puzzles. The domain happens to be quite technical, but you don't need much technical knowledge to solve it. It comes down to ambition as much as anything else.
- With puzzles like this, knowing what to look for is crucial. Not just if the file contains image data, but how each little bit connects to the rest of the program as a whole. If your primary goal is to track down any and all references to the Skeleton Key, you may be wise to try figuring out other references to it, as it may turn out that you don't need to reverse-engineer the
global.sprfile at all. • JAT 04:27, 16 January 2020 (GMT)
- Unfortunately my goal isn't _just_ the Skeleton Key sprite (if it were just that, I could probably edit the rom file to display the icon in other ways, for example changing the icon of one of the potions to it, and then take a screenshot). I used the Skeleton Key sprite as an example of something I'd like to have a clean version of, but ultimately my main goal here is to try and get global.spr out in a readable format in its entirety. That's where my expertise ends I'm afraid, I reached out to you in the hope that this file format could be cracked, decoded and then put into a readable format for the good of documentation and for the wiki. I'd like to give you as much information and help as much as possible in the hopes that we're able to crack it together, because this spritesheet is a major step I believe in documenting this forgotten game fully. I was planning on revamping the items/weapons/armour pages with extracted sprites from the spritesheet, at the moment there are only a couple of sprites edited out from screenshots, so they're not the best quality. Thal-J (talk) 23:06, 20 January 2020 (GMT)
- That's useful information. This sounds very doable.
Shadowkey Emulation Guide
I'm a News Team member at TES Wiki. I recently learnt that a N-Gage emulator had finally been made, and I found the guide you wrote (Shadowkey Emulation Guide) very useful. I am writing to you to ask for permission to write a guide on how to emulate Shadowkey based on your guide. I will use my own screenshots and credit you and UESP at the end.
I am looking forward to hearing from you,
- Hi Amulet of Kings(?), I'm glad that my guide has been noticed and that someone found it useful. Thanks for reaching out to me -- someone already mentioned to me that you were asking about my guide, so I was trying to contact you on the Wikia discord to talk to you about it before I received this notification. Anyways, since you're here now, wanted to say sure, feel free to base a guide off of mine!
- I should mention however that I spoke with the developer of the emulator a few days ago, some things have changed since I initially wrote that guide, which are listed below. I am planning to update my guide later when I have time so I thought I'd give you a heads up.
- The newest master release should work fine out of the box (no changing config files or anything), however, there is a glitchy sound bug on faster hardware, this can be fixed by lowering the time delay in the emulator preferences.
- There is now a
Load MMC/SD cardfunction in the emulator, so you no longer need to copy/paste Shadowkey's game ROM into the emulator's filesystem itself, just click that option, point it towards wherever you extracted your Shadowkey game's
systemfolder, and it'll do the rest. Thal-J (talk) 23:07, 19 October 2020 (UTC)
- Thank you very much!