2021年12月11日土曜日

ChromeOS Zork (1 - 2)

ChromeOS Zork (1)


 ChromeOSを Athlon 200geで試してみました。


chromeos_14150.87.0_zork_recovery_stable-channel_mp-v7.bin.zip (1.7GB)

brunch_r94_stable_20211127.tar.gz (749MB)


 参考サイト: Chrome OSのブータブルUSBを作成する

https://becre8ive.tech/dev/oss/chromeos-liveusb/



 USB SSDにインストールして起動しました、USBテザリングで通信接続して言語設定やアカウント設定後に使えました。

 問題は Chrome OS の設定 -> 電源の設定で、アイドル状態で [画面をオンのままにする] に設定しましたが、Linux開発環境のインストールでダウンロード中に、画面が消えて復帰出来なく成りました。

 公式の使い方では無いので自己責任です。

 リブート後に Linux開発環境をインストールして Debian 10を Debian 11にアップグレードしましたが、不安定になりました。

 設定変更しようとしただけでフリーズしたり、画面出力が切れて復帰しなくてリセットを押したりと、使えませんでした。


 CloudReadyが使い易くなっていましたが、Androidアプリが使えません。

 android-x86_64-7.1-r5-k419 で Androidアプリも使えたりしましたが、Androidのバージョンが古い事や Android source buildで失敗ばかりなので ChromeOSなら linuxだし Android変換機能が有るので、カスタマイズして Androidアプリも速度向上出来るかと試した訳です。


 Debian 11 Bullseyeを別の USB SSDにネットインストールしましたが、Ryzen APU用のグラフィックドライバーがインストールされない為、1024×768画面から変更出来ません。


 Debian 11で pixman-0.40.0のソースをダウンロードして、オプションで -mssse3を指定してソースコンパイル。

 ChromeOSのドライブが Debian 10と Debian 11でマウントエラーが出ました。

 Linux Mintを起動して ChromeOSの ROOT-A/usr/lib64 に rootで libpixman-1.so.0.40.0 を上書き。

 ChromeOSを起動して、ブラウザーの動作が軽く成ったのを確認しました。


 躓いてばかりですが、一応 ChromeOSをカスタマイズ出来る事が分かりました。


追記:Debian 11で rootで mousepadが起動しないし、pcmanfmで rootアクセスが出来なかった、ターミナルから rootでファイルコピーしたら落ちました、rootアクセスで問題が出て不安定です。


追記(2021/12/18): ChromeOSを別のPCで起動した場合は、初期設定からやり直しで不安定に成りましたので、ChromeOSはインストールしたPC専用かなと思います。


追記(2021/12/19):Debian 11でサウンド関係にバグが有ります、Ryzenだからか分かりませんが何度も音声ボリュームの再起動を繰り返します、athlon 200geと ryzen 7 1700でも同じでした。

 pulseaudioと pavucontrolを削除して、alsaをインストールしてリブートして収まりましたが、firefoxで音声の再生が出来なく成ります。


追記(2021/12/20):Linux Mint 20.2とLMDE 4(Debian 10)でも Ryzen PCでアナログ音声出力で、サウンド設定でアナログ出力が認識されないバグが出ました。

 USB DACは認識されて音声は出ましたが原因は分かりません、USB DACが劣化したのかノイズが出る様になったので、PCにヘッドホンを繋いで動画再生をした所で気付きました。


追記(2021/12/22):ChromeOS Zork (Ryzen 7 1700 TDP 45w)でベンチマークをしてみました。














追記(2021/12/29): Debian 11.2 で Ryzenでのバグが改善されていました、ChromeOSでは試していません。




ChromeOS Zork (2)


 alsa-lib と libdrm2 のカスタマイズをしました。

 openSUSE Leap 15.3 x86_64 でソースコンパイルを行いました。

 Debian 11では、普通に libcairo2をソースコンパイルしただけで makeエラーが出たので、使用を止めました。


 試される方は自己責任でお願いします。


******************************

https://drive.google.com/drive/folders/16-7H9oa85AONwACQ971MKsAnc-mhBSRJ?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。

 

 端末から

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

su

zypper si -d alsa-lib

zypper si -d libdrm2

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 alsa-lib

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

./configure CFLAGS='-g -O3 -march=native -mavx2 -flax-vector-conversions' --disable-static

make

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 libdrm2

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

cd libdrm2.4.104

mkdir build

cd build

CFLAGS='-g -O3 -march=native -mavx2 -flax-vector-conversions' meson

ninja

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 ChromeOSの ROOT-A/usr/lib64 に rootで

libasound.so.2.0.0

libdrm.so.2.4.0

 をコピー。



以上です。


2021年11月21日日曜日

EmuELEC v3.9


  EmuELEC v3.9 (32bit最終版)を Android Tv Box S905x2で試した所、pcsx-rearmed コアが720P画質でもゲームが問題無く出来ました。

 なので Playstation Classic用に NEONカスタマイズしたソースコードを、S905x2用にソースコンパイルして試しました。


https://drive.google.com/drive/folders/1rYgOBenfR4aXKXL9zdZBh0YaQYeaJzgg?usp=sharing

 からダウンロードして、前記事を参照して EmuELECの SYSTEMに組み込んで EmuELECをインストールしたメモリーカードなどに上書きして下さい。

 自己責任でお願いします。


 NEONカスタマイズしたソースコードは、コンパイルオプションを変更すれば他の ARM CPUでも NEONと openMPに対応していれば使用可能です。


 S905x2で pcsx-rearmed コアで鉄拳3が、Full HDでゲームプレイ可能に成りました。



以上です。


2021年9月2日木曜日

X88 King s922x (1 - 5)

X88 King s922x (1)


  X88 King Amlogic s922x Android 9.0 Tv Box を中古で購入しました。


 Armbianは起動しなかったので、EmuELEC v4.2を試しました。

EmuELEC-Amlogic-ng-aarch64-4.2-Generic.img.gz (848MB)


 起動が不安定で、リセットボタンを押しながら電源を入れないと起動しない時が有りました。

 コントローラーの設定後、EmulationStationの設定でタイムゾーンと日本語設定をしました。

 EmulationStationからゲームの起動が全てエラーになります。

 セレクトボタンのメニューから RetroArchが起動したので、EmuELECを終了して インストールした MicroSDXC 64GBの EEROMS/psx に Playstation Classicのゲームデータをコピーして比較しました。

 

 pcsx-rearmed 32bit コアは起動しないので、pcsx-rearmed 64bit コアで 鉄拳3を試した所、動きは問題無いと思いましたが キャラクターのポリゴンがジャギーで Playstation Classicより画質が悪くて残念でした。

 RetroArchはグラフィックとサウンドの処理を共通化しているので、NEON命令でカスタマイズされたグラフィック プラグインが使えないので、パフォーマンスが悪いと思います。


 X88 King s922x は Playstation Classicの倍以上の性能が有りますが、ケースが薄型で排熱も悪いし、起動する Linuxが見つからないので微妙にガッカリです。


 EmuELECは Linuxを使用していますが、独自ビルドで SYSTEMを SquashFS圧縮していてカスタマイズがやり難いので 、使い続けるか考え中です。



以上です。




X88 King s922x (2)


 EmuELEC v4.2の NEONカスタマイズを試しました、試される方は自己責任でお願いします。


pixman-1.so.0.34.0

libpng16.so.16.37.0


 ソースファイルはバージョンの近かった linux mint 20.2 でダウンロードして、armbian buster s905x2 でコンパイルしました。

 linux mint 20.2でクロスコンパイルを試したらエラーが出て面倒だったので、SDメモリーカードにソースファイルをコピーして、android tv boxと linux PCで作業しました。


pixman、libpng ソースコンパイル、 Amlogic s922x用。

ーーーーーーーーーーーーーーーーーーーー

CFLAGS="-g -O3 -march=armv8-a+simd -mcpu=cortex-a73.cortex-a53 -mtune=cortex-a73.cortex-a53" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーー

pixman-1.so.0.38.4 を pixman-1.so.0.34.0 にリネーム。

追記 (2021/09/19):aarch64のNEONに未対応で、殆ど変わらない気がしました。



linux mint 20.2で作業。

 unsquashfsに関係するパッケージをインストールします。

 EmuELECの SYSTEM をコマンドで展開して、squashfs-root ディレクトリ作成。

unsquashfs SYSTEM 


 squashfs-root/usr/lib に

pixman-1.so.0.34.0

libpng16.so.16.37.0

 を上書きします。


mksquashfs squashfs-root SYSTEM (コマンドで squashfs圧縮して SYSTEM作成。)

md5sum SYSTEM (圧縮ファイルのハッシュ値計算。)


 SYSTEM.md5 テキストファイルの中のハッシュ値を書き換えます。


 EmuELECをインストールした SDメモリーカードに、SYSTEMと SYSTEM.md5 を上書き。

 X88 King s922xで EmuELECを起動。


********************

 他の機種でも EmuELECのカスタマイズ方法は同じですので、パッケージのバージョンに近いソースファイルと、機種に合ったコンパイルオプションで高速化出来ると思います。



以上です。




X88 King s922x (3)


 前回に続き EmuELEC v4.2のカスタマイズです。

 試される方は自己責任でお願いします。


******************************

 SYSTEM 圧縮ファイルを展開して squashfs-root /etc/fstab に下記を追加。

ーーーーーーーーーーーーーーーーーーーー

