電子辞書Brainをいじる まとめページ

電子辞書Brain に関する本プログでのまとめページです。

 

 

最近の更新履歴

(日付降順に変更しました)

2026/04/05
・ゲーム1つ追加
 △ biniax2 アーケードモードとタクティクスモードを備えたロジックゲーム

2026/04/05
・ゲーム1つ追加
 bomber アーケード宇宙船ゲーム

2026/04/03
・ゲーム1つ追加
 liquidwar 真に独創的なマルチプレイヤーウォーゲーム

2026/04/02
・ゲーム1つ追加
 flobopuyo ぷよぷよゲームのクローン

2026/04/01
・ゲーム1つ追加(Trixieにも旧バージョンでインストール可能)
 LTris CPU に優しいテトリスクローン

2026/03/31
Trixieで利用可能になったパッケージの紹介
 spout  小さな抽象的な白黒2D洞窟シューティングゲーム(bullseyeではapt installできない)
・ゲーム1つ追加(Alexシリーズ最新作)
 Alex the Allegator 4 – レトロ版プラットフォームゲーム

2026/03/30
・新Brainuxについて追加
 bullseyeではSDL1.2を使っていたアプリがtrixieではSDL2.0になっている場合の対応
・ゲーム1つ追加
 Alex the Allegator 3 – Radioactive Racers 2Dレーシングゲーム

2026/03/29
・新Brainuxについて追加
 SDL1.2使っているアプリが遅いのを対策する
・ゲーム1つ追加
 Alex the Allegator 2 スライドできるパネル配置パズルゲーム

2026/03/28
・新Brainuxについて追加
 Bulleseye(Debian11ベース)やbookworm(Debian12)のパッケージをインストールする方法
・ゲーム1つ追加
 Alex the Allegator 全方向スクロールのジャンプアクション探索ゲーム

2026/03/27
・新Brainuxについて追加
 APT経由でインストールしたmplayerがIllegal instuructionで落ちるのを対策する
・ゲーム1つ追加
 pipenightdreams 水が入り口から出口まで流れるようにパイプをつなぐ

2026/03/26
・新Brainuxについて追加
 電子辞書Brainをいじる (10) Brainux 最新版(Trixieベース)をインストールして遊ぶ
・ゲーム1つ追加
 lightsoff  ライトパズルゲーム

2026/03/25
・ゲーム1つ追加
 pegsolitaire Hi-Q に似た教育ゲーム

2026/03/24
・ゲーム1つ追加
 pathological 経路とビー玉を用いたパズルゲーム

2026/03/23
・ゲーム1つ追加
 △ alienblaster クラシックな2Dシューティングゲーム

2026/03/22
・ゲーム1つ追加
 palapeli ジグソーパズルゲーム

2026/03/21
・ゲーム1つ追加
 numptyphysics crayon ベースの物理パズルゲーム

2026/03/20
・ゲーム1つ追加
 epiphany Boulder Dash ゲームクローン(アクションパズル)

2026/03/19
・ゲーム1つ追加
 maelstrom Asteroidsに似たアーケードスタイルのゲーム

2026/03/18
・ゲーム1つ追加
 Gravitation  躁病、憂鬱、そして創造のプロセスに関するゲーム

2026/03/17
・ゲーム1つ追加
 GtkBalls シンプルなロジックゲーム

2026/03/16
・ゲーム1つ追加
 gtkboard 1 つのプログラム内に多くのボードゲーム

2026/03/15
・ゲーム1つ追加
 MinicraftC mincraftの要素のある2D版アクションゲーム

2026/03/14
・ゲーム1つ追加
 heroes パワーアップアイテムを集めつつ敵の軌跡を避けるゲーム

2026/03/13
・ゲーム1つ追加
 blocks-of-the-undead おどろおどろしい雰囲気の Tetris Attack 風パズルゲーム

2026/03/12
・ゲーム1つ追加
 stax Tetris Attack に似たパズルゲーム集

2026/03/11
・ゲーム1つ追加
 hex-a-hop 六角形のタイルをベースにしたパズルゲーム

2026/03/10
・ゲーム1つ追加
 kraptor クラシックなシューティングスクロールゲーム

2026/03/09
・ゲーム1つ追加
 geki3 R-Type 似の横スクロール型シューティングゲーム

2026/03/08
・ゲーム1つ追加
 geki2 enon に似た縦方向シューティングゲーム

2026/03/07
・ゲーム1つ追加
 Sopwith 1980年代の第一次世界大戦の横スクロールドッグファイティングゲームの移植

2026/03/06
・ゲーム1つ追加
 Ketm 古典的な 2D スクロール式シューティングゲーム

2026/02/05
・ゲーム1つ追加
 kdiamond three-in-a-row ゲーム

2026/03/04
・ゲーム1つ追加
 Dodgin’Diamond 2 1 人または 2 人用の軽快なアーケード式シューティングゲーム

2026/03/03
・ゲーム1つ追加
 cebreaker ペンギンを避けて氷山を崩せ

2026/03/02
・ゲーム1つ追加
 Kobo Deluxe ボスコニアン風 宇宙戦闘ゲーム

2026/03/01
・ゲーム1つ追加
 CaveStory 洞窟物語 フリーのPCアクションゲーム

2026/02/28
・ゲーム1つ追加
 Five-or-more 五つ以上の同色ビー玉を一列に並べよう

2026/02/27
・ゲーム1つ追加
 fillets  倉庫番スタイルの世界を救うウィットに富んだ魚についてのパズルゲーム

2026/02/25
・ゲーム1つ追加
 tuxtype Tux が主人公の教育的タイピングゲーム

2026/02/25
・ゲーム1つ追加
 △ tuxmath 子供向けの Tux による数学ゲーム(最初の起動だけ5分ぐらいかかります)

2026/02/24
・ゲーム1つ追加
 penguin-command ミサイルコマンドクローン(グラフィック改良版)

2026/02/23
・ゲーム1つ追加
 kblackbox ブラックボックスパズルゲーム

2026/02/22
・ゲーム1つ追加
 Block Rage コラムスみたいなゲーム(DOSの古典Xixitのリメイク)

2026/02/21
・ゲーム1つ追加
 ballerburg 古典的な城の戦闘ゲーム(砲弾当てゲーム)

2026/02/20
・ゲーム1つ追加
 BugSquish  虫があなたの腕から血を吸おうとしています!ハエたたきでやっつけろ!!

2026/02/19
・ゲーム1つ追加
 freedroid Paradroid クローン – 戦略的 shoot-em up 型シューティングゲーム

2026/02/18
・ゲーム1つ追加
 X Soldier 「撃たない」ボーナス付きのシューティングゲーム

2026/02/17
・ゲーム1つ追加(python3-pygame利用)
 △ whichwayisup わずかに回転する要素のある2Dプラットフォームゲーム

2026/02/16
・ゲーム1つ追加
 VoR  宇宙で岩を避ける2Dアクションゲーム

2026/02/15
・ゲーム1つ追加
 xbat ゼビウス(ナムコ製ゲーム)風アクションシューティングゲーム

2026/02/14
・ゲーム1つ追加
 Powermanga  鮮やかな 3D グラフィックを備えた縦方向シューティングゲーム

2026/02/13
・ゲーム1つ追加
 ceferino1 Super Pang 似のアクションゲーム

2026/02/12
・ゲーム1つ追加
 moon-lander 古典的な月着陸船に基づくゲーム

2026/02/11
・Basic言語 (BASIC-256)について追加
 BasiC-256を試す

2026/02/10
・ゲーム1つ追加
 meritous アクションアドベンチャーダンジョン探索ゲーム

2026/02/09
・ゲーム1つ追加
 Luola マルチプレイヤー洞窟飛行ゲーム

2026/02/08
・Basic言語 (YaBasic)について追加
 電子辞書Brainをいじる (9) BrainuxでBASICで遊ぶ 

