나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-02-17 00:03:40

RetroArch

레트로아크에서 넘어옴

1. 개요2. 문제점
2.1. 복잡한 UI와 부족한 편의성
2.1.1. 해결책
2.2. 심각한 불안정성과 빈번한 튕김2.3. 고통스러운 초기 세팅 과정2.4. 에뮬레이션 커뮤니티의 옹호와 반박2.5. 왜 이렇게 문제를 방치하는가2.6. 개별 에뮬레이터의 쇠퇴2.7. 기타 문제점2.8. 해결된 문제점
3. 지원하는 플랫폼4. 지원하는 코어5. 파생 제품6. 기타

1. 개요

RetroArch는 Libretro API의 프론트엔드입니다.[1]

공식 홈페이지의 소개에 따르면, RetroArch는 에뮬레이터 , 게임 엔진, 미디어 플레이어를 위한 레트로 비디오 게임 에뮬레이션 프런트엔드이다.

무엇보다도, 매끄러운 그래픽 인터페이스를 통해 다양한 컴퓨터와 콘솔에서 고전 게임을 실행할 수 있으며, 설정도 통합되어 구성이 한 번에 완료되는 것이 강점이라고 소개되고 있다.

RetroArch에는 셰이더, 넷플레이, 되감기, 다음 프레임 응답 시간, 런어헤드, 기계 번역, 시각 장애인 접근성 기능 등 고급 기능이 탑재되어 있어 편리하다는 것 또한 강조된다.

RetroArch라는 프로그램을 간단히 설명하자면 레트로아크라는 한 프로그램으로 모든 기종의 롬을 돌릴 수 있게 되는 것이다. 기존 에뮬레이터들은 GBA를 실행시키려면 VisualBoyAdvance, 슈퍼 패미컴을 실행하려면 bsnes, 메가 드라이브Kega Fusion 식으로 각 기종 전용의 에뮬레이터를 준비해야만 했었다. 하지만 레트로아크는 다른 프로그램은 필요 없이, 레트로아크만으로 패미컴이건 플레이스테이션이건 자유롭게 게임을 구동할 수 있다.

RetroArch 자체는 에뮬레이터가 아닌데, 이는 RetroArch 자체에는 에뮬레이터 기능이 전무하기 때문이다. 에뮬레이터로서 기능하는 부분은 libretro라고 불리는 오픈소스 에뮬레이터 코어 집합이며 RetroArch는 이를 구동하는 libretro의 공식 프런트 엔드일 뿐이다.

libretro 코어란 쉽게 말하자면, bsnes, MAME, 파이널번 네오 같은 각 에뮬레이터를 하나의 API 라이브러리로 만든 단일 파일을 뜻한다. 오픈소스 에뮬레이터들은 대부분 libretro 프로젝트를 통해 코어화 되었으며, 오직 에뮬을 구동하기 위한 핵심기능만 갖는다. 대신, 기존 에뮬레이터의 GUI는 RetroArch같은 프런트 엔드에서 일임한다.[2]

이 같은 방식의 가장 큰 장점은 환경(플랫폼)의 영향을 덜 받는 것에 있다. 잘 설계된 API를 사용하면 환경이 달라져도 동일한 코드는 동일한 결과를 수행한다. 즉, 윈도우, 리눅스, JAVA, 안드로이드 등 각기 다른 환경이라도 프런트 엔드인 RetroArch만 제대로 기능한다면 이 API를 통해 해당 에뮬레이터를 손쉽게 이용할 수 있다.

이처럼 코어화된 수많은 에뮬레이터를 각기 다른 환경에서도 하나의 통합된 인터페이스로 구동시킬 수 있다는 것이 바로 RetroArch의 강점이다.

2. 문제점

2.1. 복잡한 UI와 부족한 편의성

레트로아크의 대표적인 문제점은 쓸데없이 복잡한 UI와 부족한 사용 편의성이다. 인터페이스가 난잡하고 분간이 안 되는 수십 개의 메뉴로 도배되어 있다. [3]

즉, 미칠 듯한 공돌이 마인드로 만들어진 불친절한 프로그램으로 사용자에 대한 배려가 그닥 없다. 거품경제 시절 일본 전자제품의 경우 비디오 플레이어가 매뉴얼만 수백 페이지의 책 한 권 분량이 되고 주요 기능만 수십가지는 되었는데 딱 그 느낌일 것이다.

일단 레트로아크는 게임을 켜는 것 자체가 다른 에뮬레이터보다 힘든 프로그램이다. 레트로아크 특유의 롬 실행 방식은 해괴하다고 불러도 과언이 아닐 정도다.

일반적인 에뮬레이터는 실행 후 롬 불러오기만 하면 게임을 돌릴 수 있다. 그러나 레트로아크는 그 자체로 에뮬레이터가 아니며 "프론트엔드"에 불과하기 때문에 코어, 즉 에뮬레이터를 설치하는 단계가 필요하다. 기종별로 코어는 하나만 있는 경우가 드물고, 보통 서너 개 이상, 극단적으로는 십여 개에 이르는 기종도 있기 때문에[4] 처음 사용하는 사람이라면 무슨 코어를 설치해야 할지 난감한 경우가 많다.

무엇보다도 롬 파일을 선택하면 곧바로 게임이 실행되는 단독 에뮬레이터들과 달리 레트로아크는 롬 실행시 코어를 선택해야 하는 경우가 대다수다.[5] 같은 시스템을 지원하는 코어를 두 개 이상 설치했거나[6] 같은 롬 파일 확장자를 사용하는 경우[7]에는 알맞은 코어를 사용자가 매번 직접 선택해야 한다.

아래는 레트로아크에서 .zip 형식의 롬을 돌릴 때 나오는 코어 선택창이다. 평범한 레트로아크 유저는 이 화면을 매번 마주치게 될 것이다. 처음 실행해 보는 롬이건 수십번 실행한 즐겨찾는 롬이건 간에 일일이 코어를 선택해 줘야 하는 것이 레트로아크다.

파일:코어선택.png

또한 레트로아크는 기종별 롬 폴더 지정 같은 옵션이 없다. 모든 기종이 하나의 롬 파일 경로를 공유한다. 때문에 기종별, 장르별로 게임을 구분해놓은 사용자의 경우 롬 불러오기시 게임을 찾는 과정이 번거롭다. 매번 루트에서부터 SFC, GBA 같은 폴더를 겨우겨우 찾아간 뒤에야 게임을 고를 수 있게 되는 것이다.

정리하자면 레트로아크에서 폴더 경로 탐색을 통한 롬 실행 방법은 다음과 같다. .zip 형식의 네오지오 롬을 실행하는 과정을 예로 들어보자.
1. Load Content 선택
2. 다양한 폴더 경로 선택지 중에서 Start Directory 골라서 선택
3. 롬 폴더 진입 및 파일 선택 [8]
4. 코어 선택 [9]
5. Browse Archive와 Load Archive 중에서 후자 선택 [10][11]

레트로아크를 처음 접해보는 유저는 위 과정이 미칠 듯이 귀찮게 느껴질 것이다. 위 프로세스에서 2, 4, 5는 불필요한 과정이다. 다른 에뮬레이터는 1, 3 단계만으로 게임을 실행할 수 있다.

코어를 선택해야만 한다면 기종별 코어와 폴더를 설정에서 미리 지정하게 하고 롬 실행시에는 따로 묻지 않는 것이 합리적인 방식이다. 유저가 코어 선택이 필요할 때만 코어 선택창을 찾아들어가게 하는 것이 훨씬 경제적인 것이다. 설령 악마성 드라큘라 XX[12] 언더커버 캅스같이[13] 구동이 까다로운 롬이라 특정 코어를 지정해야만 한다면 개별 게임 옵션에서 전용 코어를 지정하고 저장할 수 있게 하면 그만이다. 이렇게 UI 프로세스를 짜 놓으면 유저가 게임을 선택하는 절차가 매우 간편해진다. 그런데 레트로아크는 롬 실행시마다 질릴 정도로 코어 선택 여부를 물어본다.

이런 문제점을 해결하고 간편한 실행 환경을 만들려면 게임 롬을 스캔하여 플레이리스트라는 즐겨찾기 시스템을 따로 만들어줘야 한다. 플레이리스트는 일종의 바로가기인데, 스캔을 통해 플레이리스트에 등록된 게임은 코어 선택 없이 바로 게임을 실행할 수 있게 된다. 롬의 정보 및 실행 코어를 미리 저장해두기에 가능한 일.

그러나 플레이리스트 스캔을 장시간 돌려봐도 유저가 가진 롬 대다수가 스캔에 잡히지 않는 골치아픈 현상을 발견하게 된다. 원인은 레트로아크 데이터베이스의 공식 롬파일 정보와 유저가 가진 롬파일 정보, CRC32가 일치하지 않아서이다.

유저가 보유한 롬이 10여년 전에 통용되던 구버전의 롬, 오래된 덤프여서일수도 있고 한글패치 혹은 영문패치 버전이어서일 수도 있다. 이러면 플레이리스트를 만들기 위해 필요한 롬 스캔이 안된다. 최소한 한글패치가 적용되어 파일정보가 수정된 롬파일은 무조건 자동스캔에서 탈락되는 게 확정이다.

즉, 플레이리스트로 게임을 하려면 어떤 건 스캔이 되고 어떤 건 스캔이 안 되는 중구난방의 롬파일들을 통일, 교체시켜주거나 스캔이 안 되는 롬을 플레이리스트 파일 수정을 통해 수동으로 등록해줘야 한다. 레트로아크 프로그램 자체적으로 플레이리스트 수동편집을 지원하지 않으므로 메모장 같은 편집기를 써야만 한다.

메모장을 통한 플레이리스트 파일의 수정 또한 까다로운 집중력을 요구하는 반복 작업이다. 기존에 코딩된 양식에 맞게 롬파일 경로나 이미지 경로, 사용할 코어 등을 올바르게 복사 붙여넣기해야 한다. 롬이 100여개만 넘어가도 숨이 막히는 수준의 노가다다. 그래서 보통은 편집 없이 최신 롬셋에서 파일을 하나하나 가져와 기존 롬을 교체하게 된다. 롬셋 교체건 플레이리스트 수동 편집이건 레트로아크를 제대로 쓰기 위해서는 반드시 해줘야 하는 작업이다.

일반적인 UI 디자인 상식을 가진 프로그램이라면 오토스캔이 안 되는 게임은 유저가 레트로아크 메뉴를 통해 직접 플레이리스트에 등록할 수 있게 지원했을 것이다. 그러나 절대로 레트로아크에 그런 상식을 바라면 안된다. 반드시 실망하고 좌절하게 될 것이다.

버전 업데이트가 되면서 수동 폴더스캔이 생기긴 했지만 여전히 불편하다. 플레이리스트 목록 편집, 선택한 롬만 추가 같은 기능이 없기 때문이다. 즉, 레트로아크가 자동으로 생성하는 플레이리스트는 유저가 메모장을 쓰지 않고선 부분적으로 수정할 방법이 없다. 또한 플레이리스트 스캔 시 호환이 안 되는 롬은 붉은색으로 표시하거나 따로 불량 파일 리스트를 제시하는 것 같은 편의성 기능도 마땅히 있어야 하지만 없다. 그러니 스캔 과정에서 어떤 롬이 플레이리스트에 빠졌는지 알 수 없으며 일일이 누락 파일을 찾아내야만 한다.

상술된 해괴한 롬 실행 방식은 레트로아크가 호불호가 갈리는 가장 치명적인 원인이라고 할 수 있다. 폴더 경로를 찾아가자니 루트부터 찾아가느라 게임 찾기도 힘들고 에뮬 코어도 반복해서 물어보는 1번 방식, 한땀한땀 롬 정보를 기입해가며 플레이리스트를 만드는 2번 방식 모두 환장하게 짜증나는 것이 현실이다. 사실상 출시된 에뮬레이터/프론트엔드 중에 레트로아크는 롬 실행하기가 가장 까다로운 프로그램이라고 볼 수 있다.

2.1.1. 해결책

코어가 너무 많이 제공되어 사용자를 혼란스럽게 만들고 선택창이 무조건 뜨는 부분의 해결책은 간단하다. 실행 테스트를 통해 본인이 사용할 코어 하나만 남기는 것이 가장 쉬운 해결책이다. 2019년대에 릴리즈된 1.7x 버전대의 레트로아크까지는 설치된 코어가 1개라도 무조건 코어 선택창이 뜨게 되어 있었다. 그러나 업데이트 이후 자동 코어 선택기능이 생겼다. 기종별 지원 코어가 1개이면 바로 해당 코어를 통해 롬이 실행되니 많이 편해졌다.

본 문서 하단에 몇몇 기종의 코어 선택에 대한 설명을 참조하자. 혹은 인터넷 검색으로 각각의 코어의 특징(정확도, 요구 사양, 부가 기능)을 알고, 본인의 상황에 가장 알맞은 코어를 선택하면 된다. 단독 에뮬레이터를 사용할 경우 무슨 에뮬레이터를 사용할지 결정하는 과정과 똑같다.

그러나 다기종 지원 코어의 경우 자동 코어 선택 기능이 무시되는 경우가 많다. 대표적으로 마스터시스템이나 게임보이 롬 실행시가 그렇다. 해당 기종의 전용 코어 뿐만 아니라 Picodrive, mgba같은 다기종 지원 코어도 게임 실행이 가능하므로, 둘 중의 하나를 고르는 선택창이 뜨게 된다. 다기종을 지원할 수 밖에 없는 아케이드 기종의 코어도 이런 문제가 많다.

코어를 1개만 남긴다는 것도 100퍼센트의 해결책은 아닌 셈. 게임보이 기종 전용 코어의 편리함을 포기하고 다기종 코어인 mgba만 남기는 식으로 앞뒤보지말고 싹 다 쳐내야 코어 선택창 없이 바로 게임을 실행할 수 있다. 그렇게 코어를 남길 것만 남긴 상태에서도 .bin이나 .zip 같이 여러 기종에서 공통적으로 쓰는 확장자의 롬파일을 실행할 때는 선택창이 무조건 뜬다.[14] 결국 레트로아크의 코어 선택 UI는 아직까지는 개선이 미비한 상태이며 갈길이 먼 부분이다.

코어 설치 이후 레트로아크를 편하게 쓰기 위해서는 플레이리스트 작성이 필수에 가깝다. 그러나 프로그램 자체적으로 플레이리스트 편집 기능을 지원하지 않는 게 뼈아프다.

그나마 조금이라도 플레이리스트 수동 편집을 편하게 하기 위해 RetroArch Playlist Buddy라는 외부 프로그램을 쓸 수 있다. 레트로아크 스캔 기능에서 안 잡히는 롬이 매우 많은 게 현실이라 대부분의 유저가 이 프로그램을 사용하고 있다. 플레이리스트 작성 방식은 다음 링크에서 대략적인 느낌을 알 수 있다.

레트로아크는 사용자 편의 기능이 빈약하기 때문에 본인이 대규모로 플레이리스트를 편집할 자신이 없다면 '권장 방식'으로 사용하는 게 최선이다. 올바른 롬셋을 이용하고, 소프트패치 기능을 적극적으로 이용하는 것.

세팅 과정이 괴롭겠지만, 기존 보유 롬을 그대로 쓰지 말고 레트로아크 커뮤니티에서 권장하는 최신 롬셋으로 파일을 모두 교체하는 것이 편할 것이다. 한글, 영문 패치 롬이나 해킹롬의 경우 소프트패치 기능을 사용하자. 패치된 롬의 경우, 대부분의 레트로아크 코어에서는 소프트패치, 즉 원본 롬파일과 패치 파일을 함께 넣어 두기만 하면 에뮬레이터가 롬 파일을 불러들일 때 알아서 패치를 적용해 준다. 원본 파일은 건드리지 않는 방식이니 무리없이 스캔이 된다. 이렇게 권장 롬셋을 사용하면 레트로아크 자체적으로 플레이리스트 생성이 원활히 되니 수작업을 하지 않아도 된다.

결국 자신의 사용 습관에 맞게 설정하거나, 자신의 사용습관을 바꾸기까지의 과정이 진입 장벽으로 작용하고, 레트로아크의 복잡한 기능과 부실한 UI가 그 장벽을 높이는 꼴이다. 그나마 개발자들도 유저 인터페이스를 개선하는 노력을 꾸준히 하고는 있다.[15] [16]

2.2. 심각한 불안정성과 빈번한 튕김

무엇보다도 결정적인 단점은 PC, PS, 스위치 등 여러 플랫폼을 지원하다보니 플랫폼 별 안정성이 천차만별이라는 것이다. 평범하게 게임을 돌렸는데 에러 메시지와 함께 기계가 리붓되는 상황이 자주 일어난다. 구글에 레트로아크 튕김, RetroArch crash 같은 검색어를 쳐보면 온갖 튕김 현상 사례를 발견할 수 있을 것이다.

또한 문제가 발생했을 시, 롬셋 버전이 다르다거나 혹은 해당 기종의 바이오스가 없는 것 같이 높은 확률로 일어날 법한 평범한 에러인데도 어떤 오류인지 안내 메시지 하나 없이 프로그램이 튕겨버린다. 딱히 프로그램 자체가 튕길 상황이 전혀 아닌데 툭하면 튕겨버리니 지나치게 불안정하다. 무엇보다 에러 원인 표시가 없으니 문제 해결이 어렵다. 프로그램의 기본인 예외처리가 부실한 것이다. 코어 정보 메뉴를 찾아들어가면 에러의 원인을 찾아볼 수 있지만 불친절하다는 건 변하지 않는다.

