忍者ブログ

素人翻訳

適当に翻訳する。

Ubuntu-22.10でppsspp構築[令和5年]

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
PR

ICCCM の古い文書の在り処(draftからver1.1まで)

ICCCM の1988年2月25日の草案(X11R2で配布。)
「The February 25, 1988, draft」

https://www.x.org/releases/X11R2/X.V11R2.tar.gz をダウンロード・解凍して、X.V11R2/doc/conventions/icc.doc.tbl.msを得る。(icc.doc.PSもある。)

-----

https://www.x.org/releases/X11R3/X.V11R3.tar.gz を解凍して得られる X.V11R3/doc/conventions/README によると、
「The Inter-Client Communication Conventions Manual that appeared here in draft form in Releases 1 and 2 has not been approved by the X Consortium. A revised set of conventions is under review by the Consortium for standardization; that process is expected to conclude at the end of November. The final manual will be made available once it has been approved.」

「(X11R1とX11R2で草案の形でこの場所(docディレクトリ)にあった Inter-Client Communication Conventions Manual は、Xコンソーシアムに承認されなかった。Xコンソーシアムは、改訂された規約を検討しているところ(標準化に向けて)。この作業は11月の終わりには完了する予定。承認されれば、規約の最終版は公開される。)」
とのこと。

X.V11R3にはICCCMの文書は入ってない。
この間に、ICCCM ver2.0 の改訂履歴に言う「The July 27, 1988, Draft」と「The Public Review Drafts」がある。

-----

ICCCM ver1.0 は、X11R4で配布された。

https://www.x.org/releases/X11R4/tape-2/
にある tape-2.** をすべてダウンロードして、ファイルのあるディレクトリで

$ cat tape* | tar xvfz -

を実行して解凍。
すると、「tape-2/mit/doc/ICCCM/icccm.tbl.ms」に ICCCM ver1.0 の文書ができる。

-----

ICCCM ver1.1 は、X11R5/mit/doc/ICCCM/icccm.msにある。
(https://www.x.org/releases/X11R5/mit-*.tar.Z)

-----

X11R4のテープファイルの解凍について。

https://www.x.org/releases/X11R4/READMEには、

% cat *.?? | uncompress | (cd /usr/local/src/R4/; tar xvf -)

で解凍できると書いてあったのだが、自分の環境には compress、uncompressがなかった。

$ cat tape* | tar xvf -
tar: アーカイブは圧縮されています. -Z オプションを使ってください
tar: Error is not recoverable: exiting now
$ cat tape* | tar xvfZ -
tar (grandchild): compress: exec 不能: そのようなファイルやディレクトリはありません
tar (grandchild): Error is not recoverable: exiting now
tar: Child died with signal 13
tar: Error is not recoverable: exiting now
$ compress -h
bash: compress: コマンドが見つかりません
$

「Z」を小文字にして、別のコマンド(gzip?)を使う。

$ cat tape* | tar xvfz -

で解決。

カレンダー

12 2025/01 02
S M T W T F S
1 2 4
5 6 7 8 9 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最新コメント

[09/07 NONAME]
[08/18 NONAME]
[05/18 NONAME]
[04/09 NONAME]
[03/21 NONAME]

最新記事

(01/10)
(01/03)
(12/20)
(12/08)
(11/20)
(10/30)
(10/24)
(09/20)
(09/16)
(09/11)
(09/03)
(09/02)
(08/27)
(08/17)
(07/31)
(07/30)
(07/19)
(07/13)
(05/02)
(03/17)
(11/01)
(07/20)
(05/17)
(04/20)
(03/10)

ブログ内検索

広告

バーコード

広告