libretro / cannonball

Cannonball: An Enhanced OutRun Engine
http://reassembler.blogspot.com
7 stars 17 forks source link

Optional gfx patches not loaded from rom path #8

Open metchebe opened 5 years ago

metchebe commented 5 years ago

Cannonball can optionally use two binary files for fixing some graphics in widescreen mode. Conveniently, these files can be downloaded with the Retroarch content downloader which downloads these files and other instructions. These files are packaged in a directory called res/ which is a subdirectory in the directory where the Outrun roms should be placed.

The issue is that the core does not load the files in res/, unless the current working directory where Retroarch is run from is the same directory where res/ is.

The core should search for res/* in the same directory where it is loading roms from.

Noticed on Retroarch Linux from Testing PPA on Kubuntu 18.04.

metchebe commented 5 years ago

As a followup, here are some images with what the use of these patches improves. It's not a critical issue but it does make for a more complete experience.

Without graphics patch: epr-10187-190326-230115

With graphics patch: epr-10187-190326-230147

vaguerant commented 4 years ago

I just encountered the same issue on the Wii and Wii U versions. In those cases, the res directory needs to be on the SD card's root directory to be picked up by the core.

EDIT: I'd imagine this is where the fix is needed: https://github.com/libretro/cannonball/blob/5dcef189dc5c408bbd9e4bc08b1f9801b04cd3ca/src/main/engine/omusic.cpp#L34

crystalct commented 3 years ago

It depends on if your system works with relative path. On PS3. for example, absolutly no. I proposed a PR to fix some problems on PS3 and also res folder load

    // --------------------------------------------------------------------------------------------
    // Read LayOut Data File
    // --------------------------------------------------------------------------------------------
#ifdef __CELLOS_LV2__
    extern char rom_path[1024];
    std::string path;
    path = std::string(rom_path);
    path += std::string(filename);
    filename = path.c_str();
#endif
Tenome commented 3 years ago

Same issue, I'm not sure if this core is being really updated anymore so I'm just sticking to the desktop version. Here's a compiled release you can grab if you can't compile it yourself.

https://retroreloader.itch.io/outrun86coast

I think it's based on this fork, which is more often updated with features. https://github.com/J1mbo/cannonball

Kelvfimer commented 3 years ago

Hello any update on this one? I hope somebody will fix this.