This is a really cool looking game, but unfortunately its FFG archives are really weird and annoying. There are a number of files but I'm most interested in the sprites ("textures") and sound effects. I'm pretty sure they're not compressed, I could see OGG headers in the music archive. Honestly have no idea where to begin though, all I can tell is that there are two longs at 0x0A and 0x0E that seem to have something to do with the filesize (although I don't know what).
Here are the files:
Sounds
Textures
Jamestown (PC)
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
-
- Posts: 161
- Joined: Sat Dec 13, 2014 1:01 am
Re: Jamestown (PC)
Awesome, thanks so much aluigi! I really appreciate it I have some more archives, it looks like the graphics need a palette so PaletteSets.ffg is the one I need most. The rest might be interesting to check out as well.
They're all pretty small so I've just attached them. This is all except for the music one, that's pretty big and fairly easy to extract from anyway (just uncompressed OGG).
They're all pretty small so I've just attached them. This is all except for the music one, that's pretty big and fairly easy to extract from anyway (just uncompressed OGG).
-
- Posts: 161
- Joined: Sat Dec 13, 2014 1:01 am
Re: Jamestown (PC)
OK, I've sort of figured out PaletteSets.ffg. It's similar to Textures.ffg, the decompression is unzip_dynamic, but instead of jumping ahead 0x1c bytes you jump ahead 0x2c bytes... at first. After the first couple of files, you instead jump ahead 0x3c. And then after a couple of those, it's 0x2c again. It's weird.
There must be a more reliable way of detecting the space between files, I'm just not sure what it could be.
EDIT: Got it. For each file after you read in the DUMMY long, there's another long to read. Multiply this by 8, then add 0x20, and that's how far it is until the next length. Here's the elif block I added to support the palette file:
There must be a more reliable way of detecting the space between files, I'm just not sure what it could be.
EDIT: Got it. For each file after you read in the DUMMY long, there's another long to read. Multiply this by 8, then add 0x20, and that's how far it is until the next length. Here's the elif block I added to support the palette file:
Code: Select all
elif FFG_NAME == "palettesets.ffg"
get SKIP_NUM long
set SKIP_SIZE 8
math SKIP_SIZE *= SKIP_NUM
math SKIP_SIZE += 0x20
getdstring DUMMY SKIP_SIZE
get SIZE long
savepos OFFSET
clog NAME OFFSET SIZE SIZE
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Jamestown (PC)
Thanks, script updated with your code.