tmpfs /var/log tmpfs defaults,noatime,nodiratime,size=16m 0 0

tmpfs /tmp tmpfs defaults,noatime,nodiratime,size=50% 0 0

ーーーーーーーーーーーーーーーーーーーー


 pulsuaudioの音質改善。

 squashfs-root /etc/pulsu/deamon.conf に下記を追加。

ーーーーーーーーーーーーーーーーーーーー

resample-method = speex-float-3

default-sample-format = s32le

default-sample-rate = 48000

ーーーーーーーーーーーーーーーーーーーー


https://drive.google.com/drive/folders/1eg5LITshsDpY9u79GIqg8-z4y2f0452k?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。


 alsa-lib 1.2.2

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

CFLAGS="-g -O3 -march=armv8-a+simd -mcpu=cortex-a73.cortex-a53 -mtune=cortex-a73.cortex-a53" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 libasound.so.2.0.0 を squashfs-root/usr/lib に上書きします。


 libsdl2-2.0.14+dfsg2

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

CFLAGS='-g -O3 -march=armv8-a+simd -mcpu=cortex-a73.cortex-a53 -mtune=cortex-a73.cortex-a53' ./configure --enable-alsa --disable-rpath --disable-static

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

libsdl2-2.0.14 を libsdl2-2.0.12 にリネームして squashfs-root/usr/lib に上書きします。


追記 : libsdl2-mixer-2.0.4+dfsg1 を追加しました。


 前回の記事を参照して SYSTEM 圧縮ファイルを作成して、EmuELECのメモリーカードに上書きして下さい。



以上です。




X88 King s922x (4)



 libretro-pcsx-rearmed-0~git20200507 を少しカスタマイズしてみました。

 pcsx_rearmed-masterでは arm64で NEONを有効にするとコンパイルエラーが出るので、openSUSE Leap 15.3のソースを使用して、raspberry pi4 openSUSE Leap 15.3でソースコンパイルをしました。


 Android Tv Box s905x2で、EmuELEC s905x2を起動後に armbianが起動しなくなった為、コンパイル環境を openSUSEに変更しました。


 試される方は自己責任でお願いします。


*************************

https://drive.google.com/drive/folders/1__HTe0U_ZAlYkyRExC4kt1ow94Xq3VvG?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。


 make のエラーメッセージが出たら、足りないパッケージ等をインストールして下さい。

ーーーーーーーーーーーーーーーーーーーーーーーーー

$ cd libretro-pcsx-rearmed-0~git20200507

$ platform=armv8 make -j4 -f Makefile.libretro

ーーーーーーーーーーーーーーーーーーーーーーーーー

squashfs-root/usr/lib/libretro に pcsx_rearmed_libretro.so をコピー。

SYSTEM 圧縮ファイルを作成して、EmuELECのメモリーカードに上書き。


追記 (2021/10/22):

 グラフィックプラグインの テクスチャ演算で openMPを入れてみましたので、3D処理の速度UPしました、鉄拳3もスムーズに動く様に成りました。




X88 King s922x (5)


 libcairo2 のカスタマイズを追加しました。

 raspberry pi4 openSUSE Leap 15.3 の環境でソースコンパイルをしています。

 試される方は自己責任でお願いします。


******************************

 前記事と同じ場所から、圧縮ファイルをダウンロードし、解凍して下さい。


 cairo-1.16.0

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

sudo zypper si -d libcairo2


CFLAGS="-g -O3 -march=armv8-a+simd -mcpu=cortex-a73.cortex-a53 -mtune=cortex-a73.cortex-a53 -fopenmp-simd" ./configure --disable-static --enable-gl

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 libcairo.so.2.11600.0 を libcairo.so.2.11400.10 にリネームして squashfs-root/usr/lib に上書きします。


SYSTEM 圧縮ファイルを作成して、EmuELECのメモリーカードに上書きして下さい。


******************************

 EmuELEC v4.3 で試しています、今までのカスタマイズは使えましたが、EmuELEC v4.3 が不安定な時も有るので v4.3へのアップデートは急がなくてもいいと思います。


追記 (2020/01/17):openmp-simdを使う様にアップデートしました。



以上です。


2021年6月25日金曜日

