diff --git a/Announce.txt b/Announce.txt index a93884a04..66c1e1bb9 100644 --- a/Announce.txt +++ b/Announce.txt @@ -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 diff --git a/Changes.txt b/Changes.txt index 3716c1e12..eb6222037 100644 --- a/Changes.txt +++ b/Changes.txt @@ -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 diff --git a/debian/changelog b/debian/changelog index 5cb24eb32..6dbeb4950 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +stella (4.7.1-1) stable; urgency=high + + * Version 4.7.1 release + + -- Stephen Anthony Sat, 13 Feb 2016 17:09:59 -0230 + + stella (4.7-1) stable; urgency=high * Version 4.7 release diff --git a/docs/graphics/options_video_tv.png b/docs/graphics/options_video_tv.png index dca7a8337..94b436467 100644 Binary files a/docs/graphics/options_video_tv.png and b/docs/graphics/options_video_tv.png differ diff --git a/docs/index.html b/docs/index.html index 272a2f9eb..8bbc4bbc5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,7 +10,7 @@

A multi-platform Atari 2600 VCS emulator

-

Release 4.7

+

Release 4.7.1



User's Guide

@@ -54,7 +54,7 @@


-
February 1999 - January 2016
+
February 1999 - February 2016
The Stella Team
Stella Homepage
@@ -1855,6 +1855,17 @@ (vs. an integral stretch which won't necessarily completely fill the screen). + +
-tv.jitter <1|0>
+ Enable TV jitter/roll effect, when there are too many or too few scanlines + per frame. + + + +
-tv.jitter_recovery <1 - 20>
+ When TV jitter/roll effect is enabled, determines how long to delay recovery + time (recovery spread over multiple frames). +
-tv.filter <1 - 6>
@@ -2418,6 +2429,8 @@ + + diff --git a/src/common/Version.hxx b/src/common/Version.hxx index 9fcf96636..7cb7997bc 100644 --- a/src/common/Version.hxx +++ b/src/common/Version.hxx @@ -22,7 +22,7 @@ #include -#define STELLA_VERSION "4.7.1_pre" +#define STELLA_VERSION "4.7.1" #define STELLA_BUILD atoi("$Rev$" + 6) #endif diff --git a/src/gui/VideoDialog.cxx b/src/gui/VideoDialog.cxx index dcf2da8f3..3e8bcde89 100644 --- a/src/gui/VideoDialog.cxx +++ b/src/gui/VideoDialog.cxx @@ -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); diff --git a/src/gui/VideoDialog.hxx b/src/gui/VideoDialog.hxx index 013abe709..435efaa0c 100644 --- a/src/gui/VideoDialog.hxx +++ b/src/gui/VideoDialog.hxx @@ -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', diff --git a/src/macosx/Info-Stella.plist b/src/macosx/Info-Stella.plist index 0c007e8b6..620bd8b8d 100644 --- a/src/macosx/Info-Stella.plist +++ b/src/macosx/Info-Stella.plist @@ -53,7 +53,7 @@ CFBundleSignature StLa CFBundleVersion - 4.7 + 4.7.1 LSApplicationCategoryType public.app-category.games LSMinimumSystemVersionByArchitecture diff --git a/src/unix/stella.spec b/src/unix/stella.spec index c4a36c5be..9262c8ca4 100644 --- a/src/unix/stella.spec +++ b/src/unix/stella.spec @@ -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 4.7.1-1 +- Version 4.7.1 release + * Mon Jan 25 2016 Stephen Anthony 4.7-1 - Version 4.7 release diff --git a/src/windows/stella.rc b/src/windows/stella.rc index 5c0728f45..daed07ecf 100755 --- a/src/windows/stella.rc +++ b/src/windows/stella.rc @@ -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"
ItemBrief descriptionFor more information,
see CommandLine
Jitter/Roll effectemulate screen roll with inconsistent scanline count-tv.jitter
Jitter/Roll recoverydetermines recovery time for screen rolling-tv.jitter_recovery
TV Modedisable TV effects, or select TV preset-tv.filter
Scanline Intensitysets scanline black-level intensity-tv.scanlines
Scanline Interpolationsmooth/blend scanlines into image-tv.scaninter