처음 써보는 사용자는 분명 타 에뮬에서는 접할 수 없었을 오만가지 문제점에 마주치게 되는데 에러 원인 표시 하나 없이 툭 하고 튕겨버리는 건 심각한 마이너스 포인트다. 일단 해외 포럼이나 GitHub의 레트로아크 이슈 게시판, 혹은 레딧 게시글을 뒤지면 해결책을 찾을 수 있긴 하다.[17] 국내 웹에서는 기본적인 사용법 및 설치법 외에 예외적 에러 사항에 대한 정보는 전혀 없으니 반드시 해외 포럼을 구글링으로 발품팔아가며 정보를 구해야 한다.

이처럼 레트로아크는 끝없는 오류를 잡아내며 프로그램이 튕기지 않을 때까지 길들여야 하는 정신적 소모가 강한 프로그램이다.

에러 하나가 발생할때마다 기를 쓰고 해외 포럼을 뒤져가며 해결책을 찾아내야 하는데, 그걸 해결하고 나면 다른 에러가 또 튀어나온다. 레트로아크는 첫 설치시 사용이 지독하게 불편한 상태이고 불필요한 메뉴도 너벌려진 상태이므로 사용자 스스로 설정을 조정하고 안 쓰는 메뉴를 숨기는 과정이 필연적이다. 그런데 레트로아크는 별것도 아닌 설정 하나 잘못 만지면 프로그램이 그대로 뻗어버린다.

언어를 한국어로 변경했을 뿐인데 그래픽 드라이버와 충돌이 일어나 프로그램이 크래쉬되는 경우, 또는 메뉴 UI를 마음에 드는 걸로 바꿨을 뿐인데 프로그램이 뻗어버릴 수도 있다. 소프트패치 기능이 도입되었다고 해서 언어패치 파일을 넣어 보았는데 프로그램이 뻗을 수도 있다. 마음에 드는 필터나 셰이더를 적용해 보았는데 프로그램이 뻗기도 한다. 해당 케이스들 외에도 레트로아크는 온갖 종류의 크래쉬 요인들이 곳곳에 깔려있다.

또 에러가 명확한 조건으로 보편적으로 발생한다면 각을 잡고 고치기라도 할텐데,[18] 대단히 한정적인 상황에서 에러가 발생할 때도 많다. 비디오 필터의 경우, 대부분 기종에서 필터가 잘 작동되는데 세가 새턴 코어에서만 크래쉬되는 식으로 말이다. 이러니 레트로아크는 고된 작업 끝에 세팅을 다 마쳤다고 느낄지라도 사용중에 불의의 일격을 맞는 경우가 허다하다.

요약하자면 레트로아크의 설정창은 사실상 지뢰밭이다. 별 생각없이 이것저것 설정을 고치고 cfg를 저장했는데 그 뒤 레트로아크가 실행만 하면 뻗는 상태가 되어버리기 일쑤다. 이러면 프로그램을 지워버리고 재설치하는게 빠르다. 이런 상황을 맞닥뜨리기 싫으면 설정을 하나씩만 고친 뒤 세이브하고 테스트하는걸 반복해야 한다.

그 외에 게임의 프레임이 지나치게 느려지는 문제도 빈번하다. 일반적인 단기종 에뮬레이터들의 경우 에뮬레이션의 역사가 오래되다 보니 higan처럼 실기 그대로를 재현하는 초정밀 구현은 못하더라도 웬만한 게임은 안정적으로 구동시켜준다. 그런데 레트로아크에서는 사이쿄 사의 유명 게임들[19]이나 고전 MAME 게임, CPS1, 슈퍼 패미컴 같은 고전 기종들의 에뮬레이션도 프레임이 지나치게 떨어지거나 실행 자체가 안되고 기기가 리붓되는 현상이 발생하곤 한다.[20]

이런 사례는 해당 플랫폼 레트로아크의 최신 버전 코어에서 아직 그 게임을 지원하지 않거나, 혹은 잘못된 코어 선택, 롬셋 버전이 잘못되거나 바이오스가 없는 게 원인일 수도 있다. 그러나 대체로 뚜렷한 원인이 있다기보다 retroarch.cfg 파일이 꼬였다거나 해서 해결이 어려운 케이스일 때가 많다.

사실 정상적인 에뮬레이터가 펜티엄 1 시대에도 잘 돌아가던 CPS1 게임들을 못 돌릴리가 없고 레트로아크도 그게 정상이다. 그러나 레트로아크 특성상 cfg 파일이 꼬이면 지극히 당연히 잘 돌아가야 하는 게임도 툭 하면 튕기거나 슬로우모션으로 돌아가게 되는 것. 레트로아크의 많은 문제가 레트로아크 설정이 저장되는 retroarch.cfg 파일의 오류에서 기인한다.[21] 따라서 레트로아크 사용시 정상 가동 상황의 원본 cfg를 백업해 놓는 것이 필수다. 잘 되던 게임이 갑자기 실행 시 튕기는 경우도 있고 혹은 문제가 있는 비디오 필터를 적용한 상태에서 설정이 저장되어 버리면 무조건 튕기거나 프리징되는 경우가 다반사이므로 cfg 파일 덮어쓰기가 가장 간편한 답인 것.

이렇게 게임 실행이 안 되고 튕길 때 cfg 파일의 복구 외에도 레트로아크의 버전을 바꿔서 재설치하거나 롬셋의 변경, 코어를 바꿔가며 실행하기 등을 시도해보면 해결될 수도 있긴 하다. 그러나 라이트한 사용자 입장에서는 게임 하나 돌리는데 4~5개씩 되는 알 수 없는 코어를 일일이 실행해가며 테스트해본다는 것 자체가 좌절스럽다. 애초에 다른 에뮬레이터는 문제없이 돌리는 롬들인데 레트로아크에서는 걸핏하면 안될 수도 있다는 것이 스트레스다.

아직까지는 게임마다 프레임 같은 퍼포먼스가 천차만별이므로 해당 플랫폼의 커뮤니티나 유튜브 등에서 보유 기기의 레트로아크에서 구동이 원활한 코어, 롬셋 리스트를 알아보는 것이 해결책이다.

사실 이렇게 지나치게 많은 코어를 제공할 거라면, 어떤 코어가 어느 기종과 게임에 적합한지, 어떤 사양의 기기와 롬셋 버전에 최적화되었는지 안내가 필수적으로 제공되어야 한다. 프로그램 내의 코어 다운로드 및 선택 메뉴에서 항상 설명 텍스트가 제공되어야 하는 것이다.

그러나 레트로아크답게 그런 안내는 전혀 없다. 사실 위 문단에는 해외 커뮤니티나 포럼을 알아보라 되어 있지만, 정보를 긁어봐야 제대로 참고할 만한 정립된 안내는 찾기 힘들다. 사용자가 맨땅에 헤딩해가며 알맞는 코어와 롬셋을 직접 찾아야 한다.

그나마 일부 플랫폼에서는 그럭저럭 안정적으로 실행되는 레트로아크 버전도 있긴 하다. PC와 퀄컴 스냅드래곤 채택 안드로이드 정도에서 돌리는 레트로아크는 대부분의 에뮬 코어를 잘 돌려준다.[22] 그러나 그 외의 기종의 레트로아크에선 3DS, 플레이스테이션 클래식 같은 유명한 플랫폼에서도 위에서 언급한 알 수 없는 튕김같은 불안정 요소를 체험하게 되는 부분이 많다.

2.3. 고통스러운 초기 세팅 과정

위 항목들에서 언급된 단점으로 인해 레트로아크는 여러 모로 호불호가 갈리는 프로그램이다. 이론적으로 따진다면야 레트로아크는 다른 개별 기종 에뮬레이터를 모조리 무쓸모로 만드는 대단히 강력한 프로그램이 맞긴 하다. 초반의 진입장벽을 이겨내고 자신에게 특화된 세팅, 롬셋의 구성과 플레이리스트, 섬네일까지 완성하고 나면 레트로아크는 매우 폭넓은 활용이 가능하게 된다.

하지만 그건 어디까지나 이론일 뿐이고 현실은 많이 다르다. 형편없는 UI 프로세스와 불안정성에 더해 고난의 행군스러운 세팅 과정 또한 유저를 기다리고 있는 것이다. 레트로아크를 처음 접해보는 유저의 경우 최소한 5~6시간 정도는 세팅에만 투자해야 한다. 설치한다고 끝이 아닌 것.

레트로아크 프로그램 설치와 코어의 세팅, 이후 사용 중 오류 발생 시의 재설치, 기종별 바이오스 파일 수집과 배치, 기종별 최신 롬셋 구하기와 길고 긴 다운로드 시간 소요, 플레이리스트 오토 스캔 시 긴 소요시간, 개인 보유 롬 중 스캔 안 잡히거나 실행 안 되는 구형 롬파일은 최신 버전 롬으로 교체, 스캔 안 잡히는 한글패치 게임 수작업으로 플레이리스트 작성, 섬네일 이미지 업데이트 및 누락된 섬네일 수작업으로 생성 후 플레이리스트 기재[23], 기종별 / 코어별 게임 실행 테스트 및 각종 레트로아크 옵션 기능의 빈번한 테스트, 각종 렉, 튕김 현상을 몸소 겪으며 해결하기, 구글링 및 해외 포럼 검색 등...

