With this patch the non-default overscan color will be
blended into narrow border around the screen. The
screen area remains unchanged.
The implementation is conditional -- must have
C_OVERSCAN set to 1 in config.h. I've modified
configure.in but I have no means to test it -- please
test and let me know if that one is correct.
Overscan width and strength is controlled through
dosbox.conf or command line. In dosbox.conf use section
[render]. Set "overscan=<width>" to control how wide
the overscan border is going to be, "overscan=0" will
disable the border completely.
"overscanstrength=<value>" controls how much of
overscan color is going to be blended in with game
pixel color. Values 1 through 10 are accepted, 2
through 3 produce the best results, ymmv. Similarly,
command line can include "-overscan <width>" or
"-overscanstrength=<value>" to override these settings.
Overscan border works with all scalers in all modes.
There is practically no performance hit for having it
enabled but not drawn, slight performance hit when it's
drawn. Most games never bother with overscan so it
won't appear. Good test case: Crystal Caves -- the
overscan color is actually important gameplay element.
The patch is current with CVS as of 20050822 aroudn
10pm PST.
Update
Logged In: YES
user_id=352450
The updated version works in fullscreen mode but the border
is opaque. I don't see a good way to do color blending in 8
bpp modes.
Logged In: YES
user_id=352450
More advanced version, attempting to actually do blending in
palette mode or stippling. Depending on situation it may
produce good or bad visuals. Crystal Caves seem to work best
with "overscanstrength=2", other games may require different
values.
There is also a special case. If overscanstrength is set to
10 this implementation will do 1:1 stippling instead of
blend. It is very fast and looks pretty good.
Another version with palette mode blend and stipple
Logged In: YES
user_id=352450
The old version is not working that well with new render
implementation. Here's completely new approach. It's not
blended border anymore. It is not as universal as the old
version -- currently works only with output=surface, it also
requires forcing fullscreen size to be bigger than video
mode used by game (no such limitation for window mode).
While it is less universal than the old one it does look better.
The controlling option in dosbox.conf is different. Use
overscan=<width> in [sdl] section.
This implementation is much cheaper and simpler than the old
one, near zero performance cost even with frequent border
color changes. For this reason it is compiled
unconditionally - C_OVERSCAN is not used anymore.
New version with "real" overscan