프로그램소개

닌텐도사 게임기 에뮬레이터 higan

afterdark 2013. 7. 30. 16:34
반응형



higan 이란 에뮬레이터는 좀 생소할지도 모르겠지만 예전에 제가 블로그에 포스팅했던 bsnes 의 새로운 이름입니다.
윈도우용은 아직 실행해 보지 않는 상태고요. 요즘 윈도우 부팅할 일이 별로 없어서....그외에는 리눅스용이나 윈도우용이나 큰 차이는 없을겁니다. 이 포스팅에선 리눅스용 higan 위주로 소개하도록 하겠습니다.

윈도우에선 그냥 홈페이지에서 다운받아 설치하면 되고요.

리눅스의 경우는 홈페이지에서는 소스로만 제공됩니다. 직접 컴파일 해도 되겠지만...제가 사용하는 우분투 리눅스라면 getdeb 를 이용하여 설치하는 것이 편할 것입니다. getdeb 사이트에 들어가면 저장소 추가법이나 설치법이 자세히 나와 있습니다.
getdeb 저장소를 설치했으면 synaptic 같은 프로그램으로도 higan 을 설치할 수 있습니다.
우분투 기본패키지로는 higan 의 전버전인 bsnes 를 설치하는게 가능한데요. higan 을 설치하는것이 좀 더 편하게 쓸 수 있을 겁니다. 

getdeb  사이트는 http://www.getdeb.net/ 입니다.



전에 bsnes 에서도 잠깐 언급한 일이 있는데요. 이 프로그램의 제작자는 에뮬을 만드는데 있어서 정확한 에뮬레이션을 목표로 하고 있습니다. 따라서 약간 다른 에뮬레이터와는 몇가지 차이점을 보입니다.

대부분의 에뮬레이터는 슈퍼패미콤의 경우 sfc, smc 등과 이들 파일을 zip 파일이나 rar, 7zip 으로 묶은 압축파일을 지원합니다. 하지만 이 프로그램은 원칙적으로는 sfc 파일형식 만을 지원합니다. 예전에 bsnes 0.73 버전이상부터 그랬었죠. 그리고 bsnes 에선 smc 같은 형식의 파일을 sfc 확장자로 바꿔주는 프로그램을 제공했었습니다. 하지만 다소 불편하기도 했었죠.
그래서 이번 버전에선 Library 메뉴에 "import game" 이라면 메뉴를 두었습니다. 이 메뉴를 이용하여 sfc, smc 혹은 이들 확장자를 zip 파일로 압축한 롬파일을 읽어들이면 higan 은 이들 파일을 자신의 롬파일 디렉토리로 복사해서 별도의 게임 롬파일 라이브러리를(롬파일 모음이라고 생각하면 됩니다) 만듭니다. 그 이후부턴 Library 에 있는 에뮬레이터 이름에 해당하는 메뉴를 클릭하면 import 한 게임들이 보여지게 됩니다. 


                                          [먼저 게임을 import 하고 게임을 실행시켜야 합니다]

import 한 게임들은 제 우분투 리눅스의 경우 홈디렉토리 아래에 Emulation 디렉토리 밑에 각 게임기 에뮬레이터 이름의 디렉토리를 만들고 그아래에 게임이름에 해당하는 디렉토리를 만들어서 그 아래에 롬파일을 저장합니다.
예를 들어 패미콤용 그라디우스(Gradius) 라면 Emulation/famicon/Gradius 디렉토리를 만들고 그 아래에 charactor.rom, manifest.bml, program.rom 이렇게 파일이 존재하게 됩니다. 좀 파일명이 이상하다 싶으실텐데...기본적인 롬파일은 program.rom 이 되고요. 그 외에 롬에 따라 파일구성은 조금 달라집니다. 즉 롬파일을 분해(?) 해서 넣는다고 볼수도 있는데...왜 다른 에뮬레이터에선 하지 않는 이런짓(?)을 하는지는 개발자의 홈페이지 포럼을 찾아보면 있습니다. 제 경우는 우연히 어느분이 번역해 놓은 홈페이지를 본적이 있는데 지금 그 홈페이지는 찾을 수가 없네요. ㅡㅡ; 관심있으신 분은 찾아보시길 바랍니다.