2026/02/07
・ゲーム1つ追加
 LMemory 「メモリー」カードゲームをベースにした子供向けゲーム(神経衰弱)

2026/02/06
・ゲーム1つ追加
 LMarbles 色とりどりのビー玉で形を作るゲーム (KAtomicの亜種)

2026/02/05
・ゲーム1つ追加
 LBreakout2 美しいグラフィックのボールとパドルのゲーム

2026/02/04
・ゲーム1つ追加
 jester オセロに似たボードゲーム

2026/02/03
・ゲーム1つ追加
 gravitywars Gravity Force クローン

2026/02/02
・ゲーム1つ追加
 xonix モンスターを避けながら画面を切り裂くゲーム(Xonix、クイックスクローン)

2026/02/01
・ゲーム1つ追加
 xgalaga++ xgalaga にインスパイアされた古典的なシングルスクリーン縦スクロールシューティングゲーム

2026/01/31
・ゲーム11つ追加
 XGalaga 有名なギャラガの X 版

2026/01/30
・ゲーム2つ追加
 △ gnujump SDL1.2用ジャンピングゲーム(要OPELGL無効化)
 〇 XJump X 用ジャンピングゲーム

2026/01/29
・ゲーム1つ追加
 GNU Robbo ATARI XE/XL から移植された論理ゲーム

2026/01/28
・ゲーム1つ追加
 amphetamine ユニークなビジュアル効果を使った飛んで走るゲーム

2026/01/27
・ゲーム1つ追加
 Kollision  シンプルなボール避けゲーム

2026/01/26
・ゲーム1つ追加
 Kspaceduel SpaceWar! アーケードゲーム

2026/01/25
・ゲーム1つ追加
 X-Bomber  「Atomic Bomberman」と「Bomberman」をベースにしたゲーム

2026/01/24
・EX-wordの操作を、Brainux上で実行して見ました(GNUBOYの実行は失敗)
 電子辞書Brainをいじる (8) Brainuxで別の電子辞書EX-wordをハックして遊ぶ

2026/01/23
・ゲーム1つ追加
 kbounce Jezzball アーケードゲーム
・コンテンツを一部分離(エミュレータ、SDL系ゲーム)
 電子辞書Brainをいじる (5) Brainuxでエミュレータをインストールして遊ぶ
 電子辞書Brainをいじる (7) Brainuxでゲームをインストールして遊ぶ (2) SDL系

2026/01/22
・ゲーム1つ追加
 pixfrogger  カエルが道を渡るのを手伝う(Froggerによく似た競争ゲーム)

2026/01/21
・ゲーム1つ追加
 barrage 戦車やシープ・歩兵を砲撃して進行を止めるアクションゲーム
・最近の更新履歴の掲載順を日付降順に変更

2026/01/20
・ゲーム1つ追加
 tworld Chip’s Challenge Game エンジンをエミュレーション

2026/01/19
・ゲーム1つ追加
 koules 体当たりで敵を押しつぶすアクションゲーム

2026/01/18
・アプリ1つ追加
 px68k X68000エミュレータ(かなり遅いです。) 

2026/01/17
・ゲーム1つ追加
 SDL Hana コンピュータ対戦可能な花札(こいこい、五烏)です。

2026/01/16
・ゲーム1つ追加
 XScavenger X向けのロードランナー風プラットフォームゲーム

2026/01/15
・ゲーム1つ追加(ステージ最初にWait有)
 〇? nikwi キャンディーの収集が任務のプラットフォームゲーム

2026/01/14
・ゲーム1つ追加
 Holotz-Castle 数多くの神秘があるプラットフォームゲーム

2026/01/13
・ゲーム1つ追加
 madbomber Kaboom! クローン

2026/01/12
・ゲーム1つ追加
 The Legend of Edgar [edgar] 2Dアクション+謎解きゲーム(リンクの冒険的ゲーム)

2026/01/11
・ゲーム1つ追加
 Super Tux Tux が主人公の古典的な跳んで走る2Dスクロールゲーム(スーパーマリオ風)

2026/01/10
・ゲーム1つ追加
 PDA Maze 一人称視点(3D)の迷路ゲーム

2026/01/09
・ゲーム1つ追加
 blinken Simon電子記憶ゲームのKDEバージョン

2026/01/08
・ゲーム1つ追加
 Missile Command 「ミサイル・コマンド」クローンです 

2026/01/07
・ゲーム1つ追加
 vectoroids  古典的なアーケードゲームの “アステロイド” のグラフィック強化版です。

2026/01/06
・ゲーム1つ追加
 picmi 数字ロジックゲーム(ピクロス?)
 Defendguin アーケードゲーム「Defender」のクローン

2026/01/05
・ゲーム1つ追加
 TowerToppler(別名Nebulous) 障害を避けながら塔を登るゲーム(キョロちゃんランド)
・CPU最適化のため、再ビルド中。結果は15時間後
 openmsx 0.15 (SDL1.2版) インストール     2025/12/22追記

2026/01/04
・CPUのJava機能について追記(結局利用できなかった)
 java Java VMの開発実行環境 (非常に遅い)
・ビルド時のCPU最適化について追記(若干の性能向上を確認)
 Neko Project 2 kai PC9801/9821 エミュレータ
・ゲームを1つ追加
 Abe’s Amazing Adventure ピットフォールII的なアクションゲーム

2026/01/03
・ゲーム1つ追加
 aliens インベータ/ギャラガ風シューティングゲーム
 Circus Linux! アーケードゲーム「Circus」/Atari2600「Circus Atari」風ゲーム

2026/01/02
・アプリ1つ追加
 Neko Project 2 kai  PC9801/9821 エミュレータ

2026/01/01
・ゲーム1つ追加
 katomic    アトミックスパズルゲーム

———–

2025/12/31
・ゲーム1つ追加
 sgt-puzzles Simon Tathamのポータブルパズルコレクション – 1人用パズルゲーム集

2025/12/30
・アプリ1つ追加
 dosbox グラフィックス、サウンド、DOS を備えた x86 エミュレータ(Brainでは厳しい)

2025/12/29
・ゲーム1つ追加
 BoboBot ロックマン的なアクションゲーム

2025/12/28
・ゲーム1つ追加
 Agendaroids Atari の古典的なアーケード ゲーム「Asteroids」のクローン

2025/12/27
・ビルドに必要なパッケージの導入についての追記
 インストール方法のパターン
・アプリ1つ追加
 Xshodow「書道」のアプリケーションです.

2025/12/26
・アプリ1つ追加
 XMangekyou X11で動く万華鏡です
・ゲーム1つ追加
 xjewel テトリスやセガコラムズのような落下ブロックゲーム

2025/12/25
・アプリ1つ追加
 Xantfarm X11用のシンプルなアリ農場
・ゲーム1つ追加
 N.A.D.A.R ネットワーク対戦型戦車ゲーム(コンピュータ対戦も可能)

2025/12/24
・アプリ(エミュレータ)の fceux について追記
 fceux 2.2.3 (SDL1.2版) ファミコンエミュレータ(音無しであれば実用的な速度で動作)

2025/12/23
・ゲーム1つ追加
 bomberclone 無料のボンバーマンクローン

2025/12/22
・JWMから再起動する設定について追記
 OSに登録されたアプリケーションをJWMに表示する
・アプリ(エミュレータ)のopenMSXについて追記
 openmsx 0.15 (SDL1.2版) インストール     2025/12/22追記

2025/12/21
・アプリ2つ追加
 mxclock 絵柄が綺麗な時計です.
 SunClock 時刻と地理データを表示可能な可愛い時計

2025/12/20
・ゲーム2つ追加(1勝1引分)
 △ grhino     オセロ/リバーシボードゲーム
 〇 iagno     GNOME 用オセロゲーム