SCPH-1000RJ NEON (1 - 4)

 SCPH-1000RJ NEON (1)



 PlayStation Classic SCPH-1000RJ を中古で購入したので、カスタマイズを試しました。

 

 ネットで調べて、gpghax と bleemsync 1.2 を使って、PSCのデータのバックアップを USBメモリーに作りました。

 バッファローの USB 3.0 32GBメモリー(RUF3-WBE32G)や、セルフパワー型 USB 3.0 HUBを使用して USB SSD 120GBも、linux mint 19.3の gpartedで fat32フォーマットして使えました。

 

 バックアップした PSCのデータは linux mint PCの HDDに移動しました、debian系の gpartedは度々エラーが出るので、USBメモリーに入れっぱなしは安心出来ません。

 

 

 SONY公式の Open Source Software Used in PlayStation®Classic ではパッケージのバージョンやコンパイルオプションが殆ど分からないので、PSCと linux mint PCを USB接続して調べました。

 

 PSCが動作不良に成った場合に、バックアップデータを戻せない方は試さないで下さい、自己責任でお願いします。

 

 PSCは HDMIとコントローラーを外して PCに USB接続、PSC電源ON後に 端末から lsusbコマンドで PSCを確認。

 linux mintの USBネットワーク接続をローカルに変更。


 putty起動。

 169.254.215.100 Port 23

 Telnetで接続。

 root

 mount -o remount rw /

 exit

 

 filezilla起動。

 169.254.215.100 root パス無し Port 21 で接続。

 

 PSCの中が見えましたので、ライブラリを調べました。

 

libjpeg-turbo-1.5.2

libpng1.6-1.6.34

pixman-0.34.0

alsa-lib-1.1.2

libSDL2-2.0.4

 バージョンが近かったので、linux mint 19.3のソースファイルをダウンロード。

 クロスコンパイルの設定が面倒だったので、raspberry pi4の raspberry pi os 32bitでソースコンパイルしました。

 

 raspberry pi4と PSCの USB接続は電力関係の問題で不安定なので、ケーブルを繋ぎ変えたり、micro SDHCにファイルをコピーして PCと交代しながらの煩雑な作業に成りました。


*************************

 raspberry pi osで arm-linux-gnueabihf-gcc、build-essential、libtool、cmake などの開発用ツールをインストール。

 

autoconf、automake、gawk、nasm

libjpeg62-turbo-dev

libpixman-1-dev

libpng-dev

libasound2-dev

libsdl2 関係の -dev

 上記をインストール。

 足りない物は configureのメッセージを見て、追加インストールして下さい。

 

 https://drive.google.com/drive/folders/10dKKIbtDakc2Yn1gZWTlFglRgX4HRzkc?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。



 libjpeg-turbo

ーーーーーーーーーーーーーーーーーーーーーーーーー

autoreconf -fiv

CC=arm-linux-gnueabihf-gcc CFLAGS="-g -O3 -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーー


 libpng、pixman、alsa-lib

ーーーーーーーーーーーーーーーーーーーーーーーーー

CC=arm-linux-gnueabihf-gcc CFLAGS="-g -O3 -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーー


 sdl2

ーーーーーーーーーーーーーーーーーーーーーーーーー

cd libsdl2-2.0.8+dfsg1

CC=arm-linux-gnueabihf-gcc CFLAGS="-g -O3 -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ./configure --disable-rpath --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーー

 libSDL2-2.0.so.0.8.0 ー> libSDL2-2.0.so.0.4.0 リネーム。



 出来た .soライブラリファイルを PCにコピーして、PCと PSCを再接続。

 PSCの /usr/local/lib に .soをアップロード。

 PSCの /etc/ld.so.conf を編集。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

LD_PRELOAD=/usr/local/lib/libasound.so.2.0.0

LD_PRELOAD=/usr/local/lib/libjpeg.so.62.2.0

LD_PRELOAD=/usr/local/lib/libpixman-1.so.0.34.0

LD_PRELOAD=/usr/local/lib/libpng16.so.16.34.0

LD_PRELOAD=/usr/local/lib/libSDL2-2.0.so.0.4.0

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 PSCと切断して電源OFF、PSCに HDMIとコントローラーを接続して電源ONで動作確認。

 

追記:

 raspberry pi os 32bit からソースファイルを使用する事に変更しました。

 ソースコンパイルしたライブラリをリネームして、PSCにアップロードしました。

libpixman-1.so.0.36.0 ー> libpixman-1.so.0.34.0

libpng16.so.16.36.0 ー> libpng16.so.16.34.0

libSDL2-2.0.so.0.9.0 ー> libSDL2-2.0.so.0.4.0

 カスタマイズした、alsa-lib-1.1.8、sdl2-2.0.9 を追加しました。


追記(2021/08/16): libdrm2-4.100 を追加しました。


追記 (2021/09/21): SDL2-2.0.9 修正。



以上です。




SCPH-1000RJ NEON (2)


 SDL-mixer-2.0.4をカスタマイズしました。

 試される方は自己責任でお願いします。

*************************

ーーーーーーーーーーーーーーーーーーーーーーーーー 
$ sudo apt install libsdl2-mixer-dev libflac-dev libfluidsynth-dev libmodplug-dev libmpg123-dev libogg-dev libopusfile-dev  libvorbis-dev
ーーーーーーーーーーーーーーーーーーーーーーーーー
 足りない物は configureのメッセージを見て、追加インストールして下さい。

 

 https://drive.google.com/drive/folders/10dKKIbtDakc2Yn1gZWTlFglRgX4HRzkc?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。


 sdl2-mixer

ーーーーーーーーーーーーーーーーーーーーーーーーー

CC=arm-linux-gnueabihf-gcc CFLAGS="-g -O3 -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーー

libSDL2_mixer-2.0.so.0.2.2 ー> libSDL2_mixer-2.0.so.0.0.1 リネーム。


 出来た .soライブラリファイルを PCにコピーして、PCと PSCを再接続。

 PSCの /usr/local/lib に .soをアップロード。

 PSCの /etc/ld.so.conf を編集、sdl2-mixer 追加。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

LD_PRELOAD=/usr/local/lib/libasound.so.2.0.0

LD_PRELOAD=/usr/local/lib/libdrm.so.2.4.0

LD_PRELOAD=/usr/local/lib/libjpeg.so.62.2.0

LD_PRELOAD=/usr/local/lib/libpixman-1.so.0.34.0

LD_PRELOAD=/usr/local/lib/libpng16.so.16.34.0

LD_PRELOAD=/usr/local/lib/libSDL2-2.0.so.0.4.0

LD_PRELOAD=/usr/local/lib/libSDL2_mixer-2.0.so.0.0.1 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


以上です。



 SCPH-1000RJ NEON (3)


 libretro-pcsx-rearmed を少しカスタマイズしてみました。

 2021/09/25 のマスターを githubからダウンロードして NEONカスタマイズを少し加えました。


 BleemSync 1.2 でテストしました、試される方は自己責任でお願いします。


*************************

https://drive.google.com/file/d/1PV5ZML7RJjmVh1lu400MiFe825oAZ1hF/view?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。


 make のエラーメッセージが出たら、足りないパッケージ等をインストールして下さい。

ーーーーーーーーーーーーーーーーーーーーーーーーー

$ cd pcsx_rearmed-master

$ platform=classic_armv8_a35 make -j4 -f Makefile.libretro

ーーーーーーーーーーーーーーーーーーーーーーーーー

 BleemSync 1.2 のUSBメモリーを挿して

SONY/bleemsync/opt/retroarch/.config/retroarch/cores/

 の pcsx_rearmed_libretro.so を pcsx_rearmed_libretro.so.bak にリネーム、

 コンパイルした pcsx_rearmed_libretro.so をコピー。

 linuxを終了して、BleemSyncを Playstation Classicに挿入してプレイ、OK。


*************************

 EmuELEC v4.2を Android tv box s905x2でテストしましたが、460P画質設定でも動作がガクガクでサウンドも酷くてゲームは無理でした。


 Retroarch libretro-pcsx-rearmed を比較。

EmuELEC     s905x2  cortex-a53  1.8GHz✕4  64bit  neon対応なし

Playstation Classic  cortex-a35  1.5GHz✕4  32bit  neon対応 (max 67% 制限有、720P画質)

 CPU性能では s905x2が高いですが、neon未対応と EmuELECの構造に無駄が多いのか、Playstation Classicの圧勝です。


追記 (2021/10/22):サウンドの爆音バグ修正しました。

 NEON intrinsicsで、右シフト命令で空いた左側に 0が入ると決まっていない様で、バグが出る事が有りました。

 ARM NEON intrinsicsの詳しい解説などが見つからないので、バグが出ると訳が分からなくなります、解説本も買いましたが入門までしか書かれてませんでした。

 NEONアセンブリコードに対して NEON intrinsicsはコーディングの簡易さで開発コストの低減を目的にしている様ですが、ガイドは命令のリストしか無く注意点も書かれていないし、コンパイル後のコードに無駄が有るとか、開発時間に対して効果も低いので採用が少ないのかなと思います。


 グラフィックプラグインの テクスチャ演算で openMPを入れてみましたので、3D処理の速度UPしました、鉄拳3もスムーズに動く様に成りました。


追記 (2021/11/17):Android tv box s905x2で EmuELEC v3.9 (32bit最終版) を試してみましたが、pcsx-rearmed コアは 720P画質でも高速に動作しました、NEON命令が有効だったのかもしれません。

 Android tv boxでは 4GB以下のメモリーが殆どなので、 EmuELEC 64bit版は逆効果かなと思います ARMv8 NEONに未対応なライブラリや libretroコアばかりです。




 SCPH-1000RJ NEON (4)


 libcairo2 のカスタマイズを追加しました。

 

 試される方は自己責任でお願いします。


