diablodiab / libretro-scummvm-backend

libretro backend for scummvm
6 stars 8 forks source link

Remastered theme does not work #10

Closed ner00 closed 2 years ago

ner00 commented 2 years ago

Simply like the title says, for whatever reason the remastered theme is not available.

diablodiab commented 2 years ago

If you extract the ScummVM.zip assets file to your retroarch system folder (or similar) and then point the theme path to the proper folder, it should work.

screenshot
ner00 commented 2 years ago

I'm afraid not. The resources are already there by default, since they work out of the box with libretro's build of the core; it also already has the setting in the ini gui_theme=scummremastered

But even going the extra mile of replacing the zips with the ones from upstream and/or extracting them to standalone folders doesn't make a difference. The built-in theme is the only ever listed,

diablodiab commented 2 years ago

Well, it works for me: https://youtu.be/Zb9zmapZRu4

ner00 commented 2 years ago

I've triple-checked, it doesn't work for me, only when using libretro's build of the core, beside that dll nothing else changes - I'm even using your build to make sure it's not an issue with my own building process.

There is clearly something more to the themes not loading, although I don't see how I can "debug" why it doesn't load them. I've downloaded an entirely new zip with RetroArch win64 and set it up exactly as you did, same paths, but the themes still don't even show in the list.

I'm listing here every step exactly.

  1. Extract to C:\ drive RetroArch.7z, from: https://buildbot.libretro.com/stable/1.10.3/windows/x86_64/RetroArch.7z
  2. Extract scummvm.zip to C:\RetroArch-Win64\system: https://raw.githubusercontent.com/libretro/scummvm/master/backends/platform/libretro/aux-data/scummvm.zip
  3. Download libretro's ScummVM core, then load and start the core
  4. Go to Options, then Paths, click on Theme Path, browse and choose: C:\RetroArch-Win64\system\scummvm\theme\
  5. Click Apply, then go to to Misc and click the Theme button
  6. The theme list has 3 items
  7. Quit the core, go to C:\RetroArch-Win64\cores and replace scummvm_libretro.dll with the one from this archive: http://build.bot.nu/nightly/windows/x86_64/latest/scummvm_libretro.dll.zip
  8. Load and run the ScummVM core once again
  9. Open Global Options, then go to to Misc and click the Theme button
  10. The theme list only has 1 item (builtin)

I hope we can find what's the "secret" to loading the themes, I seems to me that it must be something in the code. By the way, this is the scummvm.ini config file I end up with in my system folder and in which themes work fine with libretro's build but not with other builds.:

[scummvm]
filtering=false
vsync=true
mute=false
gui_use_game_language=false
speech_volume=192
native_mt32=false
mt32_device=null
gui_theme=builtin
talkspeed=60
confirm_exit=false
midi_gain=100
gui_scale=100
gui_return_to_launcher_at_exit=false
subtitles=false
multi_midi=false
fullscreen=true
gui_browser_show_hidden=false
browser_lastpath=C:\RetroArch-Win64\system\scummvm\theme\
gm_device=null
themepath=C:\RetroArch-Win64\system\scummvm\theme\
sfx_volume=192
music_volume=192
speech_mute=false
music_driver=auto
opl_driver=auto
aspect_ratio=false
versioninfo=2.7.0git
autosave_period=300
gui_language=en
enable_gs=false
ner00 commented 2 years ago

I think I figured it out, but this wasn't mentioned anywhere and it's not exactly obvious (to me). These builds need the themes from here: https://github.com/scummvm/scummvm/tree/master/gui/themes

Instead, I tried using the themes provided by libretro (from their documentation, linked in my previous comment), and then also the one provided in the backend repo resources, here: https://github.com/diablodiab/libretro-scummvm-backend/raw/main/aux-data/scummvm.zip (also granted I didn't recompile the aux-data, might be that too).

There is another weird reason why themes might not load, and that's one that you wouldn't normally go for. I'm trying a bunch of stuff so I always keep the libretro build as the default dll, for the games I want to I just point to another dll in the playlist, and when starting a a game from the playlist referencing a different ScummVM dll it just can't seem to be able to load the themes. Here's an example of that:

    {
      "path": "D:\\GAMES\\EMULATION\\RetroArch\\roms\\ScummVM\\Grim Fandango (Windows CD)\\grim-win.scummvm",
      "label": "Grim Fandango (Windows/CD)",
      "core_path": "cores\\scummvm_libretro_v2.7.0git_956637b.dll",
      "core_name": "ScummVM",
      "crc32": "DETECT",
      "db_name": "ScummVM.lpl"
    },

Now, if I rename the dll properly to scummvm_libretro.dll, then it works - provided that I'm using the proper themes that are compatible with that specific version of ScummVM. Now, since it seems that this is fairly stable, I'm going to ditch libretro's core, and besides both dlls can't use the same ini file and the same theme anyway so there's no point on keeping the complication.

Ok, seems everything is sorted now.

Thanks again, and sorry for wasting so much time for such an unimportant reason.