어쨌던...정확한 에뮬레이터를 만들겠다는 제작자의 철학이 담긴 구성이니 만큼 이해해 주도록 합시다. 이해 못하셔도 할 수 없는 거고.....^^; 그래도 나름대로 제작자의 철학을 관철시키면서 사용자의 편이성은 상당히 고려한 구성이 아닌가 싶습니다.

에뮬레이션의 정확도는 두말하면 입 아픕니다. 거기에 대해선 상당히 정평이 나 있습니다. 다만 그만큼 사양이 높으니 슈퍼패미콤 에뮬을 위해서라면 저 사양피씨에선 snes9x 를  이용하시는게 좋을것 같습니다. 사실 보통은 snes9x 정도로도 상당히 훌륭한 에뮬레이션을 보여주기 때문에 이런저런게 귀찮으면 그냥 snes9x 를 쓰시는 것도 나쁘지 않습니다. 사양이 높다해도 요즘 왠만한 피씨라면 문제는 없을것 입니다만....


이 에뮬레이터는 사양이 높은편 입니다. 그래서 저사양 유저들을 위한 배려를 해 주고 있습니다. accurate 모드는 정확성이 가장 높은 모드로 가장 많은 리소스를 소모합니다. 그 다음이 balance, 그 다음이 performance 입니다. 대충 영어 단어로 봐도 아시겠지만 performance 가 가장 적은 리소스를 소모합니다. 즉 저사양 피씨에 적합합니다. 



리눅스의 경우엔 위 처럼 "sudo update-alternatives --config higan-bin" 을 터미널에서 입력해서 각 모드를 변경가능합니다. 윈도우에선....아마 메뉴가 있겠지요? ^^;


실제 제가 슈퍼패미콤 게임을 구동해 본 바로는 opengl 로 맞추고 게임을 실행해보니 프레임이 40 까지 떨어지기도 합니다. 기본설정은 balance 였는데 말이죠. ㅡㅡ; 이렇게 프레임이 떨어지면 사운드가 좀 튀는 증상이 보였습니다. 그래서 현재는 그래픽을 X-Video 로 맞추고 perfomance 모드로 실행하고 있습니다. 그러니 별 문제는 없네요.


아무래도 opengl 을 이용했을때의 프레임 저하 문제는 오픈소스 그래픽드라이버의 opengl 성능 문제가 아닌가 싶네요. 오픈소스 드라이버가 안정성이 더 좋아서 쓰고 있기는 한데...이것 참 고민되네요.


게임보이 어드밴스드 롬파일도 구동이 가능하지만, 게임보이 어드밴스드 바이오스가 필요합니다. 바이오스 파일을 구하셔서 "/usr/share/games/higan/profile/Game Boy Advance.sys" 폴더에 파일명 bios.rom 으로 바꾸신후에 복사해 넣으시면 됩니다.


역시 opengl 로 설정하면 프레임 저하가.....ㅡㅡ;

                                                        [ gba 게임 opengl 로 설정했을때....프레임이....ㅜ.ㅜ]



                                     [x-video 로 설정했을때. 10프레임 이상 차이가 나네요. ㅜ.ㅜ]


윈도우에선 이런 문제는 아마 없겠죠. 리눅스도 amd 쪽 드라이버를 쓰면 괜찮은 프레임이 나오지 않을까 추측해 봅니다. 다만 제 경우 자주 그렇진 않지만.... 부팅중 다운되는 현상으로 인해 그냥 오픈소스 드라이버를 쓰고 있는데....amd 가 드라이버 좀 제대로 만들어 줬음....예전보다 낫기는 하지만....예전엔 동영상 껌뻑거리는 현상때문에 쓰지도 못했던 때도 있었지요. ㅡㅡ;




이 에뮬레이터는 bsnes 포스팅에도 간단히 언급했지만 다른 에뮬레이터와는 달리 "기기를 정확히 에뮬레이션 한다." 라는 분명한 목표에 따라 만들어진것이라 다른 에뮬레이터와는 좀 다른면이 있습니다. 하지만 그만큼 원래 기기와 가장 비슷한 동작을 한다는데 큰 의미를 부여할 수 있습니다. 닌텐도 에뮬들을 이 프로그램 하나로 모두 즐길 수 있다는 것도 편하고요.


롬파일 복사본을 하나 더 만든다는 점이 다른 에뮬과는 좀 다른데....이게 맘에 안드시면 zsnes 나 snes9x 를 쓰시면 되겠지요.


프로그램 홈페이지는 http://byuu.org/ 입니다.