適当に翻訳する。
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
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 -
で解決。
カレンダー
カテゴリー
最新コメント
最新記事
ブログ内検索
広告