Graphical errors with BSNES in retroarch

I’m new at using retroarch, so this may be a case of changing a simple setting (not much has been changed from the defaults), but I’ve played around with it a while on my own and not had any luck. I tried multiple aspect ratios, and it didn’t help.

I loaded up Alien vs Predator just to test some games out, and about 10 seconds into the first level the screen gets distorted/stretched out. I tried BSNES mercury core (accuracy), and I also tried regular BSNES (accuracy). They both had the glitch. I then tried SNES9x, which seemed to work fine. I then also tried a standalone version of BSNES, and it also worked fine.



It just seems odd to me that this is supposed to be one of the most compatible emulators out there, and I run into problems while still playing around with the 'A’s in my romset. But again it doesn’t seem to be an issue with a standalone version of BSNES.

Can anyone replicate this, or give me an idea of what I need to do to fix it? Not too enthusiastic about testing more games at the moment…

I played for a couple of minutes using BSNES_Mercury_Balanced without experiencing the issue.

Maybe it is a bad ROM? Make sure you use a rom with the [!] at the end of it’s file name.

Edit: nevermind, you said it’s fine with SNES9X. Have you tried updating the cores? Maybe it’s a bug in the accuracy versions? Try the balanced one. No reason to use the Accuracy version except for one game (Air Strike Patrol)

no-intro roms does not have those [!].

It’s working fine here too, tested with snes9x and bsnes-mercury balanced.

Edit: well, I tested on Linux.

I tried it with the ‘balanced’ version, and it seems to be working great! That’s funny that I found bugs in the ‘Accuracy’ version within 5 minutes of testing.

Oh well… hopefully balanced is near perfect, and I guess I’ll just use the ‘Accuracy’ version for that one game.

Now, the only question is… how do I change the settings for Alien vs. Predator, so that it doesn’t default to using the ‘accuracy’ core every single time?

No problem here with accuracy core in Linux. I can test in Windows tomorrow. (this game is awful, btw…)

I just tested the Bsnes_Accuracy core on Windows 7, latest nightly and core, GTX960.

I get a similar glitch but it also flickers at the same time. I think it happens when more than 3 sprites are on screen. If i only fight one alien or i’m alone, it looks good. When there are 2 aliens it stretches and flickers.

I wonder what’s wrong with the accuracy cores?

Tried toggling overscan and still couldn’t get it to happen, so it looks like it maybe Windows-specific, which means it could be a frontend issue rather than a core issue.

[QUOTE=GemaH;45579]I just tested the Bsnes_Accuracy core on Windows 7, latest nightly and core, GTX960.

I get a similar glitch but it also flickers at the same time. I think it happens when more than 3 sprites are on screen. If i only fight one alien or i’m alone, it looks good. When there are 2 aliens it stretches and flickers.

I wonder what’s wrong with the accuracy cores?[/QUOTE]

Same thing for me on Win10.

Every time you load a game from a playlist RetroArch records which core you used to the playlist (.lpl) file. To remove this association either regenerate the playlist or manually text-edit the playlist file to reset the offending line back to default.

If this “core memory” feature is an annoyance just set your playlists to read-only so RetroArch can’t add that information.

Indeed, it is. :slight_smile: One of the worst games I’ve ever played on SNES in fact.

Believe me when I say I don’t actually want to play that game. I was just testing games in general, and it was troubling to not even make it through the 'A’s without issue.

[QUOTE=Alexandra;45588]Every time you load a game from a playlist RetroArch records which core you used to the playlist (.lpl) file. To remove this association either regenerate the playlist or manually text-edit the playlist file to reset the offending line back to default.

If this “core memory” feature is an annoyance just set your playlists to read-only so RetroArch can’t add that information.[/QUOTE]

Thanks for the help. The thing is I wasn’t actually using the playlist. I had RetroArch scan a directory, and it gave me a nice long list of all my SNES ROMs underneath an SNES controller. Any time I’d load a game from that list one time, loading it again would mean it would default to the same core used the first time.

The more intuitive way for it to work, in my opinion, is that if you click on a file in a list like that, it should pop up with “No core loaded!” Then you pre-load a core, and from then on whatever core you have loaded determines what runs the game.

Why go digging for the ROM to play it with a different core, when RetroArch has already found it? Manually editing an lpl file to have a game default to the core you want just isn’t as intuitive as loading the core you want, then selecting a game.

It’s not a deal breaker and of course I am still grateful that RetroArch even exists, but simplicity is king.

Ok, looks like it doesn’t happen on an old build of the core but does on the latest. I guess we’ll need to bisect and see when it broke :confused:

A quick test suggests it’s the lagfix that causes this. Bummer. I don’t think I’ll have the time to look into the cause right now. If someone else feels motivated to look into it (and maybe knows what Aliens vs Predator does that other games don’t), please do. I wish I could take a look right now, but I simply can’t find the time.

Okay, so I changed my plans for tonight and I believe I’ve found and fixed the issue. I have made builds both with and without the lag fix and verified that both work in Alien vs Predator and that the lag fixed version removes one frame of input lag as expected. As a sanity check, I also ran both builds against Yoshi’s Island and could confirm that there aren’t any regressions with this slightly modified code (in that game, at least).

Tomorrow I will post an issue on GitHub and a pull request for the modified code. I will link to both from this thread, so anyone that’s interested can have a look at the root cause and the proposed fix.

Cool :slight_smile:

Thanks for your attention on the bugfixes!

[QUOTE=hunterk;45676]Cool :slight_smile:

Thanks for your attention on the bugfixes![/QUOTE] Thanks! I try to at least fix the issues I introduce myself. :smiley:

Okay, so the pull request is up, with a description of the root cause: https://github.com/libretro/bsnes-libretro/pull/19

Thoughts and suggestions appreciated. I’ve tested Alien vs Predator with lagfix on/off and with all variants (performance/balanced/accuracy). No issues so far. I would like to test more games, though.

Typhon (and other interested parties):

Here’s a download link to the fixed bsnes cores: https://mega.nz/#!DwlEmBIA!P4HO8aHQ6t15wL-II8EvwiP8rSbszqPjnbRE3NFZfes

I’ve included all three profiles and versions with and without the lagfix. If you’re up for it, please test with the versions marked “lagfix_on” and only test with the “lagfix_off” versions if you find any issues. I’d appreciate the help in testing more games. So far, I’ve successfully run quick tests on the following games on all three profiles:

Alien vs Predator Chrono Trigger Donkey Kong Country Dragon Quest V F-Zero Megaman X Rock’n’Roll Racing RPM Racing Star Fox Super Castlevania Super Mario World Super Mario World 2: Yoshi’s Island

All the games I tested with the accuracy core were fine.

7th Saga ActRaiser Breath of Fire II Final Fantasy VI Fushigi No Dungeon 2 Killer Instinct Mega Man X3 Seiken Densetsu 3 Star Ocean

The fix is in the latest nightly.

Awesome! Thanks for helping out with the testing. :slight_smile:

And thanks to Typhon for making us aware of this issue.