libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.37k stars 1.84k forks source link

[Ozone UI] Assets are being used from the XMB directories and not the Ozone directory #13605

Open dmspot opened 2 years ago

dmspot commented 2 years ago

Description

When using the Ozone UI, a playlist that has a custom name won't properly show icons even when the assets are present and named properly in the Ozone Assets icon folder. The icons will only show up properly if the assets are present and named properly in the XMB Assets folders.

Expected behavior

When using Ozone, the assets that are present in the Ozone Assets icon folder are used and displayed when an asset filename matches the playlist custom name.

Actual behavior

When using Ozone, the assets that are present in the Ozone Assets icon folder are not used and displayed when an asset filename matches the playlist custom name. Instead, assets in the XMB Assets folders are used and displayed when an asset filename matches the playlist custom name

Steps to reproduce the bug

  1. Use Ozone
  2. Create a Playlist from the available Retroarch list. Example: "Sega - Mega Drive - Genesis" ==> creates "Sega - Mega Drive - Genesis.Ipl" playlist file
  3. Rename "Sega - Mega Drive - Genesis.Ipl" to "Genesis.Ipl"
  4. Edit "Genesis.Ipl" and change all references of "Sega - Mega Drive - Genesis.Ipl" to "Genesis.Ipl"
  5. Make a copy of "Sega - Mega Drive - Genesis.png" and "Sega - Mega Drive - Genesis-content.png" in the Ozone Assets icons folder and name them "Genesis.png" and "Genesis-content.png"
  6. View the "Genesis" playlist icons in Ozone and note that they are showing the default icons (rocket ship) and not the copied ones from "Sega - Mega Drive - Genesis"
  7. Go to every sub-folder in XMB Assets folder, make copies of all files that start with "Sega - Mega Drive - Genesis...", and rename them "Genesis..."
  8. View the "Genesis" playlist icons in Ozone and note that they are now showing the "Sega - Mega Drive - Genesis" icons

Bisect Results

It appears that Ozone is looking at the XMB Assets folder(s) instead of the Ozone Assets folder. Unsure if this is for all situations/cores though?

Version/Commit

Tested on the current retroarch version.

Environment information

TheRhysWyrill commented 2 years ago

This has been an issue on every version of RA ever since the Ozone UI was introduced, possibly so that there isn't duplicates of all the different icon sets but I can't say for certain.

briaguya-ai commented 2 years ago

from what i've gathered, assets/ozone/png/icons contains autogenerated 46px versions of the icons in assets/xmb/monochrome/png

the ozone set seems to only be used on low dpi devices, which makes the naming feel strange to me

https://github.com/libretro/RetroArch/blob/6a59dad08cdc8e1cc39c294f2da45b3a1eec5e4c/file_path_special.c#L297-L335

https://github.com/libretro/RetroArch/blob/84f558db0b445845e4d5b16e4c1a6e7a160b84eb/configuration.c#L1526-L1527

https://github.com/libretro/RetroArch/blob/5d3ebd0ece85ba953f86d4f030f648f836a0ab0a/retroarch.cfg#L819