Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Dragons Crown .ftx .mbs & bsb files

Get your graphics formats figures out here! Got details for others? Post here!
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

Hi Guys

I've extracted from the game Dragons Crown, the .CPK file, inside of this archive was a lot of different folders for characters, environments etc, however 3 specific formats popped up commonly:
  • .bsb
    .ftx
    .mbs
    .mcb
I know that .ftx files are textures, and I've tried to use this Noesis script from however there's an error and the files don't successfully open, nor are they exportable.

I'm not sure what the other files contain however, but its all in the graphics/stages folder, so it should be graphics I imagine.

I've uploaded the files to dropbox here: https://www.dropbox.com/sh/azf19y7homu8qnj/u-JOQibN1q

The Noesis script is here:

Code: Select all

from inc_noesis import *
def registerNoesisTypes():
   handle = noesis.register("FTX Texture Bundle", ".ftx")
   noesis.setHandlerTypeCheck(handle, ftxCheckType)
   noesis.setHandlerLoadModel(handle, ftxLoad)
   return 1

class FtxFile:
   def __init__(self, bs):
      self.bs = bs
   def loadImageInfo(self):
      if self.bs.dataSize < 32:
         return 0
      self.texInfos = []
      hdrInfo = noeUnpack("<iiii", self.bs.readBytes(32)[:16])
      if hdrInfo[0] != 0x58455446 or hdrInfo[3] <= 0 or 32+hdrInfo[3]*48+32+4 >= self.bs.dataSize:
         return 0
      for i in range(0, hdrInfo[3]):
         self.texInfos.append( (noeStrFromBytes(self.bs.readBytes(32)), self.bs.readBytes(16)) )
      self.bs.seek(32, NOESEEK_REL)
      return 1
   def loadImages(self, texList = []):
      for texInfo in self.texInfos:
         texHdr = noeUnpack("<iii", self.bs.readBytes(12))
         self.bs.seek(texHdr[2]-12, NOESEEK_REL)
         tex = rapi.loadTexByHandler(self.bs.readBytes(texHdr[1]), ".gim")
         tex.name = texInfo[0]
         texList.append(tex)
      return texList

def ftxCheckType(data):
   ftx = FtxFile(NoeBitStream(data))
   if ftx.loadImageInfo() == 0:
      return 0
   return 1
def ftxLoad(data, mdlList):
   ftx = FtxFile(NoeBitStream(data))
   if ftx.loadImageInfo() == 0:
      return 0
   mdlList.append(NoeModel([], [], [], NoeModelMaterials(ftx.loadImages(), [])))
   return 1
I hope someone is able to work out what I'm missing here.

Thankyou
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4285
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1147 times
Been thanked: 2242 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by shakotay2 »

I found this: Image

Just adding a header to the first dds (0x240..0x4023F) in bg00a_00.ftx:

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000   44 44 53 20 7C 00 00 00  07 10 0A 00 00 02 00 00   DDS |...........
0010   00 02 00 00 00 00 08 00  00 00 00 00 0B 00 00 00   ................
0020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00  00 00 00 00 20 00 00 00   ............ ...
0050   04 00 00 00 44 58 54 35  00 00 00 00 00 00 00 00   ....DXT5........
0060   00 00 00 00 00 00 00 00  00 00 00 00 08 10 40 00   ..............@.
0070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
Did not recalculate pitch or other values in the header so DirectX Texture Tools fails.
Could open the dds using DXTBmp.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

shakotay2 wrote: Just adding a header to the first dds (0x240..0x4023F) in bg00a_00.ftx:

Code: Select all

Offset  0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000   44 44 53 20 7C 00 00 00  07 10 0A 00 00 02 00 00   DDS |...........
0010   00 02 00 00 00 00 08 00  00 00 00 00 0B 00 00 00   ................
0020   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 00 00 00  00 00 00 00 20 00 00 00   ............ ...
0050   04 00 00 00 44 58 54 35  00 00 00 00 00 00 00 00   ....DXT5........
0060   00 00 00 00 00 00 00 00  00 00 00 00 08 10 40 00   ..............@.
0070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
Did not recalculate pitch or other values in the header so DirectX Texture Tools fails.
Could open the dds using DXTBmp.
Oh, now that was a lot simpler than I had anticipated, though with going on 1000+ ftx files at least, I wonder if theres perhaps a faster way than changing the header in each file. I'm still quite new to all this, sorry. But happy to learn.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by chrrox »