설치하고 3시간쯤 레트로아크를 만진 후 이젠 어느 정도 됐다는 생각이 든다해도 쓰다 보면 문제가 또 발생하니 결국 추가적인 점검시간이 더 들어가게 되어 있다. 기본 세팅이 5~6시간이라는 것도 보유한 롬 파일이 적고 게임에 매니악한 관심이 없는 유저, 유명한 오락실 아케이드 게임만 추억회상용으로 만지작거리는 유저나 이 정도일 것이다. 현실적으로 레트로아크 세팅 시간이 겨우 이 정도일 가능성은 희박하다.

라이트 유저의 경우 레트로아크 커뮤니티에서 추천하는 롬셋 중에서 CPS, 네오지오 롬셋 같은 것을 그냥 때려박으면 오토스캔으로 플레이리스트가 잘 만들어질테고 플레이리스트 수작업 분량이 그다지 많지 않다. 그러니 일단 플레이리스트를 띄운 뒤 튕기지 않고 게임만 돌아가게 만들면 할 일은 다 한 것이다.

그러나 기존의 롬셋을 모조리 때려박지 않고 본인 전용의 기종별 게임 컬렉션을 가지고 있는 유저는 플레이리스트 작업만 해도 한세월이다. 최소한 한글패치된 롬은 절대로 오토스캔이 되지 않으므로 보유한 한글패치 게임이 200개라면 200개 모두 일일이 수작업으로 플레이리스트를 수정해야 한다.[24] [25] 한글패치 게임만 이정도고 보유 컬렉션 중 상당수가 스캔에 잡히지 않는 것을 감안해야하니 아예 모조리 수작업으로 플레이리스트를 작성해야 한다고 각오해야 하는 수준이다. 또는 최신 롬셋에서 기존 보유 롬파일들만 골라서 가져옴으로서 덮어쓰기 하는 방식, 즉 기존 컬렉션 전체를 최신 버전으로 업데이트 하는 방식도 쓸 수 있다. 어느쪽이든 눈알이 뽑히는 경험을 하게 된다.

혹자는 스캔 안 되는 기존 보유 롬을 쓰는 대신, 레트로아크 권장 최신 롬셋을 구해서 그대로 복사 붙여넣기 하면 되는거 아니냐고 생각할 수도 있을 것이다. 그러면 기존 보유 롬을 갱신할 필요가 없고 플레이리스트를 수동편집할 일도 없긴 하다. 그러나 그렇게 무작정 복붙을 해버리면 게임 구동 환경을 거하게 망치는 꼴이다.

레트로게임에 조예가 있는 게이머라면 네오지오CPS1, CPS2 같이 게임 수가 적고 대부분이 명작인 아케이드 기종 외에는 대체로 롬셋을 때려박지 않는 편이다. 해당 기종의 올롬셋을 그대로 쓰기보다는 본인 취향인 명작 게임의 롬만 엄선해서 롬 폴더에 집어넣는 경우가 많다. 슈퍼 패미컴이나 게임보이 어드밴스, MAME 같이 발매 게임이 많은 인기 기종에서 롬셋을 그대로 복붙하면, 한번 해보지도 않을 각종 가비지 게임이나 해킹롬, 클론롬까지 수천개 딸려들어오기 마련이다. 이렇게 되면 게임 실행 한번 하려면 리스트를 줄창 뒤져야 한다. 무엇보다도 기종마다 올롬셋을 무작정 집어넣으면 기기의 용량이 남아날 리가 없기도 하다.

타 에뮬레이터라면 게임 개수가 지나치게 많을지라도 폴더식 분류라도 될 것이다. 기종, 장르별, 알파벳별 폴더 구분을 통해 롬을 분류해두면 쉽게 원하는 게임을 찾을 수 있다. 그러나 레트로아크처럼 플레이리스트로 게임을 고르는 게 권장되는 환경에서 기종마다 게임이 수천개씩 되면 답이 없다. 플레이리스트 UI는 알파벳, 장르 분류도 없이 기종별로 게임을 무작정 쑤셔넣는 형태라 게임 리스트가 끝도 없이 쏟아지게 된다. 그야말로 팔만대장경을 넘겨가며 게임 찾는 기분이 들 것이다.[26]

사실 플레이리스트라는 구동 방식 자체가 절대 다수의 게임을 살펴보고 실행하는데 적합한 방식이 아니다. [27] 플레이리스트는 그저 기종별로만 파일을 분류하고 세부 폴더나 카테고리 분류가 아예 없는 상태에서, 수천개씩 쏟아지는 게임 리스트를 방향키로 하나씩 넘기는 구조다. 그러니 원하는 게임을 찾는 게 너무 힘들며, 바로 가고싶은 위치로 가거나 전체적 리스트를 파악하기가 힘들다.

따라서 플레이리스트로 게임을 구동할 시 올롬셋에서 할 게임만 골라서 정리하는 작업이 필요하다. 그러나 수십개 기종의 올롬셋, 만개를 넘어가는 롬들 속에서 원하는 게임을 기종별로 분류하는건 그야말로 노가다의 연속이다. [28] [29]

그러므로 라이트 유저 아닌, 자기 취향의 게임 컬렉션을 가진 일반적인 레트로 게이머가 레트로아크를 세팅하는 경우라면, 스캔 안 되는 기존 보유 롬파일의 갱신, 플레이리스트 작성 문제만 해결하는 것만 해도 대공사가 된다.

플레이리스트를 작성하지 않고 불편하나마 폴더 탐색으로 롬을 실행할 수도 있긴 하다. 그러나 그건 둘째치고 레트로아크는 롬셋 버전이 조금이라도 잘못되면[30] 폭풍 에러 발생과 함께 프로그램 자체가 크래쉬되므로 롬 선별 자체는 무조건 해야 하는 작업이다. 즉 레트로아크에서 필연적으로 발생하는 튕김 문제[31]와 롬셋 테스트까지 해결하려면 주말을 다 쏟아부어도 시간이 부족할 것이다.

2.4. 에뮬레이션 커뮤니티의 옹호와 반박


이같은 레트로아크의 고된 세팅 과정, 불안정성, 불편한 UI, 까다로운 롬 실행 방식 등의 무수한 단점들을 혐오하는 유저들은 개별 에뮬레이터로 돌아서는 경우가 많다.

기존 레트로아크 유저들은 프론트엔드의 통합성이니 모든 에뮬레이터 프로그램을 한 자리에 담았고 레트로아크로 다 할 수 있다느니 셰이더 기능이 뛰어나다느니[32]하는 부분을 극찬하며 실드를 친다. 혹은 강력한 만큼 유저가 공부해야 하는 프로그램이다, 조금만 찾아보면 사용이 그렇게 어렵지도 않다면서 유저에게 탓을 돌리기도 한다.

하지만 그런건 둘째치고 레트로아크는 무엇보다도 실행 과정이 지나치게 개판이다. bsnesSnes9x의 성능을 코어라는 형태로 똑같이 가져온다 한들 게임을 구동하는 UI 프로세스는 완전히 다르다. 구동 퍼포먼스는 같을지라도 사용 경험으로 따지면 같은 Snes9x가 아닌 것이다.

일단 기존 에뮬레이터들은 별 생각 없이 롬을 틀면 게임이 돌아간다. 또한 이유 없이 프로그램이 튕기지도 않는다. 그러므로 레트로아크가 있다고 해서 Snes9x 같은 개별 에뮬레이터가 쓸모없다고 주장하는 것은 아직까진 현실과 맞지 않는 얘기라는 것.

한편으로는 RetroArch는 기본적인 에뮬레이션 코어를 담당하는 엔진 격의 프론트엔드이며, 레트로아크의 뼈대를 활용한 파생 프로그램들이 게임 관리 및 실행을 전담한다는 옹호 주장도 있다.

이러한 주장에 따르면, 다양한 통합 에뮬레이션 프론트엔드들, EmulationStation, ES-DE, ArkOS, EmuDeck 등등의 종류가 다양한 프론트엔드들이 레트로아크에 기반하였으며, 각기 다른 게임 관리법과 레트로아크보다 상대적으로 편리한 UX 및 게임 실행을 지원한다는 주장이다. [33] [34]

레트로아크는 코어 개발에 주력하며, 게임 관리 및 실행은 레트로아크를 활용하는 각자의 자유에 맡긴다는 것이 옹호자들의 논리다.

그러니 레트로아크의 게임 관리 기능의 불편함, UI, UX의 수준낮음은 문제가 아니라는 것이다.

그러나 이러한 옹호 주장도 레트로아크의 근본적 문제를 커버하지는 못하고 있다. 레트로아크의 문제는 단순히 게임 관리의 부실이 아니다. 레트로아크는 앱 UI부터 게임 실행, 설정까지 프로그램의 모든 총체적 요소가 사용자의 불편, 불쾌감을 자아내는 것이다.

옹호자들의 주장처럼 레트로아크는 단순히 전문가 유저의 커스텀
유도 및 다른 파생 프론트엔드에 기반을 제공하기 위해 뼈대만 있는 프론트엔드가 아니다.

레트로아크는 자체적 게임 실행 기능을 갖추었으며, 자체적 UI를 가진 완전한 프로그램이다. 거기에 게임을 직접 즐기는 유저를 겨냥한 도전 과제 지원 등 플레이용 에뮬레이터로서의 목적성과 완전한 기능을 갖추고 있다. 그런데도 레트로아크는 상기된 모든 치명적 문제를 몇년간 방치해왔다.

그렇다고 레트로아크가 전문가 전용 프로그램이니 일반 유저는 파생 프로그램을 권장한다는 안내를 하는 것도 아니다. 사실상 레트로아크는 현시점에서 가장 대중적이고 널리 쓰이는 에뮬레이션 프로그램 중 하나인 것이다.

그런데도 레트로아크 개발진은 코어 등의 성능에만 집착하며 UI, UX를 난해하고 사용자 적대적으로 방치한다는 부분은 국내 뿐만 아니라 해외 커뮤니티에서도 공통적으로 나오는 지적이다.

2.5. 왜 이렇게 문제를 방치하는가


현재 해외 커뮤니티에서는 레트로아크에 대해 불만을 성토하고 UI, UX가 끔찍하다고 호소하는 글이 몇년 전부터 줄기차게 이어지고 있다. 그러나 레트로아크 개발진은 이러한 호소를 거의 무시하고 있는 상황이다.

레트로아크 개발진인 Libretro 팀의 독단적 운영, 특히 리더 Daniel De Matteis의 오만한 태도와 아집은 많은 비판을 받고 있다. 레트로아크 개발진 내의 갈등으로 인한 주요 개발자 탈퇴도 비일비재했다.

레딧 비판 게시물 링크

위 링크는 Daniel De Matteis와 레트로아크에 대해 제기된 수많은 비판 중 하나이다. 링크의 글 작성자는 기존 레트로아크팀의 개발자로서, Matteis가 스스로 이해하지도 못하는 코드를 마구 건드리고 집어넣어 악화시키고 막무가내식 지시를 해 레트로아크 넷플레이를 크게 망가뜨렸다며 호소한다.

이런 해외 커뮤니티의 비판자들은 레트로아크는 컨셉만 그럴싸할뿐, 프로그램적으로 엉터리 스파게티 코드가 뒤섞인 재앙이며 최악의 UX와 UI를 가졌다며 줄기차게 비판하고 있다.

따라서 해외 유저들은 가스라이팅과 학대를 일삼는 리더가 만드는 레트로아크는 망해버리고, 레트로아크를 포크해 본래의 방향성만 본따 추구하는 대체 프로젝트가 흥하기를 간절히 바라고 있는 상태이다.

이처럼 레트로아크 개발진은 내부 개발진과의 갈등에 이어 타 에뮬레이터 개발자, 오픈소스 프로젝트와의 협력에서도 거친 태도로 갈등을 많이 빚는다는 평을 받기도 했다. [35]

이러한 레트로아크 개발진의 마인드는 '올바른 권장 방식으로 우리 프로그램을 사용하라. 그게 싫으면 쓰지 마라' 라고 요약할 수 있다.

구체적인 레트로아크의 개발 철학은, '콘솔과 같은 사용자 경험과 감성 전달', '레트로아크가 지정한 공식 롬 데이터베이스에 의거한 표준화된 롬 사용을 통한 어느 플랫폼에서나 동일한 실행'으로 정리된다.

레트로아크 개발진이 플레이리스트를 고집하는 이유가 여기에서 드러난다. Libretro 팀은 PS4, 스위치에서와 같은 방식으로, 화면에 게임 아이콘, 섬네일 이미지가 크게 뜨는 방식의 UI가 최상이라 생각하는 것이다. 그런데 기존 콘솔은 게임 용량이 큰데 비해 기기 용량은 작으므로 유저 대부분이 게임 보유수가 적다. 따라서 게임수가 적게, 이미지가 크게 표시되는 플레이리스트 방식은 콘솔에서는 분명 적합한 방식이다.

하지만 레트로아크는 롬 개수가 수천개를 넘어가는 기종들 및 롬파일들 다수를 동시에 실행하고 관리하는 구조인데, 그런데도 개발진은 에뮬레이터에 전혀 적합하지 않은 UI를 고수하는 아집을 부리고 있다. 그래서 레트로아크의 플레이리스트는 게임을 찾기 너무 불편하고 실행도 어려운데, 이미지 중심의 UI는 겉보기에 그럴싸하니 외양만 예쁜 쓰레기로 전락하고 있다.

콘솔이나 컨트롤러를 쓰는 에뮬레이터 유저들에게야 플레이리스트가 차선책이 될 수 있겠지만, 마우스로 편리하게 탐색기 파일 관리를 사용 가능한 PC 유저들마저 대안이 있음에도 콘솔식 조작과 UI를 강요당하는 꼴이다.

심지어 기존 콘솔에 레트로아크를 비교하기도 미안한 것이, 기존 콘솔들은 전세대 콘솔인 3DS만 해도 유저가 자유롭게 폴더를 만들어 게임을 정리하고, 카테고리 장르 별로 게임을 편리하게 분류할 수 있었다. 그러나 이러한 답안이 10여년 전부터 나와 있음에도 불구하고 레트로아크 개발진은 전혀 관심을 두고 있지 않다.

현 세대 콘솔의 플레이리스트란 폴더 정리가 뒷받침될 때에나 편리한 것이며, 세부 폴더 정리 없는 플레이리스트 시스템은 기기 별 게임 보유 수가 적은 현세대 콘솔에서도 너무나 불편한 방식인데도 말이다.

심지어 그들이 주장하는 '모든 플랫폼에서의 동일한 롬 실행을 위해 대안을 거부한다'는 논리와 폴더 정리 UI는 아무 관련이 없는 문제이기도 하다. 레트로아크 개발진은 본인들이 좋아하는 콘솔 스타일의 신규 UI 디자인 정도는 언제든지 추가해오곤 했던 것이다.

거기에 개발진은 유저가 롬 파일을 직접 경로 탐색으로 실행하지도 못하게 그 부분의 UI를 사용자 적대적으로 불편하게 만들어 놓았다. 따라서 유저는 데이터베이스에 의한 플레이리스트 스캔 및 실행을 강요당하며, 또한 플레이리스트에서 제외된 롬은 메모장 수정 등록을 하게 됨으로써 심각한 수작업 혹사를 강요당한다.

레트로아크 개발진이 주장하듯 그들의 롬 데이터베이스는 결코 완전무결한 것이 아니다. 너무나 많은 정상적인 롬이 예외로 제외되는데, 특히 아케이드 게임의 다양한 언어의 리전 롬 버전들이 모조리 제외당한다. 게임 개발사 자국의 원본 롬, 일본어나 영어 롬만이 표준으로 인정되고 개발사가 직접 제작한 공식 각국 언어 버전이나 한국어 버전이 있더라도 플레이리스트로 전혀 등록할 수가 없는 것이다.[36]

이러한 부분들로 인해 개발진이 자신들이 생각하는 '표준 방식' 외의 게임 실행방식을 극도로 불호하며 통제하고 싶어하는 심리 때문에 현재의 최악의 UI를 방치한다며 비판하는 여론이 팽배해 있다.

상술했듯 레트로아크 특유의 끔찍한 UI, UX를 비판하고 개선을 호소하는 건설적 대안 제시는 수없이 이루어져왔다. 그러나 개발진은 이 수많은 호소를 묵살해왔는데 그럴 때마다 대는 논리란, '우리는 오픈소스 프로젝트일 뿐 상업용 소프트웨어가 아니다', '사용자 편의성은 우리의 주요 목표가 아니다', '지금의 방식이 최상이다. 이 정도면 충분히 게임 실행할 만하다. 더 편리한 걸 원하면 다른 프론트엔드를 찾아 써라' 라는 식에 불과했다.

심지어 레트로아크 개발진은 불편함을 호소하는 유저를 바보 취급하며 '사용자가 표준 방식을 벗어나 잘못 사용하는 게 문제다', '데이터베이스 스캔에는 문제가 없으며 잘못된 롬을 쓰지 마라', '불만을 토로하는 유저들은 레트로아크를 사용할 능력이 없을 뿐이다. 이해력이 부족하고 게으르다' 라는 식으로 일관하고 있다.

2.6. 개별 에뮬레이터의 쇠퇴

레트로아크가 각 플랫폼마다 자리를 잡은 후, 에뮬레이터 개발자들이 최신 플랫폼으로 에뮬레이터를 포팅하지 않는 경우가 많아졌다. 닌텐도 3DS의 경우 Snes9x 같이 일부 프로그램에 한해 개별 에뮬레이터가 3DS용으로도 존재하지만 MAME네오지오 등 상당수 기종이 개별 에뮬레이터가 존재하지 않는다. PSP의 경우도 각 기종마다 에뮬레이터가 충실하게 구비된 편이었으나 후속기종인 PS Vita는 3DS처럼 대다수 기종의 에뮬 구동을 레트로아크에 신세져야만 한다.

이처럼 현세대에서는 레트로아크 없이는 거의 대부분 기종의 게임들을 못 돌린다. 사용자가 많고 기존에 프로그램이 이미 제작된 경우, 즉 PC나 안드로이드 같은 환경은 괜찮지만 신규 플랫폼일수록 레트로아크 하나로 퉁치자는 경향이 강해지고 있다. 따라서 레트로아크를 혐오하는 유저라도 눈물을 머금고 강제로 레트로아크를 세팅하는 경우가 늘어나고 있는 상황.

따라서 레트로아크 비판자들은 레트로아크라는 문제 많은 프로그램이 성행하여 개별 스탠드얼론 에뮬레이터가 쇠퇴하는 현 기조에 대해서도 매우 큰 불만을 나타내고 있다.

2.7. 기타 문제점

2020년 8월 16일, 서버가 해킹을 당해서 대부분의 파일과 GitHub가 유실되었다. 이미 RetroArch를 설치해서 사용하고 있는 사람들에게는 큰 지장이 없지만 코어(에뮬레이터) 설치와 업데이트가 불가능하게 되었으며 RetroArch 개발진의 개발 스케줄에도 커다란 영향을 주었다고 한다. 다행히 8월 27일에 상당수의 복구가 이루어졌지만 완벽한 복구는 아직 못했다고 하며 해킹을 방지하기 위한 새로운 서버도 구축해야 하는 등 해야 할 일들이 많아서 당분간은 개발이 더디어질 것이라고 한다

가끔씩 패드가 인식이 안 될 때가 있다. 화면상에는 연결된다고 뜨는데 어떤 키도 먹히지 않고 키설정에서도 감감무소식이다. 이럴 때는 그냥 재부팅하면 임시로 해결되기는 하는데 최근 패드 인식불가 현상이 상당히 잦게 일어나고 있다. 엑스박스 360 컨트롤러 기준.

2.8. 해결된 문제점

3. 지원하는 플랫폼

4. 지원하는 코어


이 외에도 여러 코어들이 제공되며, 플랫폼에 따라 지원되는 코어의 종류에 차이가 있다.

또한 에뮬레이터 뿐 아니라 , 퀘이크, 동굴 이야기를 실행할 수 있는 런쳐 기능도 지원하고 있다. 당연히 해당 게임 데이터 파일은 따로 구해야 한다.

리브레 위키의 RetroArch 항목에 각 코어들에 대한 정보가 좀 더 자세하게 기재되어 있으니 참고바람.

5. 파생 제품

6. 기타

에뮬레이터가 꽤 고성능이고 또한 무료라서 에뮬레이션 유저들 사이에서 크게 사랑 받고 있다. 게다가 안드로이드용의 경우 슈퍼 32X나 버추얼 보이 같은 몇몇 기종들은 이 에뮬레이터로만 실행할 수 있다.

2013년 10월에 구글 플레이에서 짤렸었는데, GPL 관련 라이센스 문제 때문에 구글측의 착각으로 삭제되었다고 한다. 2020년 현재는 정상적으로 배포되고 있다.

비공식 빌드의 MAME는 특이하게도 여러 종류로 나뉘어있는데, 위의 MAME 2003뿐 아니라 MAME 2010(0.139 기반), MAME 2015(0.160 기반), MAME 2016(0.174 기반), MAME(최신 버전. 시간이 지날 때마다 버전이 바뀌며 2023년 11월 기준 0.260 기반.)가 있다. 0.139 기반은 같은 버전 기반의 다른 안드로이드용 MAME인 MAME4droid Reloaded랑 구동속도가 비슷하며 뒷 버전으로 갈 수록 구동속도는 더 느려지지만 지원하는 게임들이 늘어난다. 안드로이드는 7월에는 PC판과 달리 0.197버전으로 다소 낮았으나 8월 0.222버전으로 PC판과 동일한 버전으로 롤업되었다. 2015 버전 미만을 쓴다면 그냥 FB Neo로 갈아타자. 완벽한 상위호환이다.
현재는 2003, 2010, 최신 버전을 제외한 모든 MAME를 설치할 수 없다.

1.7.8버전에서, 구글 플레이 정책상 네이티브 앱에서 64비트용 바이너리를 필수적으로 집어넣어야 하는 것 때문에 피해를 봤는데, 업데이트 후 이미 설치된 32비트 코어들은 전혀 동작하지 않아서 64비트 코어로 재설치해야 하는 번거로운 과정이 있었고, 특히 32비트 ARM에 최적화된 PicoDrive와 PCSX-reARMed 코어는 성능 면에서도 큰 손해를 보게 되었다.
지금은 PCSX-reARMed 코어가 64비트 dynamic recompiler 지원을 추가해서 어지간한 64비트 안드로이드 기기라면 무리 없이 작동하긴 하지만, 고해상도 렌더링만큼은 32비트 ARM 전용 기능으로 남아 있으므로 정 64비트 바이너리로 PS1 게임을 플레이할 사람이라면 64비트 최적화에뮬 DuckStation을 사용하자. 그게 아니라면 공식 홈페이지에서 32비트 apk를 내려받아 설치하는 편이 좋다. PicoDrive는 애초에 에뮬 요구성능이 적은 편이라 64비트에서도 아무 지장없이 사용 가능하다.
64비트 전용 코어도 있긴 하지만, 여러모로 안드로이드 기기에서 쓸 일은 없을 테니 별 문제는 안될 듯.[64] MAME 쪽도 안드로이드 64비트를 지원한다.

2020년 8월 16일 Libretro 네트워크의 다운로드 서버가 크래커의 습격으로 베타 빌드와 정식 빌드의 모든 정보가 박살난 사건이 터졌다. 20년 8월 18일 libretro 측은 저장소의 대부분을 복구했음을 밝혔다. 단, 강제폐쇄된 Private 저장소가 있을 수 있어 이에 대한 해결책을 마련해야한다고 한다. 그리고 다음 단계는 새 서버로 갈아타기 전까지 임시로 사용할 빌드봇 서버를 복구하는 것(레트로아크에서 코어를 자동으로 다운로드 할 때 이 서버를 사용한다.)인데 이는 시간이 좀더 소요될 것으로 보인다.
[1] 공식문서의 소개. #[2] 예외적으로 MAME의 경우는 코어 안에도 MAME의 자체 GUI가 있는데 PC판 기준으로 게임 화면에서 ESC버튼을 누를 경우 MAME의 GUI화면이 나온다.[3] 찾고 싶은 메뉴가 숨겨져 있다는 인상을 받을 정도로 설정에서 원하는 기능을 찾기가 매우 힘들며 이곳저곳에 복잡하게 흩어져있다. 너무 많은 메뉴가 제공되는데다 중요 기능과 마이너한 잡다한 기능이 같은 선상에 섞여있어 혼란스러운 것까지 실패한 UI의 결정체라 볼 수 있다.[4] 예를 들어 슈퍼패미컴의 경우 bsnes 코어는 정확성을 중시하는 대신 기기의 사양을 타고 Snes9x는 저사양 기기에서도 속도가 빠른 식의 차이가 난다. 심지어 Snes9x만 해도 2010, 2005 Plus, 2005, 2002의 4가지 코어 버전이 있으며 이 4가지도 각기 성능과 속도가 다르다.[5] 레트로아크에서 보통의 경우에는 확장자를 보고 알맞은 코어를 골라 주며, 알맞은 코어가 단 하나라면 자동으로 해당 코어를 실행한다. 하지만 같은 확장자를 지원하는 복수의 코어를 사용할 일이 많아서 체감하기 힘든 기능이다. 특히 온갖 기종의 코어 수십 개가 기본 설치된 채 배포되는 플랫폼도 있는데, 그런 플랫폼의 레트로아크에서는 더더욱 코어 자동선택이 힘들다.[6] 가령, GB/GBC 에뮬레이터인 Sameboy를 설치하고 GBA 에뮬레이터인 mGBA를 설치한 경우, mGBA도 GB/GBC 게임을 지원하기 때문에 게임 보이 게임을 불러오면 어느 코어로 실행할지를 물어본다. 혹은 슈퍼 패미컴 게임을 위해 bsnes-HD를 설치하고 슈퍼 게임보이를 위해 nSide를 설치했다면 슈퍼 패미컴 게임을 불러들일 때마다 코어 선택을 해야 한다.[7] chd, bin/cue, iso같이 범용적인 파일 규격. 특히 bin 같은 경우는 여러 기종에서 쓰는 규격이고 CD-ROM 사용 기종뿐만 아니라 메가드라이브에서도 사용한다.[8] ex : 루트폴더에서 시작하여 커서 이동으로 NEOGEO 폴더 진입 후 페이지 넘겨서 kof95.zip 선택[9] 상술했듯이 .zip 롬의 경우 파이널 번 계통 코어만 해도, FinalBurn Neo, FBA 2012, FBA CPS-1, FBA CPS-2, FBS NeoGeo까지 5개 이상은 뜨게 된다. MAME까지 합치면 코어 목록이 어마어마해진다. 설령 FinalBurn Neo만 남기고 다른 아케이드 코어를 다 지웠다 한들 .zip 파일은 아타리, 코모도어, PC-98, 세가 새턴, 게임보이 어드밴스, X68000 등 온갖 기종이 반응한다.[10] Browse Archive는 롬파일 형식이 압축파일일 경우 뜨는 메뉴이다. 압축파일 내부를 탐색하는 용도다. 탐색 없이 바로 롬을 불러오는 Load Archive가 하단에 있으므로 반드시 아래 방향키를 눌러줘야 한다. 즉 선택버튼 연타로 시간 절약이 안된다. 매번 집중해서 아래 메뉴를 선택해야 롬이 실행된다.[11] 레트로아크의 고집스러운 공돌이성을 보여주는 대표적인 장면. 10% 이하의 소수 유저만 쓸법한 마이너 기능 선택을 아예 정규 프로세스에 집어넣었다. 덕분에 그 기능에 관심이 없고 필요하지도 않은 90%가 불편을 겪게 되었다.[12] 1스테이지의 배경에 나오는 화염 스프라이트가 복잡한 처리를 요구한다. 때문에 성능이 낮은 기기나 최적화가 덜 된 에뮬레이터는 프레임이 많이 느려지게 된다. 따라서 에뮬게임용 기기의 성능이나 슈퍼 패미컴 에뮬레이터의 퍼포먼스를 테스트할때 많이 쓰이는 게임. 레트로아크의 경우도 성능이 낮은 플랫폼에서는 코어별로 프레임이 다르게 뽑히는 경우가 많다.[13] 아케이드 에뮬레이터에서 성능 테스트를 하는데 필수로 투입되는 게임. 성능이 부족한 플랫폼의 경우 대부분의 아케이드 에뮬레이터에서 프레임이 매우 느리게 나온다. 저렴한 CPU와 램을 쓰는 중국산 에뮬레이터 게임기의 경우 2019년 무렵까지도 제대로 돌리는 제품이 별로 없었을 정도였다. 때문에 레트로아크에서도 프레임을 잘 뽑아주는 코어의 선택이 중요한 게임이다.[14] 때문에 레트로아크에서 메가드라이브 롬을 돌릴 시, .bin 같은 포맷이 아니라 .md 같은 메가드라이브 전용 파일명을 사용해야 오인식하지 않는다. 컨버터 프로그램을 사용하자. .zip는 해결책이 없는데, 코어 선택창의 혼선을 겪고 싶지 않다면 아케이드 기종 외에는 되도록이면 사용하지 않는게 좋다. 그나마도 flycast 같이 일부 아케이드 기판(flycast의 경우 NAOMI, ATOMISWAVE)도 지원하지만 가정용이 주가 되는 코어가 같이 깔려 버리면 답이 없다.[15] 메뉴 트리를 좀 더 직관적으로 고친다든가, 마우스/터치스크린 환경에 친절한 ozone 메뉴를 추가하는 등.[16] 그러나 이런 개선은 다소 부차적인 것이며, 프로그램의 근본적 문제에 대한 조치는 몇년째 거의 이루어지지 않았다.[17] 예를 들자면 비타 레트로아크 1.77에서 xmb 메뉴 드라이버 사용시 충돌이 일어나 프로그램이 크래쉬되는데, rgui로 메뉴 드라이버를 변경하면 해결된다는 식의 디테일한 사항 같은 것들이다. 이런 건 해외 포럼을 뒤져야만 나오는 정보다.[18] PS VITA나 3DS 레트로아크의 메뉴 드라이버 에러 같은 경우를 말한다. 프로그램 UI에 관련된 에러이므로 모든 상황에서 맞닥뜨리게 된다. 이렇게 확실한 조건으로 발생하는 에러는 메뉴 드라이버를 정상작동되는 것으로 수정하고 더 이상 변경하지 않으면 크래쉬 재발을 막을 수 있다.[19] 유독 레트로아크에서 제공되는 코어들과 상성이 잘 안맞는다. 문제의 해결을 위해 정확성은 떨어지나 저사양에서 속도가 원활한 FB Alpha 2012 코어가 추천되는 편.[20] retroarch.cfg 파일이 꼬이지 않은 정상 상태 기준으로 레트로아크는 콘솔게임에 비해 MAMEFinal Burn같은 아케이드 기종 에뮬레이터의 구동이 상대적으로 불안정하다는 평이 있다. 특히 Final Burn에 비해 MAME 계열 코어들이 불안정하다.[21] PS Vita 같은 기종의 경우 레트로아크 자체 버그로 인해 사용하다 보면 멀쩡한 cfg 파일을 프로그램이 알아서 꼬아놓는 사례가 존재할 정도였다. 업데이트로 해결된 문제이지만 레트로아크의 불안정성을 잘 나타내는 대표적 케이스다.[22] 기기의 성능 면에서 그렇다는 얘기. 최소한 저사양 기기의 레트로아크에서 돌리기 까다로운 CPS3 같은 기종이 성능문제로 안돌아갈 리는 없으니 말이다. 그러나 오류 발생이나 튕김, 프리징으로 따지면 스위치나 PC도 똑같이 불안정하다. PC판 레트로아크로 아무 세팅 없이 MSX게임을 한번 돌려보면 에러 메세지조차 없이 바로 크래쉬되는 걸 확인할 수 있을 것이다.[23] 레트로아크 내에서 게임 스크린샷을 섬네일로 등록 불가능하다는 점, 프로그램 내에서 섬네일을 편집하고 등록할 길이 막혀 있어 또 메모장 노가다를 해야 한다는 것도 매우 레트로아크스럽다.[24] 롬은 원본을 그대로 쓰고 ips 패치파일만 적용시키는 소프트패치 기능을 쓴다 한들 패치 파일은 결국 다시 다 구해야 한다. 수많은 패치 파일들을 구하기도 어려울 뿐더러 파일 이름 맞춰서 같은 폴더에 일일이 집어넣는 것도 쉬운 일이 아니다. 게다가 시간이 흘러 유실된 패치, 제작자가 배포를 중단한 패치도 굉장히 많은 상태다. 차라리 플레이리스트 등록이 나은 부분이 있다.[25] 다만 이미 한글패치된 롬을 가지고 있을 경우에는 직접 패치 파일을 얼마든지 만들 수 있으므로 꼭 제작자가 배포한 패치 파일을 구하려고 애쓸 필요는 없다. 애초에 제작자가 배포하는 패치 파일부터가 한글패치된 롬과 원본 롬 둘을 이용해서 diff 파일을 만드는 것이기 때문이다. 그러나 문제는 패치된 롬을 가지고 패치를 추출하는 것은 일반 유저에게 더욱더 난해하고 스트레스받는 작업이란 것이다. 게임이 한두개면 모를까, 수십개 이상의 언어 패치를 만들고 파일명을 통일시키며 각 폴더에 집어넣는 것은 제정신으로 하기 힘든 일이다. 또한 과거의 패치 제작자들은 최신화된 롬이 아니라 구시대에 덤프된 롬이나 마이너한 버전을 쓴 경우가 있어, 원본 롬이 무엇인지, 어느 국가판을 쓴건지 찾는 과정도 한참 해매게 된다.[26] 때문에 숙련자들은 레트로아크 자체 플레이리스트 생성에 의존하지 않는다. 직접 플레이리스트를 뜯어고쳐서 기종, 장르별로 플레이리스트 파일을 따로 만드는 경우가 많다.[27] 발매 게임이 200개 이하 수준으로 적은 기종, 혹은 롬 용량이 커서 대부분 유저가 게임 수를 적게 보유한 기종에서는 한 화면에 6~12개 정도 표시되는 큼지막한 게임 섬네일 이미지와 제목을 보고 고르는 플레이리스트식이 어울리는 방식이었다. CPS, 네오지오같이 발매게임수가 적은 아케이드 기종이나, PS2 에뮬레이터 같은 것이 좋은 예시가 되겠다.[28] 레트로아크의 기기별 플레이리스트 생성은 기기의 데이터베이스에 따라 롬파일 확장명, 헤더와 상관없이 이름만 똑같다면 그 롬파일로 인식하고 게임 정보, 경우에 따라서는 섬네일까지 다 맞춰준다. 그래서 에뮬레이터 기종별로 폴더를 나누고, 플레이리스트를 생성하면 레트로아크 세팅 난이도가 대폭 낮아진다.[29] 그러나 문제는 플레이리스트 자체의 문제 때문에 기종별로 폴더를 나누어 스캔해봐야, 기종별로 게임리스트가 무한정 늘어지는 문제는 변함없다는 것. 결국 유저가 팔만대장경을 넘겨가며 깨알같이 작게 박혀있는 원하는 게임 제목을 찾아야 한다. 이런 불편을 해소하려면 유저가 직접 기종에 더해 장르별로 게임을 구분하는 플레이리스트를 직접 만드는 수밖에 없다.[30] FBA 029729 버전의 롬셋이 권장되는 코어에서 029740 버전의 롬을 돌리면 바로 튕기는 식이다. MAME도 마찬가지.[31] 별 이유도 없이 프레임이 느려지거나 롬 실행시 크래쉬가 나는 문제. 똑같은 코어와 똑같은 롬셋을 쓰더라도 retroarch.cfg 파일이 조금이라도 꼬이면 크래쉬가 폭풍같이 난다. cfg 파일을 리셋하면 대체로 해결된다.[32] 그러나 레트로아크의 셰이더는 몇년 전만 해도 끔찍한 UI 때문에 원하는 옵션을 고르기 너무 힘들고 지나치게 잡다한 셰이더들이 끝없이 리스트에 나오는 문제로 해외 커뮤니티에서 유명했다. 게다가 뭘 잘못 고르면 화면이 온통 검어지거나 깨지는 등의 문제가 산재하여 성능은 몰라도 실사용 면에서 도저히 칭찬할 대상이 아니었다. 그나마 최근엔 선택 UI가 간편해지고 잡다하고 번잡한 셰이더 제공이 줄어들어 훨씬 편해졌지만.[33] 그러나 이런 파생 프론트엔드도 전반적인 구동 방식은 레트로아크와 유사하며 코어 및 플레이리스트 식 롬 구동의 불편한 점도 유사하다. 초기 세팅이 고통스럽고 롬 선별을 해야하며, 언어패치된 롬은 스캔에서 누락되는 문제, 경로 탐색 롬 실행이 힘든 등의 대부분의 문제를 원판과 공유한다. 몇가지 미세한 차이나 개선점이 있을 뿐이다.[34] 그러나 이러한 파생작들은 레트로아크의 근본적 한계를 품고 있더라도 자동 세팅이나 플레이리스트 / 섬네일 편집 등에서는 저마다의 분명한 개선점이 있다. 무엇보다도 개발 목적 자체가 '사용자 편의성 따위는 관심 없다'는 레트로아크의 문제를 인식하고, 보다 편리한 UX, UI를 지향하기 위해 만들어졌다는 목적이 있으니 긍정적으로 평가할만 하다.[35] Daniel De Matteis가 타 개발자들을 혹사하고 비방하며 괴롭힌 사례가 자주 발생한 바 있다. 권위를 빌미로 개발자들을 가스라이팅한다는 호소가 나올 정도였다. 그로 인해 'Matteis는 소시오패스 아니냐' 라는 비판마저 제기되고 있는 상황이다.[36] 레트로아크 권장 방식으로는 원더보이 몬스터랜드의 영어 버전이나 삼국전기의 한국어 버전을 결코 정상적으로 실행할 수가 없다. 이러한 게임들은 RPG의 성격이 있어 게임 내 대사가 게임 공략에 중요한 역할을 하거나, 또는 심도깊은 스토리를 묘사하기 때문에 각 언어별 롬이 매우 중요하다.[37] 스위치는 OpenGL을 지원하므로 OpenGL이 필요한 닌텐도 64, 드림캐스트, PSP 에뮬레이터를 구동할 수 있으며, 셰이더 또한 사용 가능하다.[38] VitaGL이 개발된 덕분에 셰이더 사용이 가능하다.[39] 공홈 apk는 다른 플랫폼과 같이 코어를 별도 다운로드하는 방식이지만, 플레이스토어의 버전은 규정에 따라 코어가 미리 설치된 상태로 제공된다. "RetroArch"는 50개의 코어, "RetroArch Plus"는 127개의 코어와 함께 배포된다.[40] 안드로이드 기반 스탠드얼론 VR기기다. 사이드퀘스트를 통해 수동 설치 가능. 실행은 TV의 채널에서 할 수 있으며 무선 컨트롤러는 필수다.[41] Windows 95부터 지원한다.[42] PowerPC 기반 구형 Mac도 지원하는 듯 하다. Apple Silicon 기반 Mac은 로제타 2로 지원하며, ARM 호환 버전 개발이 진행중이다.[43] 그냥 bsnes와 호환성은 동일하면서 속도는 높아진, 최적화된 버전[44] accuracy는 모든 게임을 슈퍼 패미컴 실기와 동일하게 구동할 것을 보장한다. balanced는 Air Strike Patrol의 그림자 효과가 빠진 것을 제외하면 모든 게임에서 accuracy와 동일하고, 속도 면에서 훨씬 우수하다.[45] "Snes9x"는 최신 버전이고, 나머지는 오래될 수록 속도가 빠르고 호환성이 낮은 Snes9x 구버전의 포크. 2002는 1.36, 2005는 1.43, 2010은 1.52버전이다. 2005 Plus는 2005를 기반으로 사운드 에뮬레이션의 정확성만 개선한 변형판이다.[46] 과거에는 4개의 구버전들이 각각 순서대로 PocketSNES, CATSFC, CATSFC Plus, Snes9x-Next로 이름붙어 있었다. PocketSNES는 게임보이 어드밴스용 홈브루 이식판, CATSFC는 Supercard DSTwo용 홈브루 이식판을 libretro 코어로 만들었기 때문에 각 홈브루의 이름을 코어 이름으로 사용했던 것이다.[47] PSP용 홈브루 에뮬레이터를 libretro 코어로 만든 것이다.[48] SG-1000, 게임기어 포함[49] 메가 CD, 슈퍼 32X[50] Wii용 홈브루 에뮬레이터를 libretro 코어로 만든 것이다.[51] PSP용 홈브루 에뮬레이터를 libretro 코어로 만든 것이다.[52] 안드로이드용 Yabause의 변종을 libretro 코어로 만든 것이며 libretro 코어 중 유일하게 JIT Dynarec을 지원하는 새턴 에뮬레이터. 허나 레트로아크판은 Yabause의 GPL 조약을 위반했다는 이유로 지원이 끊겼다. JIT 새턴 에뮬레이터를 원한다면 현재는 SSF의 레트로아크 포팅이 소원한 상태이다.[53] 이쪽은 ST-V쪽도 지원한다. 다만 새턴의 구동률이 Beetle에 비해 떨어지는 게 흠. 사실상 ST-V 전용.[54] 얼마 후 Duckstation의 개발자 stenzek은 libretro에서 손을 떼고 Swanstation이라는 포크가 그 자리를 대체했지만, 해당 코드가 상업적 서비스에 무단으로 사용되면서 stenzek은 libretro 코어 지원을 클로즈드 소스의 형태로 재개했다. Duckstation 자체는 변함 없이 오픈 소스.[55] stenzek이 본인의 입장을 밝힌 대화 #[56] 흔히 일컫는 스마트폰의 "32비트 ARM CPU"들이 바로 ARMv7 아키텍처다. 최신 스마트폰들에 장착된 "64비트 ARM CPU"는 ARMv7과 하위 호환성이 있지만, 엄연히 다른 아키텍처다.[57] 1.7.8 버전이 업로드될 때부터 구글 플레이의 방침이 바뀌어 모든 앱들은 64비트 버전을 지원해야 한다. 64비트 기기는 구글 플레이로부터 32비트 버전을 내려받을 수 없다.[58] FMV에서 모션디코더를 사용하는 게임을 Vulkan 렌더러로 설정하고 Beetle PSX HW에서 실행하면 화면이 녹색, 주황색, 보라색 등 단일 색조로 출력되나 Duckstation은 아무런 문제가 없다.[59] 이는 PCSX2의 고질적인 문제이며 OPENGL 4버전대를 지원하지 않는 맥의 고질적인 문제이기도 하다.[60] 2000년은 iMAME4All 기반, 2003년은 월광보합 번들 기반, 2010년은 구 MAME4droid 기반이다. 이중 iMAME4All기반 2000과 월광보합판 2003 Plus가 지원기종도 가장 많고 업데이트가 가장 활발하나, 파이널번 네오라는 대체품이 나오면서 크게 퇴색되었다. Lakka로 2015년과 최신판이 존재하는데 기종별로 호환율이 천차만별. 스위치판은 상당히 불안정하다.[61] PC 엔진의 개선판. 일본과 프랑스에서만 발매. 1941, 대마계촌 등이 전용으로 나왔다.[62] Android에선 가상 게임패드와 마우스 에뮬레이션을 동시에 사용할수 없으며 일부 RetroArch 빌드에선 마우스를 연결해도 쓸수가 없다. 대신 좌측 아날로그 스틱을 포인팅 스틱마냥 마우스로 활당시키는 것이 가능하다. 좌 클릭은 B버튼으로, 우클릭은 A버튼으로, 중 클릭은 X버튼으로 작동한다.[63] 부팅하는 즉시 RetroArch가 실행되는 리눅스 배포판. 정확히는 Kodi와 마찬가지로 OpenELEC 위에서 돌아가는 방식이며 라즈베리 파이 등의 소형 개발보드용으로 제공되지만, PC에서도 설치는 가능하다.[64] 안드로이드 앱의 게임큐브 에뮬 Dolphin은 오로지 64비트 전용 바이너리에서만 사용 가능하니 참고. PCSX2 역시 안드로이드에 나온다면 64비트 바이너리 전용으로만 나온다고 한다.