Simulating Text Mode Graphics on Genesis

So, I'd like to reproduce the graphics of a Mattel Aquarius on a Genesis. I'd like 16 colors for the foreground and 16 colors for the background of each character.

My current plan is to have 4 copies of the Aquarius character set in tile memory. Each copy will use a different foreground color - say color 1 for the first.. 2 for the second, etc..

I'll use 4 palettes each with a slightly rotated color selection like this:

Palette 0

Transparent, Red, Orange, Yellow, Green, Blue, Magenta, Purple

Brown, Lime Green, Sky Blue, Light Pink, Grey, Dark Grey, Black, White

Palette 1

Transparent, Orange, Yellow, Green, Blue, Magenta, Purple, Brown

Lime Green, Sky Blue, Light Pink, Grey, Dark Grey, Black, White, Red

etc..

Is this the way to simulate text mode graphics on a Genesis? Is my thinking off?

Any thoughts would be appreciated
smile.gif
 
Sounds like a reasonable approach to me. I assume you were planning on using the second tile layer for the background colour?
 
antime said:
Sounds like a reasonable approach to me. I assume you were planning on using the second tile layer for the background colour?

Thanks for the sanity check
smile.gif


There's an undocumented feature in BasiEgaXorz where the INK command can take a second parameter for a background color. INK usually only allows switching the foreground color of a tile between the 4 palettes. Pending that, yes, I might have to waste a tile layer for background color.

If there's a resource that would have an example of replacing colors within a tile I'd be all ears
smile.gif
 
There are only 16 colors per tile per layer. If you want 16 foreground colors AND 16 different background colors, you would need to use one layer for the foreground and the other for the background. If the 16 colors are the same, then you only need one layer.
 
Chilly Willy said:
There are only 16 colors per tile per layer. If you want 16 foreground colors AND 16 different background colors, you would need to use one layer for the foreground and the other for the background. If the 16 colors are the same, then you only need one layer.

Thanks for the input! Hmmn.. So, would I have to copy the tile to a separate memory location, change the background color to one I select then copy the tile back to the screen? Or, would it have to be a completely new tile since I wouldn't want to change every tile on the screen using that same character?
 
Chilly Willy said:
There are only 16 colors per tile per layer. If you want 16 foreground colors AND 16 different background colors, you would need to use one layer for the foreground and the other for the background. If the 16 colors are the same, then you only need one layer.

The Aquarius has a fixed palette of 16 colors. Each tile in the tilemap has one freely selectable foreground colour and one freely selectable background colour.

The simplest way I can figure out to simulate the Aquarius graphics is to duplicate the tileset (256 tiles fixed in ROM) four times using four different colour indices and selecting from the Megadrive's four palettes in the tilemap, as described by slobu. If the tile background pixels are set to transparent, you can easily simulate the per-tile background colour using the second tile layer.

slobu said:
So, would I have to copy the tile to a separate memory location, change the background color to one I select then copy the tile back to the screen? Or, would it have to be a completely new tile since I wouldn't want to change every tile on the screen using that same character?

If you change a tile's definition, all places where that tile is used will change. You could probably get away with just having each tile on the screen be unique and redrawing them as needed, but it will consume more CPU time.
 
antime said:
The Aquarius has a fixed palette of 16 colors. Each tile in the tilemap has one freely selectable foreground colour and one freely selectable background colour.

The simplest way I can figure out to simulate the Aquarius graphics is to duplicate the tileset (256 tiles fixed in ROM) four times using four different colour indices and selecting from the Megadrive's four palettes in the tilemap, as described by slobu. If the tile background pixels are set to transparent, you can easily simulate the per-tile background colour using the second tile layer.

If you change a tile's definition, all places where that tile is used will change. You could probably get away with just having each tile on the screen be unique and redrawing them as needed, but it will consume more CPU time.

Yeah, sounds like the way to go. It'll use more vram, but it looks like there's enough to handle it.
 
Back
Top