******************************

 libcairo2-dev と aclocal-1.15 をインストールして下さい。

 足りない物は configureのメッセージを見て、追加インストールして下さい。


 前記事と同じ場所から、圧縮ファイルをダウンロードし、解凍して下さい。


 cairo-1.16.0

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 CC=arm-linux-gnueabihf-gcc CFLAGS="-g -O3 -marm -mcpu=cortex-a35 -mtune=cortex-a35 -mfpu=neon-fp-armv8 -mfloat-abi=hard -fopenmp-simd" ./configure --disable-static

make -j4

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 libcairo.so.2.11600.0 を libcairo.so.2.11400.6 にリネーム。

 libcairo.so.2.11400.6 を PCにコピーして、PCと PSCを接続。

 PSCの /usr/local/lib に .soをアップロード。

 PSCの /etc/ld.so.conf を編集、libcairo2 追加。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

LD_PRELOAD=/usr/local/lib/libcairo.so.2.11400.6

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


******************************

 画像位置のチェックや演算と、2Dグラフィックサブルーチンの処理速度が向上しました。

 鉄拳3での技も出やすく成りましたし、ダライアスで連射速度も向上しました。

 

 コードのミスかコンパイルオプションが足らないのか、起動しないソフトが出てしまいました、使用は注意して下さい。

追記 (2022/01/16):Raspberry pi os (32bit)で libcairo2を普通にソースコンパイルをしてインストールした後、chrominumで youtubeを見ようとしたら chrominumが落ちました。

 Ryzen PCで openSUSE Leap 15.3で、libcairo2を AVX命令でカスタマイズして試した時は、問題無く youtube動画再生は出来たので、debianの問題でバグっていると思います。



以上です。


2021年4月29日木曜日

Linux で Dreamcastエミュ

 Linux で Dreamcastエミュ



 中古で DC SD Adapter V2を購入したので、Linuxで Dreamcastエミュレータを試してみました。

 DC SD Adapter V2には説明書が無く、起動ディスクには DreamShell 4.0のプリントが有りましたが、入っていなかったりで難航しました。


 http://www.dc-swat.ru/page/dreamshell/ から、DreamShell_4.0.0_RC4_and_Boot_Loaderをダウンロードして展開、DSフォルダーの中身を FAT32フォーマットした Transcend Micro SDHC 8GBにコピー。

 MIL対応の Dreamcastに起動ディスクと、SD Adapterに Micro SDHCを挿入してセットし Dreamcastの電源ON。

 DreamShellが起動したら、BIOSの吸出しとゲームディスクの吸出し。

 http://eternalsetuna.blogspot.com/2015/03/dreamcast-02.html (参考サイト)

 Linux Mint 19.3 32bit版に wineをインストールし、文字化け対策にフォントをインストール。

 wineを Windows XPでフォントも設定して、BootMake 1.2と cdi4dcで吸い出したゲームファイルを cdiに変換。

 LMDE 4で redream x86_64 Linux版をダウンロードして展開し、redreamを起動して設定後にゲームを選択して実行出来ました。

 

 ツールが Windows 64bit版じゃ動かないとか、redreamは Linux 64bit用だけとか、Linux + wineで DC用 起動ディスクを作ろうとして失敗して CD-R10枚ダメにしたり。

 USB DVDドライブで失敗したので、ヤクオフで内蔵ブルーレイドライブを購入したら、トレイが出ない不良品で泣き寝入りしたりで、Windows PCが無いと苦労しました。



以上です。

 

2020年11月2日月曜日

Ras-Pi4 Ubuntu (1 - 3)

Ras-Pi4 Ubuntu (1)


 Ubuntu 20.10 MATE で usb bootを試しました。


ubuntu-20.10-preinstalled-desktop-arm64+raspi.img.xz (1.6GB 解凍後 8.8GB)


 usb ssd 64GBに Raspberry Pi Imagerで書き込みました。

 前に Rasberry Pi OS (64bit)で EEPROMのブートローダーのアップデートと、raspi-configで usb bootを最優先にしていたので、そのまま起動しました。


 ディスプレイの自動認識は、Rasberry Pi OSよりマシでしたがフルHDの設定には、/boot/config.txt に設定が必要でした。


 WiFiもパスの入力で接続出来ましたし、USBテザリングも自動接続されました。


 pulseaudioが使われていたので、usb dacも使えました。


 synapticをインストールして、LXDEをインストールしてデスクトップの変更も出来ました。


 しかし synapticで、サーバーを日本に設定後からエラーが出始めて、設定を変更しても回復せず synapticが起動不能に成りました。


 Raspberry Pi OSで問題だった部分はクリアしていますが、やはり ubuntuは反応が遅いです、usb ssdでもアプリの起動で待たされます。


 個人的には、MATEのデスクトップ環境は Raspberry Pi4でも負担に成っていると感じるので、LXDEを使いたいのですがメンテナンス不足の問題からバグが解消されないので、悩ましいです。