I have the format figured out for the texture files.
all the texture files are tiled and useless without their related other files that store the coordinates and frames.
all the textures are dxt 3 or 5.
I have the coordinate system mapped out i just need to assemble it when i get time.
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

chrrox wrote:I have the format figured out for the texture files.
all the texture files are tiled and useless without their related other files that store the coordinates and frames.
all the textures are dxt 3 or 5.
I have the coordinate system mapped out i just need to assemble it when i get time.
I see, are the files not similar to that of Muramasa, Grand Knights history and other Vanillaware titles?
I know for all the others its a texture sheet of sorts, but made up of tiles and they're arranged in game automatically but anyone outside of the game would have to manually match up the files, sometimes 1 scene can be on 12 or more texture sheets if I remember correctly.

Thanks for the update chroxx, look forward to your results.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by chrrox »

Windows update made me loose all my notes and i don't care much for this game so here this lets you load the raw textures.
You do not have the required permissions to view the files attached to this post.
neurotech
ultra-n00b
Posts: 8
Joined: Mon Apr 22, 2013 2:40 pm

Re: Dragons Crown .ftx .mbs & bsb files

Post by neurotech »

chrrox wrote:Windows update made me loose all my notes and i don't care much for this game so here this lets you load the raw textures.
So this only extracts the textures as untiled, with no coordinates, etc?
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

neurotech wrote:
chrrox wrote:Windows update made me loose all my notes and i don't care much for this game so here this lets you load the raw textures.
So this only extracts the textures as untiled, with no coordinates, etc?
It lets you view them as texture sheets in Noesis, export them from there.

The 'cordinates' in Vanillaware games are erm... well there sort of arnt any, each individual texture from the sheet is placed on a polygon and then that polygon is moved around the screen via code, if that makes sense.
neurotech
ultra-n00b
Posts: 8
Joined: Mon Apr 22, 2013 2:40 pm

Re: Dragons Crown .ftx .mbs & bsb files

Post by neurotech »

lionheartuk wrote:
neurotech wrote:
chrrox wrote:Windows update made me loose all my notes and i don't care much for this game so here this lets you load the raw textures.
So this only extracts the textures as untiled, with no coordinates, etc?
It lets you view them as texture sheets in Noesis, export them from there.

The 'cordinates' in Vanillaware games are erm... well there sort of arnt any, each individual texture from the sheet is placed on a polygon and then that polygon is moved around the screen via code, if that makes sense.
Yep since my previous post I've been exporting a bunch of FTX files from Noesis using chrrox's script and I can see exactly what you mean.
joeyq
n00b
Posts: 18
Joined: Tue Jan 19, 2010 11:14 am
Has thanked: 1 time
Been thanked: 5 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by joeyq »

lionheartuk wrote:Hi Guys

I've extracted from the game Dragons Crown, the .CPK file, inside of this archive was a lot of different folders for characters, environments etc, however 3 specific formats popped up commonly:
  • .bsb
    .ftx
    .mbs
    .mcb
I know that .ftx files are textures, and I've tried to use this Noesis script from however there's an error and the files don't successfully open, nor are they exportable.

I'm not sure what the other files contain however, but its all in the graphics/stages folder, so it should be graphics I imagine.

I've uploaded the files to dropbox here: https://www.dropbox.com/sh/azf19y7homu8qnj/u-JOQibN1q

The Noesis script is here:

Code: Select all

from inc_noesis import *
def registerNoesisTypes():
   handle = noesis.register("FTX Texture Bundle", ".ftx")
   noesis.setHandlerTypeCheck(handle, ftxCheckType)
   noesis.setHandlerLoadModel(handle, ftxLoad)
   return 1

class FtxFile:
   def __init__(self, bs):
      self.bs = bs
   def loadImageInfo(self):
      if self.bs.dataSize < 32:
         return 0
      self.texInfos = []
      hdrInfo = noeUnpack("<iiii", self.bs.readBytes(32)[:16])
      if hdrInfo[0] != 0x58455446 or hdrInfo[3] <= 0 or 32+hdrInfo[3]*48+32+4 >= self.bs.dataSize:
         return 0
      for i in range(0, hdrInfo[3]):
         self.texInfos.append( (noeStrFromBytes(self.bs.readBytes(32)), self.bs.readBytes(16)) )
      self.bs.seek(32, NOESEEK_REL)
      return 1
   def loadImages(self, texList = []):
      for texInfo in self.texInfos:
         texHdr = noeUnpack("<iii", self.bs.readBytes(12))
         self.bs.seek(texHdr[2]-12, NOESEEK_REL)
         tex = rapi.loadTexByHandler(self.bs.readBytes(texHdr[1]), ".gim")
         tex.name = texInfo[0]
         texList.append(tex)
      return texList

