Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

retroarch: update to 1.7.9 #2853

Merged
merged 1 commit into from Dec 26, 2019
Merged

retroarch: update to 1.7.9 #2853

merged 1 commit into from Dec 26, 2019

Conversation

cmitu
Copy link
Contributor

@cmitu cmitu commented Sep 22, 2019

Updates the RetroArch to version 1.7.9 (from the v1.7.9.2 release tag).
Some changes since 1.7.6:

  • there's a new notification UI (menu widgets) which is the default.

  • the joypad sorting is dropped upstream, so the patch included in RetroPie is not needed anymore. Remains to be seen if the new joypad order is compatible with the previous behavior.

  • upstream dropped the video_shader parameter and replaced it instead with a CLI option (--set-shader), but in my tests this is not behaving the same - the shader from the command line overrides any game overrides, whereas before, the shader saved for the game would override the one in the config file. Also, for some reason the default for enabling the Video Shaders has been changed to false. I added a patch to bring back reading the video_shader parameter when every other auto-shader preset (game/core/content/global) is not present.
    This modification impacts the Configuration Editor, which has been used so far to set the shader per system/globally through the individual system's retroarch.cfg files.

  • there's a new quit_press_twice option, defaults to true, which expects the user to press the Quit key/hotkey combo twice to exit.

  • the default compile options enable support for OpenGL1, I disabled them on the Pi when the BRCM libs are used since it produces a linking error (missing -lGL).

I rebased the RetroPie patches on-top of the RetroArch's version pulled and added a few new options to be set as in the default config.

  • quit_press_twice, video_shader_enable - these will be also set for migrated configs, since they're unset by default.
  • I added rgui_browser_directory to make browsing for files start in RetroPie's rom folder. Useful when multi-disk games are loaded and a new disk must be appended.
  • I changed the default font size due to the new notification system - 12 is unreadable with the new menu widgets style notifications. The default is 32.
  • I've set the new rgui_aspect_ratio_lock configuration option to Integer scale, this makes the RGUI more readable instead of being stretched to the content's aspect ratio (see (RGUI) Add 'Lock Menu Aspect Ratio' option libretro/RetroArch#8211).

If rpi-update has been used, the update pulls in an extra egl.pc that's not part of libraspberrypi-dev and this confuses the configuration script, which tries to use the BRCM EGL libs (thanks @psyke83). That's the reason for the pkgconfig override. Not needed anymore since #2875.

Things needed:

  • retroarch-assets.zip needs to be updated on the RP files server, to include both the ozone
    menu_widgets folders (https://github.com/libretro/retroarch-assets) and to update the xmb/monochrome assets.
    ~~ - decide how to tackle the lack of video_shader in the config files w.r.t. Configuration Editor.~~
  • do we need Wayland / Vulkan support on the PI ?

iniSet "$option" "$value"
fi
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not convinced about adding this function - also as it only sets a value if it isn't already set, the description/name isn't sufficient.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's similar to the options settings function (setRetroArchCoreOption), since there were 4 similar options needed to be set, I thought of using a function. We can re-use the previous option though, not a problem.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its not used outside of this module, so can do a hidden function in the module for it if you need to de-duplicate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, will modify with a local routine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be fixed now, I added a local routine in the scriptmodule script.

@joolswills
Copy link
Member

the joypad sorting is dropped upstream, so the patch included in RetroPie is not needed anymore. Remains to be seen if the new joypad order is compatible with the previous behavior.

It wasn't from my testing - actually it seemed wrong on the 1.7.6 when I did some testing the other day. I didn't get a chance to debug further.

@joolswills
Copy link
Member

I think that the behaviour with the video shaders needs to be addressed upstream first also (if possible as it sounds like it's not ideal). Do you have a reference to this change and any discussion?

@cmitu
Copy link
Contributor Author

cmitu commented Sep 22, 2019

I think that the behaviour with the video shaders needs to be addressed upstream first also (if possible as it sounds like it's not ideal). Do you have a reference to this change and any discussion?

https://forums.libretro.com/t/cfg-file-parameter-video-shader-not-working/
https://forums.libretro.com/t/1-78-video-shader-option-not-working-anymore/
https://www.libretro.com/index.php/retroarch-1-7-8-released/ - section Shader usability changes.

@cmitu cmitu changed the title retroarch: update to 1.7.8 retroarch: update to 1.7.9 Oct 5, 2019
@joolswills
Copy link
Member

I saw you put the video shader settings back in. Thanks. Let me know if you want any testing.

Much appreciated.

@cmitu
Copy link
Contributor Author

cmitu commented Nov 11, 2019

I have to test it in conjuction with the RetroPie configuration editor, I've only tested briefly by running RetroArch from the command line.

@cmitu
Copy link
Contributor Author

cmitu commented Nov 25, 2019

OK, I've tested the re-introduction of the video_shader config option and it looks ok.

Currently, the logic for loading an 'auto-shader' in RetroArch is to try to find - and load - :

  • (a game specific preset shader) from $CONF/shaders/preset/$CORE_NAME/$BASENAME.$EXT
  • (a content dir preset shader) from $CONF/shaders/preset/$CORE_NAME/$CONTENT_DIR.$EXT
  • (a core preset shader) from $CONF/shaders/preset/$CORE_NAME.$EXT
  • (a global preset shader) from $CONF/shaders/preset/global.$EXT

where $EXT is one of the supported shader preset extensions (.glslp, .slangp, maybe .hlslp ?).

The patch adds the option to load - after trying every other option from the list above - the shader preset specified in the video_shader parameter, so it shouldn't interfere with any shader preset saved from RetroArch (per-game/core/content-dir/global).

The optioned offered in RetroArch with the removal of this parameter from the config file is to use a command line parameter, --set-shader <preset_path>. From my tests this acts as a hard override to any 'auto-shader' present (per-game/core/content-dir/global), so it doesn't have the same behavior as the patch added here.

EDIT: normally, a 'content dir' looks like it would help for the configuration editor, but its path depends on the $CORE_NAME, which is the name from the core's info file (https://bot.libretro.com/assets/frontend/info/) - like 'Nestopia', or 'FinalBurn Neo', 'MAME 2003 (0.78)', etc. - and not something we have currently available in the lr- scriptmodules.

@cmitu
Copy link
Contributor Author

cmitu commented Nov 25, 2019

There is a also a corner-case bug with preset saving, reported upstream (libretro/RetroArch#9724).

@cmitu cmitu force-pushed the retroarch_178 branch 2 times, most recently from 437b9b3 to 14989ce Compare December 2, 2019 17:43
scriptmodules/emulators/retroarch.sh Outdated Show resolved Hide resolved
@joolswills
Copy link
Member

Minor indent issue I noticed. Apart from that, I'm happy to merge. Thanks for the work on this.

@joolswills
Copy link
Member

Thanks.

@cmitu
Copy link
Contributor Author

cmitu commented Dec 26, 2019

Now that 1.8.2 is out, I could re-test and re-base against it.

@joolswills joolswills changed the base branch from fkms_rpi4 to master December 26, 2019 05:35
@joolswills
Copy link
Member

joolswills commented Dec 26, 2019

I just noticed it was a PR against the fkms branch. I switched it. You may want to check / switch your other PRs (I'll go through them eventually :-) ).

@joolswills
Copy link
Member

joolswills commented Dec 26, 2019

Let's do that as a new PR. I've tested this already and works well. I may have missed something but as it's a core component I'd like to test 1.8.2 and I'm keen to get this PR merged now our dev branch is re-integrated.

@joolswills joolswills merged commit 79d5de6 into RetroPie:master Dec 26, 2019
@joolswills
Copy link
Member

Sorry. I have to revert for now. Fails to build on stretch - struct member issue in sdl2_common.c. probably a quick fix but I don't have any time right now.

@cmitu
Copy link
Contributor Author

cmitu commented Dec 26, 2019

@joolswills I'll take a look. Maybe this issue - libretro/RetroArch#9583 ?

@joolswills
Copy link
Member

Yep. That's the one.

@cmitu
Copy link
Contributor Author

cmitu commented Dec 26, 2019

I'll sort it out and then re-submit the PR.

@joolswills
Copy link
Member

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants