Playstation은 90년대에 처음 등장하고 지금까지 시리즈가 내려와 그동안 게임콘솔계의 큰 업체였던 SEGA를 침몰 시킨 흔한 가전업체(?) Sony의 게임기입니다.


지금은 어느새 PS4까지 나와서 게임들이 쏟아져 나오고 있습니다. 당시 소니에서는 이렇게까지 잘 나갈거라고 생각은 안 했다고 합니다. 하지만 어쨌건 게임은 충실히 나오게 되었고 이는 PS2가 나올때까지 계속되었습니다.


그렇다면 당연히 이런 게임기의 에뮬레이터가 안 나올 수는 없겠지요. 초창기에 Platstation의 에뮬레이터가 만들어지고 있다고 했을 때 말도 안 된다고 징징댔던 사람도 있었다고 합니다. 하지만 시대는 변하고 PC의 성능은 말도 안 되게 좋아져서 PS 실기만으로 해결 할 수 없는 화질 등의 개선이 이루어지는 등 지금은 에뮬레이터의 성능이 훨씬 더 막강해 졌습니다.


현재까지 알려진 Playstation의 에뮬레이터는 다음과 같습니다.


1. VGS

2. Bleem!

3. ePSXe (http://www.epsxe.com/)

4. PCSX (https://pcsxr.codeplex.com/)


이외에도 상당히 많지만 보통은 이 정도만 사용합니다.


특히 여기서 Bleem!은 에뮬레이터의 존재에 대해 많은 것을 일깨워준 물건인데 에뮬레이터 주제에 유료로 판매하려고 했던 물건입니다. 결국 소니의 저작권 철퇴를 맞고 사라지게 되었습니다.


VGS는 Shuffix란 업체에서 만든 것인데 2D는 굉장히 빨랐지만 3D가 영 아닌 모습이 나오게 되어서 이 쪽도 사용자 층이 확 줄어버렸습니다. (Shuffix란 이 업체는 VirtualPC란 엄청난 물건을 내놓게 되고 승승장구 했었지만 결국 가상머신 기술이 필요했던 Microsoft에 인수 되었습니다.)


결국 남은 것은 ePSXe와 PCSX만이 남았군요. 이 둘 중에서 유명한 것은 ePSXe입니다. 사용자층도 넓고 플러그인의 개발이 아직도 진행중입니다.


https://play.google.com/store/apps/details?id=com.epsxe.ePSXe

성능에 걸맞게 유료다! 하지만 Drastic보다는 싸다.

다만 그 성능에 걸맞게 4500원 상당하는 유료 앱이라는 것이 걸림돌입니다. PC용은 무료로 배포되고 있지만 안드로이드는 포팅상의 문제가 있는 것인지 유료입니다. 

하지만 정말 성능과 플러그인 지원만큼은 정말 훌륭합니다.


그 중 제일 대박인 플러그인은 FinalFantasy7의 로우폴리곤 모델을 하이폴리곤으로 바꿔주는 플러그인인데 기본적인 그래픽 향상이 눈에 확연히 보입니다. 그 밖에도 특정 게임용 플러그인들이 즐비합니다. 그만큼 지원이 좋다는 의미겠지요.


그럼 PCSX를 알아볼까요?

지금의 PCSX는 PCSX-Reloaded(통칭 PCSXR)라 해서 한번 PCSX에서 갈라진 프로젝트입니다. 기존의 PCSX홈페이지는 사라졌고 지금은 여기있는 PCSXR이 그 역할을 수행중입니다.

그런데 ePSXe에 비해 딱히 나은 것도 없고 사용자층이 두터운 것도 아니지만 제가 이 프로그램을 알려드리는 것은 다 이유가 있겠지요.


바로 이 프로그램이 대부분 안드로이드용 PS1 에뮬레이터의 기반 소스 코드가 되기 때문입니다. (즉, 이건 오픈소스입니다.) psx4droid란 물건이 가장 유명한데 이 물건은 아쉽게도 업데이트가 끊기고 최신 안드로이드에 대응을 못하면서 사장 되었습니다. 물론 구형 안드로이드 폰이 있으신 분은 이 쪽을 찾으시면 되겠지요.


psx4droid의 스크린샷. 하지만 안드로이드 5.0이후부터는 제대로 돌아가지 않는다...



그래서 또 다른 앱은 없나 살펴보니 PlayStore에 있더군요. 바로 이번 주인공 PowerPSX란 앱입니다.


https://play.google.com/store/apps/details?id=com.emula.popsx

광고가 붙어있기는 하지만 무료입니다. psx4droid가 정상적으로 돌아갔다면 이 쪽을 추천했겠지만 이쪽은 제대로 안 돌아가는 관계로 대신 업데이트가 정상적으로 이루어지는 PowerPSX를 추천하는 것입니다.


대놓고 PCSX를 기반으로 했다고 하는 psx4droid와 달리 PowerPSX는 딱히 기반 코드를 알려주고 있지 않습니다. 다만, PCSX의 코드를 썼을 것이라는 느낌은 여러가지 게임을 돌리면서 대충 느껴지고 있습니다. PCSX에서 생긴 문제가 여기서도 똑같이 일어나거든요.


PowerPSX로 돌린 Megaman X4 스크린샷. 간만에 추억에 잠겨.... 폭망했다.


일단 2017년 현재 현역 안드로이드 환경에서 문제가 없습니다. 다만 내장 바이오스를 사용하면 호환에 문제가 많아 (PCSX 사용시와 동일한 증상) 따로 구글에서 SCPH1001이라 검색하거나 여기서(https://www.loveroms.com/extras/psx-bios.php)바이오스를 구해서 넣어주시는 것을 추천합니다. 일본판보다는 북미판바이오스가 호환성이 더 좋다고 하네요.


그리고 VR모드라고 지원을 하기는 하는데 이쪽은 그다지 좋지는 않군요. 그냥 화면을 분할해서 양쪽에 똑같은 화면을 뿌리는 수준입니다. 혼자 게임하고 싶다면 나쁜 생각은 아닌데 굳이 그러고 싶지는 않네요. 하지만 무료에 이 정도면 훌륭합니다.


결론부터 말씀드리자면 만약 돈을 지불해서라도 호환성과 각종 플러그인 지원을 받고 싶으시다면 ePSXe를

그냥 PCSX수준의 호환성 정도면 충분하다고 생각하신다면 PowerPSX를 이용하시면 됩니다.



처음 안드로이드 에뮬레이터 글을 쓴게 14년인데 근 3년만에 새로운 글을 올렸네요. 다음에는 N64나 다른 에뮬레이터 이야기도 하고 싶은데 시간이 될지는 잘 모르겠습니다.

,

저번 포스팅에서는 NDS 에뮬레이터에 대해서 포스팅을 했습니다. 우리나라에 NDS가 들어오던 시절에 또 다른 휴대용 게임기가 있었지요. 바로  PSP입니다. 제가 처음 PSP란 놈을 봤을 때가 아마 2000번대였던 것으로 기억합니다. 1000번대가 나오던 시절에는 제 친구들과 주변인 모두 가난한 학생이었고 굳이 PSP를 사야겠다는 생각이 들 정도로 재미있는 게임은 없었습니다. 즉, 견인차 역할을 해주던 메인 타이틀이 없었던 것이지요. 


그러다가 한국에서 견인차 역할을 해준 대중적(?) 게임이 하나 등장하게 됩니다. 그 물건이 바로 DJMAX Portable입니다. 저번 NDS 에뮬레이터 이야기에서 포켓몬스터가 주류로 나왔다면 이번 PSP에서는 이것이 주류로 나올 것입니다. 몬스터 헌터나 페르소나 시리즈도 PSP의 견인차 역할을 하기는 했지만 제가 Djmax portable나오기 이후의 이야기인데다가 제가 처음 PSP란 놈을 본 것도 다 DJMAX Portable시리즈 때문에 PSP를 사 들고 나타난 놈이 있어서 이 게임을 테스트 게임으로 삼아야 할 것 같습니다.


우선 에뮬레이터 이야기 하기 전에 게임기 이야기를 마저 하자면 PSP도 NDS 마냥 지하철 한 칸에 여러 사람이 들고 있지는 않아도 최소한 지하철을 생각 없이 돌아보면 들고 있던 사람이 보이는 그런 수준으로 꽤 많이 팔린 게임기 입니다. DJMAX Portable 출시 이후로는 학생들도 심심찮게 들고 다니는 모습이 많이 보이더군요. 그 뒤에 판매량이 좋아지고 2000번대와 3000번대 등의 신제품들이 나오면서 PSP도 휴대용 게임기로서의 역할을 충실하게 하게 됩니다. 물론 스마트폰들이 등장하면서 NDS와 함께 보기 힘들어진 같은 운명을 걷게 되기는 합니다. 하지만 역시 NDS와 마찬가지로 게임들 자체는 상당히 재미있는 것들이 많아서 인기 있던 게임기라면 통과의례로 겪는 에뮬레이터들이 만들어지게 됩니다. 그러나 구조가 비교적 간단했던 NDS와는 다르게 PSP는 생각보다는 복잡했던 모양입니다. 애초에 기기 성능도 조금 더 높고 게임 데이터 양도 훨씬 더 많아서 그럴 수 있겠다는 생각도 들지만 각종 홈브류(게임기 제작 업체로 부터 인증받아 정식 판매되는 승인된 게임이나 프로그램이 아닌 개인이 만들어낸 게임과 프로그램)들이 개발되는 것과 비교해서 에뮬레이터 개발은 비교적 늦은 편입니다. 그러다 어느날 한 에뮬레이터가 등장하게 됩니다. 그 이름은 Jpcsp입니다.


Jpcsp의 초기 화면 여느 프로그램 마냥 간단한 화면이다. 그런데 일부 라이브러리가 인식이 안 되서 구동하는데 조금 애먹었다.


PPSSPP 이야기 한다면서 갑자기 왜 Jpcsp 이야기냐고 하시는 분이 있을 것 같아서 말씀드립니다. 사실 PPSSPP가 지금의 호환성과 성능을 갖추게 되기 전까지 PSP에뮬레이터는 이 물건이 전부였습니다. 그리고 이 Jpcsp가 갖고 있던 문제는 PPSSPP가 해결하는 수순으로 갔고요. Jpcsp가 없었다면 지금의 PPSSPP가 나왔을 것이란 생각은 하기가 어려울 수도 있습니다. 그리고 다른 PSP에뮬레이터가 있었기는 했지만 이 물건이 가장 호환성이 좋았습니다. 다른 에뮬레이터는 그저 홈브류 개발 및 테스트용으로 만들어져서 홈브류를 구동하는 수준이었습니다. 하지만 Jpcsp는 본격적으로 정식 판매되는 UMD를 지원한는 에뮬레이터였습니다.


그런데 Jpcsp는 초기 단계라서 그런 것인지 문제가 여기저기서 터져나왔습니다. 이를 해결 하기 위해 정말 많은 사람들이 머리를 싸맸습니다. 지금은 Jpcsp의 태생적으로 해결이 안되는 것도 있고 PPSSPP가 해결한 문제도 있습니다.


첫번째 문제는 오디오코덱 문제입니다. PSP는 소니의 코덱기술을 사용하고 있는데 이것이 저작권 및 특허가 걸려있어서 에뮬레이터 개발에 문제가 되는 것이었습니다. 어느 분들은 에뮬레이터인데 그냥 가져다가 쓰면 안 되냐는 사람도 있을 지도 모르겠지만 에뮬레이터는 불법이 아닙니다. 하지만 특허가 걸린 기술을 가져다가 마음대로 사용하면 그 프로그램 자체가 불법으로 낙인 찍힙니다. 아니면 로열티를 내야 하는데 소니가 에뮬레이터의 로열티를 받으면서 허용해 줄 것 같습니까? 그래서 Jpcsp는 한동안 소리없이 에뮬레이터를 작동시켰어야만 했습니다. 이후의 사운드포지(소니가 만든 프로그램입니다.)의 라이브러리를 이용해서 우회하는 방안을 통해 재생시키는 법을 이용했지만 소리는 나와도 거의 누더기마냥 돌아가는 방식이라 가뜩이나 떨어지는 성능에 성능을 더 떨어뜨리는 방법이었습니다. 게다가 리눅스나 MacOSX는 써먹지도 못하는 방식이었고요. 지금도 오디오 코덱은 해결이 안 된 것으로 알려져 있습니다. 그런데 PPSSPP는 우회 리버스 엔지니어링으로 해결했다고 하네요?


두번째 문제는 자바로 만들어진 것입니다. 자바로 만들어서 여러 OS를 한번에 지원해주지만 문제는 자바이기에 속도가 C나 C++로 만들어진것에 비해 상당히 떨어집니다. 이 문제가 아까의 오디오코덱문제와 합쳐져서 엮이면 극악의 성능으로 바뀝니다. 요즘이야 PC성능이 좋아서 이 마저도 씹을 수 있을 정도지만 기기의 최고 성능으로 끌어내야할 게임이란 소프트웨어가 성능이 떨어진다면 문제가 많은 것이지요. 그래서 사람들은 C나 C++로 개발해달라고 아우성이었지만 Jpcsp가 원래 자바로 만든 에뮬레이터라는 뭔가 상당히 Geek스러운 물건이라 굳이 C로 다시 만들 이유야 없었습니다. 잠시 PCSP라는 C++로 만들어진 물건도 나왔지만 이것은 호환성이 너무 떨어져서 그대로 묻혀버렸습니다.

Jpcsp에 비해 빠르지만 호환성이 너무 떨여저서 묻힌 에뮬레이터 PCSP 이마저도 PPSSPP의 등장으로 2012년 이후 업데이트 중단이다.

세번쨰 문제는 오픈소스가 아니라는 것입니다. JAR파일 형태로 배포하기 때문에 만약 개발자가 때려치면 이 에뮬레이터의 수명은 그대로 끝이 나게 됩니다. 에뮬레이터의 특징 상 누군가가 소스를 받아주지 않으면 그냥 사라지는 것입니다. 위의 PCSP도 소스코드에 대한 이야기는 없는 것으로 보아 오픈소스가 아닌 것으로 보입니다. 오픈소스라면 묻히더라도 나중에 누군가가 다시 발굴해서 써먹을 지도 모를 일이고 다른 프로그램에 일부로써 쓸 수도 있습니다. 하지만 에뮬레이터라면 묻힐 일이 거의 없기도 하지요.


이러한 기존 Jpcsp의 문제를 극복하고 해결한 에뮬레이터가 바로 이번에 주인공인 PPSSPP입니다.


PPSSPP의 타이틀화면 다른 에뮬레이터랑 다르게 화려한 편이다. 그리고 오픈소스라는 것을 강조하기 위해 GPL이라 찍혀있는 것이 선명하다.

이 물건은 앞의 Jpcsp와의 차이가 큰 물건입니다. 앞에서 말했던 성능문제를 C/C++로 개발함으로써 해결했고 오디오코덱을 리버스엔지니어링을 통해서 저작권 및 특허를 회피했으며(이는 처음부터가 그랬던 것은 아니고 업데이트 하면서 해결했습니다.) GPL을 적용해서 배포한 오픈소스 프로그램입니다. 한번에 Jpcsp의 문제를 전부 해결했습니다. 이 에뮬레이터가 나오면서 게임을 즐기기위해 Jpcsp를 돌렸던 사람들은 전부 PPSSPP로 넘어왔다고 합니다.Jpcsp는 게임을 즐기기 보다는 자바로 만들어진 것이라는 그 사실이 워낙 특이하고 재미있어서 나온 것이니 Jpcsp가 묻힐 일은 없지만, 대세가 아무래도 PPSSPP로 넘어갔다는 사실은 확실히 와 닿는 것 같습니다.


그리고 PPSSPP가 Jpcsp뿐만아니라 다른 에뮬레이터와 차이를 보이는 것이 하나 더 있는데 그것이 바로 Android버전의 계획입니다. 다른 에뮬레이터는 안드로이드 버전과 PC버전을 다른 프로젝트로 생각하는데 비해(DeSmuME와 nds4droid, PCSX와 PSX4droid, FinalburnAlpha와 aFBA의 관계와 비슷합니다.)PPSSPP는 안드로이드버전도 같은 프로젝트 내에서 개발합니다. 즉, PPSSPP의 PC버전이 0.9.8이면 안드로이드 버전도 동시에 0.9.8로 업데이트 되는 것입니다. DeSmuME의 업데이트 이후 시간이 지난 후에 nds4droid가 업데이트되는 것과는 차이가 납니다. 덕분에 안드로이드에서 PSP게임을 돌릴 수 있게 됨으로써 지하철에서 보기 힘들어진 PSP는 스마트폰에 의해 또 다시 밀리게 됩니다. 그런데 이미 팔릴만큼 팔렸고 더 이상 소프트웨어도 안 나오는 판국에 밀릴 것도 없기는 하지만 PSP용 게임이 다시금 수요가 생길 지도 모른다는 생각이 드네요.(그것이 거래량에 추가 될지는 미지수이기는 합니다.)


그러나 같은 프로젝트 내에서 같이 업데이트되는 안드로이드와 PC버전은 코드가 약간 다른 것인지 소프트웨어 호환면에서 약간 차이를 보입니다. 일부 게임의 경우 PC버전에서는 구동이 잘 되지만 안드로이드에서 구동이 안 된다는 사람들이 많으며 반대로 안드로이드에서는 구동이 잘 되는데 PC에서 안 된다는 게임도 있습니다. 이것이 Arm과 x86의 차이일지 아니면 코드가 다른 것인지는 조금 살펴봐야 알 것 같지만, (일부의 소스코드가 다른 듯 합니다.안드로이드에서 무사히 구동하게 위해 코드 최적화를 하면서 차이가 생긴 듯 합니다.) 오픈소스이니 잦은 업데이트로 해결 할 수 있을 것이라고 믿습니다.


안드로이드와 PC 모두 잘 돌아가는 대표적인 게임 DJMAX Portable 2


PC에서는 잘 돌아가는 반면 안드로이드에서는 돌아가지 않는 DJMAX Portable 3 같은 시리즈지만 구동면에서도 차이가 있다. 2015.5 지금은 안드로이드에서도 무지하게 잘 된다...

안드로이드 버전에서는 써본 결과 터치 인터페이스가 상당히 불편합니다. 원하는 곳으로 이동이 안 될때가 있고 액션 게임의 경우에는 컨트롤 미스로 게임을 던져 버리고 싶을 때도 있더군요. USB-OTG를 지원하는 스마트폰이라면 그냥 조이패드를 붙여서 개임을 하던가 아니면 알아서 적응을 해서 게임을 하는 수밖에는 없을 듯 합니다. 특히 PSP는 워낙 버튼이 많아서 NDS게임을 스마트폰에서 하는 것에 비해 답답한 면이 많습니다.(NDS게임에는 대개 액션보다는 터치 게임이 많은 것도 한몫 합니다.) 이는 PPSSPP의 잘못이 아니기는 하지만 개인적으로 전용 컨트롤러를 하나 만들고 싶게 하는 수준입니다. 일반 조이패드를 끼우고 지하철에서 할 수는 없는 노릇이니까요.


버튼수가 너무 많아서 터치 인터페이스 자체를 거의 덮을 지경. 컨트롤 미스라도 나면 정말 화가 머리끝까지 난다.


하지만 내 학생시절 부러워 했던 PSP를 지금의 스마프폰에서 굴릴 수 있게 된 점은 상당히 마음에 듭니다. 특히 DJMAX Portable시리즈를 입맛만 다시고 제대로 한 적은 없는데(대신 PC버전인 Trilogy는 열심히 했습니다.)이제야 할 수 있게 되었네요. 누군가 그랬습니다."최고의 게임기는 PC"라고 그랬지요. 이제 한 문장 더 추가되어야겠네요. "최고의 휴대용 게임기는 스마트폰입니다."

,

1. aFBA

소스코드 : https://github.com/Cpasjuste/libafba

바이너리 : http://android.mydedibox.fr/afba/aFBA.apk

aFBA는 여러 안드로이드 아케이드 에뮬레이터 중에서도 Tiger Arcade나 다른 아케이드 에뮬레이터를 제치고 가장 최적화된 에뮬레이터로 꼽히는 에뮬레이터입니다.

사실 아케이드 에뮬레이터의 본좌는 Mame입니다. 하지만 안드로이드용 mame는 속도가 아직까지는 별로더군요. Mamedroid 외에더 mamedroid reloaded란 것도 나왔지만 롬 호환성만 좋아졌을뿐 aFBA에 비하면 그렇게 성능이 좋지 못합니다. aFBA는 아케이드 에뮬레이터 중에서 Final Burn이란 에뮬레이터를 기반으로 하는데 cps1,2 pgm, neogeo같이 그럭저럭 잔뼈 굵은(pgm이 메이저 급이었던가요?)기판은 지원하지만 마이너한 기판은 가차없이 미지원입니다. 이를 기반으로 했기에 aFBA도 마찬가지로 일부 메이저 기판만 지원합니다. 하지만 성능은 우월합니다. 넥서스원에서도 메탈슬러그3를 무사히 돌려서 게임이 가능했으니까요. MetalSlug3가 오래된 게임이기는 하지만 Mamedroid에서는 게임플레이가 도저히 못해 먹을 수준이었지만 aFBA는 아주 훌륭했습니다.

 TigerArcade와의 비교에도 aFBA가 압승이더군요. 지원기판수도 비슷한데다가 타이거 에뮬레이터는 구하기도 어려운편이라 그냥 이렇게 사장되어가는 분위기입니다. 심지어 aFBA는 오픈소스라 사라질 염려도 없습니다. 한때 나마 유료로 판매했던 neoDroid도 이거에 밀리더군요. 아마도 aFBA는 소스코드가 있는한 계속적인 업데이트도 가능하리라 보는데 최근 업데이트가 없는듯 합니다. 그도그럴것이 cps나 네오지오나 새로운 게임은 나오지도 않는데다가 킷캣에서도 민망할정도로 잘 돌아가고 있어서 커밋할 필요성을 못느껴서 그런듯합니다. 롬셋이 급변하지 않는이상 12년 버전인 1.6이 장수할 것 같네요. 

전체적인 인터페이스도 다른 에뮬레이터에 비하면 환상적입니다. 너무깔끔해서 에뮬레이터가 아니라 어느 웹페이질 보는 듯합니다. Tiger시리즈가 투박한 인터페이스를 자랑한거에 비하면 거의 깔끔하게잘 만들었습니다.


만약 속도가 느리다면 게임내에서 한번 뒤로를 누른 다음 위쪽 도구 상자중에서 두 번째 버튼을 터치 그리고 none을 고르시면 확실히 성능이 나아짐을 보입니다. 사실 이것은 브라운관 느낌이 나도록 하는 필터가 작동하면 서 생긴 일종의 프레임 하락인데 게임하면서 굳이 필요없는 필터를 제외함으로써 프레임의 이득을 보고자 하는 것입니다. 필터가 빠짐으로써 게임이 약간 깨끗해 보이는 효과도 얻을 수 있습니다. 만약 원한다면 더 깔끔하게 보이게 하는 필터를 적용해도 좋습니다. 다만, 이때는 성능이 좀 좋아야 히겠지요.


지원게임은 MAME가 지원하는 게임이면 됩니다. 다만, 기판이 CPS1,2 NeoGeo, PGM 그리고 이들보다 이전의 물건인 경우 정도만 가능합니다. Finalburn지원 리스트를 보시는 것이 더 빠르겠군요.





다음 포스팅에는 포켓몬스터 6세대를 스마트폰으로 가능 하게한 drastic과 nds4droid에 대한 포스팅을 해보도록 하겠습니다.

,