retroarch-playlist-editor icon indicating copy to clipboard operation
retroarch-playlist-editor copied to clipboard

Thanks for this very useful tool!

Open porg opened this issue 3 years ago • 10 comments

I thought I will do my playlist editing in a spreadsheet app and already searched for json2csv and csv2json tools.

So nice to get a readymade solution!

Great that you can very easily merge content of files just by dropping them consecutively.

Thanks! I will check the RetroArch docs/wiki and see whether it mentions your tool.

If not there I will try to add it there as a recommended helper tool.

porg avatar Feb 07 '22 15:02 porg

Contributed to the user docs with a mention of your great tool. Pull request awaiting: https://github.com/libretro/docs/pull/697

porg avatar Feb 07 '22 15:02 porg

Note: After more intensive experiences with it:

  • As of 02/2022 it is a bit outdated (creates playlists in v1.0 format, meanwhile playlists use v1.5)
  • Surely better to use it and some RegEx-postprocessing of the JSON files that this tool creates than starting from scratch entirely.
  • But others reading that: It is not a zero effort scenario, you will have to apply some manual fixing, as it is now.

porg avatar Feb 13 '22 18:02 porg

Thank you for your interest ^_^

I had started working on a big update for this like a year ago with >v1.0 support and other new features and QoL, but it didn't progress further :-(

I'll try to resume it as soon as possible!

marcrobledo avatar Feb 14 '22 09:02 marcrobledo

By the way... is there any information on playlists formats history changes?

marcrobledo avatar Feb 14 '22 09:02 marcrobledo

Hi @marcrobledo ,

great to get feedback from you and that you plan an update! 🙂

This motivates me to submit everything I noticed into small issues. Will file them now. After that we can talk about the big picture here in this issue, which of those you may tackle realistically and which not.

Btw, the GitHub team hesitated to accept my pull-request on the respective user docs because they are careful with 3rd party tool recommendations.

But now that there's a sign of life from you with an explicit statement of planning to further develop this your great tool, I guess it's rather easy to then recommend/promote it. And this may give your tool further exposure, and make it more popular. Possible even more motivating for you then 🙂

porg avatar Feb 14 '22 11:02 porg

Ok, here are the issues I filed.

User experience improvements

  • #22
  • #23
  • #24
  • #25

Minor parsing issue

  • #26

Critical issues - All these result in exports being partially or fully broken

  • #19
  • #20
  • #21

Workaround until these bugs are fixed

Quite some manual postprocessing of the LPL files was necessary.

  • Should someone need this, I share my work efforts here.
  • But please note that other than sharing this here, no support will be given.
  • If you are an advanced user, you will know how to do it.
  1. First find/replace outdated core_name instances
  • This is certainly necessary for step 2 to work (as it's assumption is based on normalized core_names) and maybe also necessary to launch the correct core. Maybe the correct core_path alone is enough, maybe not. I did not test it, as I fixed it beforehand anyways.
Show all Find/Replace couples
"core_name": "MAME"
"core_name": "Arcade (MAME - Current)"

"core_name": "Gambatte"
"core_name": "Nintendo - Game Boy / Color (Gambatte)"

"core_name": "mupen64plus_next"
"core_name": "mupen64plus_next_gles3"
"core_name": "Nintendo - Nintendo 64 (Mupen64Plus-Next)"

"core_name": "Nintendo - Nintendo 64 (Mupen64Plus-Next)"
"core_name": "Nintendo - DS (DeSmuME)"

"core_name": "Nestopia UE"
"core_name": "Nintendo - NES / Famicom (Nestopia UE)"

"core_name": "bsnes"
"core_name": "Nintendo - SNES / SFC (bsnes)"

"core_name": "duckstation"
"core_name": "Sony - PlayStation (DuckStation)"

"core_name": "Picodrive"
"core_name": "Sega - GG/MS/MD/CD/32X (PicoDrive)"
  1. Multi Line RegEx which works on the assumption that a certain core_name is for a certain system and replaces the db_name to the correct needed system name, in orders for thumbnails to work. This is the fix for: #21
Show all RegEx Find/Replace couples
("core_name": "Arcade \(MAME - Current\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":) .+\.lpl"
$1 "MAME.lpl"

("core_name": "Nintendo - Game Boy / Color \(Gambatte\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Nintendo - Game Boy.lpl"

("core_name": "Nintendo - Nintendo 64 \(Mupen64Plus-Next\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Nintendo - Nintendo 64.lpl"

("core_name": "Nintendo - DS \(DeSmuME\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Nintendo - Nintendo DS.lpl"

("core_name": "Nintendo - NES / Famicom \(Nestopia UE\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Nintendo - Nintendo Entertainment System.lpl"

("core_name": "Nintendo - SNES / SFC \(bsnes\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Nintendo - Super Nintendo Entertainment System.lpl"

("core_name": "Sega - GG/MS/MD/CD/32X \(PicoDrive\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Sega - Mega Drive - Genesis.lpl"

("core_name": "Sony - PlayStation \(DuckStation\)",[\s\n]+"crc32": "[^"]+",[\s\n]+"db_name":).+\.lpl"
$1 "Sony - PlayStation.lpl"


porg avatar Feb 14 '22 13:02 porg

By the way... is there any information on playlists formats history changes?

I personally do not know where this is documented. In the related issue #19 that I filed you can see some settings. My proposal how to handle them is also there.

porg avatar Feb 14 '22 14:02 porg

@porg , i totally salute your involvement and i am very glad to see that @marcrobledo is still around!

stefangabos avatar Feb 14 '22 14:02 stefangabos

I have not forgotten about this. Still working on rewritting the entire table user UI from scratch!

marcrobledo avatar Apr 03 '22 10:04 marcrobledo

The first 2.0 beta has been deployed!

marcrobledo avatar Apr 18 '22 18:04 marcrobledo