Fragmare Posted February 13, 2020 Share Posted February 13, 2020 Does the MARIA chip have a set number of sprite/character pixels it can display per scanline before flicker/dropout starts occurring? Most older systems seem to have set limit on how many sprite pixels can be displayed per line? Does the 7800 work this way? Quote Link to comment Share on other sites More sharing options...
RevEng Posted February 13, 2020 Share Posted February 13, 2020 The limits actually depend on what kinds of objects (sprites or tiles) we're talking about, how wide they are, and which mode they're being drawn in. Maria does a sort of hardware-assisted-softsprites thing, where it parses the games' display list memory structures, and renders the objects within them to a scanline buffer. The buffer has to complete rendering before the previous scanline have finished being drawn on the TV, so that limited time is the main thing that limits the number of sprites. You can have a look at the DMA appendix of the 7800 software guide for the object timing, but that's even more of a technical deep dive. Quote Link to comment Share on other sites More sharing options...
TailChao Posted February 13, 2020 Share Posted February 13, 2020 Yeah, it depends upon what you're drawing. I think it's easier to understand Maria's functionality in terms of a framebuffer system (albeit without the framebuffer) rather than in terms of sprites and tiles. All she does is parse draw commands and copy texture data into a linebuffer - you can even consider the low and high address bytes as UV coordinates in a giant texture which is all of memory. If you draw a large quantity of small objects this will reduce your fillrate since Maria is spending most of her time parsing commands. So to prevent tearing and keep your fillrate up it's best to batch draws together whenever possible and avoid the use of the indirect modes. This is somewhat similar to the Jaguar's Object Processor. Ideal use of 160A or 320A would probably get around a 2.5x horizontal fillrate, 160B or 320B around 1.25x. But at that level of saturation you've also burned most of the available CPU cycles. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.