[hatari-devel] Falcon all borders added + borders computing questions

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


Hi,

I've uploaded my current work on the Falcon borders.

- I've added left/right borders.
- I've added the ConfigureParams.Screen.bAllowOverscan flag. It's nice to switch borders/no borders on the fly now
- I've optimized the rendering in VIDEL_ConvertScreenNoZoom
- TT should work again


Still to do (tomorrow):

- optimize VIDEL_ConvertScreenZoom
- test it heavily


Tests needed:

There are 6 rendering functions in VIDEL_ConvertScreenNoZoom:

bpp<16 HostScreen_getBpp() = 1  tested OK with TT resolution
bpp<16 HostScreen_getBpp() = 2  not tested
bpp<16 HostScreen_getBpp() = 4  tested OK falcon 640*400
bpp=16 HostScreen_getBpp() = 1  not tested
bpp=16 HostScreen_getBpp() = 2  tested OK falcon true color
bpp=16 HostScreen_getBpp() = 4  not tested

I haven't managed to test 3 of them.
If someone has a problem with them, just report me.


TT borders questions:

I haven't added the TT borders as I don't know how to compute them.
I can easily add a false N pixels border all around the TT screen, but this would be a fake border.
If there's a easy way to compute them, I can add them to the renderer.


Falcon Borders questions (from a real Videl point of view):

- are there borders in 2 colors mode ?
- are there borders in st high emulation mode ?
- are there borders in VGA ? I've read somewhere that there's no border in VGA, but it seems strange, as hbb, hbe, vbb and vbe are still writable.


For the borders computing, I've done the following:

Vertical borders:

    upperBorder = vdb - vbe > 0 ? vdb - vbe : 0;
    lowerBorder = vbb - vde > 0 ? vbb - vde : 0;

Is it correct ? suffisant ?
I think I've read somewhere that one can move verticaly the screen by only moving the vbx or vdx registers, how does this work ?


Horizontal borders:

Here, I'm wrong for now (look at the st high resolution, borders are bigger than the screen lol)
For now, the borders renderer is OK, not the borders size computing.

Actually, I do the following:

    leftBorder = hdb - hbe > 0 ? hdb - hbe : 0;
    rightBorder = hbb - hde > 0 ? hbb - hde : 0;

Which is wrong, because these values are cycles, not pixels or word.

To display one horizontal line, I compute the screen width like this : leftBorder (cycles) + GraphicalArea width (pixels) + right border (cycles)
So I mix cycles + pixels + cycles.

What could be the correct computing for the left / right borders in pixel ?
Does it imply the HDB offset Mikro's speaking of in his videl doc ?

Last question: Is there a way to move/center the horizontal screen only with playing with the hdx, hbx registers ? If yes, how does it work ?


Thanks for help, Videl emu rendering will improve a lot after this


Regards

Laurent






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