Editing Retroarch RDB Files

Greetings all,

I’m trying to find a way or a program to edit Retroarch’s RDB files so I can add additionally entries to the database. So far the most I have been able to achieve is to edit the CRC number using a hex-editor so that the database will recognised a patched-translated file. Adding entries manually (even by making a custom header) always results in crash/failure.

Thanks for any help

The rdb files are compiled from our DATs, which are located on github:

They’re binary like that for speed. You can add entries to the DATs and compile your own (or, even better, submit pull requests) or you can add them to the lpl playlists manually.

1 Like

Everything is close to perfect for my purposes, but after adding some (WIP) ROM hacks to the playlist I’m not able to play them, so it looks like I need to compile a custom RDB. The github libretrodb page offers a little info, but not enough for me to know what I’m doing. Do I need to compile the whole database or just the relevant DATs? How can I compile it on Windows 10?

Otherwise, what’s the most recent version that doesn’t require the database for playlists to support hacked ROMs, and would you mind pointing me to where I can download it?

Thanks in advance.

You would need to add the new entries to the DAT and then convert the DAT to a database using the dat converter utility, which you would have to compile. You may be able to compile it using msvc, but I assume msys2 is probably the safest environment to use.

Honestly, it’s probably easier to figure out what’s going wrong with your manual playlist additions than to mess with custom databases.

1 Like

Thanks for the info. I’ve looked through a couple of guides to creating custom playlists, and I have the game hack I’d like to play listed with the other games (with correct core and ROM directories), but when I select it in Retroarch it says there are “No playable entries available.”

I’m considering installing LaunchBox to manage my game lists instead of using retroarch’s playlist, but I’d like to avoid that if possible. If I ever decide to go back to using lakka, of course, it might not be as simple as installing another program.

Already got that problem. Make sure you have the 6 needed lines per game (total playlist lines should be a multiple of 6) and absolutely no blank line anywhere. (sometimes scripts put 1 at beginning)

Good to know. I checked the number of lines and combed through each character. At this point I don’t have a ton of games on the list, so it was easy. (I have 36 lines.) Unfortunately, I’m still getting the same message: “No playable entries available.”

The info I’ve seen for custom playlists has told me two things about the 5th line (with database id info). Maybe that’s my problem? I’ve tried using both “0|crc” and “DETECT” (not at the same time). Should it be something else?

I’ve read in other threads that editing the DATs and recompiling RDB files is the only way currently to add unrecognized ROMs to the playlist as playable entries… or else use a script, so I guess I’ll try this script out.

Edit: Shifty’s script worked perfectly. I tried A3rgan’s modification first, thinking I was clever, but it gave me the same problem I was having after the playlist was generated.

Do I need to edit the RDB to change the CRC values of romhacks/translations in order to get Nestopia to recognize and play them?

Nestopia will recognize and play whatever, they just won’t get added to a playlist unless the CRC matches the database.

[QUOTE=hunterk;44106]Nestopia will recognize and play whatever, they just won’t get added to a playlist unless the CRC matches the database.[/QUOTE]Thanks for the quick reply. The Nestopia UE core will not play any of the romhacks or translations I’ve tried, such as the translations of Kid Dracula or Wai Wai World, for instance. I had assumed that it’s because Nestopia is checking the CRC against a database and they’re not matching.

I remember the Kid Dracula translation being a pain to run in Nestopia because of something with the NST database. This topic mentions both games you have problems with: http://libretro.com/forums/showthread.php?t=2216

Right. I read that thread, and tried to follow the directions, but Retroarch no longer uses nstdatabase.xml. It uses rdb files to store rom info, included checksums, which it seems can only be edited as dat’s and then compiled into rdb’s.

The idea is to trick Nestopia into thinking the romhack I want to load is the correct one, by modifying the CRC and/or MD5 in the database. But rdb files are not easy to edit, and it doesn’t seem like there is another way to do it.

[QUOTE=Lem_Fliggity;44150]Right. I read that thread, and tried to follow the directions, but Retroarch no longer uses nstdatabase.xml. It uses rdb files to store rom info, included checksums, which it seems can only be edited as dat’s and then compiled into rdb’s.[/QUOTE]RetroArch never used nstdatabase.xml, Nestopia did and still does. Put it in your ‘system’/BIOS directory.

Thanks for the replies. It seems Kid Dracula is just a problem for Nestopia. FCEUmm looks to be working for those roms that Nestopia doesn’t like

Releases · schellingb/RDBEd (github.com) Found this online. This is not mine.