Forum Replies Created
-
AuthorPosts
-
03/04/2014 at 04:38 in reply to: Script to generate Emulation Station xml for MAME (entirely offline!) #5404cacophony555Participant
FYI, I’ve updated this script to support FBA and consoles as well. See the readme for more info.
cacophony555Participant@toasti, ok here’s my script and instructions:
http://webspace.lenscritic.com/mame/You can be my beta tester ;)
cacophony555Participant@toasti, I wrote my own script to generate the gamelist.xml file with proper names, but it’s not really in a state to share without some additional work. I’ll probably do this at some point when I have some more time.
cacophony555ParticipantYou could try exiting emulation station the using “top” to see how much CPU is being utilized by other processes. Give it a second to settle from the intitial launch of top and take take a look at the top processes in the list. They shouldn’t total more than about 1%.
If there’s nothing occupying CPU then my guess would be it’s a performance issue that was always there, but you might not have it experienced it yet (or noticed). I’ve definitely observed roms have slowdowns in certain areas where it’s not consistently reproducible. Your perception of performance can also be influenced by expectations, so it’s hard to be scientific with these types of tests. You could try turning on a fps display to see if it drops (not sure if mame4all has one).
cacophony555Participantretrofredde, I’m wondering the same thing. If you find a solution, please post it.
cacophony555ParticipantNice, glad it helped! For mame4all you need to set keys by launching a game and then hitting TAB on the keyboard. That will bring up the Mame menu and you can set keys from there. Whatever keys you set will be remembered going forward.
Never been a fan of ES-scraper. It’s always seemed like way more trouble then it’s worth, especially if you have a bunch of unlicensed or import games. It ends up guessing the wrong game and setting incorrect titles and images as a result. It’s also painfully slow to run on a large ROM collection.
cacophony555ParticipantYou need to post the exact command you’re using to try to launch bomberman 2.
cacophony555ParticipantGlad to hear it’s (partly) working now!
To switch what emulator is used by Emulation Station just press F4 to quit, and then modify the appropriate COMMAND line in the es_systems.cfg. For Mame that would be :
DESCNAME=MAME NAME=mame PATH=/home/pi/RetroPie/roms/mame EXTENSION=.zip .ZIP COMMAND=/home/pi/RetroPie/emulators/RetroArch/installdir/bin/retroarch -L /home/pi/RetroPie/emulatorcores/imame4all-libretro/libretro.so --config /home/pi/RetroPie/configs/all/retroarch.cfg --appendconfig /home/pi/RetroPie/configs/mame/retroarch.cfg %ROM% # alternatively: COMMAND=/home/pi/RetroPie/supplementary/runcommand/runcommand.sh 1 "/home/pi/RetroPie/emulators/pifba/fba2x %ROM%" PLATFORMID=23
Just put a “#” in front of the current COMMAND line above and then add a new one in the same block that points at the emulator you want:
COMMAND = /home/pi/RetroPie/emulators/mame4all-pi/mame %BASENAME%
(you need to use %BASENAME% at the end so that it puts in the rom name without the extension when it tries to launch; Mame is the only one that doesn’t want the extension, so for all other emulators you would put %ROM% instead)
If pifba is just showing a black screen it’s probably because of issues with the roms. You could verify this by running from the command line. IIRC, the roms from romnation worked more consistently than roms from certain other sites. Neo Geo roms also require bios files packaged in a certain way which adds to the complexity.
Not sure how to check the version number of a rom… My best suggestion would be to grab the entire set (mentioned above) via torrent. Not all of those will work but about 90% do.
cacophony555ParticipantSo it sounds like an issue with the roms you’re trying to run. Most websites offer the newest versions of mame roms which aren’t going to be compatible with mame on the pi. Those roms run fine on your windows machine because you’re using a much newer version of mame on that setup.
What you need is the “mame 037b5 complete full 2270” set. Try a google search for that string ;) As far as I know there’s no easy way to get individual 037b5 roms.
EDIT: alternatively, piFba supports the latest versions of many roms including Metal Slug, Metal Slug 2, etc, but that’s a whole separate setup.
cacophony555ParticipantNo problem, happy to help.
What you said explains it. If you’re actually in the mame4all-pi directory then doing this won’t work:
mame <gamename>This would would work though:
./mame <gamename>The nice thing about this command is that it works regardless of what directory you’re in:
/home/pi/RetroPie/emulators/mame4all-pi/mame <gamename>So give it a try when you’re not ssh’ing in. It should work, and the only problem you’re likely to hit is a rom that is not compatible. The version of Mame for your windows pc is likely compatible with a much more recent version of the roms, whereas mame4all-pi is compatible with 037b5 roms from over 10 years ago.
cacophony555ParticipantOk, that helps.
Can you show the exact command you did that led to “mame: command not found” ?
cacophony555ParticipantWhat is the exact output of this command:
ls -l /home/pi/RetroPie/emulators/mame4all-pi/mame
cacophony555Participantmame4all-pi only supports 37b5 roms. Not sure about the retroarch version that the default config uses.
cacophony555ParticipantIf “mame” is listed in the mame4all-pi directory, then try doing this:
chmod +x /home/pi/RetroPie/emulators/mame4all-pi/mameand then launching again.
cacophony555ParticipantSo it can’t find the mame executable within the “/home/pi/RetroPie/emulators/mame4all-pi/” directory.
Do this to see if “mame4all-pi” exists:
ls /home/pi/RetroPie/emulatorsDoes it list mame4all-pi?
If it does then do this:
/home/pi/RetroPie/emulators/mame4all-pi/Does it list mame?
cacophony555ParticipantLooks like you typed “mome” instead of “mame”
cacophony555ParticipantIt doesn’t matter what your es_systems.cfg has for this test b/c you’re bypassing it entirely. But you do need your rom zip files in a rom directory within mame4all-pi.
cacophony555Participant@toasti, you’ll need to see the error output to determine what’s wrong, and this requires trying to launch from the command line.
Press F4 to exit emulation station. Then type the launch command manually:
/home/pi/RetroPie/emulators/mame4all-pi/mame paperboy
(replace paperboy with the game filename you’re trying to launch but do NOT include the .zip extension)Report the output here.
If you want to relaunch emulation station just type “emulationstation”
cacophony555ParticipantI figured it out. You need to add _btn to the end for gamepad buttons, so it needs to be:
input_player1_turbo_btn = “4″
cacophony555ParticipantAre you allowed to define player1 for both the keyboard and gamepad? I would try commenting out all the keyboard controls.
cacophony555ParticipantAdding quotes didn’t help unfortunately. Have you seen it work?
cacophony555ParticipantI ended up writing my own simple (~30 line) scripts.
For MAME and FBA roms it utilizes local text files that have associations between the rom names and their actual names (ghouls -> Ghouls and Ghosts). It will create the gamelist.xml (just like ES-scraper), but does it entirely locally, so it only takes a couple seconds to process a couple thousand roms. It will even make image references in the xml file if you have png files in the rom directory with the same names as your roms.
There are much faster ways to automatically fetch appropriately sized and named rom png files. I used the EmuMovies automated downloader, which is a Windows app. To grab the images you just point the program at your roms directory and it will take care of everything in a couple minutes. Then they just needed to be transferred to the appropriate rom directory on the pi.
I also have a similar script for console games, but it doesn’t have the name association file so the roms need to be named in the same way you want them displayed. There are already lots of solutions for renaming rom files.
The scripts don’t populate descriptions, but honestly I never felt the ES-scraper descriptions were of any real benefit.
If there’s lots of interest I can post the scripts somewhere, but I’d want to clean them up and do some consolidation before they are shared.
cacophony555ParticipantAre you getting sound from any emulator? How is sound hooked up (via hdmi or separate audio cable)?
For hdmi you could try putting this in your /boot/config.txt:
hdmi_drive=2
hdmi_force_edid_audio=1I needed the second one if I turned the pi before the TV, because without it the Pi would think there was no way to output sound over hdmi and would default to the audio out jack.
cacophony555ParticipantI think he’s asking for it not to recompile the latest source if you already have the latest source compiled. So then you could check for updates without the risk of needless recompilation. But I’m just speculating b/c I haven’t tried that.
cacophony555ParticipantAh ok, so they do seem comparable.
Maybe this thread will be of interest:
http://www.raspberrypi.org/phpBB3/viewtopic.php?t=54016&p=462423cacophony555ParticipantI don’t know anything about the processor in the Galaxy S, but in general you can’t compare processors of different families based on the clock speed alone.
Wikipedia has a good explanation:
http://en.wikipedia.org/wiki/Clock_rate#Comparingcacophony555ParticipantJust bought a Logitech F310 which works great with the Raspberry Pi. No need to install any driver software either. I needed to reboot a few times with the controller plugged in for it to first be recognized, but now it works every time. Also, surprisingly I needed to set the switch to “XInput” mode for it to work. DirectInput did not work for me.
This is on the latest official Raspian image with only Retroarch and Emulation Station installed.
cacophony555ParticipantYou’ll find es_input in /home/pi/.emulationstation/
You need to have this line in es_input:
<input name=”menu” type=”button” id=”5″ value=”1″ />You’ll need to replace the id value (currently 5) with a value that corresponds to the button on your gamepad.
After you set this line restart Emulation Station.
cacophony555ParticipantOften times emulators are written to work for the most popular games primarily, and issues with more obscrure or demanding games are not addressed. It sounds like the default Retroarch FCEUX NES core does not work well with Doki Doki Yuuenchi. I’d suggest trying one of the alternative NES emulators, though I don’t think any of them are packaged with RetroPie so you’d have to do some manual work. I know there are some other options but I haven’t tried them.
cacophony555ParticipantFor NES, what roms reproduce the issue for you? I haven’t seem it for any roms I’ve tried (mainly the popular ones like Zelda, Super Mario Bros, Metroid, etc).
For SNES music, here’s the explanation:
http://www.raspberrypi.org/forums/viewtopic.php?p=496411#p496411cacophony555ParticipantThat “code” that you’re seeing is the console output, which probably shows an error explaining why it isn’t working. Not sure if it gets captured in any log, but you could check the es_log in .emulationstation.
The best way to diagnose is to try launching from the command line using the same command that Emulation Station uses. It’s defined by the “COMMAND=” line in .emulationstation/es_systems.cfg for the emulator you’re trying to launch. You’ll need to manually substitute the %ROM% value with a full path to the rom you’re trying to launch, and if the rom title has spaces or other characters like “(” you’ll need to backslash them which can be a pain. To make it easier you could rename your rom something simple like maria.nes, put it in your root directory and then the path could just be something like “/home/pi/mario.nes”
Hope this helps.
cacophony555ParticipantSure thing. I already know it won’t work for your “xmvsf” example because that’s not in the list of mame supported 037b5 roms, but perhaps it will work for some of your other ones. Or you could use it for a mame 037b5 collection and have a lot more luck.
cacophony555ParticipantRoman – I sent you a PM with the details.
cacophony555ParticipantI’ll look into the best way to share the code tonight. If you’re eager you could just PM me an email address and I can just send it directly to you. The script file is just a perl script that’s ~100 lines of code, and the association file is just a ~2300 line text file.
cacophony555ParticipantThe huge game covers and navigation slowness when using ES-Scraper is due to an image resize bug that easily fixed (1 line script change).
But that said, I had the same frustrations as you. The titles that ES-Scraper picks are often way off. It ended up naming 6 of my nes roms “Super Mario Bros 2” even though some had names that were nowhere near that. The scraping processs is also painfully slow.
Because of this I ended up writing some of my own simple scripts. I wrote one for MAME roms that utilizes a local text file that has associations between 037b5 MAME roms and their actual names. It will create the gamelist.xml (just like ES-scraper), but does it entirely locally, so it only takes a couple seconds to process 2300 roms. It will even make image references in the xml file if you have png files in the rom directory with the same names as your roms.
There are much faster ways to automatically fetch appropriately sized and named rom png files. I used the EmuMovies automated downloader, which is a Windows app. To grab the images you just point the program at your roms directory and it will take care of everything in a couple minutes. Then they just needed to be transferred to the appropriate rom directory on the pi.
I’m happy to share my script if you’re interested, but at this point it’s pretty quick and dirty and could probably benefit from some cleanup. I also don’t know how the fba roms differ from the mame roms in terms of naming, so my current association file might not be appropriate for that application.
-
AuthorPosts