・アプリ(エミュレータ)1つ追加
 〇 fmsx MSXエミュレータ(MSX1/2/2+)
・サウンド関連で1つ修正
 PulseAudio導入について

2025/12/19
・X11(X window system)関連で、以下の項目を追加
 X11画面のスクリーンショットを撮る方法

2025/12/18
・X11(X window system)関連で、以下の項目を追加
 xterm の設定変更について(Xリソースファイルの管理)
 JWMのメニューにアプリケーション(xterm)に追加する
 OSに登録されたアプリケーションをJWMに表示する

2025/12/17
・ゲームを1つ追加
 enigma     マウスでビー玉をコントロールするゲーム

2025/12/16
・アプリを1つ追加
 dclock X Window System 向けの柔軟な表示設定が可能なデジタル時計
・アクアリウム時計 テーマでのレシピ追行
 Brainで「痛デスクトップ」?
・ゲームを1つ追加
 pingus      Lemmings(TM) のフリーなクローン

2025/12/15
・アプリを2つ追加
 xfireworks Xのルートウィンドウ上で花火が打ちあがります
 xdesktopwaves Xのルートウィンドウ上で水の波をシミュレーション

2025/12/14
・アプリを1つ追加
 XMascot  Xの画面上で揺れるマスコットを表示する プログラム (2025/12/14追加)
・ゲームを1つ追加
 xevil X 向けの暴力的な横スクロールゲーム (2025/12/14追加)

2025/12/13
・Code::Blocks IDE project (.cbp)からMakefileを生成するためのツールについて追加
 cbp2make Code::Blocks IDE project (.cbp)からMakefileを生するためのツール
・ゲームを3つ追加
 gnome-mahjongg 「上海」麻雀パイを使った1人用パズルゲーム (2025/12/13追加)
 spacearyarya スペースハリアー風三次元三人称シューティングゲーム (2025/12/13追加)
 wing      縦方向シューティングゲーム (2025/12/13追加)

2025/12/12
・BrainuxのX環境でのタッチパネル操作(右クリック対応)について追加
 BrainuxのX環境でのタッチパネル操作について (2025/12/12追加)
・ゲームを1つ追加
 OpenSyobonAction オープン版しょぼんのアクション (2025/12/12追加)

2025/12/11
・X環境用のソフトウェアキーボードについて追加
 Brainux のX環境でのソフトウェアキーボードについて 
・JnetHackをソフトウェアキーボードで遊ぶ方法について追記
 JNetHack   ローグライクゲームの日本語版 (2025/12/08追加)

2025/12/10
・Brainux上で日本語(全角)文字を入力できる方法について追加
 日本語(全角)文字列の入力について
・ゲームを1つ追加
 kgoldrunner  ロードランナー風パズルアクション

2025/12/09
・ゲームを1つ修正(オリジナル+パッチ版追加)
 JNetHack   ローグライクゲームの日本語版(お理事バル+日本語パッチ版導入 追加)
・ゲームを1つ追加
 wordwarvi   レトロな横スクロールシューティングゲーム

2025/12/08
・ゲームを2つ追加
 cgames    コンソール版の倉庫番、マインスイーパー、ブロックゲーム
 JNetHack   ローグライクゲームの日本語版

Views: 1070

カテゴリー: Brain, Brain(CE), Brainux, 電子手帳 | コメントする

電子辞書Brainをいじる (10) Brainux 最新版(Trixieベース)をインストールして遊ぶ

Brainux 最新版(Trixieベース) が公開されました。

Release 2026-03-25-024518 · brain-hackers/buildbrain · GitHub

詳しくは、上記のリンクにも書かれていますが、
大きな変更は、以下の通りとのことです。

  • Debian 13.4 “Trixie”ベース にアップグレード
  • USB Ethernet Gadget を RNDIS から NCM に切り替え
  • USB Video Class (USBカメラ) のKernelドライバを有効化

 

インストールについて

私のBrainは、PW-SH3ですので、
sdimage-2026-03-25-024518.zip
をダウンロードして、microSDカードに書き込みしてインストールします。

インストール方法については、以前のバージョンとほとんど変わりません。
インストールするイメージファイルが違う以外には、以下のリンクの方法で
インストール&パーティション拡張まで可能です。

電子辞書Brainをいじる (1) Brainuxの環境を構築する

今回は、前回の利用状況を元に、32GBのmicroSD(実容量:29GB)を以下で設定しました。
(前回は、FAT32:16:ext4:13GBで割り振っていたのですが、既にext4利用率が95%利用済になってまして・・・)

FAT32(WindowsCE領域):10GB
ext4(Brainux領域):19GB
swap領域:1GB

 

さっそく動かしてみる

起動してみましたが、前バージョン(Debian 11 bullseyeベース)との見た目の変更はありませんでした(スクリーンショットはswap領域の確保前)。

 

次にOS状況を確認してみます。
debian 13.4 (trixie)ベースですね。linux Kernelは6.1.70です。

 

ちょっと触った感じでは、

改善
・aptのインストールのためにレポジトリの変更は不要で
 そのままインストールできることを確認しました。

・Debian11(bullseye)では,SDL2.0使っているアプリはそのままだと
 Illegal instuructionで異常終了しましたが、SDL2.0の自ビルドしなくても
 実行できることを確認しました。
 (動作はあいかわらず重いですが)

・デフォルトで、USB Video Class (USBカメラ)がBrainuxで認識されるようになりました。
 (詳細は後程)

変動なし
・SDカード内のパーティション容量変更は、
 Debian11(bullseye)と同じ方法で可能なことを確認しました。

・PW-SH3本体のキーボードで、記号の入力時の繰り返し入力されてしまうのは
 相変わらず。

・PW-SH3のタッチパネルで、右クリックのエミュレーション有効の設定
 をしてみたところ、有効にできることを確認。

・apt upgrade実行時に、毎回「x11-ico-dvd」が更新で引っかかってくる


要確認
・USBサウンドデバイスを追加で付けているので、ついでに確認したのですが、
 APT経由でmplayerをインストールして、wav,mp3ファイルを再生しようと
 すると、Illegal insturuction で落ちるのはちょっと気になります
 (Debian11(bullseye)では再生可能)。
 (aplayでwavファイルの再生はOKでした)

 →Debian13のmplayerパッケージでは、ARMv7 以降で追加された命令込で
  ビルドされているようで、mplayerの自ビルドすることで、
  pulseaudioを起動している状態であれば正常に再生されることを確認しています
  (詳細は後程)


・SDL1.2使っているアプリが、 既存の bullseyeベースだと早いんですが、
 新しいtrixie ベース のBrainuxだと 動作自体はするんですが、異常に遅い・・・

 →確認したら、 libsdl1.2debian (sdl1.2ライブラリ)が、
   bullseyeベースだと「libsdl1.2」 を元に作成されているのに対し、
  trixie ベースから「sdl12-compat」を元に作成されているので、
  実質SDL2へのラッパーになってしまっているようでした。
   https://packages.debian.org/ja/bullseye/libsdl1.2debian
    https://packages.debian.org/ja/trixie/libsdl1.2debian
  (bookwormまではlibsdl1.2ベースで、trixie からsdl12-compatベース)

 →検証の結果、bullseyeのlibsdl1.2のソースを取得して、
  trixie ベースの新Brainux上でビルドすることで、
  bullseyeベースBrainuxと同様にSDL1.2アプリが動作するようになりました。
  (詳細は後程)

