TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 28 READS

에뮬레이션 없이 PS5 실행 파일을 PC로: AnyPS5가 택한 리링커 방식

에뮬레이션 없이 PS5 실행 파일을 PC로: AnyPS5가 택한 리링커 방식
SOURCE IMAGE · HACKER NEWS

콘솔 게임을 PC에서 돌리는 작업은 오랫동안 에뮬레이션의 영역이었다. 원래 하드웨어의 명령어와 시스템 호출을 가상 환경에서 흉내 내는 방식은 호환성 측면에서 장점이 있지만, 별도의 런타임 프로세스를 거치며 성능 손실이 생기고 구조가 복잡해진다. 최근 공개된 오픈소스 프로젝트 AnyPS5는 이와 다른 접근을 택했다. PS5용 실행 파일을 리눅스와 윈도우에서 돌아가는 네이티브 형식으로 변환하는 도구로, 에뮬레이션도, 별도 런타임 프로세스도 쓰지 않는다는 점을 전면에 내세운다.

에뮬레이션이 아니라 리링킹

AnyPS5의 핵심은 두 가지 구성 요소다. 하나는 실행 파일을 대상 시스템의 네이티브 포맷으로 바꾸는 리링커(relinker)이고, 다른 하나는 PS5의 시스템 prx 라이브러리를 동적 링킹에 맞게 재구현한 부분이다. 쉽게 말해 PS5 바이너리가 참조하는 시스템 함수들을 PC 쪽에서 실제로 동작하는 구현으로 연결해 주고, 실행 파일 자체도 PC가 바로 로드할 수 있는 형태로 재구성한다. 중간에서 명령어를 번역하는 계층이 없으므로 이론적으로는 에뮬레이터보다 오버헤드가 적다. 프로젝트가 '87% 시스템 라이브러리 매핑'을 제목에 내건 것도 이 라이브러리 재구현의 진척도를 가리킨다.

다만 이 수치는 오해의 소지가 있어 주의가 필요하다. 프로젝트 설명에 따르면 87%는 PS5의 모든 시스템 함수 대비 비율이 아니라, 현재까지 프로젝트가 파악해 core/libs/prx에 선언해 둔 함수들 중에서 구현된 비율이다. 전체 모수 자체가 선언된 함수가 늘어날수록 함께 커지는 구조이므로, 완성도를 가늠하는 절대 지표로 읽어서는 안 된다. 실제 게임이 호출하는 함수가 아직 선언조차 되지 않았다면 이 통계에는 잡히지 않는다.

실제로 돌아가는 범위

현재 공개된 성과는 제한적이지만 구체적이다. 2D 플랫포머 게임 'Dreaming Sarah'가 GTX 1050 Ti와 i5-7500(3.4GHz) 환경에서 안정적인 60fps로 구동된다. 비교적 가벼운 2D 게임이고 사양도 중급 이하라는 점에서, 대작 3D 타이틀까지 염두에 둔 상태는 아니라는 현실을 보여준다. 프로젝트는 별도의 게임 호환성 목록을 통해 테스트된 타이틀과 알려진 문제를 정리해 두고 있어, 특정 게임의 동작 여부는 그 목록을 확인하는 것이 정확하다.

그래픽 측면에서는 셰이더 리컴파일러가 SPIR-V를 성공적으로 생성한다고 밝혔다. ANYPS5_ENABLE_SPIRV_TOOLS 옵션을 켜고 빌드하면 Spirv-Tools로 생성 결과를 검증하도록 되어 있어, 벌컨 기반 그래픽 파이프라인으로의 변환 경로를 확보해 둔 셈이다. 입력 장치는 SDL로 매핑되는 게임 컨트롤러를 지원하며 아날로그 스틱과 트리거까지 처리한다. 키보드와 마우스는 anyps5-input.ini 파일로 매핑을 설정할 수 있다.

실무자가 눈여겨볼 지점

설계 관점에서 흥미로운 부분은 오류 처리 방침이다. 지원되지 않거나 예상치 못한 상태를 만나면 프로젝트는 예외 없이 std::runtime_error를 던지고, what() 메시지를 stderr에 출력한 뒤 프로세스를 종료한다. 애매한 상태에서 억지로 실행을 이어가지 않고 즉시 멈춰 세우는 방식은, 아직 미지의 함수와 미구현 경로가 많은 초기 단계 프로젝트에서 버그를 빠르게 드러내고 원인을 추적하기 위한 합리적 선택으로 볼 수 있다. 사용하는 쪽에서는 크래시가 곧 '아직 구현되지 않은 지점'이라는 신호가 된다.

법적·윤리적 선긋기도 분명하다. AnyPS5는 상호운용성, 연구, 보존, 호환성을 목적으로 하며 저작권이 있는 소프트웨어나 펌웨어, 암호화 키, 독점 라이브러리를 포함하거나 배포하거나 요구하지 않는다고 명시한다. 즉 도구 자체는 소니의 자산을 담고 있지 않고, 이 도구와 함께 사용할 바이너리를 합법적으로 확보하고 각 라이선스 조건에 맞게 쓸 책임은 전적으로 사용자에게 있다. 프로젝트 자체는 GPL v2(version 2 only) 라이선스를 따른다.

정리하면 AnyPS5는 콘솔 바이너리의 PC 이식에서 에뮬레이션 대신 네이티브 리링킹이라는 경로가 실제로 작동할 수 있음을 작은 사례로 보여주는 초기 단계 프로젝트다. 매핑 진척도 수치의 함의와 검증된 게임이 아직 가벼운 2D 타이틀 수준이라는 점을 감안하면 당장의 실용성보다는 접근 방식 자체의 가치가 크다. 콘솔 게임 보존이나 바이너리 변환 기법에 관심 있는 개발자라면 호환성 목록과 코드 구조를 살펴보며 기여 여지를 가늠해 볼 만하다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/boykopovar/AnyPS5
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...