
GoWA-pc는 PS3 게임 God of War: Ascension(BCES01741)을 PC에서 실행하도록 정적 재컴파일한 취미 프로젝트다. 게임은 인트로를 지나 초반 레벨까지 플레이할 수 있지만, 아직 완성되지 않았고 모든 구간을 테스트한 것은 아니다.
프로젝트는 게임의 PPU 코드를 C++로 변환해 x86-64용으로 컴파일한다. SPU 프로그램도 미리 컴파일하며, Edge 지오메트리와 천 시뮬레이션, 작업 시스템 일부처럼 부하가 큰 SPU 작업은 직접 다시 작성해 원래 출력과 대조했다. PS3 시스템 라이브러리는 런타임에서 재구현하고 RSX 명령 스트림은 Vulkan으로 그린다.
전체 녹화 영상(2분 53초)은 Linux, i7-8700K, RTX 4070 환경에서 내부 해상도 1080p로 촬영했다. 화면 구석의 수치는 게임 프레임률이다. 제작자에 따르면 같은 사양에서 전투가 잔잔한 구간은 약 55~60fps, 대규모 전투는 대략 35~45fps이며 짧은 순간 더 낮아질 수 있다. 남은 처리 부담의 대부분은 GPU가 아니라 SPU 작업, 주로 Edge 지오메트리 작업에서 발생한다고 설명한다.
알려진 문제는 격렬한 전투 중 프레임 저하, 새 구역을 불러올 때의 짧은 끊김, 복잡한 장면에서 오디오가 갈라지는 현상이다. 현재 주 개발 환경은 Linux이며, Windows 빌드는 Linux 포팅 이후 테스트하지 않았다.
실행하려면 본인 소유의 게임 디스크 덤프(BCES01741)와 01.12 업데이트, PS3 펌웨어 4.91 및 게임과 펌웨어 모듈을 복호화하는 데 필요한 키가 있어야 한다. 이 파일과 키는 프로젝트에 포함되지 않는다. 설정 도구에는 Python 3와 pycryptodome이 필요하다. Linux에서는 clang, CMake, Ninja, SDL3, Vulkan 드라이버가 필요하며, 영상 재생에는 FFmpeg(libavcodec)를 선택적으로 사용할 수 있다. Windows에서는 clang-cl이 포함된 Visual Studio 2022 Build Tools, CMake, Ninja가 필요하다.
설치는 아직 수동 단계로 이뤄진다. tools/의 도구로 디스크와 업데이트, 펌웨어를 추출하고 복호화한 뒤, 아래 명령으로 사용자의 파일에서 게임 파생 소스를 out/에 생성한다.
python3 tools/setup.py --steps all
기본 설정은 복호화한 01.12 실행 파일을 bin/01.12/에서, 펌웨어 모듈을 fw/4.91/에서 찾는다. bin/, fw/, keys/, out/의 파일은 Git에 포함되지 않는다. Linux 빌드 명령은 cmake -S . -B build-linux -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build build-linux 이며, Windows에서는 build.cmd 를 실행한다. 빌드 폴더에서 God of War Ascension을 시작하면 런처에서 게임 폴더와 업데이트 폴더, 옵션을 설정할 수 있다. 설정은 실행 파일 옆 user/settings.ini에 저장되며, 대부분의 옵션은 GOWA_* 환경 변수로도 지정할 수 있다.
이 프로젝트는 Sony Interactive Entertainment나 Santa Monica Studio와 제휴하지 않았으며 게임 코드나 데이터도 포함하지 않는다. 저장소 코드는 MIT 라이선스를 따르지만 게임에는 적용되지 않고, 제3자 구성요소는 각자의 라이선스를 따른다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요