Some games load, some don't (NES/FCEUmm Core)
-
So I've been troubleshooting an issue I'm having, and I'm coming up short. I recently got a Raphnet NES-USB adapter so I could use original NES controllers. I've also been working with RetroAchievements to get better compatibility in RetroArch. The current state is that FCEUmm doesn't quite work right. This is a minor problem, in that RetroPie sets up FCEUmm as the default core, and actually requires you to manually go through and install an alternative. But this isn't my issue. That's just a bit of history.
When I try to load up some games, the "runcommand" box appears, then the screen goes black for a few moments. This is typical normal behavior. What's NOT normal, is the game doesn't load, instead taking me back to the list of games. I've had this happen on Super Mario Brothers (World) and Spy vs Spy (USA). There have been others, but these 2 are the most recent I've seen it with. It DOESN'T do that with Super Mario Brother 3 or 1943... At first, I thought maybe this was a problem with my ROM, like maybe it's gotten corrupted or something. But then I tried it in an alternative core (QuickNES) and the game loads up perfectly fine. So I'm wondering, is the problem with FCEUmm, or with RetroPie? Here is a copy of my verbose log when I try to launch the game in FCEUmm:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/Spy vs Spy (USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg RetroArch [INFO] :: Redirecting save file to "/home/pi/RetroPie/roms/nes/Spy vs Spy (USA).srm". RetroArch [INFO] :: === Build ======================================= Capabilities: NEON VFPv3 VFPv4 Built: Nov 9 2016 RetroArch [INFO] :: Version: 1.3.6 RetroArch [INFO] :: Git: 18da1fc RetroArch [INFO] :: ================================================= RetroArch [INFO] :: Config: loading config from: /opt/retropie/configs/nes/retroarch.cfg. RetroArch [INFO] :: Config: appending config "/dev/shm/retroarch.cfg" RetroArch [ERROR] :: Couldn't find any audio driver named "alsathread" RetroArch [INFO] :: Available audio drivers are: RetroArch [INFO] :: sdl2 RetroArch [INFO] :: null RetroArch [WARN] :: Going to default to first audio driver... RetroArch [INFO] :: Resetting undo buffers. RetroArch [INFO] :: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so" RetroArch [INFO] :: [overrides] no core-specific overrides found at /home/pi/.config/retroarch/config/FCEUmm/FCEUmm.cfg. RetroArch [INFO] :: [overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/FCEUmm/Spy vs Spy (USA).cfg. RetroArch [INFO] :: Shaders: preset directory: /opt/retropie/emulators/retroarch/shader/presets RetroArch [INFO] :: Shaders: no game-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/FCEUmm/Spy vs Spy (USA).cgp. RetroArch [INFO] :: Shaders: no game-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/FCEUmm/Spy vs Spy (USA).glslp. RetroArch [INFO] :: Shaders: no core-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/FCEUmm/FCEUmm.cgp. RetroArch [INFO] :: Shaders: no core-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/FCEUmm/FCEUmm.glslp. RetroArch [INFO] :: Environ SET_VARIABLES. RetroArch [INFO] :: Remaps: remap directory: /opt/retropie/configs/nes/ RetroArch [INFO] :: Remaps: no game-specific remap found at /opt/retropie/configs/nes/FCEUmm/Spy vs Spy (USA).rmp. RetroArch [INFO] :: Remaps: no core-specific remap found at /opt/retropie/configs/nes/FCEUmm/FCEUmm.rmp. RetroArch [INFO] :: Redirecting save file to "/home/pi/RetroPie/roms/nes/Spy vs Spy (USA).srm". RetroArch [INFO] :: Environ GET_LOG_INTERFACE. RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565. RetroArch [libretro INFO] :: Frontend supports RGB565 - will use that instead of XRGB1555. RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 5. RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own. RetroArch [INFO] :: Environ SET_INPUT_DESCRIPTORS: RetroArch [INFO] :: RetroPad, User 1, Button "B (bottom)" => "B" RetroArch [INFO] :: RetroPad, User 1, Button "Y (left)" => "Turbo B" RetroArch [INFO] :: RetroPad, User 1, Button "Select" => "Select" RetroArch [INFO] :: RetroPad, User 1, Button "Start" => "Start" RetroArch [INFO] :: RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up" RetroArch [INFO] :: RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down" RetroArch [INFO] :: RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left" RetroArch [INFO] :: RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right" RetroArch [INFO] :: RetroPad, User 1, Button "A (right)" => "A" RetroArch [INFO] :: RetroPad, User 1, Button "X (up)" => "Turbo A" RetroArch [INFO] :: RetroPad, User 1, Button "L" => "(FDS) Disk Side Change" RetroArch [INFO] :: RetroPad, User 1, Button "R" => "(FDS) Insert/Eject Disk" RetroArch [INFO] :: RetroPad, User 1, Button "R2" => "(VSSystem) Insert Coin" RetroArch [INFO] :: RetroPad, User 2, Button "B (bottom)" => "B" RetroArch [INFO] :: RetroPad, User 2, Button "Y (left)" => "Turbo B" RetroArch [INFO] :: RetroPad, User 2, Button "Select" => "Select" RetroArch [INFO] :: RetroPad, User 2, Button "Start" => "Start" RetroArch [INFO] :: RetroPad, User 2, Button "D-Pad Up" => "D-Pad Up" RetroArch [INFO] :: RetroPad, User 2, Button "D-Pad Down" => "D-Pad Down" RetroArch [INFO] :: RetroPad, User 2, Button "D-Pad Left" => "D-Pad Left" RetroArch [INFO] :: RetroPad, User 2, Button "D-Pad Right" => "D-Pad Right" RetroArch [INFO] :: RetroPad, User 2, Button "A (right)" => "A" RetroArch [INFO] :: RetroPad, User 2, Button "X (up)" => "Turbo A" RetroArch [INFO] :: RetroPad, User 3, Button "B (bottom)" => "B" RetroArch [INFO] :: RetroPad, User 3, Button "Y (left)" => "Turbo B" RetroArch [INFO] :: RetroPad, User 3, Button "Select" => "Select" RetroArch [INFO] :: RetroPad, User 3, Button "Start" => "Start" RetroArch [INFO] :: RetroPad, User 3, Button "D-Pad Up" => "D-Pad Up" RetroArch [INFO] :: RetroPad, User 3, Button "D-Pad Down" => "D-Pad Down" RetroArch [INFO] :: RetroPad, User 3, Button "D-Pad Left" => "D-Pad Left" RetroArch [INFO] :: RetroPad, User 3, Button "D-Pad Right" => "D-Pad Right" RetroArch [INFO] :: RetroPad, User 3, Button "A (right)" => "A" RetroArch [INFO] :: RetroPad, User 3, Button "X (up)" => "Turbo A" RetroArch [INFO] :: RetroPad, User 4, Button "B (bottom)" => "B" RetroArch [INFO] :: RetroPad, User 4, Button "Y (left)" => "Turbo B" RetroArch [INFO] :: RetroPad, User 4, Button "Select" => "Select" RetroArch [INFO] :: RetroPad, User 4, Button "Start" => "Start" RetroArch [INFO] :: RetroPad, User 4, Button "D-Pad Up" => "D-Pad Up" RetroArch [INFO] :: RetroPad, User 4, Button "D-Pad Down" => "D-Pad Down" RetroArch [INFO] :: RetroPad, User 4, Button "D-Pad Left" => "D-Pad Left" RetroArch [INFO] :: RetroPad, User 4, Button "D-Pad Right" => "D-Pad Right" RetroArch [INFO] :: RetroPad, User 4, Button "A (right)" => "A" RetroArch [INFO] :: RetroPad, User 4, Button "X (up)" => "Turbo A" RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "/home/pi/RetroPie/BIOS". RetroArch [libretro INFO] :: Loading /tmp/retroarch/Spy vs Spy (USA).nes... RetroArch [libretro INFO] :: PRG ROM: 2 x 16KiB RetroArch [libretro INFO] :: CHR ROM: 1 x 8KiB RetroArch [libretro INFO] :: ROM CRC32: 0xc4a02712 RetroArch [libretro INFO] :: ROM MD5: 0x5fe496319e7ed35875df71152f9c2593 RetroArch [libretro INFO] :: Mapper #: 0 RetroArch [libretro INFO] :: Mapper name: NROM RetroArch [libretro INFO] :: Mirroring: Vertical RetroArch [libretro INFO] :: Battery-backed: No RetroArch [libretro INFO] :: Trained: No RetroArch [libretro INFO] :: RetroArch [INFO] :: Environ GET_VARIABLE fceumm_palette: RetroArch [INFO] :: asqrealc RetroArch [INFO] :: Environ GET_VARIABLE fceumm_nospritelimit: RetroArch [INFO] :: disabled RetroArch [INFO] :: Environ GET_VARIABLE fceumm_overclocking: RetroArch [INFO] :: disabled /opt/retropie/supplementary/runcommand/runcommand.sh: line 925: 4896 Aborted /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-fceumm/fceumm_libretro.so --config /opt/retropie/configs/nes/retroarch.cfg "/home/pi/RetroPie/roms/nes/Spy vs Spy (USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
The first thing to note, is that it's reading "Aborted". As if I had some how told the core to stop loading. I did not. I pressed the button to start the game from EmulationStation, then waited for the game to load without pressing anything else. The next thing I see that has my mind thinking is the keypad assignments. It's listing keys such as L and R and R2 that my NES controller doesn't have. My Xbox 360 controller does. When I first set out building my system, the Xbox controller was the one I had first used. However, right now it's not even connected to the Pi. Only my NES controller is. So I'm thinking RetroPie has some how sent an incorrect controller config to RetroArch, and this is causing the core to "crash" when it doesn't detect these other buttons. Am I on the right path here, or am I just completely lost? It seems to me, that RetroArch is just loading up a preset controller mapping rather than load up a new one based on the connected controller. I have completely shut down my Pi (disconnecting the power) and restarted it with only the NES controller connected, and this is the result.
Any suggestions for something I can try?
-
@hansolo77 said in Some games load, some don't (NES/FCEUmm Core):
The next thing I see that has my mind thinking is the keypad assignments. It's listing keys such as L and R and R2 that my NES controller doesn't have. My Xbox 360 controller does. When I first set out building my system, the Xbox controller was the one I had first used. However, right now it's not even connected to the Pi. Only my NES controller is. So I'm thinking RetroPie has some how sent an incorrect controller config to RetroArch, and this is causing the core to "crash" when it doesn't detect these other buttons. Am I on the right path here, or am I just completely lost?
it's not that. input_descriptors are not related to the current controller but the abstracted retropad.
my only guess is that it's something to do with the rom itself. perhaps it doesn't have headers? see https://github.com/retropie/retropie-setup/wiki/nintendo-entertainment-system#roms
-
@hansolo77 - Can you test the same "Spy vs Spy (USA).zip" file on your computer withe FCEUmm?
-
Yes, I suppose I can.. It will take me a while, I just got home from work. :) Need to finish checking the rest of my email.
-
@hansolo77 Spy vs spy and smb1 work fine for me. They are from the no-intro romset if it matters. Uninstall fceumm, reinstall, and see if that fixes anything.
-
Yeah I'm using a fresh No-Intro romset as well [2016-09-06]. It's possible my process of adding the ROMs to my storage drive did something to them. I ran them through clrmamepro with a Parent-Clone dat to make a clean set of 1-Game/1-Rom. Since some NES games require headers to play, running it through clrmamepro might have killed their headers.
@Darksavior can you confirm your hashes for those 2 games? Mine are:
Super Mario Brothers (World).zip
CRC32 - 54AB90D6
MD5 - E1969132CD9B11EAB2799F71FFD85B2D
SHA-1 - 675279585F004781277A49ED66E9F29271588F86Spy vs Spy (USA).zip
CRC32 - 19A4894C
MD5 - 84F3EEF059083A3FB548648A536BEB8B
SHA-1 - CB207E661FF4785FED6BC6F343541AD02F3E9387I use this tool (right click a file, go to properties, and it gives you the hashes on a new tab called "File Hashes") to generate hashes easily. It's free!
-
@hansolo77
Nothing matches. You...ran nes roms in clrmamepro? I've never, in the near 20yrs of playing roms, ever needed console roms to be fixed. The no-intro set is fine as is. -
These weren't fixed... I just didn't want to have multiple copies of the same game. So I used clrmamepro to filter out and rebuild a new set (move files from one folder to the other) that didn't need duplicated. I just remember that when I did that, it reported an error before I could do it, saying that I needed a header file to make it work, and the comment by @dankcushions said about headers made me think of it. I'm too tired to mess with this tonight, so I'll follow up tomorrow. All I know is, it works fine in QuickNES, and used to work in FCEUmm before we started figuring out what wasn't working with RetroAchievements.
Thanks for checking the hashes though. Maybe something did change, unless you're not using the same romset [2016-09-06].
-
I'm having this exact problem with a different rom. My error occurs in the same spot: Line 925 of runcommand.sh.
This exact rom worked fine with 4.0.1. I just happened to try now that my system is at 4.1.1 and it's a no go.
In both cases, the version of lr-fceumm I'm using is the same: 1.3.6.
Here's more info from my side:
Pi Model: Pi 3 Model B
RetroPie Version Used: 4.1.1
Built From: Pre made SD image on RetroPie website at 4.0.1, then eventually upgraded using setup script to 4.1.1
USB Devices connected: none
Controller used: 8Bitdo NES 30 Pro
Error messages received: (see log)
Log found in /dev/shm/runcommand.log (if relevant): http://pastebin.com/JghBCrAx
Guide used: none
File: /home/pi/RetroPie/roms/nes/10-Yard Fight (USA, Europe).zip
Emulator: lr-fceumm 1.3.6
Attachment of config files: not sure which configs you need, but happy to provide them -
Well here's something interesting. When I unzip the rom it works fine. It's only when it's zipped that I get the "aborted / line 925" error.
@hansolo77 Try unzipping the rom and see if it works for you.
-
Interesting find. I will definitely give that a try if I continue to have problems. I'm actually trying to figure out what's wrong with my controller setup right now, so this nagging bit of issue has been sort of "put on the back burner" so to speak.
-
Well... I donĀ“t know if spy vs spy is a famicom rom, but I suggest to you to get that disksys.rom BIOS too in addition to unzip the files
-
Tried compiling lr-fceumm from source, ended up with the same version (1.3.6) and it unsurprisingly still did not work.
Does anyone have any ideas of why we might be seeing this behavior?
Based on our logs posted here it looks like runcommand is the culprit, but I'm not 100% sure.
-
@bmn001 I doubt it is the fault of runcommand. If you unzip
/home/pi/RetroPie/roms/nes/10-Yard Fight (USA, Europe).zip
and from a commandline typefile /home/pi/RetroPie/roms/nes/unpacked file name
what do you get ?The no-intro nes rom set doesn't have headers does it ? Headerless nes roms will not work.
-
I just thought I'd post an update. I didn't do anything, but now SMB1 works. I mean, I started from scratch with a brand new SD image of RetroPie, updated the kernel (for my raphnet adapter), updated from source RetroArch and lr-fceumm. I'm still troubleshooting my controller issue, but just for a test I went ahead and tried to load SMB1, and it loaded up fine. The ROM is still zipped, and I'm using a No-Intro set. I also have the ROMs stored on a permanently attached hard drive. Those files have not changed in the switchover to a new install. So I think what caused the original issue must have been something we ALL had done at one point. I wonder if this was a problem with maybe RetroArch, that was fixed since the last time it was updated? I have the latest source installed from yesterday (although they update the GIT all the time, with multiple pushes throughout the day). So maybe something is fixed? If not RetroArch, maybe the updated source to FCEUmm had a fix? All I know is that I didn't do anything to the ROM drive or the files, they're all still zipped and it worked.
-
@BuZz Well keep in mind this same zipped rom worked with 4.0.1 with the same version of lr-fceumm.
I've unzipped the ROM, and the file command gives me this:
10-Yard Fight (USA, Europe).nes: iNES ROM dump, 2x16k PRG, 1x8k CHR, [Horiz.]
-
@bmn001 that should work at least. Maybe try updated retroarch and lr-fceumm (from binary first - i use the last retroarch/lr-fceumm binaries on my system and I have not noticed any issues with nes).
-
Just tried updating both of those. First from binary, then from source. Same behavior in every scenario.
To rule out SD corruption or other file systemweirdness I'm in the process of downloading the latest SD image and will give that a go. -
Well it's definitely not SD corruption.
I downloaded 4.1 and put it on the SD. Rom worked. Updated w/setup script to 4.1.3, and...the rom still worked!
So then I tried putting backup image of 4.0.1 that I'd saved from a few months ago on the SD. The rom worked. I then updated w/setup script to 4.1.3. Rom did NOT work.
So somewhere in the update process from 4.0.1 to 4.1.3 , something breaks. I have no idea what or how to track it down, but if worse comes to worse I guess I could always just start over from scratch with 4.1.
-
Good find. I don't know what version I'm using. But as I said, using the latest SD image on the site, and updating RetroArch and the Core from source seemed to keep my system running those "bad" roms. Maybe it IS something to do with the 4.1.3 update. Was there something else going on that might have broke, like RunCommand, or EmulationStation?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.