Take your skills to the next level with these bite-sized tutorials!

Creating Graphics for the Mega Drive

Posted January 28, 2019

When it comes to making graphics for the Mega Drive, there are a number of programs available that you can use. It doesn’t really matter if you’re using software specifically designed for retro pixel art or more modern graphics suites like Photoshop or GIMP, as long as your program supports the use of palettes. However, even when your software is capable of creating images that SGDK can process, there are still a number of restrictions you have to keep in mind when designing and drawing your sprites and tiles. I thought I’d give you a quick rundown on what you need to keep in mind to create your own graphics for your Mega Drive game.

1. Color Depth

The Mega Drive uses a 9-bit RGB palette, which contains a total of 512 colors that you can use. Here is an image of all the available colors, taken from Sega Retro:

images/colortable.png

As you can see, it covers a lot of colors, but not all of them. Should you use a color in your image that is not in this table, SGDK will approximate it. Usually that is not a huge deal, as out of 512, there is usually one color closely matching the one you wanted. However, if you want to make sure that the in-game graphic looks exactly as you designed it, only use the colors in this table.

2. Number of Colors

Out of the 512 available colors, the Mega Drive can use 64 colors at once. These are stored in 4 separate palettes with 16 colors each (labelled PAL0PAL3 in SGDK). Each sprite or tile only uses one of those palettes, meaning that it can only be made up of 16 colors. However, in actuality only 61 of the 64 colors can be displayed at the same time, because the first color of each palette is transparent. But shouldn’t that mean there can be only 60 colors on screen, not 61? Well, the very first color is actually used as the background color of the game, so that one does appear on screen (we use this to create a blue sky in Megarunner). But the first colors of PAL1PAL3 are always transparent, so actually each sprite or tile can only contain 15 colors. Choose your colors wisely to make the most out of them!

3. Format

When you save your image, make sure to save it as a .png or a .bmp file. These are the only two formats that can be processed by SGDK and that will retain the palette information we need. Every art program should be able to handle these formats, so this is more of a hint than a warning. However: If you use suites like Photoshop or GIMP, make sure to explicitly set the color mode of the image to indexed color (or something along those lines). A mode like RGB will not work, as it does not use palettes.

4. Make Sure to Share Palettes

When you’re drawing graphics that should share the same palette, make sure that you’re using the exact same palette for all the images while you’re drawing. This might sound obvious, but it’s very easy to forget about it. If not all images are saved with the exact same palette, you will either get an error message when SGDK tries to compile and import them, or you will end up with sprites in the game not looking the way you intended. It’s a good idea to decide on a palette early, export it as a .pal file (or whatever your software uses), then load this palette for every new image that should use that palette. And if you end up modifying the palette in one image, make sure to load this palette for images you’ve already done so that you can see the changes and make adjustments!

5. Image Size

The Mega Drive works with graphics in 8x8 pixel chunks, which is the size of a single tile. This means that the dimensions of each image file must be divisible by 8! So an image can for example be 8x8, 16x8 or 24x16 pixels big, but not 6x6 or 17x32. Keep in mind that this only applies to the dimensions of the image file! You can draw a sprite that is smaller than 8x8 pixels for example, but you will have to do it on a 8x8 pixel canvas. You would then fill the background with the first color of your palette, as that will make it transparent in the game.


And those are the 5 basic things you should keep in mind when creating graphics for your Mega Drive game. Once you have created some .png and/or .bmp files, you can import them into SGDK using the resources.res file in your project folder. If everything goes well, you can now grab the palette data from an image and put it in one of the 4 palettes. For a more detailed explanation, see step 3 of my Megapong tutorial.

While creating graphics for the Mega Drive is a lot more restricted than in modern game development, there is still a lot that a skilled artist can get out of the little black box. It’s all about how you use the palettes to their maximum effect. Working within these restrictions is a skill in itself, one that you can only develop by training and experimenting. But I hope I could give you at least an overview of the basic things you have to keep in mind!

And by the way, did you know that you can swap out colors in your palettes during gameplay? I’ve written a tutorial on the topic so check it out to get even more out of palettes!

If you have any questions, comments or criticism, post them in the comments below or reach out to me on Twitter @ohsat_games! Special thanks to Stephane Dallongeville for creating SGDK and everyone in the SGDK Discord for their help and keeping the dream alive!

Take It to the Next Level!

Want to boost your Mega Drive coding skills? Get exclusive bonus steps and project files for each tutorial by supporting me on Patreon!

Become a Patron!
Just Want to Buy Me a Coffee?

Check out the rest of this tutorial series!

  • Creating Graphics for the Mega Drive
  • Color Swapping
  • 4 Programs For Creating Mega Drive Graphics
  • Editing the Rom Header
  • Simple Game States
  • Creating a Simple Menu
  • Changing The Text Color in SGDK
  • Playing Music in SGDK
  • Converting VGZ to VGM
  • Processing Resets
  • Get Words in Your Inbox!

    Be oldschool and sign up for my newsletter to get updates! Just enter your email address, prove you're not part of Skynet and you're good to go!



    Powered by CleverReach. I will not send you spam or sell/give your email address to someone else.  You can of course unsubscribe at any time. By clicking the subscribe button above, you confirm that you have read and agreed to our privacy policy.

    By using the Disqus service you confirm that you have read and agreed to the privacy policy.

    comments powered by Disqus

    Related Posts

    Streets of Rage 2 Design Docs

    A few years ago, Yuzo Koshiro posted a pile of old game design documents for Bare Knuckle 2 aka Streets of Rage 2 on the Ancient blog to commemorate the release of Streets of Rage 2 3D on the Nintendo 3DS. These documents gave a deep insight into the game’s inner workings, technical aspects, designs and even some cut content. They were an awesome resource for one of the most awesome games ever created.

    Read More

    Make a Space Shooter for the Mega Drive!

    It’s time for another SGDK tutorial series! After doing a single player Pong game and an endless runner, it’s time to reach for the stars… and make a space shooter! Apart from things like scrolling and animating sprites, this new series will show you how to deal with multiple entities and their collisions, how to randomly generate backgrounds and more! This project builds upon the previous tutorials, so if you’re new to SGDK programming and have not done those yet, I highly recommend starting with Megapong.
    Read More

    Patreon Revamps

    Hey there, what’s up? Things are continuing to evolve, as I’ve now updated my Patreon to give patrons more perks! Apart from early access to new tutorials and posts, the biggest one is probably the ability to peek behind the scenes…and there will be a lot to peek at in the coming months! This year I’m writing and submitting my MA thesis, meaning that I will have to do more stuff to make ends meet.
    Read More