jrok, on Tue Jul 19, 2011 7:29 PM, said:
It just surprises me a little, since I assumed that its inclusion in the demo was demonstrating a dynamic mask of some sort. In other words, since we could do this manually sans the chip, why is it part of the demo? What's the advantage being shown?
You're posting this in the bB forms - are you overlooking that my DPC+ demo
was not a demo for bB?
The name for that part of the demo is
Data Writer Demo. As such, it's whole purpose is to show
how to write data into the DD(Display Data) bank at run time. The masking was just a way to visually show that the data changed, along with being a potential reason as to
why you'd want to manipulate the DD in the first place. I have some updated masking routines, run by the ARM chip, in Chun Li that handle all 3 sizes of the player.
ScumSoft, on Tue Jul 19, 2011 7:46 PM, said:
So what is happening is the pointers are pointed to where frosty resides in Bank6 ram, and then updated as needed, then rewritten from a non-altered frosty when he needs to be shown again.
This can be done if we could access bank6 in ASM from bB, though I haven't tried doing such a thing yet.
Using the
Copy Data to Fetcher feature, and the fact that "bank 6" for it is the original DD ROM, you could do this:
1) Copy the original, unmasked sprite image from DD ROM to DD RAM
2) point 2 DataFetchers at the sprite in DD RAM
3) Do a loop that reads using one of those DataFetchers, masks the value it read, and finally writes the masked value back out using the other DataFetcher.
Edited by SpiceWare, Wed Jul 20, 2011 9:06 AM.