HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2018/09/24

Raspberry Pi 3でミニスーファミのエミュレータ canoe-shvcを動かす方法の夢を見た Raspberry Pi 3でミニスーファミのエミュレータ canoe-shvcを動かす方法の夢を見た

(ラズパイ3で任天同 クラシックミニのスーパーファミコンのエミュレータを動かしてみた夢)

Tags: [Raspberry Pi], [電子工作]




●ミニスーファミをラズパイで動かす方法

 Raspberry Pi 3でミニスーファミのエミュレータ canoe-shvcを動かします。
 ラズパイで SNES Classic Miniをエミュレートする方法。
Running SNES Classic Mini Emulator on Raspberry Pi

●必要なもの
 ・Raspberry Pi 3本体
 ・canoe-shvcファイル(エミュレータ本体)
 ・.sfrom形式の ROMファイル

sudo apt-get update

sudo apt-get install libsdl2-dev
sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /usr/lib/libMali.so
sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /usr/lib/libGLESv1_CM.so
sudo nano /boot/config.txt

hdmi_group=2
hdmi_mode=85

run.sh
#!/bin/bash

fbset -vyres 1440
./canoe-shvc -filter 3 -rom "$1"
fbset -vyres 720
xrefresh

chmod +x canoe-shvc
chmod +x run.sh

./run.sh game.sfrom

 X Window上で動かすとミニスーファミのエミュレータ canoe-shvcが全画面で起動します。と言う夢を見た。
・Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。
Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。


・Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。
Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。


・Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。
Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。


・Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。
Raspberry Pi 3でミニスーファミのエミュレータを動かす方法。と言う夢を見た。




●ミニスーファミをラズパイで動かして、USBゲームパッドを使用する方法

 色々試したけど USB接続のゲームパッドが使えない。

SDL_GameControllerDB/gamecontrollerdb.txt
sudo mkdir /etc/sdl2
wget https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
sudo cp gamecontrollerdb.txt /etc/sdl2/

nano sdl2-joystick.c
#include <SDL.h>

int main()
{
  SDL_Init(SDL_INIT_JOYSTICK);
  atexit(SDL_Quit);

  int num_joysticks = SDL_NumJoysticks();
  int i;
  for(i = 0; i < num_joysticks; ++i)
  {
    SDL_Joystick* js = SDL_JoystickOpen(i);
    if (js)
    {
      SDL_JoystickGUID guid = SDL_JoystickGetGUID(js);
      char guid_str[1024];
      SDL_JoystickGetGUIDString(guid, guid_str, sizeof(guid_str));
      const char* name = SDL_JoystickName(js);

      int num_axes = SDL_JoystickNumAxes(js);
      int num_buttons = SDL_JoystickNumButtons(js);
      int num_hats = SDL_JoystickNumHats(js);
      int num_balls = SDL_JoystickNumBalls(js);

      printf("%s \"%s\" axes:%d buttons:%d hats:%d balls:%d\n",
             guid_str, name,
             num_axes, num_buttons, num_hats, num_balls);

      SDL_JoystickClose(js);
    }
  }

  return 0;
}
gcc -o sdl2-joystick sdl2-joystick.c `sdl2-config --libs --cflags`
./sdl2-joystick
pi@raspberrypi:~ $ ./sdl2-joystick
03000000450c00000151000001010000 "2.4G 2.4G Wireless Device" axes:9 buttons:15 hats:1 balls:0
03000000830500006020000010010000 "USB,2-axis 8-button gamepad  " axes:2 buttons:8 hats:0 balls:0

gamepad-tool.exe
GUID:
03000000830500006020000000000000

SDL2 Gamepad Tool v1.2 by General Arcade (compiled with SDL version 2.0.7, DLL version 2.0.7)
Website: http://generealarcade.com/gamepadtool/

Searching gamepads...
Found 1 gamepad(s):
"iBuffalo SNES Controller", 03000000830500006020000000000000 (mapping available)
Environment variable "SDL_GAMECONTROLLERCONFIG" is not defined
Checking if new mappings available from github: https://github.com/gabomdq/SDL_GameControllerDB
The GUID for "iBuffalo SNES Controller" is "03000000830500006020000000000000"
Mapping string: '03000000830500006020000000000000,iBuffalo SNES Controller,platform:Windows,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,'
Searching gamepads...
Found 1 gamepad(s):
"iBuffalo SNES Controller", 03000000830500006020000000000000 (mapping available)

 Mapping stringを書き換える必要が有る。
 Mapping string: '03000000830500006020000000000000,iBuffalo SNES Controller,platform:Windows,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,'

03000000830500006020000000000000,iBuffalo SNES Controller,platform:Windows,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,
 を抜き出して、

platform:Windows
 を
platform:Linux

03000000830500006020000000000000
 を
03000000830500006020000010010000
 に書き換える。

 最終的に下記になる。
03000000830500006020000010010000,iBuffalo SNES Controller,platform:Linux,a:b1,b:b0,x:b3,y:b2,back:b6,start:b7,leftshoulder:b4,rightshoulder:b5,dpup:-a1,dpdown:+a1,dpleft:-a0,dpright:+a0,

gamecontrollerdb.txt
 に追記する。

 SDL_JOYSTICK_DEVICE環境変数を設定する。
export SDL_JOYSTICK_DEVICE=/dev/input/js0
pi@raspberrypi:~/sdl-jstest/build $ ls -l /dev/input/js0
crw-rw----+ 1 root input 13, 0 Sep 24 11:09 /dev/input/js0

 ゲームパッドを操作すると文字が表示される。
pi@raspberrypi:~/snesmini $ cat  /dev/input/js0
%U%U%U%U%U%U%U%U%U%UPuTTY[[\\]^___`
                                   dvde%eBffggghh%hhiiRjjjjjC

pi@raspberrypi:~/snesmini $ cat run.sh
#!/bin/bash

export SDL_JOYSTICK_DEVICE=/dev/input/js0
fbset -vyres 1440
./canoe-shvc -filter 3 -rom "$1"
fbset -vyres 720
xrefresh

 色々試したけど USB接続のゲームパッドが使えない。


● sdl-jstest --list

Grumbel/sdl-jstest
sudo apt-get install cmake
cd
git clone https://github.com/Grumbel/sdl-jstest.git
cd sdl-jstest

mkdir build
cd build
cmake ..
make

sudo make install

CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.7/Modules/FindCurses.cmake:196 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:23 (find_package)

Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
sudo apt-get install libncurses5-dev

# -- Found Curses: /usr/lib/arm-linux-gnueabihf/libncurses.so

CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.7/Modules/FindSDL.cmake:188 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:24 (find_package)

Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
sudo apt-get install libsdl-dev

# -- Found SDL: /usr/lib/arm-linux-gnueabihf/libSDLmain.a;/usr/lib/arm-linux-gnueabihf/libSDL.so;-lpthread (found version "1.2.15")

sdl-jstest --list
Unable to init SDL: Unable to open a console terminal
Need KEYBOARD device . X Window .


● Raspberry Piの音声を HDMIから出力する。

Raspberry Pi AUDIO CONFIGURATION

amixer cset numid=3 2


● USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風


【新モデル】iBUFFALO USBゲームパッド 8ボタン スーパーファミコン風 グレー BSGP815GY
ASIN: B06XWD8QQJ

 中華物が 280円から有りますが、敢えて iBUFFALO製品を購入しました。

●中華製 USBゲームパッド

HotGame ゲームコントローラー USBゲームパッド PCパソコン 有線接続 8ボタン グレー   XP、WIN7.8.10、VISTA、MACに対応可能
ASIN: B07BV22HD1


● USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真

 任天堂から文句言われないのかな?
 何らかの許諾を取っているのかな?
 ※その昔、S社の「遊ぶ駅」のゲームコントローラの形状を無許可で模倣した製品を仕入れて販売をしていた「販売店」が裁判で訴えられた事があったそうです。

・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
 アマゾンのレビューにも有りますが、煙草のヤニで焼けた様な色をしています。

・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
 ネジ穴の位置も同じ。

・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
 金型からの「抜き」でしょうか?外形の切り欠きの形状も本物と似ています。

・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真


・USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真
USBゲームパッド iBUFFALO USBゲームパッド スーパーファミコン風の写真





Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利
FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利

  ラズパイや Jetson Nano等のワンボードマイコン等への OSイメージの書き込みが簡単にできる

FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する
FWinPiFinder ラズベリーパイ IPアドレス発見アプリ。ARPコマンドでラズパイの IPアドレスを探索発見する

  Raspberry Piや NVIDIA Jetson Nano等の IPアドレスを MACアドレスの OUI部分を使用して発見する

Raspberry Pi 3系のトラブルであるある第一位の電源トラブル、低電圧警報に関する情報のまとめ
Raspberry Pi 3系のトラブルであるある第一位の電源トラブル、低電圧警報に関する情報のまとめ

  ラズパイ3B系での低電圧警報に関する情報まとめ、コマンドラインやログファイルから低電圧を検知する方法

Raspberry Piで CPUの脆弱性 Spectreと Meltdownの脆弱性をチェックする方法
Raspberry Piで CPUの脆弱性 Spectreと Meltdownの脆弱性をチェックする方法

  ラズパイで 2018年初頭に大騒ぎになったスペクターとメルトダウンの CPUの脆弱性をチェックする方法

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法

  ラズパイ3の GPIO端子の I2C機能を有効にして各種センサーを繋げる方法まとめ

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ


Raspberry Pi 3、シングルボードコンピュータ ラズパイ3 Raspberry Pi関連はこちらへまとめました
 下記以外にも多数のラズパイ関係の記事が有ります。
 (I2C制御、GPIO制御、1-Wire制御、シリアル通信、日本語音声合成、日本語音声認識、中国語音声合成、MeCab 形態素解析エンジン、赤外線リモコン制御、秋月 I2C液晶モジュール、KeDei 3.5インチ液晶、HDMI 5インチ液晶、NFCカードリーダ、コマンドライン操作方法等)
Raspberry Pi 3に HDMI接続の 800x480 5インチ TFT液晶を接続して使用する方法
Raspberry Pi Raspbian Jessie 2017-07最終版で LIRCを使って学習リモコン、赤外線リモコンを送受信する方法
Raspberry Pi 3の WiFiを広告ブロック機能付きの無線LANアクセスポイント化 hostapd + dnsmasq編
Raspberry Pi 3の Bluetoothで ブルテザで通信する方法(Bluetooth編)
Raspberry Pi 3で日本語音声を合成して喋らせる方法(OpenJTalk編)
Raspberry Pi 3に USB Micを接続して日本語の音声認識をする方法(Julius編)
Raspberry Pi 3の GPIOに LEDとスイッチを接続して Lチカする方法
Raspberry Pi 3の GPIOに LEDとスイッチを接続してシャットダウンボタンを実装する方法
Raspberry Pi 3で GPIO端子の I2C機能を有効化する方法
Raspberry Pi 3の GPIOに I2C通信方式の気圧計 BMP280を接続する方法
Raspberry Pi 3に I2C通信方式の NFCリーダライタ PN532を接続して NFC FeliCaカードを読む方法
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 Motion編
Raspberry Pi 3でネットワーク ライブカメラを構築する方法 MJPG-streamer編
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi3の X-Window Systemに Windowsのリモートデスクトップから接続する方法
Raspberry Pi3に WebRTCの STUN/TRUNサーバと PeerJSサーバをインストールする方法
【成功版】Raspberry Piで NNPACK対応版の Darknet Neural Network Frameworkをビルドする方法


Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_3_snes_emulator_csnes_canoe_shvc/