marcrobledo / retroarch-playlist-editor

This web app allows you to create and edit .lpl playlist files for RetroArch.
https://www.marcrobledo.com/retroarch-playlist-editor/
Other
116 stars 14 forks source link

Thanks for this very useful tool! #18

Open porg opened 2 years ago

porg commented 2 years ago

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 commented 2 years ago

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

porg commented 2 years ago

Note: After more intensive experiences with it:

marcrobledo commented 2 years ago

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 commented 2 years ago

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

porg commented 2 years ago

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 commented 2 years ago

Ok, here are the issues I filed.

User experience improvements

Minor parsing issue

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

Workaround until these bugs are fixed

Quite some manual postprocessing of the LPL files was necessary.

  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 commented 2 years ago

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.

stefangabos commented 2 years ago

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

marcrobledo commented 2 years ago

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

marcrobledo commented 2 years ago

The first 2.0 beta has been deployed!