I got the rda database files but still not picking everything up, I using the no-intro 2016. I am going to have to make a list of what systems it not picking up and go on a hunt for the “right” rom packs
I've written it in here before - but I'll go over it one more time.
How to create Retroarch playlist files (.lpl) manually - but automated.
Launch a game of the system you want to add a playlist file of - with the emulator you prefer. Exit Retroarch. That way it will show up in the content_history.lpl file. Copy it over to a PC and look at it - It will have all the information you need (rompath, emulator path, emulator name, ...) in there - so you can easily create a playlist file for an entire system by hand, but automated. This shouldnt take more than five minutes.
Lets take the contents for a PSP game for example:
Code:
/media/RetroArch/roms/PSP/Crisis Core - Final Fantasy VII (E).pbp
Crisis Core - Final Fantasy VII (E)
/media/RetroArch/cores/ppsspp_libretro.so
PPSSPP
The first line is the path to the rom.
The second line is the rom name.
The third line is the path to the emulator.
The fourth line is the emulator name.
In a playlist .lpl file for an entire system there will be two more lines beneath that, for every entry. The next line would be the unique hash of the rom - when creating playlist files manually you can leave that empty.
And the line after that will be the playlist name - in the case of a PSP playlist this is: Sony - Playstation Portable.lpl
The playlist names are system specific, and have to be what Retroarch expects, so google them for the individual systems you want to add.
--
Now, lets create a playlist file for multiple files (roms) in a folder at once.
First, you need a list of all filenames in a folder in a one column list. On MacOS or linux, this can simply be done by navigating into the folder in a terminal / shell, and typing: ls followed by enter. ls -1 (forces one column of names) if the default ls command shows multiple columns by default.
On a windows computer its the same, there you'd open a command prompt, navigate into the folder an type dir followed by enter. This lists all files in a folder, and you can then copy all the filenames.
Open up a texteditor that supports unix/linux line endings (notepad++ for Windows is good and open source), copy your column of file names (with file endings, so f.e .pbp or .zip) into a new file and save it as your specific system playlist name with the ending .lpl - make sure, that you select unix/linux line endings in the save as dialog. Otherwise retroarch might not be able to read your file.
Add an empty line with enter at the beginning of your document.
Now open the search an replace dialog in Notepad++, make sure 'regular expressions' is checked in the search/replace dialogue - and search for:
replace with
Code:
\n/media/RetroArch/roms/PSP/\1\n\2\n/media/RetroArch/cores/ppsspp_libretro.so\nPPSSPP\n\nSony - Playstation Portable.lpl
Make sure 'regular expressions' is checked in the replace dialogue. Hit replace all, and you have a well formed playlist for the PSP.
The results for every game will look as follows:
Code:
/media/RetroArch/roms/PSP/Crisis Core - Final Fantasy VII (E).pbp
Crisis Core - Final Fantasy VII (E)
/media/RetroArch/cores/ppsspp_libretro.so
PPSSPP
Sony - Playstation Portable.lpl
And all game entries will simply be stacked, one such entry after the other.
Remove the empty first line again (the one you added before).
Save the file, put it in the playlist folder on your USB stick (again the file name has to be the exact one Retroarch expects for the system), and thats it. Reboot and the playlist will show up.
Now. Pay attention to the replace with line above. Edit it as you have to for the emulated system and emulator of your choice, and your specific installations. Which means - the rom paths, and the path to the emulator will be different in your case (the example uses Retroboots folder structure, not bleemsyncs). In any case your filepaths have to start with /media/ before the first folder on your USB stick (its a PSC specific thing). Your emulator core names might be different (other .so files), your emulator names might be different. The file extetnsion (.pbp) in the search field might be different. (In most cases for you it usually is .zip for your zipped roms.)
So check against the content_history.lpl file and edit the replace with line accordingly. You only have to edit it once, and then do a replace all.
Thats it - now playlists show up in retroarch. And all your games that were in that specific folder, are selectable and playable.
If you want them to have covers as well, all the covers have to be in the thumbnails folder in a subfolder with the designated system name (f.e.: Sony - Playstation Portable), in another subfolder named Named_Boxarts - with the exact file names you have in line 2 of those game entries in the playlist file. They have to be image files, with the file extension .png.
Thats it. Sounds like a heck of a lot to do, but can be done in 3 minutes per system - no hassle.
edit: Short intro into how regular expressions in the example above work:
\n stands for newline (so whenever there is a new line started in the text document, by hitting enter)
() simply are brackets that can be used for callbacks
\1 or \2 are those callbacks (\1 produces the contents of the first set of brackets, \2 the contents of the second set, and so on)
\ is an escape character - sometimes (not in the case of \1 or \n
). Because in Regex, some symbols (like a . (dot)) have different meanings, you have to escape some of those characters, to tell the regex to handle this character as if it was a simple character and not something special.
([^\n]+) is a regex that catches everything in a line up until a newline marker (someone pressed enter in a text), or in our instance up to what follows that expression (.pbp or .zip) If you are interested in its actual meaning, [^x] is the format for "any character that isnt x" so [^\n] is "anything that isnt a new line marker" and + stands for "one ore more times". So this catches all characters in a line, up until the newline marker.
And thats about it, this should make you understand what you are doing a little better.