def ftxCheckType(data):
   ftx = FtxFile(NoeBitStream(data))
   if ftx.loadImageInfo() == 0:
      return 0
   return 1
def ftxLoad(data, mdlList):
   ftx = FtxFile(NoeBitStream(data))
   if ftx.loadImageInfo() == 0:
      return 0
   mdlList.append(NoeModel([], [], [], NoeModelMaterials(ftx.loadImages(), [])))
   return 1
I hope someone is able to work out what I'm missing here.

Thankyou
your link is to a zip named "music as requested" with some random mp3's. please post a proper link to the ftx's.:)
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

joeyq wrote: your link is to a zip named "music as requested" with some random mp3's. please post a proper link to the ftx's.:)
Sorry, I deleted the FTX files after obtaining the working Noesis script on how to view them.
If I know why you need the ftx files then I may be able to reupload one or 2 of them for you to checkout.
joeyq
n00b
Posts: 18
Joined: Tue Jan 19, 2010 11:14 am
Has thanked: 1 time
Been thanked: 5 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by joeyq »

lionheartuk wrote:
joeyq wrote: your link is to a zip named "music as requested" with some random mp3's. please post a proper link to the ftx's.:)
Sorry, I deleted the FTX files after obtaining the working Noesis script on how to view them.
If I know why you need the ftx files then I may be able to reupload one or 2 of them for you to checkout.
Sorry for reacting so late, but i figured it out on my own. I'm such a noob, i just needed to extract the files from "DRACRO.CPK" with the latest noesis. [roll]
Thanx for quick response lionheartuk, and thanx for script chrrox!!
maoxianfly
ultra-n00b
Posts: 4
Joined: Fri Nov 07, 2014 5:38 pm

Re: Dragons Crown .ftx .mbs & bsb files

Post by maoxianfly »

chrrox wrote:Windows update made me loose all my notes and i don't care much for this game so here this lets you load the raw textures.
Can't Extracting "The Demon Blade" ftx file.
maoxianfly
ultra-n00b
Posts: 4
Joined: Fri Nov 07, 2014 5:38 pm

Re: Dragons Crown .ftx .mbs & bsb files

Post by maoxianfly »

lionheartuk wrote:
chrrox wrote:I have the format figured out for the texture files.
all the texture files are tiled and useless without their related other files that store the coordinates and frames.
all the textures are dxt 3 or 5.
I have the coordinate system mapped out i just need to assemble it when i get time.
I see, are the files not similar to that of Muramasa, Grand Knights history and other Vanillaware titles?
I know for all the others its a texture sheet of sorts, but made up of tiles and they're arranged in game automatically but anyone outside of the game would have to manually match up the files, sometimes 1 scene can be on 12 or more texture sheets if I remember correctly.

Thanks for the update chroxx, look forward to your results.
Can't Extracting "The Demon Blade" ftx file.
User avatar
lionheartuk
double-veteran
double-veteran
Posts: 749
Joined: Tue May 16, 2006 10:55 pm
Location: Everywhere
Has thanked: 34 times
Been thanked: 42 times

Re: Dragons Crown .ftx .mbs & bsb files

Post by lionheartuk »

maoxianfly wrote:
lionheartuk wrote:
chrrox wrote:I have the format figured out for the texture files.
all the texture files are tiled and useless without their related other files that store the coordinates and frames.
all the textures are dxt 3 or 5.
I have the coordinate system mapped out i just need to assemble it when i get time.
I see, are the files not similar to that of Muramasa, Grand Knights history and other Vanillaware titles?
I know for all the others its a texture sheet of sorts, but made up of tiles and they're arranged in game automatically but anyone outside of the game would have to manually match up the files, sometimes 1 scene can be on 12 or more texture sheets if I remember correctly.

Thanks for the update chroxx, look forward to your results.
Can't Extracting "The Demon Blade" ftx file.
The script was made for Dragons Crown ftx files, the only similar thing between all the vanillaware games is the name of the extension as .ftx, the files themselves are never the same.

If you're really after textures from Muramasa then just play through it in the Dolphin Emulator with texture dumping, or alternatively grab the HD texture pack fromt he Dolphin forums (which I'm not going to link to as its probably against the rules here.
Post Reply