View Single Post
Old 05 September 2015, 21:35   #111
dlfrsilver
CaptainM68K-SPS France
 
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 46
Posts: 10,505
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by ReadOnlyCat View Post
Tiles on the MD/Genesis are square blocks of 8x8 pixels (in non interlaced mode) and the data structure used to reference one is a 16 bits word. The tile itself uses a single 16 colors palette (specified in the referencing word) so each pixel of a tile takes only 4 bits.
(SNES/Super-Famicon also has 16 colors tiles but it has 16 palettes to choose from instead of 4 on the MD.)

Each background layer however, requires a rectangular matrix of tiles (64x32, 64x64, 128x32, etc.) the size of which cannot exceed 8KB. So in essence, each layer takes maximum 8KB of "screen memory", not counting the tiles it references. There are always two background layers.
The MD/Genesis has also scroll tables which allow it to scroll each line individually, as well as each column of tiles (every 8 horizontal pixels).

It should be fairly trivial to draw a raster road with tiles and the only problem on the Sega kitten is that the 68k cannot directly access VRAM where the tile matrices are stored so it has to maintain its own (partial) copy in RAM (maybe ROM too but I'm not sure) then use the DMA copy function of the VDP (Video Display Processor) to transfer it to VRAM. The DMA can copy 204 bytes during the horizontal blank so it's fast enough to replace the two layers's matrices each VBL but the CPU gets stalled for every DMA access.

As is the case with the Amiga, it's always a matter of choosing the best compromises but the machine has definitely more power at its disposal even with these restrictions.
Thanks for correcting me So it's coded on a word like on CPS-1 arcade board

the consoles are more "dedicated", in the sense that the 68000 is asking for the VDP to push on the screen the tiles via the tile word reference.
dlfrsilver is offline  
 
Page generated in 0.04282 seconds with 11 queries