libretro / libretro-meta

The Unlicense
4 stars 3 forks source link

MSVC2019 - Cores not loading #120

Closed Nun-z closed 3 years ago

Nun-z commented 3 years ago

After building RetroArch for UWP with the msvc2019 solution, the following cores fail to launch on Xbox:

Dolphin, swanstation, and pcsx2.

The following error message is displayed: "failed to open libretro core." Here is a log file created when attempting to run dolphin: https://mega.nz/file/kxggmJ5R#cSP3-BU4oEtGbj0Y4HnOAt8USeJMeiNwKmceFekYsX0

For the bounty, any results must be able to be replicated.

Nun-z commented 3 years ago

https://www.bountysource.com/issues/97312776-msvc2019-cores-not-loading

c0mmand0x72 commented 3 years ago

well thats not easy .so first . your log file say ERROR] Failed to open libretro core: "S:\Program Files\WindowsApps\38290N-Soft.RetroRev_20.4.2121.70_x64__4jca6m9tq7wsr\cores\dolphin_libretro.dll" Error(s): The specified module could not be found. retroarch uses cores for every console emulation . in your case the dolphin emulator or better its libretro version dolphin_libretro.dll . where is your dolphin.dll ? do you have this dll ? is the folder ,that point to the cores, correct ?? do you use core downloader or your own cores ? we dont know . read all first . first check your setup . you can check and setup the cores folder setup in retroarch under settings / directory / cores setings / directory / info

the "retroarch.cfg" , file must contain this line : menu_show_core_updater = "true"

and these lines must be correct libretro_directory = "myfolder /retroarch/cores" libretro_info_path = "myfolder /retroarch/cores/info"

as example under linux libretro_directory = "~/.config/retroarch/cores" libretro_info_path = "~/.config/retroarch/cores/info"

in your case libretro_directory="S:\Program Files\WindowsApps\38290N-Soft.RetroRev_20.4.2121.70_x64__4jca6m9tq7wsr\cores\" remind windows \ , linux /

if everything is corect setup then online updater / core downloader online updater / update core info files then go to your game , choose reset core association .select a new core#

c0mmand0x72 commented 3 years ago

sorry somethings wents wrong while im typing . the misspelling and lines means nothing .lol so here my setup under linux my cores are in home/user/.config/retroarch/cores we have .so not .dll so when i type retroarch 'Zorro (USA).atr' -L /home/user/.config/retroarch/cores/atari800_libretro.so it starts direct retroarch with my atari800 disk and with the atari800 core its the usage when your use attract mode with retroarch as emulator . but there is a different command line with "romfilename" at the end well thats much stuff ,but easy to setup

c0mmand0x72 commented 3 years ago

at last one thing 4) If you want to bundle RetroArch with cores (which you'd obviously want to do), take the cores that you downloaded or compiled from Step 1, and add these files to the Visual Studio solution's 'cores' dir. Rightclick each core individually (or select them all together), select 'Properties', and make sure that under General, 'Content' reads 'Yes' instead of being blank.

Nun-z commented 3 years ago

Thanks for taking a look at the issue.

where is your dolphin.dll ? do you have this dll ? is the folder ,that point to the cores, correct ?? do you use core downloader or your own cores ?

My dolphin.dll file is located in S:\Program Files\WindowsApps\\cores\, and RetroArch does detect the core, as I can try to launch it after selecting a file in the "load content" section. I'm using the latest Windows x64 Dolphin core from the libretro buildbot, which I'm packaging with the app.

the "retroarch.cfg" , file must contain this line : menu_show_core_updater = "true"

That is present in my retroarch.cfg file, but the core downloader does not show. As far as I'm aware, the core downloader has been disabled on the UWP build.

online updater / update core info files

I tried updating the core info files using the updater, but unfortunately that hasn't solved the problem. The Dolphin core still fails to launch with the same error message.

If you want to bundle RetroArch with cores (which you'd obviously want to do), take the cores that you downloaded or compiled from Step 1, and add these files to the Visual Studio solution's 'cores' dir. Rightclick each core individually (or select them all together), select 'Properties', and make sure that under General, 'Content' reads 'Yes' instead of being blank.

I edited RetroArch-msvc2019-UWP.vcxproj.filters and RetroArch-msvc2019-UWP.vcxproj to remove all lines preventing me from adding the .dll files in the solution explorer. I then added the core files as you said, marking the content as "true" rather than "false." Sadly that did not fix the problem, as I'm still unable to load the core. The same error message is displayed.

c0mmand0x72 commented 3 years ago

I compile it once for a friend on his machine . I don't have a Xbox or real win. I actual use virt win. I try to compile it by myself later. I'm at work actual. Meanwhile. I did the orginal compile from dominator. You can the steps find it here https://gbatemp.net/threads/official-xbox-one-retroarch-thread.518329/page-6

I remember that d3d didn't work. You must use OpenGL. You must use the cores for UWP. And some other little things I can't remember right now. It works, but the performance was bad for my taste.. I will answer about my compile in about 10h. See ya

c0mmand0x72 commented 3 years ago

Oh and I forget!! You maybe need the bios files!

c0mmand0x72 commented 3 years ago

I will take a look at mine for the correct versions. It's something like Ipl.bin or IPL.bin for dolphin. And scphxxxx for psx. For ps2 I must look

c0mmand0x72 commented 3 years ago

In retroarch is the list with installed cores. There you can check each core for needed files.

bslenul commented 3 years ago

On PC I know a few people had that "The specified module could not be found." error because of missing C++ redistributables (e.g. with Citra: https://www.reddit.com/r/RetroArch/comments/ls6a7t/citra_error_the_specified_module_could_not_be/ and a few people got the same error for Dolphin on Discord), I wonder if there's a way to "install" them on Xbox, or maybe just "bundling" them into the cores?

Nun-z commented 3 years ago

I'll try throwing everything but the kitchen sink at it, any dependencies that might be relevant, and I'll report the results here.

Nun-z commented 3 years ago

It didn't work. I'm getting the same message: "failed to load libretro core."

Here's a picture of the dependencies I'm including: https://i.imgur.com/TfjIITq.png

mansoor909 commented 3 years ago

The problem is known and solved It is a shortage of dll files

https://drive.google.com/file/d/1DHM1HICG2QApeg49UZiNus3tg13uhwJF/view?usp=drivesdk

Copy all files to retroarch folder only

The latest version of pcsx2, dolphin and DuckStation has been tried and works just fine

Nun-z commented 3 years ago

The problem was the loading of dinput8 and opengl32 .dll files. After changing the .dll files to load only when they were used by the cores, the problem was fixed. The cores on the buildbot now have had this change and are now functional.

Nun-z commented 3 years ago

This issue was fixed by LazyFunker: https://github.com/LazyFunker