追記:

 Mini tube をインストールした所、何故かサウンド設定が壊されて usb dacが認識されなく成りました。

 TimeShift バックアップツールをインストールして設定していたので、復元ポイントへの復元を実行しましたがエラーで失敗しました。

 結果、3回目の Ubuntuインストールを行いました、うんざりです。



以上です。



Ras-Pi4 Ubuntu (2)


 Ubuntu 20.10 64bit版で高速化のカスタマイズを試しました。


libxaw-1.0.13

libxcursor-1.2.0

libxfont-2.0.3

libxrender-0.9.10

xft-2.3.3

alsa-lib-1.2.3.2


https://drive.google.com/drive/folders/1KDxSyw2yU14TcRWKQwlJFm-qCsvwRQ4C?usp=sharing

 ここからダウンロードして下さい。


 使用方法は前記事を参照して下さい。


 試される方は、システムバックアップなどや、テスト用のlinuxを準備して自己責任で行って下さい。


******************************


 Ubuntuは snapパッケージを推進している為、snapアプリはライブラリもバイナリにパッケージイングしているので、ローカルライブラリが使われない場合、このカスタマイズは無意味に成ります。

 古いライブラリを使わないアプリが増えてきた様で、無理してカスタマイズする程の効果は出ていないと感じました。


追記 (2020/12/07): alsa-lib-1.2.3.2 がアップデートされたので、カスタマイズを更新しました。

 ソフトウェアの更新で network-manager がアップデートされたのか、通信速度が遅く成ったり不安定に成りました、いつもの ubuntuクオリティです。



追記 (2020/12/12)

 libXcursor、libXft2、libXfont2 を更新しました。



追記 (2020/12/14)
 libXaw を更新しました。


追記 (2020/12/18)

 openbox-3.6.1 を追加しました。



追記 (2020/12/23)

 libXft2、openbox-3.6.1 を更新しました。



追記 (2021/01/11)

 xft-2.3.3 を修正しました。



以上です。




Ras-Pi4 Ubuntu (3)


 PCSX-Reloaded をカスタマイズしてみました。

 PCSX-ReARMed は arm64に未対応で、mednafen 1.22 は SDL2を使用していて、サウンド再生が酷くてダメでした。
 
 PCSX-Reloadedで、alsaを指定するとノイズが増えるので、SDLにしました。
 
 サウンド設定で、リバーブ無し、モノラルにして下さい。
 
 USBゲームコントローラーを認識してくれない問題が有ります。

 raspberry pi4 ubuntu 64bitでは、グラフィックドライバが2Dハードウェアアクセラレーションに対応していないので、期待したゲーム速度は得られませんでした。
 
 android tv box s905x2 armbian busterで、カスタマイズした PCSX-Reloadedでゲームのオープニングムービーの再生が、FPS 20代から40代に向上したので、raspberry pi4でソースコンパイルしてみましたが、NEON命令でCPU利用率が下がるとCPUクロックを下げられてしまい、FPSの変動が激しくなりノーマルより悪い状態になる事が有りました。
 
 CPUのパワーモードは ondemandでしたが、powersaveの様な動作をする raspberry pi4では高速化は時間の無駄でした。


 試される方は、システムバックアップなどや、テスト用のlinuxを準備して自己責任で行って下さい。

******************************
[ 参考サイト ]
https://github.com/SonofUgly/PCSX-Reloaded

[ 使用法 ]
 パッケージマネージャで下記ファイルと、開発用に必要なツールもインストールして下さい。

subversion
autoconf
intltool
libtool
libsdl1.2-dev
libgtk-3-dev
libxv-dev
libxtst-dev
nasm
xorg-dev

 足りない dev や開発用ツールなどは、configureのチェックリストを見てインストールして、やり直して下さい。


https://drive.google.com/drive/folders/1KDxSyw2yU14TcRWKQwlJFm-qCsvwRQ4C?usp=sharing
 圧縮ファイルをダウンロードし、解凍して下さい。


 端末から
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
$ cd pcsxr-1.9.94
$ ./configure CFLAGS='-g -O3 -march=armv8-a+simd -mtune=cortex-a72 -mcpu=cortex-a72 -fcommon' --enable-sound=sdl --enable-opengl
$ make -j4
$ sudo make install
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


以上です。


2020年10月25日日曜日

Ras-Pi4 openSUSE (1 - 2)

Ras-Pi4 openSUSE (1)


 openSUSE Leap 15.2 (arm64)を試しました。


openSUSE-Leap-15.2-ARM-X11-raspberrypi4.aarch64-2020.07.08-Build1.60.raw.xz (673MB -> 解凍後 4.6GB)


 

 /boot/config.txt に追加。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

#hdmi_safe=1

hdmi_force=_hotplug=1

hdmi_ignore_edid=0xa5000080

hdmi_group=2

