top of page

Asteroids On SEGA Genesis

Sega Genesis Close Up.jpg

The Sega Genesis is a 16-bit console released in 1989 in North America. It uses a Motorola 68000 CPU, a tile based video chip and a YM2612 sound chip.

​

The Genesis has always been a beloved console for me. I love it's general architecture and it's quirks. However what I mostly love is how it forces you to think. You have a small amount of space and power to work with. Finding out how to reduce tasks, compress sprites and squeeze every last drop out of the hardware is so much fun for me. I really love working with the limitations. It helps you to understand what is important and what isn't.

The Problem

I wanted to make a game for the Sega Genesis, preferably a game that is not already on the platform. I decided that I would make Asteroids for the Sega Genesis as it was both simple and would still give me a lot of experience with the platform.

Asteroids CRT.jpg
Code Blocks.png
Gimp.png
6ship.png
big3.png
big2.png
big1.png
medium3.png
medium1.png
medium2.png
small1.png

Technologies Used

The Sega Genesis is an old console. Games were developed in Assembly language and also used proprietary 9-bit color pixel formats. Assembly on the Motorola 68000 isn't that bad but it still takes time to become competent at it. 9-bit color is a very hard standard to find in mainstream image editing software.

​

A lot of documentation has been lost about the Sega Genesis but thanks to several archived books, I was able to understand how the hardware worked.

​

I then found Sega Genesis Development Kit (SGDK) which is an open source C compiler specifically for the Genesis. It also had Sprite compression tools and 9 bit color translators which can be used to turn 8 bit color images into 9 bit color sprites. SGDK was perfect for my game.

​

I set up code-blocks to handle the make and code compiling and I used Gimp's 8 bit color mode to make the Sprites.

Implementation

I used a Kanban board to organize the features during the project. My Kanban board helped me keep track of things that needed to be added, things I was working on and most importantly things I was stuck on and needed help with.

​

There were a couple of times during development where I reached out to

Kanban Board Working.png

the creator of the C compiler because I had trouble understanding why the Genesis would act in certain ways. I really needed help understanding the interrupts system. Fortunately for me the guy who built the compiler was very helpful and helped me to understand how the hardware worked.

​

As of right now, this game is still unfinished. I've been very busy with school so I've had to put development on hold. The game is 78% done and needs animations and other features added. You can find the code on Github.

My Game.png

Game Running in Emulator

    ©2018 BY ALEX'S PORTFOLIO. PROUDLY CREATED WITH WIX.COM

    bottom of page