AnyPS5, 에뮬레이션 없이 PS5 게임을 PC로 포팅하는 오픈소스 도구

깃허브에 공개된 오픈소스 프로젝트 AnyPS5가 개발자 커뮤니티에서 화제가 되고 있다. PS5용 실행 파일을 윈도우와 리눅스에서 돌아가는 네이티브 바이너리로 변환해주는 도구인데, 기존의 PS5 에뮬레이터들과 달리 가상 하드웨어를 흉내 내는 방식이 아니라 실행 파일 자체를 재링크(relink)해서 각 운영체제가 직접 실행할 수 있는 형태로 바꿔준다는 점이 핵심이다. 아직 프로젝트가 선언한 시스템 라이브러리 함수 중 87%만 구현된 초기 단계지만, 2D 플랫포머 게임 ‘Dreaming Sarah’가 GTX 1050 Ti급 저사양 GPU에서 60fps로 돌아간다는 점이 공개돼 기술적 완성도에 대한 관심이 커지고 있다.

에뮬레이터가 아니라 바이너리 변환기다

PS3나 PS4 에뮬레이터로 잘 알려진 RPCS3, shadPS4 같은 프로젝트들은 PS5 하드웨어의 CPU 명령어와 시스템 콜을 소프트웨어로 해석해서 실행하는 방식을 쓴다. 이 과정에서 필연적으로 성능 손실이 발생하고, 별도의 런타임 프로세스가 중간에서 명령어를 계속 번역해야 한다.

반면 AnyPS5는 접근 방식 자체가 다르다. 프로젝트 설명에 따르면 이 도구는 PS5용으로 컴파일된 실행 파일을 가져와 윈도우(PE)나 리눅스(ELF) 네이티브 포맷으로 재링크한다. 그리고 PS5 운영체제가 제공하던 시스템 라이브러리(prx)들의 기능을 자체적으로 재구현해서, 변환된 실행 파일이 이 구현체와 직접 동적 링크되도록 한다. 즉 별도의 에뮬레이션 레이어나 런타임 프로세스 없이, 변환된 게임이 운영체제 위에서 곧바로 네이티브 코드로 실행되는 구조다. 이 방식이 실제로 통한다면 에뮬레이션 방식보다 오버헤드가 훨씬 적을 수 있다.

시스템 라이브러리 87%라는 수치의 의미

프로젝트 설명에는 중요한 단서가 하나 붙어 있다. 87%라는 숫자는 PS5의 모든 시스템 함수 대비 구현률이 아니라, 프로젝트가 지금까지 core/libs/prx 경로에 ‘선언’해 놓은 함수들 중 구현된 비율이라는 점이다. 선언된 함수 자체가 아직 PS5 시스템 API 전체를 포괄하지 못했을 가능성이 크기 때문에, 실제 게임 호환성과 이 수치가 정비례하지는 않는다. 프로젝트 쪽도 “더 많은 함수가 선언될수록 전체 모수가 늘어난다”고 명시해, 이 수치를 진행 상황을 보여주는 지표 정도로 이해하는 게 맞다.

또한 예외 처리 방식도 눈여겨볼 부분이다. 아직 지원하지 않거나 예상치 못한 상태를 만나면 프로그램은 조용히 넘어가지 않고 std::runtime_error를 던지며 즉시 종료되도록 설계돼 있다. 에러 메시지는 표준 에러 출력으로 남는다. 안정성보다는 어떤 기능이 빠져 있는지 명확하게 드러내는 쪽을 택한 설계로 보인다.

셰이더 재컴파일과 컨트롤러 지원

그래픽 쪽에서는 PS5가 사용하는 셰이더를 분석해 SPIR-V로 다시 컴파일하는 셰이더 리컴파일러(shader recompiler)가 포함돼 있다. SPIR-V는 Vulkan 등에서 쓰이는 중간 표현 셰이더 언어로, 이를 통해 변환된 게임이 PC의 GPU 드라이버에서 처리될 수 있는 형태로 그래픽 코드를 바꿔주는 것으로 보인다. ANYPS5_ENABLE_SPIRV_TOOLS 옵션을 켜고 빌드하면 Spirv-Tools를 통해 변환된 결과물의 유효성을 검증할 수 있다고 설명돼 있다.

입력 장치 지원도 포함돼 있다. SDL로 매핑된 게임 컨트롤러라면 아날로그 스틱과 트리거까지 지원하며, anyps5-input.ini 파일을 통해 키보드와 마우스 조작도 커스터마이징할 수 있다. 어떤 게임이 실제로 동작하는지는 프로젝트가 별도로 관리하는 게임 호환성 목록에서 확인할 수 있다고 안내하고 있다.

라이선스와 법적 경계는 분명히 그어뒀다

이런 프로젝트가 늘 그렇듯 저작권 문제는 민감한 지점이다. AnyPS5는 상호운용성, 연구, 보존, 호환성 목적을 위한 프로젝트임을 명시하며, 저작권으로 보호되는 소프트웨어나 펌웨어, 암호화 키, 소니의 독점 라이브러리를 포함하거나 배포하지 않는다고 밝히고 있다. 즉 도구 자체는 변환 엔진만 제공할 뿐, PS5 게임 바이너리나 시스템 파일은 사용자가 합법적으로 소유한 것을 직접 준비해야 하는 구조다. 라이선스는 GPL v2를 따른다.

한국 개발자와 이용자가 눈여겨볼 지점

국내에서는 콘솔 게임의 PC 포팅이나 에뮬레이션에 관심 있는 개발자 커뮤니티를 중심으로 이 프로젝트가 공유될 가능성이 높다. 다만 현재는 초기 단계 오픈소스 프로젝트인 만큼, 당장 폭넓은 게임 호환성을 기대하기보다는 재링크 기반 포팅이라는 접근 방식 자체에 주목할 만하다. 저사양 GPU에서 2D 게임이 안정적으로 돌아간다는 사례는 공개됐지만, 복잡한 3D 대작 게임까지 이 방식이 확장될 수 있을지는 아직 검증되지 않았다.

빌드 방법이나 코드 스타일, 기여 가이드까지 문서화돼 있어 개발 역량이 있는 사람이라면 직접 소스를 받아 빌드해보고 기여할 수도 있는 구조다. 단, 저작권 있는 게임 바이너리를 다루는 작업인 만큼 본인이 합법적으로 소유한 타이틀로만 테스트하는 것이 전제돼야 한다는 점은 분명히 짚어둘 필요가 있다.

원문: AnyPS5: Port PS5 binaries to PC without emulation (87% system libraries mapped)


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다