Docker로 Snes9x 이동하면서 놀고 싶어요!

4376 단어 SNESDocker
Linux Mint18.3(Sylvia)을 사용하지만 우분투(또는 Debian)의 동료인 OS에서 스네스9x가 움직이지 않기 때문에 ZSNES로 참아야 한다.
그러나 ZSNES는 게임을 하는 데 다음과 같은 문제가 있습니다.
  • 기능키의 안내가 없기 때문에 저장하려다가 실수로 불러오기 쉽다
  • 음향 소음과 재현 불량이 빈번하게 발생
  • 사이트 축소판 그림에 따르면 페도라의 경우 스네스9x가 움직이기 때문에 리눅스 민트의 Docker 용기로 시작된 페도라로 스네스9x를 이동하는 것을 고려했다.

    절차.


    아래와 같이 파일을 만들고 명령을 실행합니다.

    Dockerfile


    적절한 디렉토리(예: ~/docker/fedora30 snes9x)를 만들고 다음 Docker file을 만듭니다.
    FROM fedora:30
    RUN dnf -y install wget
    RUN wget http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-30.noarch.rpm
    RUN rpm -Uvh rpmfusion-nonfree-release-30.noarch.rpm
    RUN dnf -y install snes9x-gtk
    RUN dnf -y install dbus-x11
    RUN dnf -y install libGL
    

    build.sh


    한 개의 지령이 까다롭기 때문에 앞에 있는 Docker file과 같은 디렉터리에 있는build입니다.sh를 미리 만드는 게 좋아요.
    #!/bin/sh
    docker build -t fedora30/snes9x .
    

    run.sh


    더 긴 명령은 더 귀찮기 때문에 아래의 런과 위의 Docker file는 같은 디렉터리에 있습니다.sh를 미리 만드는 게 좋아요.
    아래와 같이 $HOME/snes를/root/snes에 매핑합니다.
    그러면 ROM 파일이 호스트의 $HOME/snes 에 배치된다고 가정합니다.
    #!/bin/sh
    docker run -it --name=fedora30_snex9x \
    --net host \
    -e DISPLAY=$DISPLAY \
    -v $HOME/.Xauthority:/root/.Xauthority \
    -v $HOME/snes:/root/snes \
    -v /tmp/.X11-unix:/tmp/.X11-unix -v /var/lib/dbus:/var/lib/dbus \
    -v /var/run/dbus:/var/run/dbus -v /etc/machine-id:/etc/machine-id \
    --device=/dev/dri:/dev/dri --device=/dev/snd:/dev/snd \
    --device=/dev/input:/dev/input \
    fedora30/snes9x bash
    

    구축 및 시작


    다음 명령을 실행하여 Docker 컨테이너를 구축하고 시작합니다.
    편의를 위해 달러로 시작하는 줄은 Docker 호스트이고 #로 시작하는 줄은 Docker 컨테이너로 실행되는 명령입니다.
    $ cd ~/docker/fedora30_snes9x
    $ chmod +x build.sh
    $ chmod +x run.sh
    $ ./build.sh
    $ ./run.sh
    # cd /root/snes
    # snes9x-gtk
    

    Snes9x 설정


    다음 초기 설정은 필수입니다.
  • View→Change Size를 통해 적절한 크기 선택
  • Options→Controller Ports→SNES Port1→Joypad 키보드 선택 및 사용
  • Options→Preference-sound에서 Dynamic rate control를 연결하여 소음을 낮춘다
  • Options→Preferences→Joyplads→Buttons를 통해 키보드 분배
  • 원래인지 환경인지 모르겠지만 설정을 변경하면 부당하게 끝난다.
    그럼에도 불구하고 반복적으로 설정하면 설정이 반영될 수 있으니 낙담하지 말고 계속 진행하세요.

    참고 자료


    그 이하가 없으면 이루기 힘들 텐데 감사합니다.
  • 고하정순의: 제22회 Docker 3D 게임 시작 - 운행편(1/3)
  • 모니터에 Docker 컨테이너에서 이동하는 X11 응용 프로그램 윈도우 표시
  • 추기

  • 페도라 창고의 바이너리 불량, Docker 용기 환경 불량, 스네스9x의 메뉴 표시 등이 있을 때 코어 덤프를 하는 경우도 있는데 안타깝게도 안정성이 부족하다.Windows Edition은 안정성이 뛰어납니다.
  • 좋은 웹페이지 즐겨찾기