Transfer ROM's with USB - Issue with files being stored as ".XML"
I am having the same issue and it it affecting every ROM type that I've tried. (Atari2600, NES, SNES, GB, GBC, GBA, Sega, etc.)
It seems that all files, regardless of the extension, get appended with .XML. I confirmed this my transfering ZIP files as well. All ROM file extensions were confirmed to have the correct extension in Windows 10.
Running Retropie 4.2 for Pi0, followed basic install steps - Write image to SD, boot Pi0 to auto-expand, create retropie folder on USB stick and connect to pi0 to populate rom folders, Remove from pi0 and reconnect to PC, extract and transfer ROM files, eject from PC and reconnect to Pi0 and wait for transfer.
Confirmed file transfer in File Manager, but all files have .XML appended. So far, I've spent hours searching and haven't found any other post referencing this scenario.
FWIW, I did use F6 to rename a couple files to remove the XML file extension, leaving the .nes or .sfc, or .smc (depending on the rom). This action allowed to the rom to appear in Emulation Station, but it would not play using any of the installed emulators. Just shows a black screen, then back to game menu. It's weird.
I have limited options right now since it's a Pi0 and I don't have a USB hub for it yet. So I can't connect the keyboard and the USB stick to transfer manually. I also can't do WiFi and Keyboard to transfer over wireless until I get the hub. I wasn't expecting to encounter this strange issue, otherwise I would ahve gotten the Pi0 W.
Nobody has answered my question yet, but I'm starting to suspect that the files you are getting are effectively, for whatever reason, xml files.
The fact that they don't run in the NES or GB emulators, for instance, after renaming (emulators who are traditionally not particularly picky about ROMs) seems to suggest the same.
Can you confirm that, on your desktop, the files are NOT .xml via the terminal? Windows and MacOS File Explorers will sometimes hide known extensions.
And/or, alternatively, what's the actual content of those files if you open them in text editor, or namely on the Pi, if you open the terminal and type
@pjft I edited a sample file on the Pi and is definitely not XML. Also, the file properties in Windows Explorer state NES file or SFC file (or whatever file extension it should be.) I also can open the file in an emulator on my Win10 PC.
Can you check what's the content of the XML file that gets to the pi, then?
And what's the size? Is it the same as the ones on the PC?
Rohan82 last edited by Rohan82
@pjft After I re-read your post, I realized you specifically asked for confirmation via terminal. So I did that here, showing the contents of the USB drive used to transfer roms to the Pi. Also, Thanks for the response (where are my manners...)
One thing I'm beginning to wonder is if there is a difference between ROMs designed for PC emulators and ROMs designed for Pi emulators. I haven't used ROMs in years but even then it was always on WinXP. I've done a lot of reading lately (I over-research everything) on the Pi running Retropie and with the latest image, it seemed almost idiot-proof and makes a cool project. Perhaps that not always the case an I found some weird exception.
Either way, I like a challenge so this is fine too.
I don't have the Pi in front of me, but I can open an SFC file with a text editor and confirm that what I see on my laptop is the same as what I saw last night on the Pi. This is from "Super Mario World.sfc"
Not at all, thanks for looking into it. I'm just intrigued.
You have pretty much confirmed that things are fine on the PC - no need to spend more time with that particular aspect. :)
I'm keen now on understanding what exactly is getting to the pi.
Let me know if you're not comfortable with the Pi terminal and I'll give you some more commands, but
ls -lis equivalent to
cat <filename>will show the content of the file.
Was that the content you saw on the Pi when you opened one of the xml-extension files there?
@pjft Yes, that's correct. This is the same content that I saw on the Pi. I found it by selecting F5 (i think) to edit the file in File Manager. I was trying to edit the filename to remove the extension. After opening the file in edit mode, I realized that F6 was move/rename, so I tabbed over so that bith sides of File Manager were in the same SNES directory and used F6 to rename the file without the XML extension.
So just by chance, I was able to see the contents of the SFC file on the Pi.
@Rohan82 I am utterly puzzled then.
What does the runcommand log show when you try to run one such rom? It should be in
/dev/shm/runcommand.log, if memory serves me right.
I meant check that last night but I got caught up investigating elsewhere and ended up going to be a little after midnight. I have a conference call in 30 minutes, but I will boot it up and check the log after that.
It's pretty strange to rename files during copy. I'm curious what is triggering it to do that. Like, what condition(s) need to be met in order to add the XML file extension.
@Rohan82 Yeah, apologies - I missed one of your questions.
No, the ROMs are exactly the same regardless of the OS, so my suspicion is that something must be off.
I'd recommend, worst case scenario, getting a MD5 hash of the file on the PC and on the Pi to compare them.
I'll have to google that. I write powershell, but I'm not a developer. And i'm definitely pretty light on unix-based systems since I worked for a MSFT consulting firm for the last 10 years.
It makes sense to compare the files on each system to see why one works and the other doesn't.
Sano last edited by
Ok, I read this and see no reason as well to rename files with xml suffix. Nothing in the scripts would have this behaviour.
First of all, in a vast majority of cases, you don't have to unzip roms to get nes/sfc/whatever files. The emulators are able to deal with a compressed file.
Second, could we have a screenshot of the detailed content (just a few lines) :
- of your rom directory on your computer
- of the USB thumstick after you copy the roms from Windows, but befor you plug it in the RPi
- of the raspberry pi rom directory after you plug the USB drive
Please confirm as well you copy the roms in the good directory of the thumbdrive : sfc in roms/snes, nes in roms/nes, ...
@Sano thanks for the response. I wasn't sure if I needed to unzip, and many tutorials included unzipping non-mame roms. As a test, I also transferred the zipped versions of the nes roms and got the same result. Appended xml file extension.
The screen shots in my previous posts might show you what you're looking for. The one from Windows Explorer that shows the file properties was taken from my rom source, which is a UNC path to my download server. The screen shot of the command window shows the contents and folder path of the USB drive used to transfer files to the Pi.
I'm not sure how to grab a screen shot on the Pi so I used my camera to take a pic of the tv screen after opening File Manager and browsing to the nes directory. You can see where I renamed one file to remove the xml extension, just to get it to show in emulation station. I tried to run that rom to generate a log file, but there was nothing much to see in the log.
Edit: I tried to add the photo of the rom directory on the Pi but I'll have to resize it first. I'll add it in a sec.
It's hard to read from the photo resizing, but the log file only has one line:
Execution: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-nestopia_libretro.so --config /opt/retropie/configs/config /dev/shm/retroarch.cfg
It's worth noting that I tried all three installed emulators with the same results.
Sano last edited by
Ok, can't explain this at all. Strange as f**k.
A nice test would be to compare original roms and renamed ones (byte size, md5, diff, ...) to see if the files are modified or just renamed.
Another approach would be to manually copy roms by other means, such as samba, winscp, or just a cp from the USB thumbdrive.
Well, I'm glad, at least, that it seems strange to others. It definitely doesn't make sense to me. I may not be an expert with the Pi or the distro, but I can't think of a reasonable explanation for a file copy action to add the file extension.
My next plan is to find my USB hub to give me a couple extra ports so I can manually copy from the USB stick and go from there. In the mean time, I'll some file comparisons to see if there's any differences and post the results.
Here is a file size comparison for Battletoads.nes on the USB stick, vs Battletoads.nes.xml on the Pi (just above the highlighted file.)
It's blurry, but you can see the USB file size is 262,160 bytes while the Pi file size is 263,696. That would seem to indicate something is happening during the automated file copy. I really need to try a different copy method for comparison to see if I get different results.
I will put a fresh RetroPie image on the card (using the same one I downloaded, for consistancy) before I try a new file copy method.
I'll have my USB hub sometime tomorrow, so I'll post the results of manually copying files via wifi or USB later in the day.