mirror of https://github.com/stella-emu/stella.git
changed plain video mode into no correct aspect ratio mode
updated docs
This commit is contained in:
parent
60bffab65d
commit
2464094694
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
* Added another oddball TIA glitch option for delayed background color.
|
* Added another oddball TIA glitch option for delayed background color.
|
||||||
|
|
||||||
* Added option to disable all scaling and postprocessing.
|
* Added option to disable aspect correct scaling.
|
||||||
|
|
||||||
* Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
|
* Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
|
||||||
|
|
||||||
|
|
|
@ -2285,8 +2285,8 @@
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><pre>-tia.plain_video <1|0></pre></td>
|
<td><pre>-tia.correct_aspect <1|0></pre></td>
|
||||||
<td>Disable all scaling and postprocessing.</td>
|
<td>Enable aspect correct scaling.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -623,7 +623,7 @@ FBInitStatus Console::initializeVideo(bool full)
|
||||||
if(full)
|
if(full)
|
||||||
{
|
{
|
||||||
uInt32 width, height;
|
uInt32 width, height;
|
||||||
if (myOSystem.settings().getBool("tia.plain_video")) {
|
if (myOSystem.settings().getBool("tia.correct_aspect")) {
|
||||||
width = 2 * myTIA->width();
|
width = 2 * myTIA->width();
|
||||||
height = myTIA->height();
|
height = myTIA->height();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -835,7 +835,8 @@ void FrameBuffer::setPauseDelay()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
shared_ptr<FBSurface> FrameBuffer::allocateSurface(int w, int h, ScalingInterpolation interpolation, const uInt32* data)
|
shared_ptr<FBSurface> FrameBuffer::allocateSurface(int w, int h, ScalingInterpolation interpolation,
|
||||||
|
const uInt32* data)
|
||||||
{
|
{
|
||||||
// Add new surface to the list
|
// Add new surface to the list
|
||||||
mySurfaceList.push_back(createSurface(w, h, interpolation, data));
|
mySurfaceList.push_back(createSurface(w, h, interpolation, data));
|
||||||
|
|
|
@ -57,7 +57,7 @@ Settings::Settings()
|
||||||
setPermanent("tia.fs_overscan", "0");
|
setPermanent("tia.fs_overscan", "0");
|
||||||
setPermanent("tia.vsizeadjust", 0);
|
setPermanent("tia.vsizeadjust", 0);
|
||||||
setPermanent("tia.dbgcolors", "roygpb");
|
setPermanent("tia.dbgcolors", "roygpb");
|
||||||
setTemporary("tia.plain_video", "false");
|
setTemporary("tia.correct_aspect", "true");
|
||||||
// Palette options
|
// Palette options
|
||||||
setPermanent("palette", PaletteHandler::SETTING_STANDARD);
|
setPermanent("palette", PaletteHandler::SETTING_STANDARD);
|
||||||
setPermanent("pal.phase_ntsc", "26.2");
|
setPermanent("pal.phase_ntsc", "26.2");
|
||||||
|
@ -454,7 +454,7 @@ void Settings::usage() const
|
||||||
<< " -tia.fs_overscan <0-10> Add overscan to TIA image in fullscreen mode\n"
|
<< " -tia.fs_overscan <0-10> Add overscan to TIA image in fullscreen mode\n"
|
||||||
<< " -tia.dbgcolors <string> Debug colors to use for each object (see manual\n"
|
<< " -tia.dbgcolors <string> Debug colors to use for each object (see manual\n"
|
||||||
<< " for description)\n"
|
<< " for description)\n"
|
||||||
<< " -tia.plain_video <1|0> Disable all scaling and postprocessing\n"
|
<< " -tia.correct_aspect <1|0> Enable aspect correct scaling\n"
|
||||||
<< endl
|
<< endl
|
||||||
<< " -tv.filter <0-5> Set TV effects off (0) or to specified mode\n"
|
<< " -tv.filter <0-5> Set TV effects off (0) or to specified mode\n"
|
||||||
<< " (1-5)\n"
|
<< " (1-5)\n"
|
||||||
|
|
|
@ -56,7 +56,7 @@ TIASurface::TIASurface(OSystem& system)
|
||||||
myTiaSurface = myFB.allocateSurface(
|
myTiaSurface = myFB.allocateSurface(
|
||||||
AtariNTSC::outWidth(TIAConstants::frameBufferWidth),
|
AtariNTSC::outWidth(TIAConstants::frameBufferWidth),
|
||||||
TIAConstants::frameBufferHeight,
|
TIAConstants::frameBufferHeight,
|
||||||
plainVideoEnabled()
|
!correctAspect()
|
||||||
? FrameBuffer::ScalingInterpolation::none
|
? FrameBuffer::ScalingInterpolation::none
|
||||||
: interpolationModeFromSettings(myOSystem.settings())
|
: interpolationModeFromSettings(myOSystem.settings())
|
||||||
);
|
);
|
||||||
|
@ -278,8 +278,6 @@ uInt32 TIASurface::enableScanlines(int change)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void TIASurface::enablePhosphor(bool enable, int blend)
|
void TIASurface::enablePhosphor(bool enable, int blend)
|
||||||
{
|
{
|
||||||
enable = enable && !plainVideoEnabled();
|
|
||||||
|
|
||||||
if(myPhosphorHandler.initialize(enable, blend))
|
if(myPhosphorHandler.initialize(enable, blend))
|
||||||
{
|
{
|
||||||
myFilter = Filter(enable ? uInt8(myFilter) | 0x01 : uInt8(myFilter) & 0x10);
|
myFilter = Filter(enable ? uInt8(myFilter) | 0x01 : uInt8(myFilter) & 0x10);
|
||||||
|
@ -290,8 +288,6 @@ void TIASurface::enablePhosphor(bool enable, int blend)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void TIASurface::enableNTSC(bool enable)
|
void TIASurface::enableNTSC(bool enable)
|
||||||
{
|
{
|
||||||
enable = enable && !plainVideoEnabled();
|
|
||||||
|
|
||||||
myFilter = Filter(enable ? uInt8(myFilter) | 0x10 : uInt8(myFilter) & 0x01);
|
myFilter = Filter(enable ? uInt8(myFilter) | 0x10 : uInt8(myFilter) & 0x01);
|
||||||
|
|
||||||
uInt32 surfaceWidth = enable ?
|
uInt32 surfaceWidth = enable ?
|
||||||
|
@ -305,7 +301,7 @@ void TIASurface::enableNTSC(bool enable)
|
||||||
|
|
||||||
mySLineSurface->setSrcSize(1, 2 * myTIA->height());
|
mySLineSurface->setSrcSize(1, 2 * myTIA->height());
|
||||||
|
|
||||||
myScanlinesEnabled = !plainVideoEnabled() && myOSystem.settings().getInt("tv.scanlines") > 0;
|
myScanlinesEnabled = myOSystem.settings().getInt("tv.scanlines") > 0;
|
||||||
FBSurface::Attributes& sl_attr = mySLineSurface->attributes();
|
FBSurface::Attributes& sl_attr = mySLineSurface->attributes();
|
||||||
sl_attr.blending = myScanlinesEnabled;
|
sl_attr.blending = myScanlinesEnabled;
|
||||||
sl_attr.blendalpha = myOSystem.settings().getInt("tv.scanlines");
|
sl_attr.blendalpha = myOSystem.settings().getInt("tv.scanlines");
|
||||||
|
@ -317,10 +313,9 @@ void TIASurface::enableNTSC(bool enable)
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
string TIASurface::effectsInfo() const
|
string TIASurface::effectsInfo() const
|
||||||
{
|
{
|
||||||
if (plainVideoEnabled()) return "Plain video mode";
|
|
||||||
|
|
||||||
const FBSurface::Attributes& attr = mySLineSurface->attributes();
|
const FBSurface::Attributes& attr = mySLineSurface->attributes();
|
||||||
ostringstream buf;
|
ostringstream buf;
|
||||||
|
|
||||||
switch(myFilter)
|
switch(myFilter)
|
||||||
{
|
{
|
||||||
case Filter::Normal:
|
case Filter::Normal:
|
||||||
|
@ -333,12 +328,12 @@ string TIASurface::effectsInfo() const
|
||||||
buf << myNTSCFilter.getPreset() << ", scanlines=" << attr.blendalpha;
|
buf << myNTSCFilter.getPreset() << ", scanlines=" << attr.blendalpha;
|
||||||
break;
|
break;
|
||||||
case Filter::BlarggPhosphor:
|
case Filter::BlarggPhosphor:
|
||||||
buf << myNTSCFilter.getPreset() << ", phosphor, scanlines="
|
buf << myNTSCFilter.getPreset() << ", phosphor, scanlines=" << attr.blendalpha;
|
||||||
<< attr.blendalpha;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
buf << ", inter=" << (myOSystem.settings().getBool("tia.inter") ? "enabled" : "disabled");
|
buf << ", inter=" << (myOSystem.settings().getBool("tia.inter") ? "enabled" : "disabled");
|
||||||
|
buf << ", aspect correction=" << (correctAspect() ? "enabled" : "disabled");
|
||||||
|
|
||||||
return buf.str();
|
return buf.str();
|
||||||
}
|
}
|
||||||
|
@ -524,6 +519,6 @@ void TIASurface::updateSurfaceSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool TIASurface::plainVideoEnabled() const {
|
bool TIASurface::correctAspect() const {
|
||||||
return myOSystem.settings().getBool("tia.plain_video");
|
return myOSystem.settings().getBool("tia.correct_aspect");
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,7 +184,7 @@ class TIASurface
|
||||||
uInt32 averageBuffers(uInt32 bufOfs);
|
uInt32 averageBuffers(uInt32 bufOfs);
|
||||||
|
|
||||||
// Is plain video mode enabled?
|
// Is plain video mode enabled?
|
||||||
bool plainVideoEnabled() const;
|
bool correctAspect() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Enumeration created such that phosphor off/on is in LSB,
|
// Enumeration created such that phosphor off/on is in LSB,
|
||||||
|
|
Loading…
Reference in New Issue