flyinghead / flycast

Flycast is a multiplatform Sega Dreamcast, Naomi, Naomi 2 and Atomiswave emulator
GNU General Public License v2.0
1.28k stars 161 forks source link

[Feature request] CHD archive Parent/Child support #1527

Open Blackbird88 opened 1 month ago

Blackbird88 commented 1 month ago

Is your feature request related to a problem? Please describe. Flycast doesn't support parent/child (also known as delta CHDs) CHD archives. Those are very useful when you have different regions of same game as you can save space.

Example: chdman -copy -i "Sega GT (Europe) (En,Fr,De,Es).chd" -o "Sega GT (Europe) (En,Fr,De,Es)_child.chd" -op "Sega GT (USA).chd" This will produce Sega GT (Europe) CHD that goes from 636 MB to 166MB!

Describe the solution you'd like Support for those archives to save space! libchdr should already support it on their side.

Describe alternatives you've considered No alternatives exist. DuckStation and PCSX2 support them.

Additional context Right now flycast considers them invalid image

flyinghead commented 1 month ago

Some functions are missing from the libchdr library used by Flycast to fully support parent/child CHDs. Hopefully the changes made in duckstation will be backported to upstream at some point.