Greetings. I just started dabbling into Dreamcast development, and one of the things I've been tinkering with is creating an image that can go on the Sega copyright logo screen (IP.BIN). However, I'm having trouble with color limitations for it. In particular, I'm having difficulty figuring out how ipcreate counts colors in an image.
I'm trying to get the color count below 128 for this very simple test image I made (it's lazy, but I'm just trying to get a feel for what needs to be done) so that ipcreate will convert the image to the mr format.

The image above already has less than 128 colors (125, to be precise), but feeding this into ipcreate gives me the error that the image is more than 128 colors. So I started to reduce it little by little. I kept reducing the number of colors the image has, but it kept telling me that there were more than 128 colors in the image. Finally, after reducing the image to just three colors, I get this message
Just for reference, this is the image that ipcreate is complaining about (both images are 8-bit in color):

With this knowledge in mind, I tried something different, and created an indexed image in aseprite (a sprite creation program designed to make images with limited palettes). I would draw simple lines with different colors, and it seemed totally random how many colors ipcreate would detect when I did so. Generally, it seemed like single-width lines made the count go up by two, while lines of width 2 or greater would count as four colors. The only time one color was added was when I drew a line of an existing color on top of another line of a different color (where the color count shouldn't be going up at all).
Below is the test image. It clearly shows 5 solid, colors without any antiailiasing (white, black, red, blue, and magenta), but ipcreate reports it as 15 colors despite that.

Overall, what I'm trying to ask is this: how does ipcreate determine colors? Is this a glitch in the conversion from png to mr format? Is there any program where I can create mr images directly (without conversion) or in a way where ipcreate could accurately determine the number of colors an image uses? I've tried feeding multiple images created from Gimp, paint.net, and aseprite, and in both png and bmp formats, but all of them give the same, seemingly random results with reduced colors.
I realize this is probably only useful for the boot splash screen (IP.BIN), but it would help me greatly to know if I'm going about this in the wrong way. I haven't been able to find anything on how color count is determined in the programs source code or online. Let me know if any more information is needed. Thanks!
I'm trying to get the color count below 128 for this very simple test image I made (it's lazy, but I'm just trying to get a feel for what needs to be done) so that ipcreate will convert the image to the mr format.

The image above already has less than 128 colors (125, to be precise), but feeding this into ipcreate gives me the error that the image is more than 128 colors. So I started to reduce it little by little. I kept reducing the number of colors the image has, but it kept telling me that there were more than 128 colors in the image. Finally, after reducing the image to just three colors, I get this message
Code:
Loaded C:\temppath\~iplogo.tmp, 320 x 90
Found 95 colors
Compressing 28800 bytes to 20039 bytes.
This will NOT fit in a normal ip.bin - it is 11847 bytes too big!
Writing C:\temppath\~tempmr.tmp
Done!
ipcreate.exe: Error when creating the logo file. Aborted.

With this knowledge in mind, I tried something different, and created an indexed image in aseprite (a sprite creation program designed to make images with limited palettes). I would draw simple lines with different colors, and it seemed totally random how many colors ipcreate would detect when I did so. Generally, it seemed like single-width lines made the count go up by two, while lines of width 2 or greater would count as four colors. The only time one color was added was when I drew a line of an existing color on top of another line of a different color (where the color count shouldn't be going up at all).
Below is the test image. It clearly shows 5 solid, colors without any antiailiasing (white, black, red, blue, and magenta), but ipcreate reports it as 15 colors despite that.

Overall, what I'm trying to ask is this: how does ipcreate determine colors? Is this a glitch in the conversion from png to mr format? Is there any program where I can create mr images directly (without conversion) or in a way where ipcreate could accurately determine the number of colors an image uses? I've tried feeding multiple images created from Gimp, paint.net, and aseprite, and in both png and bmp formats, but all of them give the same, seemingly random results with reduced colors.
I realize this is probably only useful for the boot splash screen (IP.BIN), but it would help me greatly to know if I'm going about this in the wrong way. I haven't been able to find anything on how color count is determined in the programs source code or online. Let me know if any more information is needed. Thanks!
Last edited: