Lakka 4.0 release

Original article here.

New version of Lakka has been released!

We are happy to announce the new and updated version of Lakka.

Release summary

Changes since version 3.7:

  • Build system based on LibreELEC 10.0.2
  • RetroArch updated to 1.10.1
  • Cores updated to their most recent versions
  • superbroswar: added new libretro core
  • sameduck: added new libretro core
  • Mesa updated to 22.0.0
  • Mainline kernel updated to 5.10.103 (PC, Amlogic, Allwinner, NXP)
  • Raspberry kernel updated to 5.10.95
  • Most ARM devices switched to aarch64
    Rockchip RK3288, RK3328 and RK3399 switched to mainline kernel 5.10.76
  • Added support for additional Allwinner and Amlogic devices (not tested on our side, as we do not own many of these devices)
  • Nintendo Switch: complete rewrite of the port with many fixes and enhancements
  • Tinkerboard and MiQi now use common system RK3288 (hence the change of the image names); you need to place empty file named .nocompat in the /storage/.update folder / Update Samba share
  • Dropped support for RPi4.arm

This is our first release with the updated build system. We tried to port all our changes to this new build system, but we might have missed some of our optimizations and enhancements. Please report us any regression or missing features or drivers via our issue tracker.

Not all platforms have been ported to the new build system yet. For these platforms we have released a maintenance update (3.7.1) with RetroArch and libretro cores updated to the same versions as in 4.0 release. Lakka users with Hardkernel’s Odroid XU3/4, Odroid Go Advance / Super, and Anbernic’s RG351M / RG351P / RG351MP / RG351V devices get update as well.

Known issues

See GitHub for information about currently open bugs and issues and also for possible workarounds for these bugs/issues.

Final notes

You can download the latest release from Lakka download page. If you want to follow the development of Lakka more closely, you can download latest Lakka nightly builds.

If you want to show your support for further development of the Libretro projects and ecosystem, you can learn more here.

Happy retro-gaming!

RetroArch 1.10.1 release!


RetroArch 1.10.1 has just been released.

Grab it here.

If you’d like to learn more about upcoming releases, please consult our roadmap here.

Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We have always prioritized the endusers experience, and unlike others, we have never emburdened them with in-app ads, monetization SDKs or paywalled features, and we intend to continue to do so. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!

Highlights

Good news for Gamecube/Wii users – after some downtime, RetroArch should work again on these platforms!

Improvements for contentless cores (or what we would call ‘standalone cores’). ‘Standalone core’ in this context means a core that either:

* doesn’t need any content of its own to start up (like 2048, Mr. Boom)
* Is only made for one specific game/purpose and is not an ’emulator core’ that is meant to run various content, but only one specific thing.

Lots of cores fall into the contentless/’standalone cores’ territory – NXEngine (Cave Story), Mr. Boom, Rick Dangerous, Dinothawr, The Powder Toy, Cannonball, 2048, etc. It’s important to realize that ‘standalone’ here does not mean what you would think it means when used outside of RetroArch parlance.

To make it even easier to work with these ‘contentless cores’, it has now also been made easier to obtain required/necessary content files that some of these cores need. If you go to ‘Online Updater’ and then go to ‘Core System Files Downloader’, it will show all the content files that are available for download from our server. Some of this content is required for certain cores to work as best they can, and some are even required for the core to start up at all. For instance, if you download ‘Dinothawr.zip’, it will download and install all the required asset files you need to play Dinothawr. After downloading this, you can then go to ‘Standalone cores’, select Dinothawr and play the game.

There is now a more energy-efficient way to fastforward. Instead of relying on the CPU to be as fast as it can be to fastforward frames (the default and only way up until now), now it’s also possible to fastforward based on ‘frame skipping’. To be more precise, this method of frame skipping is done by measuring the frame time and skipping based on frame time.

Some advantages to this new way of fastforwarding:

  • GPU MHz stay down, which is more energy efficient than presenting frames that are not visible anyway
  • Fast-forwarding with 3rd party frame limiting such as scanline sync is possible

It also means that with this option, fastforwarding is now possible for more cores on lower-end hardware. For instance, in the past, if you wanted to fastforward by x 2 in a specific game, the CPU of your machine had to actually be able to run the game with the core twice as fsat as the normal default.

In other news, tons of fixes for Wayland users on Linux machines. For Miyoo hardware users, the battery level is now supported. Tons of Cheevos/RetroAchievements improvements as usual (mastery placard, better description messages for missing RetroAchievements credentials, support for identifying Dreamcast CHD files, etc).

For netplay users, savestates have been disabled in stateless modes for stability reasons.

For RGUI menu fans, there is now dynamic theme support. This adds support for dynamically loading themes with RGUI based on the menu title from a playlist.

  • When Dynamic is chosen as a theme, a default theme will be loaded. It will look for default.cfg.
  • When a playlist is selected, it will load the theme *playlist_title.cfg.
  • With *playlist_title replaced as the actual title of-course.

Themes will be looked for in the dynamic wallpapers directory.

For Android 11 (and up) users, it is now possible to add external storage devices (i.e. from an SD card or NAS device), and add them as mount points. Note: the Google Play version is still not updated and we still need further Scoped Storage/Storage Access Framework improvements before we can update this version on there again. For now, we recommend you download the APK from our website instead.

User advice for Xbox users

There are apparently some issues people are experiencing with USB drives.

We recommend you follow these steps to solve potential issues:

  • Connect your drive to a Windows PC
  • Go to File Explorer
  • Right click on your NTFS drive
  • Do the following: Properties -> Security -> Advanced -> Add -> Select Principal -> Advanced -> Find Now > All App Packages > Ok > Tick Full Control > Ok > Enable Inheritance.

Changelog

1.10.1

  • ANDROID: Add HAVE_LANGEXTRA back to makefile
  • ANDROID: Include adaptive launcher icons
  • ANDROID: Populate external storage devices inside the file browser on Android 11+ devices
  • CHEEVOS: add mastery placard
  • CHEEVOS: more description message for missing RetroAchievements credentials
  • CHEEVOS: prevent occasional infinite wait loading multi-disc game from secondary disc
  • CHEEVOS: stop load process if unable to retrieve achievement data
  • CHEEVOS: support for identifying Dreamcast CHDs
  • CHEEVOS: Updated to 10.3.2
  • CONTENTLESS CORES: Disable per-game and per-content-directory remaps when running contentless cores
  • CONTENTLESS CORES: Disable per-game and per-content-directory shader presets
  • CONTENTLESS CORES: Enable config overrides
  • CONTENTLESS CORES: Enable runtime logging
  • CORE INFORMATION: Show core version
  • CORE UPDATER: Add ‘Core System Files Downloader’
  • CORES/SETTINGS: Add ‘Standalone Cores’ menu
  • D3D10/D3D11: Add Vsync swap interval
  • EMSCRIPTEN: Enable 7zip
  • GBA: New GBA filter Upscale_240x160-320×240
  • GONG: Removed now that it’s a standalone core
  • HISTORY/FAVORITES: Fix default core on ‘Add to Favorites’
  • INPUT/WAYLAND: Allow toggling mouse grabs
  • INPUT/WAYLAND: Release keys and mouse buttons on lost focus
  • iOS: Support for custom keyboard and touch mouse support, among other iOS 13 features
  • LIBRETRO: Fix crash when cores using RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK return false from retro_load_game()
  • LIBRETRO: Add optional frame skipping when fast-forwarding
  • LOCALIZATION: Fetch translations from Crowdin
  • LOCALIZATION: OSD fonts for Chinese, Korean, Arabic and Persian
  • LOCALIZATION: Translation fixes for various languages
  • MENU/RGUI: Add dynamic theme
  • MIYOO: Enable NEAREST audio resampler
  • MIYOO: Support battery level
  • NETPLAY: Disable savestates on stateless mode
  • NGC/Wii: Several improvements
  • OSX: Enable compilation on PPC
  • OZONE/XMB: Improve efficiency/accuracy of History/Favorites icon rendering
  • RECORDING/FFMPEG: Fix building against FFmpeg 5.0
  • RETROARCH INFORMATION: No longer report on enabled Python support, which was removed in RetroArch 1.7.8
  • SAVESTATES: Disable save states based on save state support level defined in core info files
  • UNIX/WINDOWS: Allow setting the default libretro_directory via environment variable
  • WAYLAND/VULKAN: Fix Wayland Vulkan not reacting to initial resize
  • WINDOWS/WINRAW: Enable mouse overlay control
  • Xbox/UWP: Fix CHD not working with Cheevos / Add 7zip support.