2016년 3월 17일 목요일

MAME에 관한 궁금증 ____ 0

MAME를 이용해 게임을 즐기려다 보면 은근히 혼란스러운 부분들이 있는데,
원하는 게임이 제대로 실행되지 않는 경우가 있다는 것이다.

그저 아직 에뮬레이션의 개발이
완료되지 않았으니 좀 더 버전이 올라가서 지원되기를 기다려야 하는 것이 아니라,
동일한 게임 롬을 가지고도 A라는 컴퓨터에 설치된 MAME로는 실행이 되는데, B라는 컴퓨터에 설치된 MAME로는 실행이 되지 않는 경우가 있다는 것이다.

단지 버전 차이가 아니겠냐고 반문할 수도 있겠지만, 절대 그렇지 않다.
심지어는 낮은 버전의 MAME에서는 실행이 되는데, 최신 버전의 MAME에서는 실행이 되지 않는 경우도 있으니 정말 괴이하기 짝이 없다.


아주 오래전에 MAME UI32라는 프로그램을 사용하기 시작했다.
이 프로그램은 MAME의 0.143u9이라는 버전에 front-end를 추가해서 하나로 만든 버전이었다.
릴리즈 시기는 2011년 10월 27일.

MAME UI32

이 프로그램의 장점은 사용하기 쉽다는 점.
각종 설정도 간편하고, 게임들을 고르기도 쉽다.

단점은... 저 많은 게임의 목록을 다 읽어 들여야 하기 때문에 실행시 초반에 시간이 꽤 걸린다.
물론 옵션으로 디렉토리 검색을 하지 않도록 선택할 수도 있다.
하지만 롬파일의 개수가 어느 정도 이상 많아지면 그 목록을 단지 메모리에 읽어 들이고 화면에 표시하는 데에만도 시간이 적지 않게 걸린다.
그러다 보니 발생하는 문제가 있는데, 기존의 목록에 새로운 게임을 추가하게되면 이 목록을 새로 고치도록 해야 하는데, 그러면 디렉토리를 모두 다시 검색한다.....ㅠ.ㅠ

더욱더 치명적인 단점이 있으니....MAME 코어와 Front-end가 하나로 뭉쳐져 있다는 점이다.
따라서 계속 업데이트 되는 MAME를 따라가려면 이 Front-End의 제작자가 업데이트 해 주기를 기다려야 한다.
그리고 이 Front-End는 더 이상 업데이트가 되고 있지 않다.....ㅠ.ㅠ


이러한 단점들 때문에 어떻게 되는지도 모를 Front-End들은 과감히 버리기로 작정을 했고,
MAME 코어를 직접 다운 받아서 사용하게 되었다.

MAME 0.161

MAME 코어만을 사용하면 적쟎이 당황하게 된다.
시작때마다 랜덤하게 아무 게임들이 골라서 목록을 보여준다. 그리고 저게 다다.
저 아래로 더 있을거라는 생각은 하지 말자.
원하는 게임이 있다면 그 게임의 이름을 입력하면 맨 위에 표시가 되면서 그에 해당되는 게임들의 목록이 나타난다.

그리고 저기에 나오는 목록은 내가 가지고 있는 게임롬 내에서 검색한 게 아니다.
단지 MAME가 "지원"하는 게임들의 목록이다.
해당 게임에 커서를 옮겨서 엔터를 누르면, 그제서야 지정해 두었던 내 컴퓨터의 디렉토리에서 검색하기 시작한다.

물론 내가 가진 롬파일이 어느 디렉토리인지는 따로 설정해 주어야 한다.
전체화면으로 볼 것인지 윈도우로 볼 것인지, 가로세로 비율을 강제로 조절할지 원래대로 유지할지, 꽉차게 볼지 아닐지 등등을 모두 직접 설정해 줘야 한다.
mame.ini를 직접 편집해서...

하지만 시작은 아주 경쾌하다.
하드 디스크를 별로 긁어대지도 않고 순식간에 실행이 된다.

MAME 0.171
최근에 나온 MAME 0.171은 마치 심플한 Front-End를 내장한 것처럼 보인다.
좌측에서 MAME가 지원하는 전체 목록을 볼지, 현재 보유한 게임만을 볼지 등을 선택할 수도 있다.
게임의 목록을 모두 로드해야 하기에 이전 버전보다 시작하는 게 버거워졌다.

설정해야 하는 것들도 모두 여기에서 할 수 있다.


그리고 이렇게 사용하면서 맨 위에서 언급한, 정말 궁금한 문제들이 나타나기 시작했다.

비록 불완전한 에뮬레이팅이지만 MAME UI32에서는 Ray Storm, Street Fighter Ex, Radiant Silvergun이 실행이 된다.
하지만 MAME 0.161과 MAME 0.171에서는 이 게임들이 실행되지 않는다.

모든 MAME용 롬파일들은 하나의 디렉토리에 존재하고 있으며, 모든 버전의 MAME는 이 디렉토리를 사용하고 있는데도....


===============================

사실 MAME 0.171은 새로 다운로드 받았다.

위의 문제를 직접 확인해 보고 싶어서, 소스레벨의 디버깅을 해 보고 싶었고,
소스를 받으러 갔다가 새로운 버전이 있길래 받은 것이다.

바이너리 파일, 소스파일, 그리고 디버그 빌드를 한 바이너리 파일과 심볼 파일을 받았다.

그리고 소스 빌드를 하지 않고, 디버그 바이너리와 소스, 심볼 파일을 이용해 디버깅을 시도해 보았다.

하나도 안된다.

디버그 바이너리를 읽고는 디버그 정보를 찾을 수 없다고 하는 gdb.






심볼파일 패스를 지정했음에도 역시 심볼을 찾지 못하고 소스에 브레이크 포인트를 잡지 못하는 windbg

Windbg

exe를 불러오자 analyzing에 무지막지하게 버벅대던 Ollydbg,
급기야 중지하려고 해도 안되고 먹통이 되어버리더니 강제 종료시킬 수 밖에 없는 상황.

그리고 이 모든 상황을 더욱 짜증나게 만드는 프로그램들이 있었으니....

혹시라도 자기를 디버깅할까봐 지레 겁을 먹고 경고를 날리는 보안 프로그램.
INCA internet의 nossvc - nProtect Online Security Service와 Wizvera의 Delfino라는 프로그램.

Delfino와 nossvc

이 프로그램들의 삭제 방법부터 강구해 봐야겠다.

강제 종료도 되지 않으면서 디버깅 툴마저 작동하지 못하게 방해를 하다니....

이거야말로 악성 어플이 아닌가...

댓글 없음: