PS3 컨트롤러를 유선(USB)로 연결했을 경우 MAME에서 키 입력이 불가능할 때 조치방법
1. minimal.cpp 수정
$ sudo nano /opt/retropie/emulators/mame4all-pi/src/rpi/minimal.cpp |
위 파일을 열어 다음 문장을 주석처리 168라인부터 174라인이 디폴트이지만 환경에 따라 다를 수 있으니 확인하고 진행한다.
// if (SDL_JoystickNumAxes(myjoy[i]) > 6) // { // SDL_JoystickClose(myjoy[i]); // myjoy[i]=0; // logerror("Error detected invalid joystick/keyboard\n"); // break; // } |
저장 및 exit
2. 리컴파일링
$ cd /opt/retropie/emulators/mame4all-pi/ $ make |
레트로파이 2.2의 경우 이 과정만으로 컴파일이 문제없이 잘 이루어진다. 하지만 2.2이미지는 구할수가 없었고 2.3 이미지를 활용하니 다음과 같은 오류가 발생 했다.
/usr/bin/ld: obj_mame_rpi/rpi/sound.o: undefined reference to symbol 'snd_pcm_hw_params_malloc@@ALSA_0.9' //usr/lib/arm-linux-gnueabihf/libasound.so.2: error adding symbols: DSO missing from command line collect2: ld returned 1 exit status Makefile:67: recipe for target 'mame' failed make: *** [mame] Error 1 |
이경우 다음 사항을 추가 진행한다.
추가 패키지 설치
$ sudo apt-get install build-essential autoconf ccache gawk gperf mesa-utils zip unzip |
Makefile 수정
$ sudo nano /opt/retropie/emulators/mame4all-pi/Makefile
/* 아래 문장을 */ ~ ~ ~ LIBS = -lm -lpthread -lSDL -L$(SDKSTAGE)/opt/vc/lib -lbcm_host -lGLESv2 -lEGL -lglib-2.0 ~ ~ ~
/* 이렇게 수정한다 */ ~ ~ ~ LIBS = -lm -lpthread -lSDL -L$(SDKSTAGE)/opt/vc/lib -lbcm_host -lGLESv2 -lEGL -lglib-2.0 -lasound LIBS+=-lz -lrt -lm ~ ~ ~ |
이후 다시 make를 진행하면 오류없이 진행된다.
3. 다음 사항을 체크한다.
i) /opt/retropie/emulators/mame4all-pi/cfg 디렉토리가 있는지 확인한다. 없다면 만든다.
ii) cfg 디렉토리의 퍼미션을 확인한다.
$ ls -ld /opt/retropie/emulators/mame4all-pi/cfg drwxr-xr-x 2 pi pi 4096 Jul 8 14:21 /opt/retropie/emulators/mame4all-pi/cfg |
iii) 만약 위와 퍼미션과 소유자가 다르다면 다음과 같이 수정한다.
$ sudo chown -R pi:pi /opt/retropie/emulators/mame4all-pi/cfg |
4. MAME에서 아무 게임이나 실행한다음 TAB키를 누르면 키설정이 가능하니 이후는 원하는 키 설정으로 변경한다.