Problems with BSNES implementation on RetroArch

I’ve noticed, when using RetroArch, that there are some problems with the BSNES cores. Specifically, Mario Kart freezes just after the “ding” and the loading image when first booting; the frames keep progressing, so it would seem the emulator still thinks the game is running normally. If I use the SNES9x cores, the game works properly, but I’d prefer to use the BSNES cores for obvious accuracy reasons.

Any ideas why this could be? I have confirmed this to happen on two separate computers, using both the 32-bit and 64-bit versions of RetroArch, as well as restoring to the default settings.

Edit: This is using the known good ROM of Super Mario Kart (USA) in proper SFC format.

It’s probably related to the special chip LLE. I’m not sure where the DSP-1 image goes for retroarch to see it, though. I tried putting it in the same directory as the ROM itself, as well as a directory named ‘system,’ but neither option worked. I also don’t know if it needs the same nomenclature (i.e., dsp1.rom vs dsp1.bin) as bsnes or not.

EDIT: looks like it may not be implemented at all yet. I’ll take it up with maister when he gets back from Japan.

I thought it might be due to something like that. I tried placing both formats of the chip files (bin/rom) in both the main directory and roms directory, but neither resolved it, so I’m guessing you’re right that it hasn’t yet been properly implemented.

That surprises me, though, because I thought RetroArch just made use of the other emulators core, and didn’t need to implement any functions itself. I must be off base on this, I guess.

I don’t mean to jump so quickly back on this horse, but I noticed that, while RetroArch and BSNES cores were updated (to 089, in the case of the latter), they are still not making use of the external special chipsets required from some SNES games, as detailed above.

I’m just wondering what the current status is on this, and if it’s being worked on at all. I’d love to use the BSNES cores with RetroArch and my frontend, but having to switch back and forth between them and SNES9X depending on the game is a bit of a pain.

Re: special chips, this would actually be a big problem to correct, it turns out. Maister would basically have to reverse engineer how bsnes looks for and loads them since byuu apparently changed some important aspects of that. Unless/until that snafu gets worked out, you’ll just have to swap cores for special chip games :confused:

I asked byuu if he could help on this, and he said that the code for doing so should be apparent in the open source without the need for any reverse engineering. I’m not much of this type of programmer, and I don’t mean to sound argumentative, I’d just love to see BSNES’s superior core utilized to its full extent in RetroArch’s superior front end. :slight_smile:

Maister fixed special chip loading in the libretro branch of bsnes. Relevant commits are shown here: http://gitorious.org/bsnes/bsnes/commits/libretro

A 64-bit Windows build of the latest revision is here: https://dl.dropbox.com/u/35695760/libretro-bsnes-accuracy-lex-x86_64.dll

Use the “*.rom” snes enhancement chip ROMs. Put them in the same directory as your game ROMs.

That’s great :smiley:

Thanks Maister!

EDITEDIT: The libs I posted before were based on an out-of-date bsnes source snapshot. The libretros in this bundle will work with the latest special chip images: http://www.mediafire.com/?jpkpf4rfs18g1ge

You guys rock! Thank you so much for doing this! :slight_smile:

“In my experience, libretro-bsnes only works with the older special chip dumps…”

This is correct, at least for me, as well. The “ROM” extension files will not work, but the “BIN” extension ones do just fine.

Update: Forget that previous edit, I had the incorrect BIN file. Everything seems to work properly now. :slight_smile:

Can someone please explain what I need to to with the “libretro-8-25-2012” zip file?

I’m completely lost. I’m assuming that it fixes BSNES problems running Super Mario Kart?

hi OortCloud33, First, you need to unzip that archive, which is a big bundle of libretro libraries. Then, look in the resulting folder for the bsnes-derived libretro library that you want to use (I recommend ‘compatibility’ for most users). That library should be able to load the *.rom firmware image required for Mario Kart.

Thanks so much for your response hunterk.

Where or which folder do I need to move the ‘compatibility’ libretro to? Also there appears to be two ‘compatibility’ libretro, does it matter which one I use?

Thanks again.

Edit: I’m not sure I have the .rom firmware. Any idea how I can get it?

ah, right. There are 2 but you only need the one that matches your RetroArch build. If you’re using the 64-bit build, go with the amd64 version. If 32-bit, go for the i686 version.

As for the firmware images, you can get them from here: http://caitsith2.com/snes/dsp/

I believe Mario Kart uses dsp1.rom. You’ll need to put that file into whatever directory you have RetroArch configured to use as your ‘system’ directory.

I’ve sorted it now. Thanks so much for your help hunterk!!

Mario kart Rules!

Great! I’m glad to hear you got it going :slight_smile: