To be able to transfer an image to screen with one call to slDMA(),
you can display it as a sprite. But this restricts you to 15 bit color depth.
The only method to display 24 bpp is by using the NBG0 scroll screen, but a bitmapped scroll screen got a fixed size. So you would need to transfer each line seperately.....or use the line scroll feature and call slDMA() once.
Okay, the big problem is to compute the line scroll table, vertical cell scroll table and setup the VDP2 correctly.
The most detailed description can be found in Sattechs.pdf, but also the VDP2 user manual got info on that. SGL and SBL support that feature, but none got a function to compute the tables.
Now CWX made the bm24bppls demo which implements the example from Sattechs.pdf.
But it doesn't work on Satourne, Saturnin or real Saturn (looks even more different like on emu).
SGL docs say, you must set the cycle pattern if using the vertical cell scroll table, so this might be the reason, but I'm not sure, since I don't know nothing about cycle patterns.
I tried to write a program to compute the tables needed and a tried to produce tables which are equal to those in Sattechs.pdf and CWX's example. But I paused the work, since the example itself is not working right now.
A second thing I noticed is: the format of the line scroll table in Sattechs.pdf(2 components per entry) and VDP2 manual(3 components per entry) differs!!!
So what the hell is the right format? The SBL uses the 3 component format.
These official SEGA docs are full of errors and partially hard to comprehend, since importand information is just "lost in translation". I don't even understand the table computation described in Sattechs.pdf...(back when I did RB_SaturnPCM, I experienced similar stuff with the motherfucking pitch value).
Help?
you can display it as a sprite. But this restricts you to 15 bit color depth.
The only method to display 24 bpp is by using the NBG0 scroll screen, but a bitmapped scroll screen got a fixed size. So you would need to transfer each line seperately.....or use the line scroll feature and call slDMA() once.
Okay, the big problem is to compute the line scroll table, vertical cell scroll table and setup the VDP2 correctly.
The most detailed description can be found in Sattechs.pdf, but also the VDP2 user manual got info on that. SGL and SBL support that feature, but none got a function to compute the tables.
Now CWX made the bm24bppls demo which implements the example from Sattechs.pdf.
But it doesn't work on Satourne, Saturnin or real Saturn (looks even more different like on emu).
SGL docs say, you must set the cycle pattern if using the vertical cell scroll table, so this might be the reason, but I'm not sure, since I don't know nothing about cycle patterns.
I tried to write a program to compute the tables needed and a tried to produce tables which are equal to those in Sattechs.pdf and CWX's example. But I paused the work, since the example itself is not working right now.
A second thing I noticed is: the format of the line scroll table in Sattechs.pdf(2 components per entry) and VDP2 manual(3 components per entry) differs!!!
So what the hell is the right format? The SBL uses the 3 component format.
These official SEGA docs are full of errors and partially hard to comprehend, since importand information is just "lost in translation". I don't even understand the table computation described in Sattechs.pdf...(back when I did RB_SaturnPCM, I experienced similar stuff with the motherfucking pitch value).
Help?