適当に翻訳する。
Ubuntu-22.10でppssppを作る。
githubにある説明に従う。
$ sudo apt install build-essential cmake libgl1-mesa-dev libsdl2-dev libvulkan-dev
$ sudo apt install qt5-qmake qtsystems5-dev qtmultimedia5-dev qttools5-dev-tools libqt5opengl5-dev
$ sudo apt install libsdl1.2-dev
$ git clone --recurse-submodules https://github.com/hrydgard/ppsspp.git
$ cd ppsspp
$ ./b.sh --qt
これで完成。
buildディレクトリに「PPSSPPQt」という実行ファイルができるので、それでppssppを起動する。
$ cd build
$ ./PPSSPPQt
ゲームの起動は問題ないのだが、ゲームパッドのDirectInputモードで「R1」と「☓」ボタンだけ入力できない。
$ cat /dev/input/by-id/usb-SHANWAN_JC-U4013S_DirectInput_Mode-event-joystick
を実行して各ボタンを押して確認したところ、☓ボタンもR1ボタンも問題なく入力できている。
$ sudo apt install joystick
$ sudo apt install jstest-gtk
jstest-gtkでもすべてのボタンで問題なく入力できる。
ppssppのゲームパッドの設定画面でSDLの入力が無い。
ppsspp/build/assets/gamecontrollerdb.txtを書き換えても、書き換えた結果を反映してくれない。
cd ppsspp/build
make clean
cd ..
ppsspp/SDL/SDLJoystick.cpp の「void SDLJoystick::setUpController(int deviceIndex)」の最後の方を書き換え、直接Mappingを追加して解決。
~~(略)~~
SDL_GameController *controller = SDL_GameControllerOpen(deviceIndex);
if (controller) {
if (SDL_GameControllerGetAttached(controller)) {
controllers.push_back(controller);
controllerDeviceMap[SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(controller))] = deviceIndex;
cout << "found control pad: " <<
SDL_GameControllerName(controller) << ", loading mapping: ";
KeyMap::NotifyPadConnected(deviceIndex, std::string(pszGUID) + ": " + SDL_GameControllerName(controller));
//ここから改変
char new_mapping[] = "030000006e0500000f20000010010000,SHANWAN JC-U4013S DirectInput Mode,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux,";
int updated = SDL_GameControllerAddMapping(new_mapping);
//ここまで改変
auto mapping = SDL_GameControllerMapping(controller);
if (mapping == NULL) {
//cout << "FAILED" << endl;
cout << "Could not find mapping in SDL2 controller database" << endl;
} else {
cout << "SUCCESS, mapping is:" << endl << mapping << endl;
}
} else {
SDL_GameControllerClose(controller);
}
~~(略)~~
SDLJoystick.cppを書き換えた上で、もう一度、
cd ppsspp
./b.sh --qt
cd build
./PPSSPPQt
Ubuntu-22.10にて、duckstation-qtを構築インストールする。
このサイトを参考にして、以下のパッケージを「sudo apt install」する。
cmake
libsdl2-dev libxrandr-dev
pkg-config
qtbase6-dev qtbase6-private-dev qtbase6-dev-tools qttools6-dev
(Ubuntu-22.10では名前が少し違う。
qt6-base-dev qt6-base-dev-tools qt6-base-private-dev qt6-tools-dev qt6-tools-dev-tools qt6-tools-private-dev。
どれがどれだかわからなかったので、余分なものも含まれているかもしれない。)
libevdev-dev
git
libwayland-dev libwayland-egl-backend-dev extra-cmake-modules
libcurl4-gnutls-dev
その後、ソースコードをダウンロードしてcmakeで作る。
$ git clone https://github.com/stenzek/duckstation/
$ cd duckstation
$ cmake -B build-release -DCMAKE_BUILD_TYPE=Release
$ cmake --build build-release
$ cd build-release/bin
$ ./duckstation-qt
自分の環境では、これで問題なく起動・使用できた。
duckstationはプレイステーションのBiosを内蔵してないので、別に用意し、.local/share/duckstation/bios?辺りに置いておく。
カレンダー
カテゴリー
最新コメント
最新記事
ブログ内検索
広告