hdmi_mode=82

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 hdmi_safe=1 では低解像度すぎたので、フルHDにする為に手探りで config.txtの修正と再起動が必要でした。

 ディスプレイを変更すると hdmi_modeを変更しないと映らない可能性が有ります、自動認識がここまでダメな物は Raspberry Pi4が初めてです。 


 WiFiは、YaST -> ネットワーク設定で wlan0を編集して、パスなどを入力後にネットワーク設定終了し、通信接続しましたが不安定で、パッケージリストのダウンロードで止まってしまったので止めました。


 USBテザリングは自動接続されなかったので、端末で ifconfigを実行すると、usb0 か usb1 で認識されていました。

 YaST -> ネットワーク設定では usb0は表示されなかったので、eth0を編集して usb0に書き換えて設定を変更しながら何度かやり直して通信接続しました。


 しかし openSUSEを起動する度に、usb0か usb1に変わってしまうので、変動するとネットワーク設定の変更が必要なので面倒です、x86_64版では自動接続なのにラズパイ3と4用が出来ないままです。



 キーボードとタイムゾーンを設定して、言語パッケージをインストールしました。

 ウィンドウマネージャは icewmなので軽快ですが、慣れていないので lxdeをインストールしましたが、lxdmが無かったので再起動した所で、ディスプレイマネージャのエラーに成り GUIが使えなく成ったので、Micro SDメモリに再インストールして最初からやり直しました。

 デスクトップ環境の変更は、自力で設定を変更しないと出来ない様です。


 USB DACを接続して自動認識で使えました、Raspberry Pi OSとの違いは HDMI音声出力設定です。

 Raspberry Pi OSで、HDMI音声出力でモバイルモニターのヘッドホン端子では、ノイズが入ってしまったので openSUSEは USB DACが使えて助かりました。


 htopは、CPU温度やクロック表示がされませんでした。

 パネルの通信情報では、usbテザリングでの状況が表示されません。

 音量調整は alsamixerでした。



 夏頃から、debian系で LMDE 4や armbian stretchと armbian busterで、pcmanfmで ext4フォーマットドライブから fat32フォーマットドライブへのファイルコピーがエラーでファイルが破損するバグにやられたり、トラブルが続いたので openSUSEを再挑戦しました。



追記: packman リポジトリの追加を試しました、ノンサポートなので自己責任での利用になるそうです。


packman

https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/

 登録後はパッケージの切り替えとアップデートを実行しました。



以上です。




Ras-Pi4 openSUSE (2)


 openSUSE Leap 15.2のライブラリカスタマイズを試しました。


libXaw-1.0.13

libXcursor-1.1.15

libXfont2-2.0.3

libXft-2.3.2

libXrender-0.9.10


 試される方は、システムバックアップなどや、テスト用のlinuxを準備して自己責任で行って下さい。


******************************


[ 使用法 ]

 gcc、gcc-c++、libtool、cmakeなどの開発用ツールやヘッダーファイルをインストールして下さい。


https://drive.google.com/drive/folders/18hQcs6nJXMeUMbUmcYbzMKt4yO9Wbiic?usp=sharing

 圧縮ファイルをダウンロードし、解凍して下さい。

 

 端末から

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

>sudo zypper si -d libXaw

>sudo zypper si -d libXcursor

>sudo zypper si -d libXfont2

>sudo zypper si -d libXft

>sudo zypper si -d libXrender

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 ライブラリのソースコンパイル

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

> ./configure CFLAGS='-g -O3 -march=armv8-a+simd -mtune=cortex-a72 -mcpu=cortex-a72' --disable-static

> make -j4

> sudo make install

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


 /etc/ld.so.conf ファイルにrootで下記の設定を追加して下さい。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

LD_PRELOAD=/usr/local/lib64/libXaw6.so.6

LD_PRELOAD=/usr/local/lib64/libXaw7.so.7

LD_PRELOAD=/usr/local/lib64/libXcursor.so.1

LD_PRELOAD=/usr/local/lib64/libXfont2.so.2

LD_PRELOAD=/usr/local/lib64/libXft.so.2

LD_PRELOAD=/usr/local/lib64/libXrender.so.1

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 ファイル保存終了後、再起動して下さい。



 元に戻す時は、上記の設定を削除又はコメントアウトして下さい。



追記: 何も予兆も無く openSUSEを起動後、ディスプレイマネージャがエラーで GUIが起動不能になる事態に何度も遭遇して疲れました。

 原因を特定出来ないので openSUSEインストールやり直しと、日本語環境や開発環境のダウンロードに時間が掛かるので、カスタマイズをやる気は無くなりました。


追記2:LXDE や openbox をインストールすると GUI が起動不能に成る事が有ると思います。

 xf86-video-fbdev を削除してから xf86-video-fbturbo をインストールしないと GUI が起動不能に成ると思います。



以上です。