Hi,
I'm reading the docs (cripes, there's a lot of them!) and looking at code examples and I want to make sure I understood some of the basics of the VDP1. This is what I got so far, please correct me if I'm wrong.
Command Tables.
- Whenever calling a function like slPutPolygon or slDispSprite, it sets up a command table for the polygons or sprite for that call.
- There's a command table for each polygon? Not for the entire mesh? (Maybe this is SGL specific?)
- since a command table contains a gouraud shading table, they don't seem to be shared across command tables. But they're only 8 bytes, so not so bad?
- the character pattern table in a command table isn't an array of indices to the tiles, they're the actual tiles. That means for each sprite setup with slDispSprite, it actually copies the pattern data to that area of VRAM? Being used to the Genesis where setting up a sprite only requires an index to the tile patterns and a sprite size, isn't this wasteful and/or slow?
- if I work with the SGL, are command tables abstracted away? I don't have to worry about command tables unless I bust the memory reserved for them?
VRAM
- tile patterns for sprites are stored in the VDP1 VRAM? If they share VRAM along with command tables, then I probably have to reserve areas for each. How do I tell if I have too many command tables and stomp the other reserved areas? (Not a problem with SGL?)
Sprites
- What's the difference between slDispSpriteSZ and slDispSpriteHV? What I found in a RockinB tutorial says they work similarly but didn't explain any differences. I haven't found it in the docs yet.
Mixing Color Depths
- There seems to be a ridiculous amount of flexibility to choosing color depths of the screen, textures, palettes and backgrounds. Can I really setup a scene using (for example) a 16bit color screen using 16 color sprites, 32k color polygons and 256 color backgrounds? The options are overwhelming!
Thanks!
I'm reading the docs (cripes, there's a lot of them!) and looking at code examples and I want to make sure I understood some of the basics of the VDP1. This is what I got so far, please correct me if I'm wrong.
Command Tables.
- Whenever calling a function like slPutPolygon or slDispSprite, it sets up a command table for the polygons or sprite for that call.
- There's a command table for each polygon? Not for the entire mesh? (Maybe this is SGL specific?)
- since a command table contains a gouraud shading table, they don't seem to be shared across command tables. But they're only 8 bytes, so not so bad?
- the character pattern table in a command table isn't an array of indices to the tiles, they're the actual tiles. That means for each sprite setup with slDispSprite, it actually copies the pattern data to that area of VRAM? Being used to the Genesis where setting up a sprite only requires an index to the tile patterns and a sprite size, isn't this wasteful and/or slow?
- if I work with the SGL, are command tables abstracted away? I don't have to worry about command tables unless I bust the memory reserved for them?
VRAM
- tile patterns for sprites are stored in the VDP1 VRAM? If they share VRAM along with command tables, then I probably have to reserve areas for each. How do I tell if I have too many command tables and stomp the other reserved areas? (Not a problem with SGL?)
Sprites
- What's the difference between slDispSpriteSZ and slDispSpriteHV? What I found in a RockinB tutorial says they work similarly but didn't explain any differences. I haven't found it in the docs yet.
Mixing Color Depths
- There seems to be a ridiculous amount of flexibility to choosing color depths of the screen, textures, palettes and backgrounds. Can I really setup a scene using (for example) a 16bit color screen using 16 color sprites, 32k color polygons and 256 color backgrounds? The options are overwhelming!
Thanks!