The graphic controller is coming along. I have been writing some more detailed chapters in the specification for the playfield generator. What I am looking right now is a 3-layer tile generator with soft scroll capabilities. This would allow me to have a static background and as well as two layers of background objects that could move on top of the background. This can be used to create the illusion of having mountains moving in the background or multiple levels of starfields. Good for nice platform or arcade type action games. Of course, on top of that you will have the sprites to create characters to interact with.
Right now I'm looking at a solution where the graphic memory is local to the graphic controller. That means the host CPU will not be able to directly access this memory. This has both advantages and disadvantages but in this case the advantages outweigh the disadvantages. The host CPU will have to "download" the tile sets as well as the tile map to the playfield memory. The playfield memory is 128Kbyte and holds both the tile sets as well as the tile maps. There are a number of registers in the gfx controller that defines the tile sets. Each tile layer has 5 registers associated with it.
- Tile Window Base Address (TWBA)
- Tile Map Length (TML)
- Soft Scroll X (SSX)
- Soft Scroll Y (SSY)
- Tile Set Base Address (TSBA)
The tile layers work independently which means that they can share the same tile map or have a unique tile map and tile set.
This is the basis for what I will be starting to experiment with. The system will be designed around a time slotted mechanism for retrieving data from the gfx memory. When implementing the sprite mechanisms it will be built around the same core for obtaining its data.
That's all for now folks.