Editing Powkiddy Game Lists — XML, RetroArch and EmulationStation
Chinese handhelds such as the Powkiddy manage their game list in a single file. Edit that file directly and you can change the names shown on screen, sort the list, and attach thumbnails.
The catch is that the file is XML or some idiosyncratic text format, which makes editing it in a plain text editor tedious. The RetroArch playlist editor lets you do the same work in a table instead.
The three file types it handles
| File | Used by | Location |
|---|---|---|
game_strings_ko.xml | Powkiddy stock firmware | settings/res/[system]/string/ |
.lpl | RetroArch | The playlists folder |
gamelist.xml | EmulationStation | Each system's ROM folder |
The three formats convert between one another, so you can, for example, take a list you tidied up in RetroArch and export it for the Powkiddy stock firmware.
Two ways to start
From an existing list file — drop in any one of the three files above and the game list opens up as a table. This is the easier route if the device already has a list.
From a ROM folder — pick a folder of ROMs and a list is generated from the filenames. Use this when there is no list file, or when you want to start over.
Tidying up names
This is the job people come for. ROM filenames usually look like Sonic The Hedgehog (USA, Europe).md, which does not read well on a handheld screen.
- Click a display name to edit it directly. Select several rows with Ctrl-click or Shift-click to work on them together
- Alphabetical sort — orders entries by digits, then Latin letters, then Hangul
- Add numbering — prefixes names with
1.,2.and so on. This is how you force an order on a device with no sorting function of its own - Add or remove text — adds a common prefix to every name, or strips one off
Importing names from another list
If you already have a .lpl or XML with names you tidied up before, the auto-rename from file feature reads it and fills in the names of entries whose ROM filename matches. Switch devices or reflash firmware and you do not have to redo the naming work from scratch.
The & problem in ROM filenames
An & in a filename causes trouble in XML. The ROM filename auto-rename feature replaces & with _. Note that you must rename the actual ROM files to match, or the list and the files will no longer line up.
Attaching thumbnails
Turn on use thumbnail folder and pick a folder of images, and any image whose name matches the ROM filename or the display name appears in the list. It becomes obvious at a glance which games have no image.
- Image auto-search — pick a folder and it walks the subfolders too, attaching PNGs whose names match. Handy for sorting through a thumbnail pack downloaded from the internet
- Image cleanup — finds and deletes images for games no longer in the list. Use it to clear out leftovers after removing games
- Image size reduction — converts images to a size and colour count you specify. This helps when the device is short on storage, or when large images make the list stutter
Set the filter to no image to see only the games still missing one.
Exporting
Export to whichever of the three formats you need.
- Powkiddy XML → goes in the device's
string/folder - RetroArch .lpl → goes in the playlists folder
- EmulationStation gamelist.xml → goes in that system's ROM folder
Images can be exported separately, either named after the ROM file or named after the display name. Pick whichever your device uses to find them.
Values you have to fill in when exporting for RetroArch
A .lpl stores an absolute ROM path and core path for every entry, so there are a few things to fill in before exporting:
ROM base path : /sdcard/settings/retroarch/roms/Nintendo - Nintendo Entertainment System/
Core path : /sdcard/settings/retroarch/cores/fceumm_libretro.so
DB name : Nintendo - Nintendo Entertainment System.lpl
ROM extension : .nes
These are paths as the device sees them — not the drive path your PC shows, but the path the device uses for its own storage. Loading an existing .lpl fills these in automatically, so you only need to check them once.
Press apply paths to all and the values are written across the whole list. Blank fields are left alone, so to change only the core, fill in only the core path.
An example workflow
Assuming you are setting up a device from scratch:
- Pick a ROM folder to build the list
- Sort alphabetically to establish an order
- Edit the display names (or import them automatically from an existing list)
- Point at a thumbnail folder and run the image auto-search
- Clear out leftover images with the cleanup
- Fill in the path values and export in the format you need
Your files go nowhere
The list file, the ROM folder and the images are all read and written inside your browser. Nothing is sent to a server, so your game files never leave your machine.
Summary
- The three list formats convert between one another
- For naming work, importing from another list is by far the fastest route
- For thumbnails, auto-search followed by cleanup leaves things tidy
- Exporting for RetroArch requires paths as the device sees them