Malenko
Established Member
Saturn 15bpp tool (RAW to BMP and BMP to RAW)
A lot of graphics on other systems use 16bpp but Saturn is a little special and uses 15bpp.
When you open some Saturn tiles in programs like CrystalTile the image is there but it looks a little bit “off” Thats where these tools come in handy, they change the 15 bit tiles into usable bitmaps, then they can convert those bitmaps back into 15-bit data the Saturn can display.
Before we get started , let’s make sure we can use the software.
After downloading them from: https://github.com/DerekPascarella/Saturn-15bpp-Graphics-Converter
Extract them to a folder. Now we need to right click the files and go to properties to make sure
windows isn’t blocking them
If this is on the screen, check “unblock” then hit OK.
Now, find your data. You can use the “Lets replace Saturn Graphics” tutorial to give you the basics; that’s not the point of this tutorial.
In the game “Logic Puzzle Rainbow Town” the title screen with the logo and text is located in TITLE2.SBM
Opening the file in a hex-editor will show you where all the header data is:
You can see the actual image doesn’t start until 0X0220
For this game all the images are 240 pixels tall but the width value in at 0x01C , in this case its the hex value of 140, which is 320 in decimal
We can open the file in Crystal tile, set the dimensions to width = 320 and height to 240
Then we change the offset to 220, which is where the data started.
It looks zany and I believe this is a quirk of CT, the fix is easy and just increase the offset by 1
The image should now look like this:
For reference, this is the in game title screen:
Just at a glance you can see the odd color banding especially on the rainbow and the map. This is an issue with how Crystal tile displays the 15 bit images from Saturn games. That’s part of the reason for this tool, you can't just paste into crystal tile directly, you need these tools to convert the data.
The 15bpp tool does a proper conversion of the data into a BMP. You can then edit the bitmap in your editor of choice, then reconvert the BMP back into 15bpp Saturn compliant data. The banding will reappear in crystal tile after the conversion.This is all done so the graphics display properly in game despite how they look in CrystalTile.
The first thing we need to do is copy out the RAW image data. We start by opening the file in a hex editor. I will be using wxMEdit, but they all basically function the same.
I will then go to position 0x0220 , then copy the data from there till the end of the file.
Then paste into a new file:
This is the exact same data but excludes anything that isnt image data. In this particular case its just stripping out the header, but in other use cases it will basically isolate the image data you need from any other data like headers or other images.
I have saved the data as “TitleScreenRAW.bin”
For simplicity's sake I am putting the raw data, and the 2 15bpp executables in the same folder:
Next we convert that raw data to a BMP that we can easily edit in a program like Photoshop.
Looking at the image in crystal, we can see we need to use the dimensions of 320x240
Open a command prompt / powershell and run the following:
15bpp-2-bmp <15BPP_FILE> <WIDTH> <HEIGHT>
Or in our case:
That will output this BMP:
Notice the file name is what we named the raw data with a BMP at the end and that the weird banding is gone.
We open that up in our favorite graphics editor, and create the replacement art:
This tutorial does NOT cover how to make art. Sorry, I’m not that good
If there is a dialog box about what format to save it into, select 24 bit for windows.
In GIMP, you need to save as a 24-bit BMP with color space enabled
Use the other exe to convert the BMP back to RAW
And open that up in CT to check it.
As long as it looks ok, the next step is to copy that raw data in a hex editor….
And Paste (with over writing) at 0x220 (because the header goes up to 21F)
After you save the edited file (I save in a folder called edited files, so I don’t lose the originals); you can inject it into the game and give it a test!
As long as it looks good, you are done. On to the next image!
To note, this is a tutorial by an end user of the software not the programmer. Any screen grabs may be of work in progress images (ie that’s probably not the final version of the title screen) use at your own risk, and good luck.
Also to note, this tool was used in both Jung Rhythm and Logic Puzzle with no issues, but YMMV.
A lot of graphics on other systems use 16bpp but Saturn is a little special and uses 15bpp.
When you open some Saturn tiles in programs like CrystalTile the image is there but it looks a little bit “off” Thats where these tools come in handy, they change the 15 bit tiles into usable bitmaps, then they can convert those bitmaps back into 15-bit data the Saturn can display.
Before we get started , let’s make sure we can use the software.
After downloading them from: https://github.com/DerekPascarella/Saturn-15bpp-Graphics-Converter
Extract them to a folder. Now we need to right click the files and go to properties to make sure
windows isn’t blocking them
If this is on the screen, check “unblock” then hit OK.
Now, find your data. You can use the “Lets replace Saturn Graphics” tutorial to give you the basics; that’s not the point of this tutorial.
In the game “Logic Puzzle Rainbow Town” the title screen with the logo and text is located in TITLE2.SBM
Opening the file in a hex-editor will show you where all the header data is:
You can see the actual image doesn’t start until 0X0220
For this game all the images are 240 pixels tall but the width value in at 0x01C , in this case its the hex value of 140, which is 320 in decimal
We can open the file in Crystal tile, set the dimensions to width = 320 and height to 240
Then we change the offset to 220, which is where the data started.
It looks zany and I believe this is a quirk of CT, the fix is easy and just increase the offset by 1
The image should now look like this:
For reference, this is the in game title screen:
Just at a glance you can see the odd color banding especially on the rainbow and the map. This is an issue with how Crystal tile displays the 15 bit images from Saturn games. That’s part of the reason for this tool, you can't just paste into crystal tile directly, you need these tools to convert the data.
The 15bpp tool does a proper conversion of the data into a BMP. You can then edit the bitmap in your editor of choice, then reconvert the BMP back into 15bpp Saturn compliant data. The banding will reappear in crystal tile after the conversion.This is all done so the graphics display properly in game despite how they look in CrystalTile.
The first thing we need to do is copy out the RAW image data. We start by opening the file in a hex editor. I will be using wxMEdit, but they all basically function the same.
I will then go to position 0x0220 , then copy the data from there till the end of the file.
Then paste into a new file:
This is the exact same data but excludes anything that isnt image data. In this particular case its just stripping out the header, but in other use cases it will basically isolate the image data you need from any other data like headers or other images.
I have saved the data as “TitleScreenRAW.bin”
For simplicity's sake I am putting the raw data, and the 2 15bpp executables in the same folder:
Next we convert that raw data to a BMP that we can easily edit in a program like Photoshop.
Looking at the image in crystal, we can see we need to use the dimensions of 320x240
Open a command prompt / powershell and run the following:
15bpp-2-bmp <15BPP_FILE> <WIDTH> <HEIGHT>
Or in our case:
That will output this BMP:
Notice the file name is what we named the raw data with a BMP at the end and that the weird banding is gone.
We open that up in our favorite graphics editor, and create the replacement art:
This tutorial does NOT cover how to make art. Sorry, I’m not that good
If there is a dialog box about what format to save it into, select 24 bit for windows.
In GIMP, you need to save as a 24-bit BMP with color space enabled
Use the other exe to convert the BMP back to RAW
And open that up in CT to check it.
As long as it looks ok, the next step is to copy that raw data in a hex editor….
And Paste (with over writing) at 0x220 (because the header goes up to 21F)
After you save the edited file (I save in a folder called edited files, so I don’t lose the originals); you can inject it into the game and give it a test!
As long as it looks good, you are done. On to the next image!
To note, this is a tutorial by an end user of the software not the programmer. Any screen grabs may be of work in progress images (ie that’s probably not the final version of the title screen) use at your own risk, and good luck.
Also to note, this tool was used in both Jung Rhythm and Logic Puzzle with no issues, but YMMV.
Last edited: