Skip to content
setmind edited this page Oct 7, 2018 · 9 revisions

Why use this fork?

Lots of new features and improvements (see this) have been added to sacd_extract in Mr. Wicked's original work.

The new sacd_extract binary can replace the original in Sonore's ISO2DSD package, but new features cannot be used with the GUI. A new simple GUI to support all new features in this work is available here.

Compilation

Linux

Install cmake (if not done yet):

sudo apt install cmake

Get sacd-ripper@setmind source tree:

git clone https://github.com/setmind/sacd-ripper.git

Move to the sacd_exract directory and compile:

cd sacd-ripper/tools/sacd_extract

cmake .

make

sacd_extract binary should be ready for use.

(Optional) If clang is preferred over gcc, do this before make.

cmake -DCMAKE_C_COMPILER=/usr/bin/clang

Windows (using native Linux or Windows Subsystem for Linux)

Install Mingw-w64 and cmake (if not done yet)

sudo apt install mingw-w64 cmake

Get libiconv, compile it, and install it

wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz

tar -xzf libiconv-1.15.tar.gz

cd libiconv-1.15

./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32 --enable-static

make

sudo make install

cd ..

Get sacd-ripper@setmind source tree:

git clone https://github.com/setmind/sacd-ripper.git

Move to the sacd_exract directory and compile:

cd sacd-ripper/tools/sacd_extract

cmake -DMINGW64=YES

make

sacd_extract.exe binary should be ready for use.

macOS

Install Command Line Tools (CLT) for Xcode (if not done yet):

xcode-select --install

Install homebrew (if not done yet):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install cmake (if not done yet):

brew install cmake

Get sacd-ripper@setmind source tree:

git clone https://github.com/setmind/sacd-ripper.git

Move to the sacd_exract directory and compile:

cd sacd-ripper/tools/sacd_extract

cmake .

make

sacd_extract binary should be ready for use.

Benchmark

CPU used: Core i7-7500U (dual core)

Linux

sacd_extract -i<address:port> -s (DSF over LAN)

Original: 892 s / This repo: 355 s

sacd_extract -i<filename> -s (DSF from a local iso)

Original 559 s / This repo: 163 s (150 s with clang instead of gcc)

sacd_extract -i<address:port> -I (ISO over LAN)

Original: 1013 s / This repo: 1015 seconds

sacd_extract -i<address:port> -s -w -I (ISO and DSF over LAN)

Original: not implemented / This repo: 1018 s

Windows

sacd_extract.exe -i<address:port> -s (DSF over LAN)

Original: 459 s / This repo: 355 s

sacd_extract.exe -i<filename> -s (DSF from a local iso)

Original: 241 s / This repo: 197 s

sacd_extract.exe -i<address:port> -I (ISO over LAN)

Original: 1013 s / This repo: 1015 seconds

sacd_extract.exe -i<address:port> -s -w -I (ISO and DSF over LAN)

Original: not implemented / This repo: 1018 s