Radio Free San Andreasを試した
このエントリでも書いたようにGTA San AndreasのPC版ゲームDVDから音をぶっこ抜くツール、Radio Free San Andreasを試した。
Cygwinのコンパイルはちょい面倒です。
リンク先の和訳になるが、
- extract.cpp のposix_fadvise(in_fd, 0, 0, POSIX_FADV_NOREUSE); の行をコメントアウトする
- libsslの代わりにlibcryptoをリンクする
- libvorbisに加えてliboggをリンクする
- metadata.confの中の " と ? の文字を全て取り除く
さらに
- Makefileのリンクコマンドの$(LIBS)を$(OBJECTS)の後ろに持ってくる
C++言語とMakefileの知識がないと、これだけの説明で対処するのは確実に不可能。
ちょっと解説します。
コンパイルの仕方
1.cygwinをインストール
cygwinをインストールします。
追加でインストールするべきものは
- devel の g++
- devel の make
- libs の openssl
- libs の libogg0 と libogg-devel
- libs の libvorbis0 と libvorbis-devel
など。これらにチェックを入れる
2.Radio Free San Andreasのアーカイブを展開する
c:\cygwin\home\shibacho(ユーザ名がshibachoの場合) などのcygwinのホームディレクトリが便利
3.アーカイブに含まれるextract.cpp の以下の行をコメントアウトする(CR改行コードに対応したエディタが必要)
エディタはxyzzyを使いましたが秀丸エディタとかでも大丈夫です。
// posix_fadvise(in_fd, 0, 0, POSIX_FADV_NOREUSE);
4.Makefileを以下のように編集する
太字の部分が編集した部分です。
5. おもむろにmakeする
CXX=g++
CC=gccCXXSRC=$(wildcard *.cpp)
CSRC=$(wildcard *.c)
SRC=$(CXXSRC) $(CSRC)CXXFLAGS=-ansi -pedantic -Wall -O2 -DNDEBUG
CFLAGS=$(CXXFLAGS)CXXOBJECTS=$(CXXSRC:%.cpp=%.o)
COBJECTS=$(CSRC:%.c=%.o)
OBJECTS=$(CXXOBJECTS) $(COBJECTS)LIBS=-lm -lcrypto -logg -lvorbis
extract: $(OBJECTS)
g++ -o extract $(OBJECTS) $(LIBS)%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@.PHONY: clean
clean:
rm -f $(OBJECTS) extract
ここで、extract.exe が出来れば成功です。
$ make
エラーが出たらここまでのことを確かめてください。
metadata.confの編集
metadataに含まれる " (ダブルコーテーション) と ? (はてな) を取り除いてください。
別の文字に置換しても良いです。