EmulationStation: collection "last played" and other full-screen paging errors
-
@sleve_mcdichael said in Collection "last played" error:
No, this does just the same as whether navigate immediately to another system and back with left-right, or by use B to return system carousel first.
OK, then can you outline the steps needed to reproduce the error ? I don't quite get how to reproduce it using the 'last played' collection without starting a game and navigating away.
-
@mitu sorry, I think I misunderstood your question.
Is it enough to use left-right from the 'last played' and then start a game,
Yes, this is enough to produce the error. (I had thought you meant "does this correct it," which does not.)
-
Does this happen with another Theme? Such as the Default Carbon theme?
-
@RapidEdwin08 said in Collection "last played" error:
Does this happen with another Theme? Such as the Default Carbon theme?
Yes. It takes longer to push the highlight off the screen (since the list has a smaller font, and displays more entries at a time), but it does get there eventually:
-
Are you using the stable version or the
-dev
? I can't reproduce the issue with the-dev
version, so the bug you see may have been fixed already. -
@mitu I am on
-dev
, rebuilt just now using latest source95ba158
. -
@sleve_mcdichael Can you also post your settings ?
-
@mitu es_settings.cfg:
<?xml version="1.0"?> <bool name="BackgroundIndexing" value="false" /> <bool name="BackgroundJoystickInput" value="false" /> <bool name="CaptionsCompatibility" value="true" /> <bool name="CollectionShowSystemInfo" value="true" /> <bool name="DisableKidStartMenu" value="true" /> <bool name="DoublePressRemovesFromFavs" value="false" /> <bool name="DrawFramerate" value="false" /> <bool name="EnableSounds" value="false" /> <bool name="ForceDisableFilters" value="false" /> <bool name="IgnoreLeadingArticles" value="true" /> <bool name="LocalArt" value="false" /> <bool name="MoveCarousel" value="true" /> <bool name="ParseGamelistOnly" value="false" /> <bool name="QuickSystemSelect" value="true" /> <bool name="ScrapeRatings" value="false" /> <bool name="ScreenSaverControls" value="true" /> <bool name="ScreenSaverOmxPlayer" value="false" /> <bool name="ScreenSaverVideoMute" value="true" /> <bool name="ShowHelpPrompts" value="true" /> <bool name="ShowHiddenFiles" value="false" /> <bool name="SlideshowScreenSaverCustomMediaSource" value="false" /> <bool name="SlideshowScreenSaverRecurse" value="false" /> <bool name="SlideshowScreenSaverStretch" value="false" /> <bool name="SortAllSystems" value="false" /> <bool name="StretchVideoOnScreenSaver" value="false" /> <bool name="SystemSleepTimeHintDisplayed" value="false" /> <bool name="ThreadedLoading" value="true" /> <bool name="UseCustomCollectionsSystem" value="true" /> <bool name="UseFullscreenPaging" value="true" /> <bool name="VideoAudio" value="false" /> <bool name="VideoOmxPlayer" value="false" /> <int name="MaxVRAM" value="80" /> <int name="RandomCollectionMaxGames" value="0" /> <int name="ScraperResizeHeight" value="0" /> <int name="ScraperResizeWidth" value="400" /> <int name="ScreenSaverSwapMediaTimeout" value="10000" /> <int name="ScreenSaverSwapVideoTimeout" value="30000" /> <int name="ScreenSaverTime" value="300000" /> <int name="SubtitleSize" value="55" /> <int name="SystemSleepTime" value="0" /> <string name="AudioCard" value="default" /> <string name="AudioDevice" value="HDMI" /> <string name="CollectionSystemsAuto" value="all,recent" /> <string name="CollectionSystemsCustom" value="" /> <string name="DefaultScreenSaverCollection" value="" /> <string name="GamelistViewStyle" value="detailed" /> <string name="LeadingArticles" value="a,an,the" /> <string name="OMXAudioDev" value="both" /> <string name="PowerSaverMode" value="disabled" /> <string name="RandomCollectionExclusionCollection" value="" /> <string name="SaveGamelistsMode" value="on exit" /> <string name="Scraper" value="ScreenScraper" /> <string name="ScreenSaverBehavior" value="random video" /> <string name="ScreenSaverGameInfo" value="start & end" /> <string name="SlideshowScreenSaverBackgroundAudioFile" value="/home/pi/.emulationstation/slideshow/audio/slideshow_bg.wav" /> <string name="SlideshowScreenSaverImageFilter" value=".png,.jpg" /> <string name="SlideshowScreenSaverMediaDir" value="/home/pi/.emulationstation/slideshow/image" /> <string name="SlideshowScreenSaverVideoFilter" value=".mp4,.avi" /> <string name="StartupSystem" value="" /> <string name="SubtitleAlignment" value="center" /> <string name="SubtitleFont" value="/usr/share/fonts/truetype/freefont/FreeSans.ttf" /> <string name="SubtitleItalicFont" value="/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf" /> <string name="ThemeSet" value="snesmini-own" /> <string name="TransitionStyle" value="instant" /> <string name="UIMode" value="Full" /> <string name="UIMode_passkey" value="uuddlrlrba" /> <string name="VlcScreenSaverResolution" value="original" /> <map name="RandomCollectionSystems" type="int" /> <map name="RandomCollectionSystemsAuto" type="int" /> <map name="RandomCollectionSystemsCustom" type="int" />
-
It's the Use Full Screen paging for LB/RB option that triggers the issue, when toggled on. I can reproduce the error now:
-
Thanks for digging it up.
The cursor is not notified about the changes in the last played collection list view (and the LR/LB paging has a different logic than the -10/+10 list items paging), that is why the cursor and the list view divert.
Patch to fix it: https://github.com/RetroPie/EmulationStation/pull/874
-
@sleve_mcdichael does this PR solve the issue you reported?
-
@pjft it appears so, yes (for this specific issue, but see below). Using Gemba@cb98f3b, behavior now is:
Cursor starts at top of lastplayed list. As games are played (from other lists), titles are added to the top of lastplayed, and cursor-highlighted entry moves downscreen, until highlighted entry reaches screen-middle. After that, new-played titles are added "offscreen" above the list, so the highlighted entry remains in screen-middle.
Highlighted entry remains in screen-middle until near list-end is reached (as entries are removed from list-end, and new ones are added at the top), then highlight moves down towards list-end at screen-bottom.
Once list-end is reached, highlight remains on this final entry at screen-bottom (as the title underneath it changes each time a new one is added at the top.)
...
A couple of additional issues, also related to full-screen paging, are also present, however:
1: When press X for "random game," or select "jump to (letter)" menu option, or use LB/RB to PgUp/PgDn, then: with full-screen paging off, cursor-highlighted entry is positioned naturally screen-middle (or as near to it as possible, as if you had scrolled to the chosen title manually). With full-screen paging on, cursor remains in screen-position (eg. top) as prior to selection, unless random/jump-to title was already visible on same screen before selection -- in that case, only the cursor moves to highlight the new chosen entry (eg. off-center near screen-bottom), while the list contents remain static.
2: when changing from a theme with more list entries displayed, to one with fewer (eg. changing from carbon to snes-mini)...
In theme carbon, Go to a list eg. nes, and scroll down some so cursor is on screen-middle:
Things to note: 1) the first visible entry is "Knightmare II: The Maze of Galious," and 2) the highlighted entry "M.C. Kids" is ninth from the top (starting from that first visible entry.)
Then, with full-screen paging on, switch to theme snes-mini. Menu reverts to system carousel, so navigate back to system NES:
Note: first visible entry still "Knightmare II," highlighted entry "M.C. Kids" still ninth from top -- only now there are far fewer entries so "ninth from top" is now pushed off-screen bottom instead of in the middle.
(Repeat with full-screen paging off, system is displayed correctly with selected entry in middle after changing theme and navigating back):
-
@sleve_mcdichael said in EmulationStation: collection "last played" and other full-screen paging errors:
1: When press X for "random game," or select "jump to (letter)" menu option, or use LB/RB to PgUp/PgDn, then: with full-screen paging off, cursor-highlighted entry is positioned naturally screen-middle (or as near to it as possible, as if you had scrolled to the chosen title manually). With full-screen paging on, cursor remains in screen-position (eg. top) as prior to selection, unless random/jump-to title was already visible on same screen before selection -- in that case, only the cursor moves to highlight the new chosen entry (eg. off-center near screen-bottom), while the list contents remain static.
This works as designed. The cursor is kept sticky and the list content moves, unless the user navigates one step closer to the middle. Once it is in the middle the cursor is sticky there (if not at the start/end of the list).
Why that when LR/RB paging is enabled, you may ask: Imagine you want to jump a page up or down and the cursor is also placed in the middle (if it is not already there) at the first LB/RB press. This would make you to not only follow visually the highlighted game but also the new cursor position.2: when changing from a theme with more list entries displayed, to one with fewer (eg. changing from carbon to snes-mini)...
This can be fixed with a similar approach as the initial reported issue.
-
@sleve_mcdichael can you please check the last reported issue (item 2) if the updated PR874 remediates the issue also on your side? Thanks.
-
@Lolonois yes, the selected game (and system) now remains correctly positioned when changing theme, using
485b995
. -
@sleve_mcdichael Thanks for confirming!
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.