RetroPi에서 start 버튼으로 게임 종료

요즘 라즈베리파이에 에뮬레이터 게임을 올려서 재미있게 즐기고 있는데요.
라즈겜동 카페에 제가 올린글에서 start 버튼을 길게 눌러서 게임 빠져 나가는 방법에 대한 얘기 있어서 퇴근하고 작성해 봤습니다.

pygame으로 버튼 입력을 체크하고 keyboard로 메뉴로 빠져나가는 키가 눌러지는 상황을 재현해 보았습니다.
retropi에서 mame는 기본설정이 esc로 빠져나가며, 다른 게임들은 start(start_1, ‘1’) + select(coin_1, ‘5’)을 통해 빠져나갈 수 있습니다.
해당 코드는 start 버튼을 5초 동안 누르고 있으면 에뮬 게임을 빠져나가는 내용입니다.

이상하게 keyboard 패키지가 python2 에서는 오류가 발생하여 python3로 테스트해서 성공했네요.

개요

관련 패키지 설치

pip3 설치

  • sudo apt-get install python3-pip
  • sudo pip3 install –upgrade pip

pygame 설치

  • sudo apt-get install python3-pygame

keyboard 설치

  • sudo pip3 install keyboard

조이스틱 선택 및 start 체크

테스트한 조이스틱은 “EX Revolution” 입니다.
근데.. 제 라즈베리파이에는 GPIO를 조이스틱으로 활성화해서 여러개의 조이스틱이 보이고, 라즈베리파이를 껐다 켤때마다 ID 값이 바뀌더군요.
그래서 조이스틱 이름과 start 버튼 ID를 최종 코드에 입력하려고 해야 할 듯합니다.
첨부된 searchJoystick.py 를 실행하면 ID와 이름이 출력됩니다. 이후 원하는 조이스틱 ID를 입력한 후 start 키를 누르면 “9”번이 찍힙니다.
Ctrl+C 를 눌러서 프로그램을 빠져나갑니다.

start버튼으로 게임종료

첨부된 exitByStartButton.py 에서 조이스틱 이름과 start 버튼 번호를 수정합니다.

자동실행 되게 하기 위해
/opt/retropie/configs/all/autostart.sh 의 맨 윗줄에 아래와 같이 등록합니다.

소스코드

searchJoystick.py

exitByStartButton.py

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

1 댓글

  1. 핑백: 10인치 바탑 게임기 제작기 - Kimstar 3.0

댓글 남기기