・bullseyeとtrixie のライブラリ上の扱いの違いとして、
 t64ABIの採用があるようです。
 bullseye 非t64ABI time_tが32bit
 trixie    t64ABI time_tが64bit

 「旧ABI(非t64ABI)」と「t64 ABI」の違いは、
 日付用の型time_tを32bitか64bitに拡張したかどうかという点になります。
 time_tが32bitだと2038年1月19日以降の時刻が表現できない(Y2038問題)ので、
 このタイミングで変更になった模様。

 「旧ABI(非t64ABI)」と「t64 ABI」を利用したアプリはバイナリ互換がないので、
 両方を混在させると、aptでのパッケージ管理がめちゃくちゃになります。
 (整合性が崩れてまともにアプリが追加できなくなる)

 このため、既存のバイナリパッケージをインストールする際には、
 trixie上でのパッケージで依存パッケージ名にt64が含まれていないことを確認しましょう。

 最新パッケージに依存パッケージ名にt64が含まれていたら、
 以前のバージョンのバイナリパッケージではなく、ソースからのビルドを推奨します。
 (確実性で言えば、すべてソースからのビルドするのが理想ですが、これは大変なので)

 

USB Video Class (USBカメラ) の動作確認

今回のビルドで、デフォルトでUSB Video Classが認識されるようになりました。

USBカメラとか、HDMIキャプチャのUVCデバイスをUSB に接続するだけで、
ドライバまで適用されます。

Bus 001 Device 008: ID 298f:1996 MACROSILICON ShadowCast
|__ Port 003: Dev 008, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 003: Dev 008, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 003: Dev 008, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 003: Dev 008, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 003: Dev 008, If 4, Class=Human Interface Device, Driver=usbhid, 480M

 

UVCを利用できるアプリケーションとして「V4L2 Test Bench(qvv4l2)」を試してみました。

$ sudo apt update
$ sudo apt install qv4l2

$ qv4l2

こんな感じで、USBHDMIキャプチャを使って、Brainをサブモニター化したり、
USBカメラを利用して、ストリーミングするような使い方ができるようになりました。
(ちょっと遅延は感じられますが、hdmiキャプチャ機器の遅延もあるかもしれません。)

なお、guvcviewも試してみましたがこちらは動作が重くて使うのは難しそうです。

 

APT経由でインストールしたmplayerがIllegal instuructionで落ちるのを対策する

USBサウンドデバイスを追加で付けているのですが、wavならaplayで再生できるけど、MP3はaplayでは再生できないので、APT経由でmplayerをインストールしてみました。
ただ、APTパッケージ版のmplayerは起動するだけでIllegal instuructionで落ちる現象が発生しました。

$ sudo apt install mplayer
$ mplayer
Illegal instruction

Debian11(bullseye)でのmplayerでは再生可能だったのは確認済。

 

では、どんな理由で落ちているかを確認します。

$ sudo apt install gdb
$ gdb mplayer
(gdb) handle SIGILL stop

(gdb) run
Program received signal SIGILL, Illegal instruction.
0x005425d4 in ?? ()

