[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