Some games load, some don't (NES/FCEUmm Core)
-
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?
-
Well I gave up on trying to make this work. In the end, the only thing I could do was install the latest image (4.1) upgrade to 4.1.3 using the setup script, and reinstall roms, re-scrape data, re-config raspi system settings, re-add controllers...basically completely start over.
I've got things working now, but it was a ton of work and I'll have to think long and hard about ever upgrading RetroPie again.
-
Ok, after getting everything set up all over again, the problem has returned. I'm pulling my hair out in frustration and I'm more determined than ever to find the cause.
This affects several roms on my system, and the problem only shows up when the roms are zipped.
The verbose logs continue to show the runcommand "line 925/aborted" error.
If I launch into the emulator with a working zipped rom, I'm then able to load a non-working zipped rom inside of the libretro GUI, and it works there! It's only when attempting to launch from emulationstation that I have problems.
Could this libretro bug be to blame? https://github.com/libretro/RetroArch/issues/3783
How can I check if "cache_directory" is set to a valid dir? -
check your
configs/all/retroarch.cfg
- note that runcommand creates the/tmp/retroarch
directory when it launches and removes it afterwards. -
Thanks for that. The cache directory is definitely set in the cfg. I even tried changing it temporarily to a persistent dir, and no change.
So next I tried manually entering the same command that runcommand is running on the command line, based on the error log:
/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/Ice Climber (USA, Europe).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
This is the output:
http://pastebin.com/C36xN96WCompare that with the output of a zipped rom that does work properly:
/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/Tetris (USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg
The error I'm seeing is "*** Error in `/opt/retropie/emulators/retroarch/bin/retroarch': free(): invalid pointer: 0x01ff8979 ***"
Is this definitive proof that it's a Retroarch bug? If so, I can file a report with them.
-
When you compare the two.. the one that works continues right after checking for
Environ GET_VARIABLE fceumm_overclocking:
. The next step that is failing on the one that doesn't work isEnviron GET_VARIABLE fceumm_overscan:
. So maybe it's an overscan setting? -
Good eyes, thank you.
Ok, I just enabled overscan in /boot/config.txt and rebooted.
Didn't do much. Same error, slightly different pointer address:
*** Error in `/opt/retropie/emulators/retroarch/bin/retroarch': free(): invalid pointer: 0x01cb89e9 ***I'm not sure if this is a retroarch bug or a fceumm core bug.
-
At least the
invalid pointer
error is now pointing to a different address..0x01cb89e9
vs
0x01ff8979
The 2nd to last digit changed :)
-
I submitted this as a Retroarch bug. Hopefully I don't get laughed out of their bug tracker for not knowing what I'm doing.
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.