diff --git a/Changes.txt b/Changes.txt
index 4e001d9e3..056572a76 100644
--- a/Changes.txt
+++ b/Changes.txt
@@ -119,9 +119,10 @@
* Added option to change pitch of Pitfall II music.
- * ROM Info Launcher can now display multiple lines per property and
- bank switching type. Related to this, added fractional (25% increments)
- snapshot zooms.
+ * ROM Info Viewer size is not limited to fixed zoom steps anymore.
+
+ * ROM Info Viewer can now display multiple lines per property and the
+ bank switching type.
* In file listings, you can now select directories by holding 'Shift' on
the first character entered. Entering characters in lowercase still
diff --git a/docs/graphics/options_ui.png b/docs/graphics/options_ui.png
index 14a6e33af..322527cb3 100644
Binary files a/docs/graphics/options_ui.png and b/docs/graphics/options_ui.png differ
diff --git a/docs/index.html b/docs/index.html
index 6d54cb181..93779088a 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2371,7 +2371,7 @@
@@ -3079,8 +3080,8 @@
launcher and fonts, as well as the 'ROM Info Viewer' can be changed in
UI Settings - Launcher dialog, as shown below:
- Most of the options are self-explanatory, except for the 'ROM Info
- viewer', which is described below.
+ Most of the options are self-explanatory, except for the 'ROM info
+ width', which is described below.
@@ -3092,27 +3093,21 @@
for each new release of Stella. Note that the snapshots can be any size
generated by Stella; they will be resized accordingly.
- Currently, there are several restrictions for this feature:
-
- - The ROM Info Viewer can be shown in 1x or 2x mode only.
- - To view snapshots in 1x mode, the ROM launcher window must be sized at
- least 640x480. If the launcher isn't large enough, the functionality
- will be disabled.
- - To view snapshots in 2x mode, the ROM launcher window must be sized at
- least 1000x720. If the launcher isn't large enough, an attempt will
- be made to use 1x mode.
-
+ The ROM Info Viewer's width can be defined between 0% (off) and 100%. The
+ value is relative to the launcher width. For too small or too large values,
+ Stella will automatically correct the width at runtime so that the ROM names
+ and the current ROM's information always have enough space.
The following snapshots illustrate the various font sizes and rom info
- zoom levels:
+ widths:
- ROM Info Viewer in 1x mode, UI sized 800x480, small launcher font:
+ ROM Info Viewer width at 40%, UI sized 800x480, small launcher font:
- ROM Info Viewer in 1x mode, UI sized 1000x720, medium launcher font:
+ ROM Info Viewer width at 32%, UI sized 1000x720, medium launcher font:
- ROM Info Viewer in 2x mode, UI sized 1280x900, large launcher font:
+ ROM Info Viewer width at 50% , UI sized 1280x900, large launcher font:
The text box in the upper right corner can be used to narrow down the
diff --git a/src/emucore/FrameBuffer.cxx b/src/emucore/FrameBuffer.cxx
index 769fa6798..c3789f0ed 100644
--- a/src/emucore/FrameBuffer.cxx
+++ b/src/emucore/FrameBuffer.cxx
@@ -36,9 +36,11 @@
#ifdef GUI_SUPPORT
#include "Font.hxx"
#include "StellaFont.hxx"
+ #include "ConsoleMediumBFont.hxx"
#include "StellaMediumFont.hxx"
#include "StellaLargeFont.hxx"
#include "ConsoleFont.hxx"
+ #include "ConsoleBFont.hxx"
#include "Launcher.hxx"
#include "Menu.hxx"
#include "CommandMenu.hxx"
@@ -106,7 +108,7 @@ bool FrameBuffer::initialize()
// This font is used in a variety of situations when a really small
// font is needed; we let the specific widget/dialog decide when to
// use it
- mySmallFont = make_unique(GUI::stellaDesc);
+ mySmallFont = make_unique(GUI::stellaDesc); // 6x10
// The general font used in all UI elements
// This is determined by the size of the framebuffer
@@ -117,16 +119,18 @@ bool FrameBuffer::initialize()
// The info font used in all UI elements
// This is determined by the size of the framebuffer
- myInfoFont = make_unique(GUI::consoleDesc);
+ myInfoFont = make_unique(GUI::consoleDesc); // 8x13
// The font used by the ROM launcher
const string& lf = myOSystem.settings().getString("launcherfont");
if(lf == "small")
- myLauncherFont = make_unique(GUI::consoleDesc);
+ myLauncherFont = make_unique(GUI::consoleBDesc); // 8x13
+ else if(lf == "small medium")
+ myLauncherFont = make_unique(GUI::consoleMediumBDesc); // 9x15
else if(lf == "medium")
- myLauncherFont = make_unique(GUI::stellaMediumDesc);
+ myLauncherFont = make_unique(GUI::stellaMediumDesc); // 9x18
else
- myLauncherFont = make_unique(GUI::stellaLargeDesc);
+ myLauncherFont = make_unique(GUI::stellaLargeDesc); // 10x20
#endif
// Determine possible TIA windowed zoom levels
diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx
index 1ad12575c..00bb983fd 100644
--- a/src/emucore/Settings.cxx
+++ b/src/emucore/Settings.cxx
@@ -342,7 +342,7 @@ void Settings::validate()
setValue("palette", "standard");
s = getString("launcherfont");
- if(s != "small" && s != "medium" && s != "large")
+ if(s != "small" && s != "small medium" && s != "medium" && s != "large")
setValue("launcherfont", "medium");
s = getString("dbg.fontsize");
@@ -478,10 +478,10 @@ void Settings::usage() const
<< " -exitlauncher <1|0> On exiting a ROM, go back to the ROM launcher\n"
<< " -launcherres The resolution to use in ROM launcher mode\n"
<< " -launcherfont \n"
+ << " small medium|large>\n"
<< " -launcherroms <1|0> Show only ROMs in the launcher (vs. all files)\n"
- << " -romviewer <0|1|2> Show ROM info viewer at given zoom level in ROM\n"
- << " launcher (0 for off)\n"
+ << " -romviewer Show ROM info viewer at given zoom level in ROM\n"
+ << " launcher (use 0 for off)\n"
<< " -lastrom Last played ROM, automatically selected in launcher\n"
<< " -romloadcount Number of ROM to load next from multicard\n"
<< " -uipalette