flyinghead / flycast

Flycast is a multiplatform Sega Dreamcast, Naomi, Naomi 2 and Atomiswave emulator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Feature request] CHD archive Parent/Child support

Blackbird88 opened this issue · comments

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

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.