Re: [hatari-devel] New video code with STF wakeup state :)

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Le 10/06/2016 à 19:31, Anders Eriksson a écrit :
On Thu, 9 Jun 2016, Nicolas Pomarède wrote:

Hello

I just committed a major rewrite of video.c that deals with all the
border removal tricks used on STF/STE (top, bottom, overscan,
hardscroll and so on).

Excellent stuff!

A follow-up question to this; will it be easier to support horizontal
splitscreen of low/medium resolution (like gfa raytrace or snork demo
dnt1 screen) now?

Hi,

not directly, it could already be done with current code, but with less accuracy. Here's my list of things to complete :

1) rewrite glue timings (done) : support for wakeup states, pixel precise value for DE start/end on each line, blank on/off

2) write shifter state machine : so far hatari ignored hi/lo switches for stabiliser, it always assumed lines were stabilised (except for a few special cases). shifter state machine requires accurate emulation of the RRx and IRx registers as described by alien, but I think the state machine has in the end less cases than glue, so it should be less work

3) as a last step, rewrite the rendering routines that convert data from the ST RAM to the SDL screen. This is what already allows to mix color changes with pixel data (plasma screen), so next evolution is to allow to mix arbritrary segments of low/med/hi pixels on the same line when creating the SDL screen.

step 3) could be coded without doing 1) and 2), but there would a risk of dealing with wrong pixels data (timing-wise if DE start/end is not correct) and to come with a bad rendering (mixing low/med parts on the same line requires to change resolution precisely when first IRx will be reloaded, else you end up with some kind of stabiliser and planes shifting, which is not the expected result).

step 3) will be the icing on the cake, as I think few programs used mixed resolution per line.

But step 2) will really improve a lot of never emulated demos with bad stabiliser / non standard timings (omega fullscreen without stabiliser, death of the left border has no stab but a hi/lo during 16 cycles, closure has also no stab on the right, ...) This would also "automatically" emulates the "4 pixel hardscroll" used by Alien.


Nicolas





Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/