Updated UI to be able to change TV jitter effect and recovery time.

Updated various files for 4.7.1 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3279 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2016-02-13 01:21:28 +00:00
parent c5e9d3618b
commit 1b223368e6
11 changed files with 102 additions and 30 deletions

View File

@ -9,7 +9,7 @@
SSSS ttt eeeee llll llll aaaaa
===========================================================================
Release 4.7 for Linux, MacOSX and Windows
Release 4.7.1 for Linux, MacOSX and Windows
===========================================================================
The Atari 2600 Video Computer System (VCS), introduced in 1977, was the
@ -21,30 +21,30 @@ all of your favourite Atari 2600 games again! Stella was originally
developed for Linux by Bradford W. Mott, however, it has been ported to a
number of other platforms and is currently maintained by Stephen Anthony.
This is the 4.7 release of Stella for Linux, Mac OSX and Windows. The
This is the 4.7.1 release of Stella for Linux, Mac OSX and Windows. The
distributions currently available are:
* Binaries for Windows XP_SP3(*)/Vista/7/8/10 :
Stella-4.7-win32.exe (32-bit EXE installer)
Stella-4.7-x64.exe (64-bit EXE installer)
Stella-4.7-windows.zip (32/64 bit versions)
Stella-4.7.1-win32.exe (32-bit EXE installer)
Stella-4.7.1-x64.exe (64-bit EXE installer)
Stella-4.7.1-windows.zip (32/64 bit versions)
(*) Note: Support for Windows XP is problematic on some systems,
and will probably be discontinued in a future release.
* Binary distribution for MacOS X 10.7 and above :
Stella-4.7-macosx.dmg (64-bit Intel)
Stella-4.7.1-macosx.dmg (64-bit Intel)
* Binary distribution in 32-bit & 64-bit Ubuntu DEB format :
stella_4.7-1_i386.deb
stella_4.7-1_amd64.deb
stella_4.7.1-1_i386.deb
stella_4.7.1-1_amd64.deb
* Binary distribution in 32-bit & 64-bit RPM format :
stella-4.7-2.i386.rpm
stella-4.7-2.x86_64.rpm
stella-4.7.1-2.i386.rpm
stella-4.7.1-2.x86_64.rpm
* Source code distribution for all platforms :
stella-4.7-src.tar.gz
stella-4.7.1-src.tar.xz
Distribution Site

View File

