04-08-2015, 07:22 PM
EDIT: Post now includes raw sprite data on the bottom, including DLCs.
EDIT2: Added Puggsoy's sprite ripper to bottom.
EDIT3: Updated download link for the program - PM me if the link isn't working
I have been checking around the datafiles in Castlevania HD, and I was able to figure out the way they work, using TiledGGD.
Yes, I know most of the sprites are 1 to 1 copies from DS games or other source material, but the files are pretty nicely organized, and once I figured out the palette files, they should have correct colors aswell, which is hell to figure out on DS files.
The game sprite data, which aren't surfaces, consist of three files.
.col files are the palettes. These files are too dark, and every value needs to be multipled by 8 in order for them to work.
.csr files are the main sprite files
.opd files are most probably files that align and set what needs to be read. Doesn't seem to contain sprites/palettes.
Anyhow, to get stuff working. Load any csr file on tiledGGD, and set stuff like this:
Panel size needs to be 128 x Anything
Format needs to be 4 bits/pixel
Endianness needs to be little endian
Then load up the palette from a .col file in same folder, it needs to be:
4 bytes/colour
Big endian
RGB
The palettes start at offset 0x20 , containing 16 colors each.
In the end, you will get out an image looking something like this:
The palettes, for some RANDOM reason are too dark. I made a little program, which starts reading the palettes at offset 0x20, and multiplies every color by 8. The result looks like this:
I would say this is close to the DS palette. The colors are off ~8 values, since the values needed to be multiplied by 8. Especially noticable on Jonathan, his sprite's outline looked dark gray on DS, black on HD.
And yes, rest of the palettes work as well. Here are few examples of the other, in-game palettes for Julius.
I might do some rips from the game soon, as using these techniques, ripping is pretty easy. Everything that is made in the CSR files should be readable, as the .col files containing the palettes are in the same folder, only too dark.
As xb360 doesn't have an emulator, I can't confirm these too well, but the player palettes seemed to be correct looking on real console. I wonder if this is close enough to make a spritesheet for the site?
Here is the raw sprite data to be used from the game. I don't want to reserve making the sprites or sprite sheets any way myself, so if anyone wants to make the sprite sheets to the site, feel free to do so.
There are two variations: The first one is 11mb, only with sprites. The second one also includes stage and menu surfaces, taking 125mb.
PASSWORD : thesprite
Sprites only: https://mega.co.nz/#!AEtGkAqD!Pkqwwf4EE3...4lVSAjWjKw
Sprites + Surfaces: https://mega.co.nz/#!kQ1n3Ioa!1t5Rju498o...m3y7wlayrc
To open the files, Puggsoy was really nice to make a program to use for ripping the sprites of the game! Give it a go!
https://dl.dropbox.com/s/wijs0kt0652bi8c/cashdconv.zip
I hope this info would help people rip sprites and make some new, cool castlevania fangames. Have fun! =)
EDIT2: Added Puggsoy's sprite ripper to bottom.
EDIT3: Updated download link for the program - PM me if the link isn't working
I have been checking around the datafiles in Castlevania HD, and I was able to figure out the way they work, using TiledGGD.
Yes, I know most of the sprites are 1 to 1 copies from DS games or other source material, but the files are pretty nicely organized, and once I figured out the palette files, they should have correct colors aswell, which is hell to figure out on DS files.
The game sprite data, which aren't surfaces, consist of three files.
.col files are the palettes. These files are too dark, and every value needs to be multipled by 8 in order for them to work.
.csr files are the main sprite files
.opd files are most probably files that align and set what needs to be read. Doesn't seem to contain sprites/palettes.
Anyhow, to get stuff working. Load any csr file on tiledGGD, and set stuff like this:
Panel size needs to be 128 x Anything
Format needs to be 4 bits/pixel
Endianness needs to be little endian
Then load up the palette from a .col file in same folder, it needs to be:
4 bytes/colour
Big endian
RGB
The palettes start at offset 0x20 , containing 16 colors each.
In the end, you will get out an image looking something like this:
The palettes, for some RANDOM reason are too dark. I made a little program, which starts reading the palettes at offset 0x20, and multiplies every color by 8. The result looks like this:
I would say this is close to the DS palette. The colors are off ~8 values, since the values needed to be multiplied by 8. Especially noticable on Jonathan, his sprite's outline looked dark gray on DS, black on HD.
And yes, rest of the palettes work as well. Here are few examples of the other, in-game palettes for Julius.
I might do some rips from the game soon, as using these techniques, ripping is pretty easy. Everything that is made in the CSR files should be readable, as the .col files containing the palettes are in the same folder, only too dark.
As xb360 doesn't have an emulator, I can't confirm these too well, but the player palettes seemed to be correct looking on real console. I wonder if this is close enough to make a spritesheet for the site?
Here is the raw sprite data to be used from the game. I don't want to reserve making the sprites or sprite sheets any way myself, so if anyone wants to make the sprite sheets to the site, feel free to do so.
There are two variations: The first one is 11mb, only with sprites. The second one also includes stage and menu surfaces, taking 125mb.
PASSWORD : thesprite
Sprites only: https://mega.co.nz/#!AEtGkAqD!Pkqwwf4EE3...4lVSAjWjKw
Sprites + Surfaces: https://mega.co.nz/#!kQ1n3Ioa!1t5Rju498o...m3y7wlayrc
To open the files, Puggsoy was really nice to make a program to use for ripping the sprites of the game! Give it a go!
https://dl.dropbox.com/s/wijs0kt0652bi8c/cashdconv.zip
Code:
Usage: cashdconv palFile imgFile [outDir]
palFile: The .col file containing palettes you want to use.
imgFile: The .csr file you want to convert. Can alternatively be a folder multiple .csr files
outDir: The folder to save the converted files to. If ommitted will create a subfolder called 'converted'
I hope this info would help people rip sprites and make some new, cool castlevania fangames. Have fun! =)