tcdev
24th September 2008, 04:43 PM
I've started making significant changes to the graphics modules - most notably the ports on each of the entities, to use records as far as possible - in the process of reviewing the sprite engine.
On the existing architecture, the sprite register decode was a two-tier process - the game module was required to present the sprite registers as a block of contiguous addresses to the sprite register block, which then decoded the individual registers for each sprite. A legacy of the original schematic-based design and somewhat confusing.
Now, the sprite controller for each platform is responsible for fully decoding the sprite register address space. Also the registers themselves are now (correctly) clocked off the cpu clock rather than the video clock as before.
And somewhere in these modifications, the sprites appeared again - at least in Galaxian - and I'm sure the others will now be OK. :)
It's still very much WIP and no doubt I've actually broken every PACE design again - but bear with me - these changes are designed to minimise the chance of future changes breaking the entire project repository! :cool:
It'll probably take me a couple of weeks to complete the changes to the sprite engine and graphics modules, and then go through all the projects and bring them up-to-date - including tweaking all the sprite controllers for the new video/sprite engine.
BTW the status matrices were actually almost accurate until this evening - now I've broken everything again. But I'll endeavour to make the framework changes as soon as possible, and update the non-sprite projects again to reflect the status on this forum. :o
On the existing architecture, the sprite register decode was a two-tier process - the game module was required to present the sprite registers as a block of contiguous addresses to the sprite register block, which then decoded the individual registers for each sprite. A legacy of the original schematic-based design and somewhat confusing.
Now, the sprite controller for each platform is responsible for fully decoding the sprite register address space. Also the registers themselves are now (correctly) clocked off the cpu clock rather than the video clock as before.
And somewhere in these modifications, the sprites appeared again - at least in Galaxian - and I'm sure the others will now be OK. :)
It's still very much WIP and no doubt I've actually broken every PACE design again - but bear with me - these changes are designed to minimise the chance of future changes breaking the entire project repository! :cool:
It'll probably take me a couple of weeks to complete the changes to the sprite engine and graphics modules, and then go through all the projects and bring them up-to-date - including tweaking all the sprite controllers for the new video/sprite engine.
BTW the status matrices were actually almost accurate until this evening - now I've broken everything again. But I'll endeavour to make the framework changes as soon as possible, and update the non-sprite projects again to reflect the status on this forum. :o