@ -12,13 +12,15 @@
Release History
===========================================================================
4.7 to 4.7.1: (xxx xx, 2016)
4.7 to 4.7.1: (Feb. 13, 2016)
* Improved TV 'jitter' emulation; the recovery time can now be spread
over multiple frame, to simulate a real TV taking multiple frames to
recover. Related to this, added new commandline argument
'tv.jitter_recovery' to set the recovery time. Special thanks to
SpiceWare of AtariAge for the initial idea and implementation.
'tv.jitter_recovery' to set the recovery time. Finally, enabling
the jitter effect and the recovery time are not accessible through
the UI. Special thanks to SpiceWare of AtariAge for the initial idea
and implementation.
* Fixed bug with 'Medieval Mayhem' ROMs; the paddle range was set too
low, and as a result the number of players couldn't be selected.
@ -31,7 +33,7 @@
* Indirectly fixed issues with Stelladaptor/2600-daptor devices and
paddles having too large of a deadzone in Linux. Currently, this
involves running an external application to set the deadzone,
since SDL does not yet expose this information. The program is
since SDL2 does not yet expose this information. The program is
called 'evdev-joystick', and will be released separately from Stella.
* Updated internal ROM properties database to ROM-Hunter version 11

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
stella (4.7.1-1) stable; urgency=high
* Version 4.7.1 release
-- Stephen Anthony <stephena@users.sf.net> Sat, 13 Feb 2016 17:09:59 -0230
stella (4.7-1) stable; urgency=high
* Version 4.7 release

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -10,7 +10,7 @@
<br><br>
<center><h2><b>A multi-platform Atari 2600 VCS emulator</b></h2></center>
<center><h4><b>Release 4.7</b></h4></center>
<center><h4><b>Release 4.7.1</b></h4></center>
<br><br>
<center><h2><b>User's Guide</b></h2></center>
@ -54,7 +54,7 @@
<br><br><br>
<center><b>February 1999 - January 2016</b></center>
<center><b>February 1999 - February 2016</b></center>
<center><b>The Stella Team</b></center>
<center><b><a href="http://stella.sourceforge.net">Stella Homepage</a></b></center>
@ -1855,6 +1855,17 @@
(vs. an integral stretch which won't necessarily completely fill the screen).</td>
</tr>
<tr>
<td><pre>-tv.jitter &lt;1|0&gt;</pre></td>
<td>Enable TV jitter/roll effect, when there are too many or too few scanlines
per frame.</td>
</tr>
<tr>
<td><pre>-tv.jitter_recovery &lt;1 - 20&gt;</pre></td>
<td>When TV jitter/roll effect is enabled, determines how long to delay recovery
time (recovery spread over multiple frames).</td>
</tr>
<tr>
<td><pre>-tv.filter &lt;1 - 6&gt;</pre></td>
@ -2418,6 +2429,8 @@
<td valign="top">
<table border="1" cellpadding="4">
<tr><th>Item</th><th>Brief description</th><th>For more information,<br>see <a href="#CommandLine">CommandLine</a></th></tr>
<tr><td>Jitter/Roll effect</td><td>emulate screen roll with inconsistent scanline count</td><td>-tv.jitter</td></tr>
<tr><td>Jitter/Roll recovery</td><td>determines recovery time for screen rolling</td><td>-tv.jitter_recovery</td></tr>
<tr><td>TV Mode</td><td>disable TV effects, or select TV preset</td><td>-tv.filter</td></tr>
<tr><td>Scanline Intensity</td><td>sets scanline black-level intensity</td><td>-tv.scanlines</td></tr>
<tr><td>Scanline Interpolation</td><td>smooth/blend scanlines into image</td><td>-tv.scaninter</td></tr>

View File

@ -22,7 +22,7 @@
#include <cstdlib>
#define STELLA_VERSION "4.7.1_pre"
#define STELLA_VERSION "4.7.1"
#define STELLA_BUILD atoi("$Rev$" + 6)
#endif

View File

@ -217,7 +217,6 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
// Custom adjustables (using macro voodoo)
xpos += 8; ypos += 4;
int orig_ypos = ypos;
pwidth = lwidth;
lwidth = font.getStringWidth("Saturation: ");
@ -245,7 +244,18 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
CREATE_CUSTOM_SLIDERS(Bleed, "Bleeding: ");
xpos += myTVContrast->getWidth() + myTVContrastLabel->getWidth() + 20;
ypos = orig_ypos;
ypos = 8;
// TV jitter effect
myTVJitter = new CheckboxWidget(myTab, font, xpos, ypos,
"Jitter/Roll effect", kTVJitterChanged);
wid.push_back(myTVJitter);
ypos += lineHeight;
lwidth = font.getStringWidth("Intensity: ");
pwidth = font.getMaxCharWidth() * 6;
CREATE_CUSTOM_SLIDERS(JitterRec, "Recovery: ");
myTVJitterRec->setMinValue(1); myTVJitterRec->setMaxValue(20);
ypos += 4;
// Scanline intensity and interpolation
myTVScanLabel =
@ -254,8 +264,6 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
ypos += lineHeight;
xpos += 20;
lwidth = font.getStringWidth("Intensity: ");
pwidth = font.getMaxCharWidth() * 6;
CREATE_CUSTOM_SLIDERS(ScanIntense, "Intensity: ");
myTVScanInterpolate = new CheckboxWidget(myTab, font, xpos, ypos,
@ -273,7 +281,7 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
wid.push_back(myClone ## obj); \
ypos += lineHeight + 10
ypos += lineHeight;
ypos += 4;
CREATE_CLONE_BUTTON(Composite, "Clone Composite");
CREATE_CLONE_BUTTON(Svideo, "Clone S-Video");
CREATE_CLONE_BUTTON(RGB, "Clone RGB");
@ -370,6 +378,11 @@ void VideoDialog::loadConfig()
// TV Custom adjustables
loadTVAdjustables(NTSCFilter::PRESET_CUSTOM);
// TV jitter
myTVJitterRec->setValue(instance().settings().getInt("tv.jitter_recovery"));
myTVJitterRecLabel->setLabel(instance().settings().getString("tv.jitter_recovery"));
handleTVJitterChange(instance().settings().getBool("tv.jitter"));
// TV scanline intensity and interpolation
myTVScanIntense->setValue(instance().settings().getInt("tv.scanlines"));
myTVScanIntenseLabel->setLabel(instance().settings().getString("tv.scanlines"));
@ -456,6 +469,15 @@ void VideoDialog::saveConfig()
adj.bleed = myTVBleed->getValue();
instance().frameBuffer().tiaSurface().ntsc().setCustomAdjustables(adj);
// TV jitter
instance().settings().setValue("tv.jitter", myTVJitter->getState());
instance().settings().setValue("tv.jitter_recovery", myTVJitterRecLabel->getLabel());
if(instance().hasConsole())
{
instance().console().tia().toggleJitter(myTVJitter->getState() ? 1 : 0);
instance().console().tia().setJitterRecoveryFactor(myTVJitterRec->getValue());
}
// TV scanline intensity and interpolation
instance().settings().setValue("tv.scanlines", myTVScanIntenseLabel->getLabel());
instance().settings().setValue("tv.scaninter", myTVScanInterpolate->getState());
@ -505,6 +527,11 @@ void VideoDialog::setDefaults()
// Make sure that mutually-exclusive items are not enabled at the same time
handleTVModeChange(NTSCFilter::PRESET_OFF);
loadTVAdjustables(NTSCFilter::PRESET_CUSTOM);
// TV jitter
myTVJitterRec->setValue(10);
myTVJitterRecLabel->setLabel("10");
handleTVJitterChange(false);
break;
}
}
@ -552,6 +579,14 @@ void VideoDialog::handleTVModeChange(NTSCFilter::Preset preset)
_dirty = true;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void VideoDialog::handleTVJitterChange(bool enable)
{
myTVJitter->setState(enable);
myTVJitterRec->setEnabled(enable);
myTVJitterRecLabel->setEnabled(enable);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void VideoDialog::loadTVAdjustables(NTSCFilter::Preset preset)
{
@ -635,7 +670,10 @@ void VideoDialog::handleCommand(CommandSender* sender, int cmd,
break;
case kTVScanIntenseChanged: myTVScanIntenseLabel->setValue(myTVScanIntense->getValue());
break;
case kTVJitterChanged: handleTVJitterChange(myTVJitter->getState());
break;
case kTVJitterRecChanged: myTVJitterRecLabel->setValue(myTVJitterRec->getValue());
break;
case kCloneCompositeCmd: loadTVAdjustables(NTSCFilter::PRESET_COMPOSITE);
break;
case kCloneSvideoCmd: loadTVAdjustables(NTSCFilter::PRESET_SVIDEO);

View File

@ -46,6 +46,7 @@ class VideoDialog : public Dialog
void handleFullscreenChange(bool enable);
void handleTVModeChange(NTSCFilter::Preset);
void handleTVJitterChange(bool enable);
void loadTVAdjustables(NTSCFilter::Preset preset);
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
@ -109,6 +110,11 @@ class VideoDialog : public Dialog
ButtonWidget* myCloneBad;
ButtonWidget* myCloneCustom;
// TV jitter effects
CheckboxWidget* myTVJitter;
SliderWidget* myTVJitterRec;
StaticTextWidget* myTVJitterRecLabel;
enum {
kNAspectRatioChanged = 'VDan',
kPAspectRatioChanged = 'VDap',
@ -127,6 +133,9 @@ class VideoDialog : public Dialog
kTVGammaChanged = 'TVga',
kTVScanIntenseChanged= 'TVsc',
kTVJitterChanged = 'TVjt',
kTVJitterRecChanged = 'TVjr',
kCloneCompositeCmd = 'CLcp',
kCloneSvideoCmd = 'CLsv',
kCloneRGBCmd = 'CLrb',

View File

@ -53,7 +53,7 @@
<key>CFBundleSignature</key>
<string>StLa</string>
<key>CFBundleVersion</key>
<string>4.7</string>
<string>4.7.1</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersionByArchitecture</key>

View File

@ -1,5 +1,5 @@
%define name stella
%define version 4.7
%define version 4.7.1
%define rel 1
%define enable_sound 1
@ -101,6 +101,9 @@ rm -rf $RPM_BUILD_DIR/%{name}-%{version}
%_datadir/icons/large/%{name}.png
%changelog
* Sat Feb 13 2016 Stephen Anthony <stephena@users.sf.net> 4.7.1-1
- Version 4.7.1 release
* Mon Jan 25 2016 Stephen Anthony <stephena@users.sf.net> 4.7-1
- Version 4.7 release

View File

@ -36,8 +36,8 @@ IDI_ICON ICON "stella.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,7,0,0
PRODUCTVERSION 4,7,0,0
FILEVERSION 4,7,1,0
PRODUCTVERSION 4,7,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -55,12 +55,12 @@ BEGIN
VALUE "Comments", "The multi-platform Atari 2600 emulator. Stella is released under the GPLv2."
VALUE "CompanyName", "The Stella Team (http://stella.sourceforge.net)"
VALUE "FileDescription", "Stella"
VALUE "FileVersion", "4.7"
VALUE "FileVersion", "4.7.1"
VALUE "InternalName", "Stella"
VALUE "LegalCopyright", "Copyright (C) 1995-2016 The Stella Team"
VALUE "OriginalFilename", "Stella.exe"
VALUE "ProductName", "Stella"
VALUE "ProductVersion", "4.7"
VALUE "ProductVersion", "4.7.1"
END
END
BLOCK "VarFileInfo"