(gdb) disassemble $pc-16, $pc+16
Dump of assembler code from 0x5425c4 to 0x5425e4:
0x005425c4: str r3, [sp, #20]
0x005425c8: mov r3, #0
0x005425cc: bl 0x41c330 <__gettimeofday64@plt>
0x005425d0: ldr r0, [sp]
=> 0x005425d4: movw r2, #16960 @ 0x4240
0x005425d8: movt r2, #15
0x005425dc: ldr r3, [sp, #8]
0x005425e0: ldr r1, [pc, #64] @ 0x542628
End of assembler dump.
(gdb) exit

どうやらmovw命令を実行しようとして、Illegal instruction(未定義命令実行)で落ちているようです。

確認すると、movw命令は、ARMv7-A/Rアーキテクチャ以上でサポートされています。
BrainのCPUは、ARM926EJ-SでARMv5TEJでARM5系なので、エラーになります。
なので、新Brainuxで動かすには、自分でBrainに合わせたビルドをする必要があります。

APTパッケージから、バイナリの他にもソースパッケージも入手できるので、
その方法で、ビルドしていきます。

$ sudo apt update
$ sudo apt-get install g++ build-essential
$ cd
$ mkdir DPKG-BUILD
$ cd DPKG-BUILD
$ mkdir mplayer
$ cd mplayer

#ソースパッケージをインストールする
$ sudo apt source mplayer

#ビルドに必要なパッケージをインストールする
$ sudo apt-get build-dep mplayer
$ cd mplayer-1.5+svn38674

#もし、ビルド時のオプションを変更したいのであれば、
#以下のように変更します。
#(追加指定しなくても大丈夫です)
$ vi debian/rules

#!/usr/bin/make -f

#!/usr/bin/make -f
export DEB_CFLAGS_MAINT_APPEND = -O3 -march=native -msoft-float -fomit-frame-pointer
export DEB_LDFLAGS_MAINT_APPEND = -lX11 -lXext -lXinerama


CONFIGURE_FLAGS = \ の一部
–extra-ldflags=”${LDFLAGS}” \
$(archconf)

–extra-ldflags=”${LDFLAGS}” \
–disable-armv6 \
–disable-armv6t2 \
–disable-armvfp \
–disable-neon \
–disable-thumb \
–disable-sdl \
–enable-x11 \
–disable-gl \
–enable-alsa \
$(archconf)

 

#ビルドします(Brainでの自ビルドには7-8時間程度かかる模様)
$ sudo dpkg-buildpackage -us -uc

#debパッケージが作成されるので、個別インストールします。
#(dbgsymを含むパッケージ名のものは、デバック用なので通常はインストール不要です。)

$ cd ..
$ ls -al *.deb
$ sudo dpkg -i mplayer_1.5+svn38674-2_armel.deb
$ sudo dpkg -i mencoder_1.5+svn38674-2_armel.deb
$ sudo dpkg -i mplayer-doc_1.5+svn38674-2_all.deb
$ sudo dpkg -i mplayer-gui_1.5+svn38674-2_armel.deb

#ただ、手動でdebパッケージをインストールした場合、apt upgradeでaptレポジトリの
#パッケージが再導入されてしまうので、保留対象パッケージに指定します。

$ sudo apt-mark hold mplayer mencoder mplayer-doc mplayer-gui

(もし、ビルドしないでdebファイルだけ入手した場合は、dpkg -i でインストール時にパッケージが足りないというメッセージが出ることがあるので、その場合は手動で足りないパッケージをインストールしてから、再度dpkg -i でインストールしてみてください。
sudo apt –fix-broken install <パッケージ名>)

 

#これで、インストールできました。
#MP3ファイルを再生させてみます。

$ mplayer music.mp3

#すると最初の瞬間は音が出るのですが、その後無音になりました。
#ん?ということで、試しにpulseaudio をインストールして試してみます。

$ sudo apt install pulseaudio

#インストール直後はサービスが起動していないのですが、以下のコマンドで起動できます。
#(次回再起動時には、自動で起動します。)

#pulseaudio起動コマンド
$ pulseaudio –start

(その他詳しいpulseaudioの操作ついては、PulseAudio導入についてを参照してください。)

では再度MP3ファイルを再生させてみます。

$ mplayer music.mp3

ノイズも無くきれいに再生できました。成功ですね。

 

Bulleseye(Debian11ベース)やbookworm(Debian12)のパッケージをインストールする方法

新Brainuxはtrixie(Debian13ベース)なので、APTコマンドでインストールされるのもtrixie用のパッケージになります。

以前のBrainuxはBulleseye(Debian11ベース)ですので、
互換性などの理由で、以前のバージョンのアプリをインストールしたいといった状況になる場合があります。

この場合は、APTレポジトリリストにBulleseyeのレポジトリを追加することで、対応することができます(2026/3/27時点)。

$ sudo vi /etc/apt/sources.list.d/bullseye.list

deb http://archive.debian.org/debian bullseye main contrib non-free
deb-src http://archive.debian.org/debian bullseye main contrib non-free

$ sudo vi /etc/apt/preferences.d/bullseye.pref

Package: *
Pin: release n=bullseye
Pin-Priority: 50

これで、のように手動指定することで、
bullseyeのパッケージを手動導入できるようになります。

 

同じように、bookworm(Debian 12) の場合は、以下のように追加します。

$ sudo vi /etc/apt/sources.list.d/bookworm.list

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

$ sudo vi /etc/apt/preferences.d/bookworm.pref

Package: *
Pin: release n=bookworm
Pin-Priority: 50

 

また、bookworm の特定パッケージだけ使いたい場合は以下のようにします。
(SAMPLE-libsdl1.2debianというパッケージの場合)

$ sudo vi /etc/apt/preferences.d/bookworm-libsdl1.2.pref

Package: SAMPLE-libsdl1.2debian
Pin: release n=bookworm
Pin-Priority: 700

なお、pin-proprity(リポジトリの優先度)は以下のコマンドで表示できます。

$ apt-cache policy

 

優先度(Pin-Priority)は、大体こんな感じで設定すればいいみたいです。

  • 1001→ダウングレード許可(手動設定)
  • 990 → Default-Release(trixie を優先したい時)
  • 700 → SDL1.2 のように個別 pinning を設定する場合に利用
  • 500 → 通常のリポジトリ(自動選択される)
  • 100 → インストール済みパッケージ
  • 50 → 手動指定ならインストール可(安全)
  • 0→ インストール不可
  • -1→ 依存関係でも絶対に使わない

 

以上のファイルを作成した後で
以下のコマンドで、各リポジトリのアプリリストを取得できます。

$ sudo apt update

レポジトリ指定でのアプリの導入などは、aptコマンド、apt-get コマンドで可能です。
-t オプションで、レポジトリを指定できます。

#パッケージ詳細表示
$ sudo apt -a show <パッケージ名>
#パッケージインストール
$ sudo apt -t bookworm install <パッケージ名>

#パッケージのソースをインストール
$ sudo apt -t bookworm source <パッケージ名>
#パッケージに必要な前提パッケージをインストール
$ sudo apt -t bookworm build-dep <パッケージ名>
# ソースパッケージの情報を表示します。
$ apt-cache -t bookworm showsrc <パッケージ名>

bullseyeとtrixie のライブラリ上の扱いの違いとして、
t64ABIの扱いがあるようです。
bullseye 非t64ABI time_tが32bit
trixie   非t64ABI time_tが64bit

「旧ABI(非t64ABI)」と「t64 ABI」を利用したアプリはバイナリ互換がないので、
両方を混在させると、aptでのパッケージ管理がめちゃくちゃになります。
(整合性が崩れてまともにアプリが追加できなくなる)

このため、既存のバイナリパッケージをインストールする際には、
trixie上でのパッケージで依存パッケージ名にt64が含まれていないことを確認しましょう。

最新パッケージに依存パッケージ名にt64が含まれていたら、
以前のバージョンのバイナリパッケージではなく、ソースからのビルドを推奨します。
(確実性で言えば、すべてソースからのビルドするのが理想ですが、これは大変なので)

 

SDL1.2使っているアプリが遅いのを対策する

SDL1.2使っているアプリが、
既存の bullseyeベースだと早いんですが、新しいtrixie ベースのBrainuxだと
動作自体はするんですが、異常に遅い・・・

確認したら、libsdl1.2debian (sdl1.2ライブラリ)が、
bullseyeベースだと、libsdl1.2 を元に作成されているのに対し、
trixie ベースから、sdl12-compatを元に作成されているので、SDL2へのラッパーになってしまっているようでした。

libsdl1.2debian (bullseye) [ ソース: libsdl1.2  ]  SDL1.2
https://packages.debian.org/ja/bullseye/libsdl1.2debian

libsdl1.2debian (trixie) [ ソース: sdl12-compat  ] SDL2へのラッパー
https://packages.debian.org/ja/trixie/libsdl1.2debian

bookwormはまだlibsdl1.2ベースでした。

なので、以下のどちらかが対策案になります
・bookwormのlibsdl1.2debian (libsdl1.2ベース)をインストールする(不採用)
 →結果、副作用が多く、断念
・libsdl1.2をtrixie用にビルドする(採用)
 →インストールに手間はかかるが、副作用が少ない

bookwormのlibsdl1.2debian (libsdl1.2ベース)をインストールする(副作用有で不採用)

レポジトリを追加していれば、以下で行けるはずとやってみた。
/etc/apt/preferences.d/bookworm-libsdl1.2.prefの指定で、
bookwormのものがインストールされます。
$ sudo apt update
$ sudo apt-get install –reinstall libsdl1.2debian

エラー
mplayer(mencoder)をインストールしていることで、一部ライブラリが競合してしまっているみたい
前提パッケージのほとんどがtrixie の “t64 ABI” と bookworm の “旧 ABI”が混じってしまっている。

以下で、sdl1.2をインストールはできましたが、その後のmplayerを入れる際に
別のt64 ABIライブラリと競合してしまっていて、インストールできない。

sudo apt remove mplayer mencoder mplayer-doc mplayer-gui
sudo apt install -t bookworm libpng16-16 libasound2 libglib2.0-0 libreadline8
sudo apt install -t bookworm libsdl1.2debian libsdl-mixer1.2 libsdl-image1.2
sudo apt install -t bookworm mplayer mencoder mplayer-doc mplayer-gui

他のaptレポジトリ登録アプリのgemdropxとかも、t64 ABI関係の競合でインストールできなくなってしまうので、trixieとしてのパッケージ整合性が完全に壊れてしまっている。

なお「t64 ABI」と「旧ABI」の違いは、日付用の型time_tを32bitか64bitに拡張したという点になります。
time_tが32bitだと2038年1月19日以降の時刻が表現できない(Y2038問題)ので、このタイミングで変更になった模様。

また「旧ABI」と「t64 ABI」を利用したアプリはバイナリ互換がないので
そのままのバイナリパッケージはインストールできない。
もし一部を「旧ABI」に戻してしますと、「t64 ABI」前提のtrixie 用パッケージもインストーるできなくなるということで、この方法はダメと判断しました。

元に戻せるかやってみる(面倒くさければ、brainuxの再展開でもいいかもしれません。)

$ sudo apt remove mplayer mencoder mplayer-doc mplayer-gui
$ sudo apt remove libsdl1.2debian libsdl-mixer1.2 libsdl-image1.2
$ sudo apt autoremove
$ sudo mv /etc/apt/preferences.d/bookworm-libsdl1.2.pref /etc/apt/preferences.d/bookworm-libsdl1.2.pref.disabled
$ sudo apt install linsdl1.2debian
$ sudo mv /etc/apt/preferences.d/bookworm-libsdl1.2.pref.disabled /etc/apt/preferences.d/bookworm-libsdl1.2.pref

一応これで戻ったっぽいです。

 

libsdl1.2をtrixie用にビルドする(採用)

libsdl1.2をビルドする方法です。

ソースをApt sourceでbookwormリポジトリから引っ張ってこようとしましたが、
SDL1.2(1.2.15)は bullseye が最後のソースのため、bookwormリポジトリにはないそうです。

$ sudo apt update
$ sudo apt-get install g++ build-essential
$ mkdir DPKG-BUILD
$ cd DPKG-BUILD
$ mkdir libsdl1.2debian
$ cd libsdl1.2debian
$ sudo apt -t bullseye source libsdl1.2debian
$ sudo apt -t bullseye build-dep libsdl1.2debian
$ cd libsdl1.2-*

#(変更しなくてもビルドは通ります。いったん最適化の目的で以下の設定を追加しました。)
$ sudo vi debian/rules

#!/usr/bin/make -f の下に、以下の行を追加します。

export DEB_CFLAGS_MAINT_APPEND = -march=armv5tej -marm -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-tree-vectorize -fno-aggressive-loop-optimizations -fno-strict-overflow

export DEB_CXXFLAGS_MAINT_APPEND = $(DEB_CFLAGS_MAINT_APPEND)

以下のように追記します。

confflags = –disable-rpath –enable-sdl-dlopen \
–disable-video-ggi –disable-video-svga –disable-video-aalib \

confflags = –disable-rpath –enable-sdl-dlopen \
–disable-assembly –disable-video-opengl –disable-video-x11-xrandr –disable-nasm \
–disable-video-ggi –disable-video-svga –disable-video-aalib \

#ビルド(Brain時期ビルドでは、1.5時間くらいかかりました。)
$ sudo dpkg-buildpackage -us -uc -b

$ cd ..
$ sudo dpkg -i libsdl1.2debian_1.2.15+dfsg2-6_armel.deb
$ sudo dpkg -i libsdl1.2-dev_1.2.15+dfsg2-6_armel.deb
$ sudo apt-mark showhold
$ sudo apt-mark hold libsdl1.2debian libsdl1.2-dev
$ sudo apt-mark showhold

これで、libsdl1.2debianがシステムに上書きインストールされました。
apt管理外の登録もしていますので、勝手に上書きされることもないはずです。

これで、trixieのレポジトリに登録しているSDL1.2を利用するようなアプリでも、
普通にapt install でインストールできることも確認しています。
これらのパッケージの依存要件としてはlibsdl1.2debianは>= 1.2.15で定義されていましたので、libsdl1.2からの自ビルドは想定されていたのかもしれません。。
(「gemdropx」,「pingus」で確認しました。)

$ apt show pingus
$ sudo apt install pingus

 

bullseyeではSDL1.2を使っていたアプリがtrixieではSDL2.0になっている場合の対応

bullseyeではSDL1.2を使っていたアプリがtrixieではSDL2.0になっている場合、
単純にapt installで導入するだけでは、今まで通りの速度では動作してくれません。
(brainでは、SDL2を使っているアプリでは、非常に低速になるため)

この場合は、以前のOS(Debian11,debian12)などで、sdl1.2を使っているバージョンを探して、
そのソースを入手して自ビルドする必要があります。

そのようにSDL1.2からSDL2へ移行しているアプリや、パッケージがなくなったアプリは、
以下のようなものがあります



https://nsb.homeip.net/wp/?p=4695https://nsb.homeip.net/wp/?p=4695
(見つけたもので、机上チェックのみしたもの多数なので、未確認なものを含みます)。

このあたりをベースに確認しました。

 

hannah の場合

(trixie 以降でSDL2に移行済。t64ABI未使用。bookwormからパッケージインストール可能)

hannahを例にとって、インストールしてみます。

まずは、SDL1.2依存のパッケージを探します。
もしあれば、trixie上でt64を含むパッケージ名のものに依存があるかどうかも確認してください。

trixieでのパッケージ情報
https://packages.debian.org/ja/trixie/hannah
→dep: libsdl2-2.0-0 (>= 2.0.12) となっているので、SDL2依存です。
→t64  : を含むパッケージ なし
 →バイナリパッケージを入れても危険性は少ないと思われます。

bookwormでのパッケージ情報
https://packages.debian.org/ja/bookworm/hannah
→dep: libsdl-image1.2 (>= 1.2.10) となっているので、SDL1.2依存です。

bullseyeでのパッケージ情報
https://packages.debian.org/ja/bullseye/hannah
→dep: libsdl-image1.2 (>= 1.2.10) となっているので、SDL1.2依存です。

これを見ると、bookwormのバージョンまではSDL1.2依存だったというのがわかります。
この情報はapt showで確認することも出来ます(-aで、全レポジトリの情報が表示されます)。
 apt -a show hannah

では、bookwormレポジトリから、インストールします。
通常実行パッケージをインストールする場合は、以下のように入力しますが
状況によっては依存関係でエラーになります(t64ABIに切り替わっているABIにリンクされていたらアウト)。
今回のようにtrixie版で、「t64」を含むパッケージが依存関係に含まれていないのであれば、
直接入れても危険性は少ないです(が、完ぺきではないでのであとで問題になる可能性はゼロではないです。このリスクを避けるにはソースからのインストールになります)。

$ sudo apt -t bookworm install hannah

今回は、特に依存エラーがなく、bookworm 版のhannahが入りました。
そのままインストールできて、プレイも出来ました。

あとは、勝手にアップグレードされないように aptでホールドもしておきます。
(専用データファイルがあればそれも追加)

$ sudo apt-mark hold hannah hannah-data

 

もし、既に最新版のhannahがはいっていた場合は、うまく入らない場合があるので、
以下のようにパッケージを削除してから再導入してみてください。
また、apt show -a で依存関係を見て、特定のバージョンに依存していて、
既にそれより高いバージョンが入っているような場合は、hannahをパッケージも削除します。

今回の場合、依存関係を確認してみます。

trixie
Depends: hannah-data (= 2.0.1+ds1-0.3), libc6 (>= 2.34), libgcc-s1 (>= 3.5), libsdl2-2.0-0 (>= 2.0.12), libsdl2-image-2.0-0 (>= 2.0.5), libsdl2-mixer-2.0-0 (>= 2.6.0), libsdl2-ttf-2.0-0 (>= 2.0.15), libstdc++6 (>= 13.1)

bookworm
Depends: hannah-data (= 1.0-3.3), libc6 (>= 2.34), libgcc-s1 (>= 3.5), libsdl-image1.2 (>= 1.2.10), libsdl-mixer1.2 (>= 1.2.12), libsdl-ttf2.0-0, libsdl1.2debian (>= 1.2.15), libstdc++6 (>= 11)

このように「hannah-data」もダウングレードする必要があることが判るので、
以下のようにいったんパッケージを削除してから、再導入します。

$ sudo apt remove hannah hannah-data
$ sudo apt -t bookworm install hannah

 

enigma の場合

(trixie以降でSDL2に移行済。t64ABI使用。bookwormからソースを入手してビルド可能)

enigmaを例にとって、ソースからインストールしてみます。

まずは、SDL1.2依存のパッケージを探します。
もしあれば、trixie上でt64を含むパッケージ名のものに依存があるかどうかも確認してください。

trixieでのパッケージ情報
https://packages.debian.org/ja/trixie/enigma
→dep: libsdl2-2.0-0 (>= 2.0.12) となっているので、SDL2依存です。
→t64  : を含むパッケージ あり(libcurl3t64-gnutls)
 →バイナリパッケージがもし入ってもt64 ABIの混在が発生する可能性
  があるので危険。ソースからの導入が安全

bookwormでのパッケージ情報
https://packages.debian.org/ja/bookworm/enigma
→dep: libsdl-image1.2 (>= 1.2.10) となっているので、SDL1.2依存です。

bullseyeでのパッケージ情報
https://packages.debian.org/ja/bullseye/enigma
→dep: libsdl-image1.2 (>= 1.2.10) となっているので、SDL1.2依存です。

これを見ると、bookwormのバージョンまではSDL1.2依存だったというのがわかります。
この情報はapt showで確認することも出来ます(-aで、全レポジトリの情報が表示されます)。
 apt -a show enigma

では、bookwormレポジトリから、インストールします。
通常実行パッケージをインストールする場合は、以下のように入力しますが
状況によっては依存関係でエラーになります(t64ABIに切り替わっているABIにリンクされていたらアウト)。
今回のようにtrixie版で、「t64」を含むパッケージが依存関係に含まれている場合は、
バイナリパッケージを入れるのは危険なので、ソースでインストールする必要があります。

$ cd
$ cd DPKG-BUILD
$ mkdir enigma
$ cd enigma
$ sudo apt source -t bookworm enigma

Error: Can not find version ‘1.20-dfsg.1-2.2’ of package ‘enigma’
Error: Unable to find a source package for enigma

#エラーになりました。
#パッケージ状況を確認します。
$ apt-cache showsrc -t bookworm enigma

すると、bookworm に登録しているバージョンが1.30(デフォルト)と1.20と2つあり、
sudo apt source -t bookworm enigma では、1.20を要求してしまうのですが、
“存在するが、優先度が低い”という扱いになって、発見できなかったようです。

なので、バージョン指定も込みで指定してソースをダウンロードします。
(もしこれでもダメなら、bullseye のものをダウンロードするしかありません。)

$ apt source -t bookworm enigma=1.20-dfsg.1-2.2


#依存関係を解決します。
$ sudo apt -t bookworm build-dep enigma=1.20-dfsg.1-2.2

依存エラー発生しました。

エラーになった場合は、ダメもとでtrixie版としての依存関係の解決もしておきます。
(trixie版パッケージの前バージョンのビルドであれば、これで結構足りないパッケージが補完される場合が多いです)

$sudo apt build-dep enigma

#ビルドします。
$ cd enigma-*
$ sudo dpkg-buildpackage -us -uc -b

#以下のパッケージが足りないって言われた。
libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-gfx1.2-dev libsdl-ttf2.0-dev quilt

#なので、trixie版の依存パッケージを入れる
$ sudo apt install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-gfx1.2-dev libsdl-ttf2.0-dev quilt

#申し訳程度の最適化設定(有効になっているか未確認)
$vi debian/rules

#!/usr/bin/make -f の下に、以下の行を追加します。

 

#再度ビルドを開始します。(多分brain自ビルドで、11時間ぐらい?)
$ sudo dpkg-buildpackage -us -uc -b

#パッケージをインストールして、依存無視も入れます。
#パッケージインストール時にもしパッケージが足りないようなメッセージが出たら、
#個別でインストールしてみてください。($ sudo apt install fonts-dejavu-extra)

$ cd..
$ sudo dpkg -i enigma_1.20-dfsg.1-2.2_armel.deb enigma-data_1.20-dfsg.1-2.2_all.deb enigma-doc_1.20-dfsg.1-2.2_all.deb

$ sudo apt-mark hold enigma enigma-data enigma-doc

$ enigma

 

Trixieで利用可能になったパッケージの紹介

debian13(Trixie)で、新たに追加になったもいくつかあります。
(それ以前でのbullseyeなどではapt installできません)

———-

trixie 以降でインストール対応のアプリ

SDL1.2

spout  小さな抽象的な白黒2D洞窟シューティングゲーム(bullseyeではapt installできない)

https://packages.debian.org/trixie/spout

起動:spout

これは日本の開発者Kuniによる、小規模で抽象的なシューティングゲームです。エンジンの排気ガスが洞窟の壁を侵食する道具としても機能する「洞窟飛行ゲーム」です。

あなたの目標は、洞窟の壁や窓枠に衝突することなく、できる限り長く上空へ飛び続けることです。

●縦スクロールの洞窟飛行ゲーム
方向変換とスラスターだけで洞窟内を飛行します。
洞窟の壁やウインドウの境界にぶつかるとゲームオーバーです。
できるだけ高い所まで、上に向かって進みます。

スペースキーを押して開始します。
シフトキーを押しながらエスケープキーを押すとプログラムを終了します。
【操作】[←]:左回転 [→]:右回転 [space]:進む [Esc]:一時停止

trixie からリポジトリに追加になったゲームです。

Brainでも快適にプレーできます
(trixieベースのDebianでは、libsdl1.2debianの入れ替えの必要あり)

噴射で洞窟の壁が破壊できるので、
狭いところや行き止まりを噴射を使って広げるなんてテクニックも必要になって切るようです。もちろん失速の期限性がありますので、操作はかなり難しくなります。

起動オプションは以下のものが使用できます。
-fでフルスクリーン
-z <数字>で、画面サイズを変更できます
 (Default:4 で、数値小さくすると画面が小さくなりますがスピードも速くなります。)

 

 インストール:APT経由 ”sudo apt install spout”
 (trixie 以降でインストール対応のアプリ。bullseyeではapt installできません。)

 

———-

 

まとめ

今回リリースされたTrixieベース(debian13)のBrainuxは、
以前のBullseyeベース(debian11)のBrainuxと比較すると、
少しレスポンスが遅れる気がしないでもないですが、
問題なく使えそうです。

Bullseyeベースは既に2024/8で通常サポート切れで「oldoldstable」となっていますので、
aptレポジトリがいつまで、使えるかが不透明な状態です
(aptレポジトリも強制的に変更しないと使えない状態)。

2028年まで通常サポートがあるTrixieベースのBrainuxがリリースされたことで、
しばらくは安心してBrainuxで遊べそうです。

バージョン (コードネーム) リリース日通常サポート終了LTS終了予定
13 (Trixie)2025年8月(予定)2028年8月2030年6月
12 (Bookworm)2023年6月10日2026年6月2028年6月
11 (Bullseye)2021年8月14日2024年8月2026年6月-8月

 

Views: 46

カテゴリー: 未分類 | コメントする

電子辞書Brainをいじる (9) BrainuxでBASICで遊ぶ

YaBasicを試す

Brainux上で動くBASICインタープリタを探してみたところ、
グラフィックもサポートしているのものとして、YaBasicというものが見つかりました。

△ yabasic  グラフィック処理も可能なBASICインタープリタ

https://packages.debian.org/bullseye/yabasic
https://2484.de/yabasic

起動:yabasic

Yabasicは伝統的なBasicインタプリタです。goto文や様々なループ文を備え、サブルーチンやライブラリを定義できます。簡単なグラフィック処理や印刷も可能です。C言語で書かれたライブラリを呼び出せるため、スタンドアロンプ​​ログラムの作成も可能です。YabasicはUnixとWindowsで動作し、充実したドキュメントが用意されています。小型でシンプル、オープンソースで無料です。

Burainuxでも動作するグラフィック処理も可能なBasicインタープリタです。

 

 インストール1:APT経由 ”sudo apt install yabasic”
 (グラフィック機能利用時には、XLIB_SKIP_ARGB_VISUALS=1が必要)

 インストール2:ソースからインストール
 (グラフィックモードの不具合解消に挑戦して、
  opwn window自体はできるようになったが、
  その先の描画でエラーになるので挫折中)
  ビルド時に-o3 -march=native指定することでの高速化はおそらくできます。

 

YaBasicの実行方法

YaBasicでBASICコードを実行するには、以下のような方法があります。
・BASICコードをファイルに保存して引数として呼び出す
 yabasic ./demo.yab

・yabasicを起動して、BASICコードを入力していき、最後に何も入力しないでEnterを押す

yabasic
 print “Hello”

 Hello

ただし、xterm上で起動すると、文字の色指定がうまく表示されないときがあるので、
その場合は、brainuxデフォルトのターミナル(lxterminal)を使いましょう。

———-

また、グラフィック処理を使う場合にはそのまま起動するだけではエラーになります。

user@brain:~$ yabasic

open window 100,100

X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 1 (X_CreateWindow)
Serial number of failed request: 18
Current serial number in output stream: 22

これは、yabasicが想定しているグラフィック環境と、実態(BrainuxのX環境)間のずれのせいでグラフィックウィンドウがうまく開けないためのようです。

この場合、以下のようにしてyabasicを起動してください。
これでグラフィックモードも開けるようになります。
 XLIB_SKIP_ARGB_VISUALS=1 yabasic

毎回入力すのが大変であれば、以下のようにalias設定すれば、
ターミナル上で、「yabasic」と入力するだけでOKになります。

ちなみに、Linux上では、.yab の1行目に以下のどちらかを書いておいて、
chmod +x hoge.yab と打って実行権限を付ければ、
./hoge.yab で実行できるようになるそうです。

ただbrainuxの場合は、以下のようにラッパーを作成しての対応が必要そうです。
(この対応をするのであれば、alias設定は不要です)

$ sudo mv /usr/bin/yabasic /usr/bin/yabasic-brain
$ sudo vi /usr/bin/yabasic
#!/bin/sh
XLIB_SKIP_ARGB_VISUALS=1 /usr/bin/yabasic-brain “$@”
$ sudo chmod /usr/bin/yabasic

 

———-

YaBasicのサンプルプログラム

YaBasicのマニュアルは、「https://2484.de/yabasic/support.html」に書かれています。

また、関連サイト「https://2484.de/yabasic/related.html」から、yabasicで使えるBasicコードにたどり着くこともできそうです。
Brainで使う場合は、解像度問題があるのでそこは考慮しないといけませんが、
特にRosetta Codeは非常に参考になります。

いくつか、サンプルプログラムを動かしてみます。
(一部変更済済)

hello.yab Hello World表示

 

asciitable.yab アスキーコード表示

 

gdemo.yab グラフィック表示デモ

 

lifegame.yab ライフゲーム

 

clock-degital.yab デジタル時計

 

clock-analog.yab アナログ時計

 

Mandelbrot.yab マンデルブロート集合描画

 

その他参考になるサンプルプログラムを公開しているサイト

その他いろんなサイトで、サンプルプログラムを見つけることができます。

公式デモ

Yabasic公式ページ内にあるyabasicのソースコード内にある
demo.yab を実行すると、
素数調査&テキスト横スクロールデモ、
グラフィックデモ、三角錐回転デモ
が見られます。

 

yabasic-examples

https://github.com/spartrekus/yabasic-examples

サインカーブ表示デモとテトリスが含まれています
(テトリスは解像度の関係で下部分が表示されていないので別途調整が必要です)
(2か所ほど数字を変えれば調整できますので、挑戦してみてください。)
(ヒント: 縦20行->17行にすれば、Window最前面化せずとも表示できます。)

 

Rosetta Code(YaBasic)

https://rosettacode.org/wiki/Category:Yabasic

いろんな言語でのサンプルプログラムが刑されていますが、YaBasicだけで大量のサンプルがあります(今回サンプルとして実行したものもここサイトのものをベースにしているものがあります)。

参考(PS2版YaBASIC)

PS2版YaBasicについて

ネット上で探すと、PS2用のyabasicソースもみつかりますが、
一部PS2専用に追加されている命令が使われているようで、Brainuxで利用可能でX11版では動きませんでした。

これは、PS2で追加されたBASIC命令がいくつかあるためです。
特にsetrgb命令がが頻出するようです(色のパレット変更命令ぽい?)。

ただ、Brainで利用可能なX1ポート版では未対応で、一時期本家に取り込むかという話はあったようですが、X11などでは実装は難しいとのことでペンディングになっているようです。

https://github.com/marcIhm/yabasic/issues/39
// Additions introduced with the PS2 version
void triangle(struct command *cmd);
void gtriangle(struct command *cmd);
void setrgb(struct command *cmd);
void setdrawbuf(struct command *cmd);
void setdispbuf(struct command *cmd);

PS2用のBasicをWin32ポートに移植したものや、
javascript実装したもの(Web上で実行できます)もあるので、
こちらで動かすことはできそうです。

Win32移植版
https://sourceforge.net/projects/win32yabasic

Javascript実装
https://www.mrdictionary.net/yabasic

 

PS2用ゲームプログラムについて

PS2用YaBasicソース

Yabasic for PS2

Yabasic for PS2 : Free Download, Borrow, and Streaming : Internet Archive

昔はPS2のゲーム機加税回避のため、一部の国でプログラミング言語を梱包したことがあるようで、その際に梱包されたのがこのYabasicの移植版だったそうです。

先ほどの通り、特殊な命令が追加されています。

上記のリックから、Ps2用のYaBasicソースが入手できます。
ただ、一部特殊な命令が使われているのと、Window解像度が640×512になっていることが多いので、ゲームレイアウト的にも厳しいものもあるかもしれません。
(Brainuxの解像度は縦480ですが、Windowの枠を考えるとを実質440-450くらいです。)

———-

Win32 PS2 YaBasic Samples

https://win32yabasic.sourceforge.net/samples.html

PS2版YaBasicのWindows移植版のサンプルプログラムです。
特に、「rotating_triangle」というグラフィックデモをBrainで動かしてみたかったのですが、
PS2版で追加された専用命令をメインで使用しているため、断念しました
(下の画像はJavascript実装上で実行したものです。)。

 

 

 

 

BasiC-256を試す

プログラミング学習用のBASIC動作環境とのことです。

標準では、GUI表示されるウインドウの中に、
・エディタ部分、
・テキスト出力エリア、
・グラフィック出力エリア
が入っています。
また、変数確認エリアも追加できます。

ただ実行するだけでなく、デバック実行として、1行ずつ実行していくことも出来ます。
この際には」、変数確認エリアを見ながら確認することも出来るので、学習に役立つでしょう

〇 basic-256 (basic256)  子供向けの教育用BASICプログラミング環境

BASIC-256は、誰でも(特に中学生・高校生)にコンピュータプログラミングの基礎を教えられるように設計された、使いやすいBASICバージョンです。gosub、for/next、gotoといった伝統的な制御構造を採用しており、子どもたちがプログラムのフロー制御の仕組みを簡単に理解できます。グラフィックモードが組み込まれており、数分で画面に絵を描くことができます。
また、楽しい演習を通してプログラミングの概念を紹介する、詳細で分かりやすいチュートリアルも用意されています。

https://packages.debian.org/bullseye/basic256
https://basic256.org/

起動:basic256

ドキュメントも日本語はありませんが、用意されており、
このページにサンプルプログラムも紹介されています。
https://doc.basic256.org/doku.php

YaBasicと比べると遅いですが、実行結果の確認は楽です。

Brainで実行する場合は、Basic-256が統合環境のため、
各ウィンドウが小さくなってしますが、学習用途であれば何とかなるかもしれません。
グラフィックウィンドウについては、エディタ、テキスト出力エリア、グラフィックを同時に出力した場合で、調整すれば、縦幅170くらいは表示できそうです。
(グラフィックウィンドウについては、縮小化表示もできます[1/2(half),1/4(quarter))
出力結果をPDFで出力することも出来ます。

 

サンプルプログラムについて

サンプルプログラムとしては、以下からソースプログラムをダウンロードすれば、
中に入っていました(.kbsファイル)

https://sourceforge.net/projects/kidbasic/files
basic256_2.0.99.10.orig.tar.gz

solar_system.kbs

snowflakes.kbs

rainbow.kbs

spriteslice.kbs

ring_01.kbs

 

 

その他参考になるサンプルプログラムを公開しているサイト


ドキュメントに掲載されているサンプルプログラム

https://doc.basic256.org/doku.php?id=start

spinner.kbs  針が動いて1-10がランダムに選ばれます。

gamesballons.kbs 大量の風船が上に浮かんでいきます(がBrain上だとめっちゃ遅いです。)

CopyCat.kbs サイモン的記憶ゲーム(実行には一部修正が必要)

mobius.kbs アニメーション化されたメビウスの輪(スムーズに回転します)

morie.kbs モアレ模様が表示されます。

square.kbs スクエア・スパイラル

jagged.kbs Jagged Depths 三角形を使ってカラフルな円形を表示します。(1/2表示)

 

Rosetta Code(BASIC256)

https://rosettacode.org/wiki/Category:BASIC256

いろんな言語でのサンプルプログラムが刑されていますが、BASIC-256だけで大量のサンプルがあります。

マンデルブロート集合描画
https://rosettacode.org/wiki/Mandelbrot_set#BASIC256
(全部表示されるまでに、1時間以上かかります。)

 

Basic Bits – Copy paste & run

https://basic256.blogspot.com

BASIC-256で動作する各種プログラムを公開されています。
グラフィックデモの他に、いくつかのゲームも含まれています。

Views: 163

カテゴリー: Brain, Brainux | コメントする