가끔씩 옛날 오락실게임이 생각나서 해보고 싶은데, linux mint를 쓰다보니 리눅스에서 mame를 돌려보고 싶었다. 그래서 mame최신버전 받고, 롬 받아서 해봤는데 뭔 에러만 잔뜩나오고 실행이 안됨. 윈도우즈에선 오오래전 mame32 plus인가 진짜 구식 버전 받아도 실행만 잘 된단말이지. 옛날버전으로 직접 컴파일까지 별의 별짓 다해봤는데, 컴파일은 잘 되지만 증상은 똑같았다.
이것저것 찾아보며 알게된건, 일단 mame 버전과 rom, bios들이 버전이 맞아야 한다는 거였다. 근데, rom이나 bios들은 옛날부터 큰 변화가 없잖아. 이정도로 안될 이유는 아닌거 같긴한데… 그럼 윈도우즈에서 돌려보자 생각해서 해보니, 윈도우즈에선 rom set과 mame버전이 안맞으면 안되긴 하더라. 그래도 되는 버전 구해서 셋팅해서 해보고 그대로 리눅스로 돌려보니… 리눅스는 안됨 ㅋㅋㅋ
mame를 보면, 소스는 리눅스에서도 얼마든지 컴파일이 가능하고 실행가능하다. 에뮬레이터인데, rom, bios 는 OS의존도가 없어야 할거 같지만, mame 빌드의 문제인지 의존도가 존재함. 기본적으로 mame가 윈도우즈에서 시작했고, 현재도 빌드 바이너리는 공식 사이트에는 윈도우즈용만 베포가 된다. 리눅스 배포판에 따라 빌드된 패키지를 다운로드 가능하긴 하다만. 애초에 윈도우즈만 제대로 지원하고 있다고 생각하면 될듯. 그래서 최종적으로 생각해낸 방법, Wine으로 윈도우즈용 mame를 돌려보자.
wine을 쓰기위해 먼저 해줄 일은, 리눅스에서 32비트 아키텍쳐를 지원하는 일이다. 이는 다음과 같이 가능하다.
$ sudo dpkg --add-architecture i386
$ sudo apt updatewine은 윈도우즈 가상머신 같은게 아니고, windows api호출을 리눅스 라이브러리를 사용해 처리한다. 32비트 윈도우즈 프로그램들을 처리하기 위해선, 리눅스의 32비트 라이브러리들이 필요한 것이고, 이를 위한 과정이었다.
이제 wine을 설치하자.
$ sudo apt install wine64 wine32wine설치는 생각보다 간단한데, 이렇게 하면 한글이 깨져보인다. 한글폰트를 추가하자. wine 한글폰트 추가는 https://wikidocs.net/273781 여기에 나온 내용을 참고하면 된다.
설정이 끝났으면 이제 실행하면 된다. mame 설치파일을 받는다. 최신 버전은 https://www.mamedev.org/index.php 여기에서 받을 수 있으나, 가지고 있는 rom set이 0.281 버전이라서 예전 버전을 다음 사이트에서 받았다.
https://www.mamedev.org/oldrel.html
설치파일을 설치하고자 하는 위치에 옮겨놓고 wine을 이용해 실행하자.
$ wine mame0281b_64bit.exe다음을 이용해 초기 설정 파일을 생성하자.
$ mame -createconfigmame.ini파일이 생성된걸 볼 수 있을 것이다.
마지막으로 문제가 있는데, 다른 디렉토리에서 wine을 이용해 mame를 실행하면 rom파일등 위치를 제대로 인식 못해서 제대로 동작하지 않는다. 문제의 해결방법은 wine에게 working directory를 지정해서 실행해주면 된다.
$ wine start /d "/home/batmask/Applications/mame0281" "mame.exe"위와 같이 wine 뒤에 “start /d” 옵션을 붙여주고 mame가 설치된 디렉토리를 써주고, 그 다음에 실행할 mame.exe를 써주면 된다.
뽀너스로, linux mint의 경우 어플리케이션 런처를 미리 만들어 놓으면 간편한데, 런처 내용에 다음과 같이 설정하면 된다.

명령어에는 앞에서 썼던 명령어를 넣어주고, 터미널에서 실행을 체크해준다. 아이콘도 mame 아이콘으로 변경해주면 굿.