Try the Redream emulator for DreamCast Emulation.
The emulator can also read CHD files.
https://redream.io/
The problem of the back conversion is: You have to have both versions of the chd file
to determine the difference between the two files. Should the difference significantly
affect the file size, the conversion file will vary greatly in size. That's why you can keep
both versions at the same time.
However, there is a program called "Delta Patcher".
https://www.romhacking.net/utilities/704/
Those program check two files differences and save it to a file with a extension of "xdelta".
You must create 1 patchfile for each file that you want.
Extrem Example: (Size of two CHD files are significant e.g. 199MB/259MB:
You have a CHD file name: gds-0018.chd
Those file was changed from MAME 0.183 to MAME 0.204
MAME 0.183 version of the CHD file has: 271.771.062 Bytes ~ 259 MB
MAME 0.204 version of the CHD file has: 209.405.716 Bytes ~ 199 MB
The Patchfile that was generated to convert the 0.183 version to 0.204 are: 207.750.438 Bytes ~ 198 MB in size
The Patchfile that was generated to convert the 0.204 version to 0.183 are: 262.301.863 Bytes ~ 250 MB in size
But, not all CHD files are significant in size! Some are minimal.
Minimal Example: (Size of two CHD files are NOT significant):
You have a CHD file name: savquest.chd
Those file was changed from MAME 0.149 to MAME 0.203
MAME 0.149 version of the CHD file has: 308.353.531 Bytes ~ 294 MB
MAME 0.203 version of the CHD file has: 308.345.169 Bytes ~ 294 MB
The Patchfile that was generated to convert the 0.149 version to 0.203 are: 278.090 Bytes ~ 271 KB in size
The Patchfile that was generated to convert the 0.203 version to 0.149 are: 287.350 Bytes ~ 280 KB in size
Result: It takes a lot of time to archive these files for all changes. It comes to the fact that each time you have to
first convert these files back again. It was an attempt. It is simpler to create a duplicate of the old versions.
For my part, I thought I create DAT files that contain only the changes from version to version and then let them
bring together via a ROM Manager to the version I need. Of course, then you have more on the hard drive than
really needed, but this is the best solution to archive these files.
What I'm still looking for is a program that analyzes DAT files specifically for MAME and writes only the difference
of the files into a new one. So I have to do everything manually with WinMerge which is very time consuming.
I use RomVault http://www.romvault.com/ for archiving. RomVault does not delete files stored in a separate
DAT file. Thus, I always have the old versions ready and can then create the MAME version that I needed.
You can convert CDI / GDI / BIN / CUE files to CHD. As you know, CHDman is used for this purpose.
CHDman can also convert these files back, but in the end this file is not the same as before! CHDMan is also
included in the RomVault setup!
For this I still try to find a solution to really have the same version at the end before they are converted into CHD.
However, there is a program called "QuickPAR" for which files that are spread over the USENET can check and
repair if they differ in content from the original.
http://www.quickpar.org.uk/
Hope you understood all because my english is not so perfect.