Closed bslenul closed 2 years ago
Oh, and I just noticed that it only happens with extracted rom or if cache folder contains special characters too.
So basically:
C:\é\rom.md
won't load.C:\é\rom.zip
won't load if Settings > Directory > Cache
is not set (so if it's using content dir).C:\é\rom.zip
will load if a cache path without special characters is set in RetroArch settings.since this has since posted more than a year ago, can you re-confirm issue still happens on latest commit?
Hey! Yes, still the exact same errors. Also I didn't mention it here but it also affect the system path, like Sega-CD fails to boot if the BIOS is in a folder with special characters.
Hey! Yes, still the exact same errors. Also I didn't mention it here but it also affect the system path, like Sega-CD fails to boot if the BIOS is in a folder with special characters.
thats interesting, since im doing the same thing on pcsx that is done here (pls confirm final pr in pcsx still works)
i see the issue now. can you check if this PR works now.
Seems to work fine with special BIOS path and for content as well (tested a .md and a .cue/.bin), excepted for chd which crashes RA completely: crash-210502-103014.log
ok, aside from my small change above, try to change this from dir: "pico/cd/include/libchdr/coretypes.h"
#define core_file FILE
#define core_fopen(file) fopen(file, "rb")
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WIN64__)
#define core_fseek _fseeki64
#define core_ftell _ftelli64
#elif defined(_LARGEFILE_SOURCE) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
#define core_fseek fseeko64
#define core_ftell ftello64
#else
#define core_fseek fseeko
#define core_ftell ftello
#endif
#define core_fread(fc, buff, len) fread(buff, 1, len, fc)
#define core_fclose fclose
to this:
#ifdef USE_LIBRETRO_VFS
#define core_file RFILE
#define core_fopen(file) rfopen(file, "rb")
#define core_fseek rfseek
#define core_ftell rftell
#define core_fread(fc, buff, len) rfread(buff, 1, len, fc)
#define core_fclose rfclose
#else
#define core_file FILE
#define core_fopen(file) fopen(file, "rb")
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WIN64__)
#define core_fseek _fseeki64
#define core_ftell _ftelli64
#elif defined(_LARGEFILE_SOURCE) && defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64
#define core_fseek fseeko64
#define core_ftell ftello64
#else
#define core_fseek fseeko
#define core_ftell ftello
#endif
#define core_fread(fc, buff, len) fread(buff, 1, len, fc)
#define core_fclose fclose
#endif
Yay that worked! Good job again! ❤️
edit: logs if needed: https://pastebin.com/vnPzt3kT
Ok, just a recap, in order for this fix to be "fixed" 2 things has to be done.
VFS is now used for all platforms and I asked rtissera to include a fix in libchdr, so this should now be fixed.
Hey!
I'm personally not using special characters in my folder names but I guess it can be a real issue for some people depending on their language. I noticed it here, while helping someone on Reddit: https://www.reddit.com/r/RetroArch/comments/hbk3cc/failed_to_load_content_fbneo/fv9oj4h/
When loading a rom, if path contains special characters the game won't load, log file will spit a
[libretro ERROR] Failed to detect ROM/CD image type.
error with MD/32X, or[libretro ERROR] Invalid CD image
with SCD.Not sure which characters are problematic tho, but ç, ã, é and è for sure.
Probably worth noting: the issue DOES NOT happen on my Linux Mint VM or my Android phone! Only on Windows 10.