mieki256's diary



2022/11/01(火) [n年前の日記]

#1 [tic80] TIC-80をWindows10でビルドできるか実験

TIC-80 は、機能制限された無料版と、全機能が使えるPro版(有償版)があるのだけど。github上のTIC-80の README.md に、「お金がない人のために、Pro版のビルドも簡単にできるようにしておいたよ」と書かれていて、そのあたりがなんだか気になってきた。

_nesbox/TIC-80: TIC-80 is a fantasy computer for making, playing and sharing tiny games.

ビルドって簡単にできるものなんだろうか…? ちょっと試してみようかなと。

環境は、Windows10 x64 21H2。

結論を先に書いておくと、Visual Studio Community 2019 ならビルドできた。MSYS2 + MinGW-w64 ではビルドできなかった。

MSYS2+MinGW-w64でビルドできるか実験。 :

自分の環境には MSYS2 + MinGW-w64 がインストール済みなので、まずはソレで試してみる。

スタートメニュー内の「MSYS2 MinGW 64bit」をクリックしてターミナルを起動。

以下が必要になるらしい。pacman を使ってインストール。
  • git
  • cmake
  • ruby
pacman -S git
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-i686-cmake
pacman -S cmake
pacman -S mingw-w64-x86_64-ruby
pacman -S mingw-w64-i686-ruby

ちなみに、MSYS2で用意されたパッケージは、以下で検索できる。

_Pending Package Updates - MSYS2 Packages

git clone でソースその他をDL。
git clone --recursive https://github.com/nesbox/TIC-80
cd TIC-80/build

cmake で Makefile を作成してから make。たぶん。
cmake -G "MinGW Makefiles" .. -DBUILD_PRO=On
mingw32-make -j4

注意点。cmake の指定の中にある「..」は省略の意味じゃなくて、一つ上のディレクトリを指定する記述なので、勝手に省いたりしないように。自分、最初、これは省略の意味なんだろうと勘違いして省いてしまって、動かないなーおかしいなーと悩んでた…。トホ。

mingw32-make を走らせて make をしたら、エラーが出た。
mingw32-make[2]: ***  [vendor\sdl2\CMakeFiles\SDL2-static.dir\build.make:2551:  vendor/sdl2/CMakeFiles/SDL2-static.dir/src
/joystick/windows/SDL_windows_gaming_input.c.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:976:  vendor/sdl2/CMakeFiles/SDL2-static.dir/all] Error 2
mingw32-make: *** [Makefile:135: all] Error 2

何が何だか分からない。Visual Studio でビルドしないとダメかな…。

Visual Studio Community 2019でビルドできるか実験。 :

自分の環境は Visual Studio Community 2019 (以下、VS2019と記述) もインストール済みなので、そちらでも試してみた。

以下も必要になるっぽい。
  • git
  • cmake
  • Ruby

自分の環境では、3つともインストール済みだった。かつ、DOS窓上で呼び出せるようにパスも通してあった。
>git version
git version 2.30.2.windows.1

>cmake --version
cmake version 3.21.2

>ruby --version
ruby 2.6.10p210 (2022-04-12 revision 67958) [i386-mingw32]

一応、上記ツールのインストール方法について解説してるページもメモしておく。

_WindowsにGitをインストールする手順(2022年10月更新)
_cmake のインストール(Windows 上)
_Ruby | Rubyのダウンロードとインストール

必要なツールは揃っているはずなので、作業を始める。Windows10のスタートメニューの中から、「x86 Native Tools Command Prompt for VS 2019」を選んで実行。DOS窓が開く。 *1

これで、Visual Studio同梱のコンパイラその他にパスが通ってくれて、DOS窓上でもそれらツールが利用できるようになる。後で cmake を実行する際、コンパイラその他が存在するかどうかチェックされるので、cmake の処理が終わるところまでは、このDOS窓上で作業をしていく必要がある。

任意のディレクトリに git clone でソースその他をダウンロード。cmake でビルド用のファイルを生成する。ちなみに、cmake に -DBUILD_PRO=On を付加して実行すれば、TIC-80 Pro版としてビルドできるらしい。また、今回は、TIC-80 1.0.2164 のタグ、「v1.0.2164」を指定して、 git clone してみた。
git clone --recursive https://github.com/nesbox/TIC-80 -b v1.0.2164
cd TIC-80/build
cmake -G "Visual Studio 16 2019" .. -DBUILD_PRO=On

cmake に渡す文字列によって、どのツールでビルドするのかを指定しているのだろうけど、渡す文字列については以下の指定もできるっぽいので、VS2019 を必ずインストールしなきゃいけないというわけでも無さそう。VS2017でも、VS2015でも、ビルドできるのかもしれない。
"Visual Studio 16 2019"
"Visual Studio 15 2017 Win64"
"Visual Studio 14 2015 Win64"

cmake の処理が成功すると、TIC-80\build\ 以下に大量のファイルが生成される。その中に、TIC-80.sln というファイルも生成されていた。これを VS2019 で開く。

以下の記事によると、以前はリソースビュー上で足りないリソースがいくつかあってエラーになっていたらしい。

_TIC-80 ver 0.70.0 を Windows10 + VS2015 環境でビルドしてみた - Qiita

ただ、今回の版 ―― TIC-80 1.0.2164 の場合は、そういったエラーは見つからなかった。

上のほうで、「Debug」になっているところを「Release」に変更。

ビルド → ソリューションのビルド、を選ぶとビルドが始まる。

ビルドが終わると、TIC-80\build\ の中に bin というディレクトリが作られて、中には色々な .exe が生成されていた。その中に、tic80.exe というファイルがあった。これが目的のファイル。

tic80.exe を別ディレクトリにコピーしてから実行してみた。TIC-80 のウインドウが表示された。

ウインドウのタイトルには、「TIC-80 tiny computer 1.0.2164 Pro (b09c50c)」と表示されてる。「Pro」の文字が入ってる。

どうやらビルドは成功したっぽい。MinGW-w64 と比べると、すんなりビルドできてしまった…。

本当にPro版なのか確認。 :

TIC-80 のコンソール上で folder と打って、システムディレクトリ(ユーザディレクトリ)の場所を確認しておく。エクスプローラが開いて、TIC-80 がシステムディレクトリとして扱ってる場所を開いてくれる。

TIC-80のコンソール上で、save test.lua と打ってみる。これで test.lua が保存されたら、Pro版が動いてることになる。もし、無料版なら、test.lua.tic というファイル名で保存されてしまうはず。

test.lua が保存された。エディタで開いてみると、ソースの後ろのほうにバイナリデータを示す文字列が並んでいた。

この tic80.exeは、たしかにPro版のバイナリらしい。

そんなわけで、Pro版が簡単にビルドできるという話は本当だった模様。そしてどうやら、Windows上で TIC-80 をビルドするなら、Visual Studio を使ったほうがいいようだなと…。MSYS2 + MinGW-w64 でビルドしようとすると、おそらくハマる。この手のツールやライブラリに詳しい人なら解決できるのだろうけど…。

ファイルサイズについて。 :

ビルドするためにダウンロードしたファイル群や、生成されたファイル群の総ファイルサイズは、1.61GB、21255ファイルになった。

加えて、ビルドに必要なソフト群は…。git が 823MB (6170ファイル)、cmakeが 114MB (6949ファイル)、Rubyが 2.42GB (145112ファイル)、Visual Studioが 15.87GB (47372ファイル)。

TIC-80のソース群 + ビルド環境、全部合わせて約21GB。226858ファイル。

ちなみに、最終的に生成される tic80.exe は 4.6MB。1ファイル。

ストレージの空き容量的には、お金払ってPro版バイナリを買うほうがいいですわな…。

余談。 :

有償ソフトの購入に抵抗が無いのであれば、PICO-8 を買ってしまほうがいいのかも。PICO-8は、そもそもこのジャンルの始祖だろうし、一番人気のソフトっぽいし…。

_PICO-8 Fantasy Console

逆に、あくまで無料の範囲内でこの手のジャンルに触れてみたいなら、Pyxel も魅力的だなと…。無料で全機能が使えるし、今流行りのPythonに慣れることもできる。作者様がgithub上の人気度を調べたところ、全世界で6番目の人気振りだったというデータもあるし。

_pyxel/README.ja.md at main - kitao/pyxel

余談その2。 :

以下は思考メモ。

PICO-8 や Pyxel と張り合っていくことを考えると、TIC-80 無料版は外部エディタでソース編集できない、という制限が結構マイナスになりそうな気もしてくる。今まで色々なソフトを眺めてきたけど、普及前からその手の制限を入れちゃうと、えてしてシェアを取れないまま自滅していくので…。

しかし、どうやってお金にかえていくのかは難しい問題だよなと…。例えば Unity のように色々なことができるツールなら、「ヒット作が出たらその時ドーンと払ってね」という方針も出せるけど。Fantasy Console、Fantasy Computer というジャンルは、「あえて制約の中で遊んでみませんか」という方針のソフトだから、ボリューム的に、有償でバカ売れするヒット作が出現する可能性は低いだろうし、Unityのようなやり方は真似できない。まして、外部エディタすら使えない不便な開発環境では、凝ったプログラムを書くモチベーションの維持も難しく…。目を見張るものが出てこないと、そのツールに興味を持ってくれる人も自ずと少なくなるので、ますます不人気に…。

TIC-80は、「PICO-8と比べたら無料でこんなに機能が解放されてるなんて大盤振る舞いですね」と捉えることもできるけど、「そこを制限しちゃったら普及しないのとちゃいますか…?」と思えるところも微妙にあって…。 *2

まあ、こういうジャンルって、存続のさせ方、普及させるための策について、色々難しいところがありそうだなと。

*1: 正確にはDOS窓じゃなくてコマンドプロンプト、だろうか…?
*2: もっとも、公式サイトにアップロードされた膨大なプログラム群を眺めると、こんなに使ってる人が居るんだから現状でも問題無いのではという気分にも…。ソースコードのサイズ制限もあるから、どのちみ大ボリュームのプログラムは書けないし…。

2022/11/02(水) [n年前の日記]

#1 [tic80] TIC-80をUbuntu Linux 20.04 LTSでビルドできるか実験

_昨日、 TIC-80 1.0.2164 Pro版を Windows10 x64 21H2上でビルドできるか実験して上手く行ったけれど。Ubuntu Linux 20.04 LTS上でもビルドできるのかどうかが気になってきたので、試しに実験。

環境は、Ubuntu Linux 20.04 LTS 64bit。デスクトップ環境は、Xubuntu-desktop (xfce4)。Windows10 x64 21H2 + 仮想PC VMware Workstation 16 Player 16.2.4 build-20089737 上で動かしてる。

_nesbox/TIC-80: TIC-80 is a fantasy computer for making, playing and sharing tiny games.

上記ページの README.md で、Ubuntu Linux 18.04 LTS 上でビルドする手順が紹介されているので、参考にして作業していく。

必要なパッケージをインストール。 :

まず、ビルドに必要なパッケージをインストール。
sudo apt install g++ git cmake ruby-full libglvnd-dev libglu1-mesa-dev freeglut3-dev libasound2-dev

現状では、それぞれ以下のバージョンがインストールされた。
$ g++ --version
g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

$ git version
git version 2.25.1

$ cmake --version
cmake version 3.16.3

$ ruby --version
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]

TIC-80のソースを入手。 :

TIC-80のソースその他を git clone で入手。以下の例では、-b v1.0.2164 を指定して、Ver. 1.0.2164 をダウンロードしている。
git clone --recursive https://github.com/nesbox/TIC-80 -b v1.0.2164
cd TIC-80/build

ビルド。 :

cmake で Makefile 等を作成。
cmake .. -DBUILD_PRO=On
-DBUILD_PRO=On を付加して、Pro版をビルドするように指定。「..」は一つ上のディレクトリを指定する記述なので、勝手に省略しないように…。

make でビルド。
make -j4
「-j4」は並列で処理する数、らしい。CPUコア数 x 2 を指定するとイイ感じという話を見かけたけれど…。

TIC-80/build/ 以下に、bin というディレクトリが作られて、その中に目的のファイル、tic80 という実行ファイルが作成された。

以下を打つと、システムにインストールされる。
sudo make install

以下の場所にファイルがコピーされた。
/usr/local/bin/tic80
/usr/local/share/applications/tic80.desktop
/usr/local/share/applications/tic80.xml
/usr/local/share/icons/tic80.png

動作確認。 :

一般的な環境なら /usr/local/bin/ にパスが通ってるだろうから、端末上で tic80 と打ち込めば実行されるはず。
tic80

ウインドウが表示された。ウインドウタイトルには「TIC-80 tiny computer 1.0.2164 Pro (b09c50c)」と表示されている。Pro版として動いてるっぽい。

TIC-80のコンソール上で folder と打つと、TIC-80 のシステムディレクトリ(ユーザディレクトリ?)の場所が表示されて、かつ、その場所を開いた状態でファイラーが起動する。デフォルトでは以下がシステムディレクトリとして扱われているらしい。
/home/(USERNAME)/.local/share/com.nesbox.tic/TIC-80/

save test.lua と打ってみて、test.lua が保存されることを確認。もし、Pro版ではなくて無料版が動いてたら、test.lua.tic というファイル名で保存されてしまうはず。

そんなわけで、Ubuntu Linux 20.04 LTS上でも TIC-80 1.0.2164 は簡単にビルドできることが分かった。

2022/11/03(木) [n年前の日記]

#1 [tic80] TIC-80 1.0のSFXエディタやMusicエディタの使い方をメモ

TIC-80 1.0.2164 のSFXエディタやMusicエディタは、以前触っていた版、0.70.6 からUIがガラリと変わっていた。0.70.6 の各エディタについては以前の日記にメモしてあったのだけど、内容的に古くなってしまったなと…。

_mieki256's diary - TIC-80のSFX Editorの使い方を調べていたり
_mieki256's diary - TIC-80のMusic Editorの使い方を調べていたり

TIC-80 1.0.2164 の、SFX/Musicエディタの操作方法というか使い方が分からなかったので、ちょっと触って把握してみたので一応メモ。

環境は、Windows10 x64 21H2。

SFXエディタって何? :

  • SFXエディタは、サウンドエディタのこと。楽器の音色に相当する音や、効果音を作ることができる画面。
  • Musicエディタは、SFXエディタで作った音を並べて、曲を作れる画面。

_SFX Editor - nesbox/TIC-80 Wiki
_Music Editor - nesbox/TIC-80 Wiki

作業の流れとしては、SFXエディタで楽器の音色を用意しておいて、Musicエディタで音色を並べて曲を作る、みたいな感じかなと…。

ちなみに、以前の版と違って、ボタンやグラフ(?)等、マウスクリックできる各要素が結構小さくなってしまったので、TIC-80の画面を大きく表示してから作業したほうが楽だと思う。
  • ウインドウタイトルの最大化ボタンをクリックして全画面表示にする。
  • あるいは、tic80 --scale=6 等を指定して TIC-80 を起動。--scale=N をつけて起動するとN倍表示になる。

操作してる様子をキャプチャしてみた。 :

操作してる様子をキャプチャして、YouTube にアップロードしてみた。眺めれば、操作方法がなんとなく分かるかなと。

SFXエディタを操作してる様子は以下。




Musicエディタを操作してる様子は以下。




マウスクリックの視覚表示やキー入力の表示は、ORAKUIN 1.0.7 を使わせてもらいました。ありがたや。ただ、マウスカーソル位置の常時表示は消したいのだけど、機能が無いようで…。

_ORAKUIN キー入力・マウス操作視覚化(可視化)ツール

デスクトップ画面の動画キャプチャは、OBS Studio 28.1.1 を使用。

_Open Broadcaster Software | OBS


余談。上記の、Musicエディタ操作動画のサムネイル画像がおかしい…。動画内の任意のフレームをサムネイルとして指定できれば済みそうなのだけど、そういう機能は無いのだろうか。不便だ…。 *1

画面の説明。 :

SFXエディタの画面について、キャプチャして説明をつけてみた。

tic80_1_0_sfxeditor_ss01.png


音色ライブラリ部分の詳細。マウスクリックで音色を選択する。64個の音色(効果音)が登録できる。

tic80_1_0_sfxeditor_ss02.png


波形ライブラリ部分の詳細。マウスクリックで波形を選択したり、マウスクリック/ドラッグで波形をカスタマイズできる。波形は、16音量(4bit) x 32ポイントを指定。波形の種類は16種類まで登録できる。

tic80_1_0_sfxeditor_ss03.png

ちなみに、波形の全音量が0になってる場合、その波形はノイズ波形として扱われる。「ノイズなんて一体何に使うの?」と言われそうだけど、ドラム、ハイハット、爆発音に使うことが多いかなと…。


音量変化、アルペジオ、ピッチ変更部分の詳細。時間経過に従って、音量、音階(半音単位)、ピッチ(半音以内の音の高さ)を変化させられる。

tic80_1_0_sfxeditor_ss04.png

「アルペジオって何?」…例えば「ドレミドレミドレミ」と素早く鳴らせば、「ドレミ」という和音が鳴ってるように聞こえるけれど、そういった演奏方法をアルペジオと言います。TIC-80は同時に4音しか鳴らせないので、まともに和音を鳴らしたら他の音がもう鳴らせなくなっちゃう。そこでアルペジオを使って、和音が鳴ってる雰囲気を醸し出すという…。鳴らせる音が数音しかなかったファミコン時代によく使われてた手法ですな…。


Musicエディタの画面については以下。これはピアノモードの画面。基本的にはマウスクリックで操作して、数値を変える時だけキーボードを叩く感じ。

tic80_1_0_musiceditor_ss01.png

画面右上のほうに、ピアノモードとトラッカーモードの切り替えボタンがあるけれど。トラッカーモードにすると画面がガラリと変わって、主にキーボードで操作するモードになる。

トラッカーモードについては、TIC-80 0.70.6 の頃からUIはそれほど変わってないので、以前のメモが参考になるかもしれない。

_mieki256's diary - TIC-80のMusic Editorの使い方を調べていたり


以下は、再生ボタン等の説明。

tic80_1_0_musiceditor_ss02.png

ショートカットキーについて。 :

TIC-80のコンソールが表示されている状態で、以下のキーを叩けば、各エディタに切り替わる。
  • F4キー : SFXエディタ
  • F5キー : Musicエディタ

SFXエディタ上では、zxcvbnm 等のキーが、ドレミファソラシに割り当てられている。
┌─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┐
│  │S ││D │  │  │G ││H ││J │  │
│  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │
│ Z  │ X  │ C  │ V  │ B  │ N  │ M  │
└──┴──┴──┴──┴──┴──┴──┘

また、一番下の鍵盤部分をマウスクリックすると、最後にクリックしたところに赤い点がつくけれど。SPACEキーを叩くと、その赤い点のついたキーで再生される。

Musicエディタ上では、以下のキーが割り当てられている。
  • Enter : 現在編集中のパターン(TIC-80ではFRAMEと呼んでる?)の再生/停止
  • Spaceキー : 現在編集中の曲(TRACK、トラック)の再生/停止
  • Ctrl + F : Followの有効無効の切り替え。再生に合わせて画面スクロールするかどうか。

また、Musicエディタは、ピアノモードとトラッカモードの2種類があって、画面右上のボタンで切り替えることができるのだけど。トラッカーモードでは、以下のキーがドレミファソラシに割り当てられていて、キーを叩くと現在選択中の行に挿入(上書き?)していくことができる。
┌─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┬─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┐
│  │S ││D │  │  │G ││H ││J │  │  │2 ││3 │  │  │5 ││6 ││7 │  │
│  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │
│ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ Q  │ W  │ E  │ R  │ T  │ Y  │ U  │
└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

他のキー割り当てについては、公式の Wiki を眺めてもらったほうがいいかなと…。Keys という項目で説明されてる。

_Music Editor - nesbox/TIC-80 Wiki

ただ、それらのキー割り当てはトラッカーモード限定の割り当てであることに注意。ピアノモードでは反映されない。
  • ピアノモード : 基本的にはマウスクリックで操作することが前提。
  • トラッカーモード : 基本的にはキーボードで操作することが前提。

補足。 :

触っていて他に気づいた点をメモ。

Musicエディタ上で表示されてる数値部分は、マウス左クリックで数値を+1、右クリックで数値を-1できる。

tic80_1_0_musiceditor_ss03.gif


Musicエディタのピアノモードにおいて、ノート(音階)部分を2回、3回と素早くクリックすると、赤い点線が表示された状態になって、そこで音を停止させることができる。休符を入力できると言ったほうがいいのだろうか…。

tic80_1_0_musiceditor_ss04.gif


Musicエディタのピアノモードで、ノート(1音分)を消したい時は、そのノートを右クリックする。

tic80_1_0_musiceditor_ss05.gif


SFXエディタの音量変化を指定するエリアには、「VOL」「WAV」と表示があるけれど、「VOL」は音量変化モード、「WAV」は波形切り替えモードを示していて、それぞれクリックしてモードを切り替えることができる。

波形切り替えモードは、時間経過と共に、任意の波形を鳴らせるモード。例えば、いくつもの波形を使って長い波形を入れておいて、波形が順々に切り替わっていくように指定すれば、4bit PCM 相当の音を鳴らすこともできる。このあたり、下の動画が参考になるかなと…。波形ライブラリ上で、現在鳴ってる波形が赤く表示されてるけど、順々に波形が切り替わってることが分かる。




Musicエディタのトラッカーモードでは、パターン再生中にキーボードのキーを叩くと、現在演奏してる位置(行)にノートを書き込むことができるので、もしかするとリアルタイム入力に近いことができるのかもしれない。もっとも、これはちょっとタイミングを取るのが難しくて、「キーボードを押した通りに記録して、後からそのまま演奏できる」という感覚にはならなかった。慣れたら使いこなせるのかもしれないけど…どうなんだろ…。

プログラムから呼び出す。 :

登録した曲(TRACK)や効果音をプログラムから呼び出したい場合は、music() や sfx() を使う。

_music - nesbox/TIC-80 Wiki
_sfx - nesbox/TIC-80 Wiki

*1: カスタムサムネイル画像のアップロードには電話番号を要求されるようで…。おそらく携帯電話サービスとの契約(SMS利用)が必要なのだろうけど、携帯電話は契約してないから利用できない…。

#2 [zatta] 文化の日って何

11/3日は文化の日。だけど。どうして文化の日なんだろう。どういう経緯があったのか。てなあたりを恥ずかしながら知らなかったので少しググってみたりして。

_文化の日 - Wikipedia

Wikipediaに詳しく書いてあった。元々は明治天皇の誕生日だったのか…。しかし…。 そんな感じの流れだったらしい。いや、認識が間違ってるかもしれんけど。…正確な流れを知りたかったらWikipediaを読んでください。

個人的には、「昔の日本人はそうまでして明治天皇の誕生日を記念日として残したかったのか。いやはやコイツラ全然反省してねえなあ」「文化を尊重してる憲法だから文化の日ってかなり無理がありませんかね」と呆れるのだけど。しかし、「アメリカと一緒に作った憲法を持ち出せば話が通るのでは…?」と企んだあたり、ずる賢いというか、したたかというか…。そういうある種の逞しさはアリなのかもしれないな、てな気分になったりもして。

それはそれとして、「明治天皇の誕生日なんだから『明治の日』でいいじゃん。今からでも名前を変えよう」という一派が今も居るとか、「戦時中あんなに天皇を利用してたのにまた天皇絡みの名称に戻すのか。時代に逆行してんじゃねえ。文化の日でいいじゃん」と反対する一派も居るとかで。文化の日って、色々面倒臭いのね…。

もっとも庶民にしてみれば、「祝日で休みになるならお題目は何だってええですわ」てな話でもありそう。身も蓋もないけど。

そしてミサイル。 :

そんな文化の日に、北朝鮮が弾道ミサイルを発射して、日本は朝から大慌てだったのだけど。

その北朝鮮の現体制って、どう見ても戦時中の日本を参考にして作ってあるとしか思えないわけで。あの体制、中国だかロシアだかから「世襲制の社会主義なんてあるかボケ。社会主義を名乗ってんじゃねえ」とツッコまれたほどに歪んだ体制だけど、そんなものが自然な流れで発生するはずもなく。

いわば、「天皇陛下万歳!」と叫んでた頃の過去の日本がミサイル撃ちまくって、それに怯えてる現代日本という図があるのかもしれないなと。しかも、よりによって、日本が軍国主義へと進んでいくことと無関係ではなかった明治天皇の誕生日に発射するという…。これまた面倒臭い状況だなと。

2022/11/04(金) [n年前の日記]

#1 [tic80][ruby] TIC-80用スクリプトをRubyで書いてみる

TIC-80 は、元々Lua言語でプログラムを書いて動かすことを前提にしているけれど。TIC-80 1.0.2164 では、Ruby (mruby) を使って書くこともできるらしい。なんだかちょっと興味が湧いたので、そのあたりを試してみた。

環境は、Windows10 x64 21H2 + TIC-80 1.0.2164。

Hello World を眺める。 :

TIC-80 1.0 で、Ruby を使った Hello World 相当を新規作成するには、TIC-80のコンソールで以下を打つ。
new ruby

F1キーを押すと、スクリプトソースが見れる。引用してみる。
# title:   game title
# author:  game developer, email, etc.
# desc:    short description
# site:    website link
# license: MIT License (change this to your license of choice)
# version: 0.1
# script:  ruby

$t=0
$x=96
$y=24

def TIC
 $y-=1 if btn 0
 $y+=1 if btn 1
 $x-=1 if btn 2
 $x+=1 if btn 3

 cls 13
 spr 1+(($t%60)/30|0)*2,$x,$y,14,3,0,0,2,2
 print "HELLO WORLD!",84,84
 $t+=1
end

Lua版の Hello World 相当も引用してみる。ちなみにLua版の場合は、「new lua」で新規作成できる。
-- title:   game title
-- author:  game developer, email, etc.
-- desc:    short description
-- site:    website link
-- license: MIT License (change this to your license of choice)
-- version: 0.1
-- script:  lua

t=0
x=96
y=24

function TIC()

 if btn(0) then y=y-1 end
 if btn(1) then y=y+1 end
 if btn(2) then x=x-1 end
 if btn(3) then x=x+1 end

 cls(13)
 spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
 print("HELLO WORLD!",84,84)
 t=t+1
end

見比べると、言語仕様の違いが少し分かるかなと。また、他の違いについても、ちょっとだけ調べてみた。
言語仕様RubyLua
コメント文「#」から始まる「--」から始まる
グルーバル変数$xx
ローカル変数xlocal x
関数定義def hoge 〜 endfunction hoge() 〜 end
関数呼び出しhoge 0, 0, 0hoge(0, 0, 0)
if文if x == 0 then 〜 endif x == 0 then 〜 end
if文(1行タイプ)$y -= 1 if btn 0if btn(0) then y = y - 1 end
インクリメント$t += 1t = t + 1

それと、TIC-80 の場合、最初のほうのコメント行に、スクリプトが何の言語で書かれているのか記述しておいたほうが良いのかもしれないなと…。
# script:  ruby
-- script:  lua

classを使ってみる。 :

Rubyはオブジェクト指向を意識してる言語なので class も用意されてる。class が無い Lua と比べるとそのあたり楽になりそうなので、試しに使ってみたい。

とりあえず、昔書いた、以下のような動作をするスクリプトをRubyで書き直してみたい。正直この程度の処理ならクラスを使うほどではないのだけど、そこはまあ、無理矢理使ってみるということで…。

movecircle_ss01.gif

Lua版のソースは以下。

_movecircle.lua
-- script: lua

Obj = {}
Obj.new = function(cx, cy, ang, r)

 local o = {
  id=0, x=0, y=0, t=0,
  cx=cx, cy=cy, ang=ang, r=r
 }
  
 o.update = function(self,dr)
  self.id = 1 + (self.t % 32 // 16)
  local rad = math.rad(self.ang)
  local r = self.r
  self.x = r*math.cos(rad)+self.cx
  self.y = r*math.sin(rad)+self.cy
  self.ang = self.ang + 1.5
  self.r = self.r + dr
  self.t = self.t + 1
 end
  
 o.draw = function(self)
  spr(self.id,self.x-4,self.y-4,0)
 end
  
 setmetatable(o, {__index=Obj})
 return o
end

scrw, scrh = 240, 136
cx, cy = scrw/2, scrh/2
t=0

-- init objs
objs = {}
n = 24
for i=1,n do
 local o = Obj.new(cx, cy, i*360/n, 60)
 table.insert(objs, o)
end

-- main loop
function TIC()

 local r = 0
 if btn(0) then r=-1 end
 if btn(1) then r=1 end

 -- update 
 for i, o in ipairs(objs) do
  o:update(r)
 end

 -- draw
 cls(0)
 for i, o in ipairs(objs) do
  o:draw()
 end
 
 print("Lua: " .. _VERSION,4,8*1,12)
 print("count: " .. t,4,8*2,12)
 print(t//60 .. " sec",4,8*3,12)
 
 t=t+1
end

使用画像は以下。

tiles.png
_tiles.png

TIC-80 のコンソール上で以下を打てば、タイル画像領域(tiles)にインポートできる。
import tiles tiles.png
その後、F2キーを押せばドットエディタが開くので、画像を読み込めたことが確認できる。

movecircle_ss02.png


今度は Ruby(mruby)版を書いてみる。

_movecircleruby.rb
# script:  ruby

class StarObj

  def initialize(cx, cy, ang, r)
    @id = 0
    @x = 0
    @y = 0
    @t = 0
    @cx = cx
    @cy = cy
    @ang = ang
    @r = r
  end
  
  def update(dr)
    @id = 1 + (@t % 32).div(16)
    rd = @ang * 3.14159 / 180.0
    r = @r
    @x = r * Math.cos(rd) + @cx
    @y = r * Math.sin(rd) + @cy
    @ang += 1.5
    @r += dr
    @t += 1
  end
  
  def draw
    spr @id, @x-4, @y-4, 0
  end
  
end

$scrw, $scrh = 240, 136
$cx, $cy = $scrw / 2, $scrh / 2
$t = 0

# init objs
$objs = []
n = 24
n.times do |i|
  o = StarObj.new($cx, $cy, i*360/n, 60)
  $objs.push(o)
end

# main loop
def TIC
  r = 0
  r -= 1 if btn 0
  r += 1 if btn 1
  
  # update
  $objs.each {|o| o.update(r)}
  
  # draw
  cls 0
  $objs.each_with_index {|o,i| o.draw}

  print "mruby: #{RUBY_VERSION}",4,8*1,12
  print "count: #{$t}",4,8*2,12
  print ($t.div(60)).to_s+" sec",4,8*3,12
  $t+=1
end

Lua版とRuby(mruby)版を見比べていけば、Ruby風の書き方も分かるかなと。

HTML + JavaScriptでエクスポートしてみる。 :

ブラウザ上でも動作させられるように、HTML + JavaScript でエクスポートしてみる。TIC-80 のコンソール上で以下を打つ。
export html movecirclerb

_movecirclerb.zip というファイルが生成された。解凍すると、中には以下のファイルが入っていた。
cart.tic
index.html
tic80.js
tic80.wasm

これをWebサーバからアクセスできるようにしておけば…。

_movecirclerb/index.html

さて、どうだろう。ブラウザ上でも動くだろうか。手元の環境、Firefox 106.0.4 と Google Chrome 107.0.5304.88 では動いてるけれど…。

上記ページを開いて、動いてることを確認出来たら、ESCキー → F1キーと押すとソースコードが見れるので、本当に Ruby で書かれていることが分かるかと。

Luaで書かないとhtml生成できないのかなと思ってたけど、Ruby(mruby)で書いてもhtml生成できるのだな…。素晴らしい。

実行ファイル1つだけで、Ruby(mruby)を使ってファミコンライクな2Dゲームを作れて、しかもブラウザ上で動かせるように HTML + JavaScript でエクスポートまでできるなんて…。これは Ruby が好きな人にとっても喜ばしい話なのではなかろうか。

#2 [ruby] mrubyの実行バイナリをビルドしてみた

mruby は実際にどんなAPIを持っているのか今一つ分からないので、ローカルで動作確認しつつ使ってみたいなとそのためには実行バイナリ(.exe)が欲しい。ビルドしてみようかなと。環境は Windows10 x64 21H2。

以下の記事が参考になった。ありがたや。

_Windows上でmrubyをビルドし動かしてみる - Qiita

ビルドには、Visual Studio Community 2015 を使用。ちなみに、Visual Studio Community 2019 も使ってみたけど、そちらはビルドに失敗した。

ビルドに必要なツールは以下。
_Bison for Windows

VS2015 と Ruby 2.6 はインストール済みだったけど、Bison はインストールしてなかったのでインストール。

bison-2.4.1-setup.exe を入手して実行。今回は、D:\Dev\GnuWin32\ にインストールしておいた。インストール場所\bin にパスを通しておく必要があるけれど、addbison.bat を作成して、実行すればパスが通るようにしておいた。
set PATH=D:\Dev\GnuWin32\bin;%PATH%

mrubyのソースを入手。

_mruby/mruby: Lightweight Ruby

今回は zip でダウンロードした。D:\home\USERNAME\prg\mruby\mruby\ に置いた。

スタートメニューから、「VS2015 x86 Native Tools Command Prompt」を起動。bison にパスを通しつつ、カレントディレクトリを mruby のソースのある場所にする。
addbison.bat
cd /d D:\home\USERNAME\prg\mruby\mruby

ビルド開始。
ruby .\minirake

ビルドに成功すると、bin というディレクトリが作成されて、中に以下のファイルが入っている。
mirb.exe
mrbc.exe
mruby.exe
mruby-config.bat
mruby-strip.exe

C:\Ruby\mruby-3.1.0\ というディレクトリを作成して、そこにコピーしておいた。

mruby のバージョンを確認。
> mruby.exe --version
mruby 3.1.0 (2022-05-12)

その場で実行して動作確認するなら、mirb.exe を実行する。
> mirb.exe
mirb - Embeddable Interactive Ruby Shell

> RUBY_VERSION
=> "3.1"
> puts "Hello World"
Hello World
=> nil
> exit

2022/11/05() [n年前の日記]

#1 [cg_tools] png画像最適化ツール Oxipngを試用

画像フォーマット WebP や AVIF について調べていたら、png画像を最適化してファイルサイズを小さくできる Oxipng というツールがあることを知った。

_shssoichiro/oxipng: Multithreaded PNG optimizer written in Rust

png画像最適化ツールとしては OptiPNG が有名だけど。

_OptiPNG Home Page

この OptiPNG、結構最適化してくれるものの、処理時間がそこそこかかってしまう。その OptiPNG を、Rust という言語を使って書き直してマルチスレッド化したのが Oxipng なのだとか。

興味が湧いたので試用してみた。環境は Windows10 x64 21H2。

oxipng-6.0.1-x86_64-pc-windows-msvc.zip を入手して解凍。中に、oxipng.exe が入っている。

oxipng -h と打てばヘルプが表示される。

以下は、hoge.png を上書きして最適化する例。
oxipng.exe -o max -s hoge.png

ワイルドカードも使えるようで、フォルダ内の .png を全部最適化、といったこともできる。
oxipng.exe -o max -s *.png

少し使ってみた感じでは、OptiPNG に比べて圧倒的に処理時間が短かった。素晴らしい。しばらくは、OptiPNG の代わりにコレを使って様子を見てみよう…。

#2 [tic80][ruby] TIC-80 + Rubyのサンプルを書き直してみた

_昨日、 TIC-80 1.0.2164 + Ruby (mruby 3.0) で class を使ったサンプルを書いてみたものの、処理内容的に class を使ってる意味が薄いなと思えてきた。

ここはやはり、一つ一つのオブジェクトが勝手気ままに動いてるほうがそれっぽいかなと思えてきたので、そのようなサンプルに書き直してみた。環境は Windows10 x64 21H2 + TIC-80 1.0.2164。

書き直したと言っても、作ったのはいつものアレだけど。ボールが画面内を跳ね回るソレ。



処理としてはショボいけど、複数のオブジェクトが別々に動く様子を一応実装していると言えるわけで…。この手のサンプルが動いた/書けたなら、その環境上でリアルタイムアクション系ゲームも作れそうだと容易に予想できるはず。そう考えると、これもまた Hello World の一種なのかもしれない。

ソース。 :

ソースは以下。

_moveball.rb
# script:  ruby

class Ball

  def initialize(x, y, scrw, scrh)
    @id = 1+2*(rand*6).to_i
    @x = x
    @y = y
    @scrw = scrw
    @scrh = scrh
    ang = rand(360)
    spd = 0.4 * scrw / 60.0
    a = ang * Math::PI / 180.0
    @dx = spd * Math.cos(a)
    @dy = spd * Math.sin(a)
  end
  
  def update
    @x += @dx
    @y += @dy
    @dx *= -1 if (@x <= 0 or @x >= @scrw - 16)
    @dy *= -1 if (@y <= 0 or @y >= @scrh - 16)
  end
  
  def draw
    spr @id,@x,@y,0,1,0,0,2,2
  end
  
end

$scrw, $scrh = 240, 136
$t = 0

# init objs
$objs = []
n = 80
n.times do |i|
  o = Ball.new($scrw/2, $scrh/2, $scrw, $scrh)
  $objs.push(o)
end

# main loop
def TIC
  
  # update
  $objs.each {|o| o.update}
  
  # draw
  cls 0
  $objs.each_with_index {|o,i| o.draw}

  print "mruby: #{RUBY_VERSION}",4,8*1,12
  print "count: #{$t}",4,8*2,12
  print ($t.div(60)).to_s+" sec",4,8*3,12
  $t+=1
end

使用画像は以下。

tiles2.png
_tiles2.png

TIC-80 のタイル画像領域にインポートするには、コンソール上で以下を打つ。
import tiles tiles2.png

少し解説。 :

Ruby (mruby) の仕様について、分かった範囲でメモ。

  • 疑似乱数は、rand で得ることができる。0.0以上、1.0未満の実数を返すらしい。
  • rand(整数) と書けば、0 - (整数 - 1) の疑似乱数を返す。
  • 三角関数 sin, cos は、Math.sin()、Math.cos() と書く。
  • 円周率πは、Math::PI と書く。
  • 度をラジアンに変換する関数は、どうやら無いっぽい。たぶん。

  • 配列の初期化は、objs = [] のように書く。
  • 配列に要素を追加するには、objs.push() を使う。
  • 配列を使ってループするには、objs.each {|o| ... } や objs.each do |o| ... end のように書く。
  • 回数を指定してループするには、10.times do |i| ... end のように書く。この場合、i には 0 から 9 まで入る。

  • クラスのインスタンス変数は、@id のように @ を先頭につける。
  • 数値を文字列にするには .to_s をつける。10.to_s とか。
  • 実数や文字列を整数にするには、.to_i をつける。10.0.to_i とか。"10".to_i とか。
  • 文字列の中に変数を展開するには、#{} を使う。print "x, y = #{x},#{y}" みたいな感じ。

TIC-80側の仕様について。タイル画像をpng画像としてエクスポートしたい時は以下を打つ。
export tiles hoge.png

逆に、インポートしたい時は以下。
import tiles hoge.png

エクスポートされた画像を使い慣れたドットエディタで修正してからインポートすれば、作業が楽になるかもしれない。

2022/11/06() [n年前の日記]

#1 [tic80] TIC-80で使える言語について調べてた

TIC-80 は基本的にLua言語でスクリプトを書いていくことになっているけれど、他にも色んな言語が使える。

_nesbox/TIC-80: TIC-80 is a fantasy computer for making, playing and sharing tiny games.

TIC-80 1.0 でサポートしているのは以下の言語。
TIC-80 のコンソール上で、new の後に、(lua|moon|js|wren|fennel|ruby) を打てば、その言語を使った Hello World が新規作成される。
new lua
new ruby

_Console - nesbox/TIC-80 Wiki

各言語の傾向。 :

それぞれどういう雰囲気の言語なのか分からなかったので少し調べてみた。

_leafo/moonscript: A language that compiles to Lua
_Language Guide - MoonScript 0.5.0
_MoonScript, a language that compiles to Lua
_MoonScriptしようや... - Qiita
_糖衣がけのMoonScriptはいかが? - Ryusei’s Notes (a.k.a. M59のブログ)
_MoonScript - ねっけつメモ
_wren-lang/wren: The Wren Programming Language. Wren is a small, fast, class-based concurrent scripting language.
_- Wren
_the Fennel programming language
_Fennel-lang - zenwerk public
_Matt Roelle | Fennel: The Practical Lisp
_Squirrel (programming language) - Wikipedia
_Squirrel - The Programming Language

  • MoonScript ... インデントがブロックを示すあたり Python に似ている。元々は CoffeeScript を参考にしてるとのこと。
  • Wren ... Smalltalk と Erlang の影響を受けている…らしい。
  • Fennel ... Lisp っぽい。ソースは括弧だらけ。
  • Squirrel ... C/C++/Javaに似てる、と書いてある。

もしこの中からどれかを選ぶとしたら…。Python に近い、MoonScript かなあ…。いやまあ、フツーは Lua、JavaScript、Ruby のどれかを使いそうだけど。

2022/11/07(月) [n年前の日記]

#1 [nitijyou] 体調が悪い

昨日の夜から喉が痛い。頭の左側、頭頂部で、時々ズキンとくる頭痛もあり。体全体もなんだか妙な感じで、熱を測ってみたら37度前後をふらふら。そんなわけで、一日中寝てた。

起きたら起きたで、右側の腹が時々チクリとなる。これはまさか、結石だろうか…。痛み止めを飲んでおいたほうがいいだろうか…。

2022/11/08(火) [n年前の日記]

#1 [tic80][lua] TIC-80上でMoonScriptを試用

TIC-80 1.0 は、Lua以外にも色々な言語でスクリプトを書けるけど、その中の MoonScript というのが気になったので少しだけ試用してみた。環境は Windows10 x64 21H2 + TIC-80 1.0.2164。

MoonScript というのは、最終的に Lua に変換して実行される言語らしいけど、JavaScript を拡張した CoffeeScript なる言語を参考にして作られているらしい。まあ、JavaScript界隈では、CoffeeScript ってオワコン扱いされているらしいけど…。それでも、素の Lua に比べたらマシな記法ができるのではないかと期待…。

Hello Worldを眺める。 :

とりあえず、TIC-80 + MoonScript版の Hello World を引用してみる。
-- title:   game title
-- author:  game developer, email, etc.
-- desc:    short description
-- site:    website link
-- license: MIT License (change this to your license of choice)
-- version: 0.1
-- script:  moon

t=0
x=96
y=24

export TIC=->
 if btn 0
  y-=1
 if btn 1
  y+=1
 if btn 2
  x-=1
 if btn 3
  x+=1

 cls 13
 spr 1+(t%60)//30*2,x,y,14,3,0,0,2,2
 print "HELLO WORLD!",84,84
 t+=1

これだけでも、少しは言語仕様が分かる。
  • コメント行は Lua と同様、「--」から始まる。
  • ブロックの終了を示す「end」「)」「}」が無い。Pythonと同様にインデントでブロックを表す。
  • 関数を作成する時は、TIC=-> のように書くらしい。
  • 関数呼び出し時、Ruby のように、括弧を省略できる。
  • 代入演算子の += が使える。ということは -=, *=, /= も使えるのだろう…。

classを使ってみる。 :

_先日Rubyで書いたサンプル を、MoonScript で書き直してみる。

_moveballmoon.moon
-- script:  moon

class Ball

 new: (@x,@y,@scrw,@scrh) =>
  @id = 1 + 2 * math.random(0,5)
  spd = 0.4 * @scrw / 60.0
  a = math.rad(math.random(360))
  @dx = spd * math.cos(a)
  @dy = spd * math.sin(a)
  
 update: =>
  @x += @dx
  @y += @dy
  if @x<=0 or @x>=@scrw-16
   @dx *=-1
  if @y<=0 or @y>=@scrh-16
   @dy *= -1
 
 draw: =>
  spr @id,@x,@y,0,1,0,0,2,2


export t=0
sw,sh=240,136

-- init objs
export objs={}
n=80
for i=1,n
 objs[i] = Ball(sw/2,sh/2,sw,sh)


export TIC=->
 
 -- update
 for i=1,#objs
  objs[i]\update!
  
 -- draw
 cls 0
 for i=1,#objs
  objs[i]\draw!
 
 print "Lua: #{_VERSION}",4,8,12
 print "count: #{t}",4,16,12
 print "#{t//60} sec",4,24,12
 
 t+=1

以下、参考ページ。

_MoonScriptしようや... - Qiita
_Language Guide - MoonScript 0.5.0

  • class Hoge と書けばクラスを定義できる。
  • クラスのインスタンス変数には「@」をつけるっぽい。
  • new: がコンストラクタの定義。
  • 関数の引数が無い場合は、update! のように、最後に「!」をつけて「引数が無いよ」と伝えるらしい。update() でも良さそうだけど…。
  • objs[i].draw! でも objs[i]:draw! でもなく、objs[i]\draw! と書く。「:」は別のどこかで区切り文字として使ってしまっているから、らしい。
  • #objs で、テーブルの個数を取得できる。
  • for i=1,#objs で、最後につける do は省略できる。
  • Rubyと同様に、"hoge #{t}" と書けば、文字列内に t の値が展開される。
  • グローバル変数、グローバル関数には export をつける。

感想。 :

MoonScript を使えば、素のLuaで書くより楽になりそうな感じはした。ただ、これなら、Ruby (mruby) で書いたほうがもっと楽になりそうな印象。まあ、それは自分がちょっとだけ Ruby に慣れてるせいかもしれんけど…。

ただ、クラスのコンストラクタの引数に、いきなりインスタンス変数を記述できるのはイイ感じ。コンストラクタ内でわざわざ再設定しなくて済む。以下の解説ページでも「こういうことができないからRubyはクソ」てな言及が…。

_100 Languages Speedrun: Episode 89: MoonScript - DEV Community

ところで。TIC-80のエディタ上で MoonScript を書いていた際、ずっと parseエラーが出て悩んでしまった。原因は、タブ文字によるインデントとスペース文字によるインデントが混在してしまったせいだった。TIC-80 は new moon と打って MoonScript のソースを新規作成した際、インデントをタブ文字で挿入してあるので、そのソースに対してスペースを打ってインデントしていくとハマってしまう…。ブロックをインデントで指定する言語はこういうところが面倒臭いなと…。

TIC-80のエディタ上で、タブ文字等の制御コードを表示する機能があればこんなことにはならんのに。低機能な内蔵エディタの使用を強要されるからこういうトラップに引っ掛かってしまうのだな。

このあたり、「どうだ。無料版は不便だろう。お金を払ってPro版を買うのだ」という作戦なのだろうか…。

#2 [nitijyou] 体調がまだ悪い

熱はないけど、喉の痛みが続いている状態。とりあえず、今日も一日中寝てた。

今日は、市の健康診断の日だったのだけど、この体調で会場に行くのはマズいよなと諦めることにした。案内用紙にも、「熱、せき、喉の痛みがあったら会場に来るんじゃねえぞ!」と書いてあるし…。それらの症状が新型コロナウイルスに起因するものだったら大変なことになるもんな…。

2022/11/09(水) [n年前の日記]

#1 [windows] Windows10を22H2にアップグレード

Windows10 x64 21H2 を 22H2 にアップグレードしてみた。しばらく様子見。

21H2 の次は 22H1 じゃないのだろうかと思ったけれど。Windows10は1年に2回アップグレードを出すスケジュールだったのが、1年に1回に変更されたので、22H1 は出ないことになったのだとか。

#2 [linux] Linux Mint 20.3 を 21 にアップグレード

サブPC (AMD A6-3500機) にインストールしてあった Linux Mint 20.3 を 21 にアップグレードしてみた。
sudo apt install mintupgrade
sudo mintupgrade

Linux Mint 21 は、Ubuntu Linux 22.04 LTS がベースらしい。

apt-keyが非推奨になった。 :

Debian 11 から apt-key が非推奨になったらしい。Debian 12 では完全削除されるのだとか。DebianベースのUbuntu や Linux Mint も影響を受けるそうで、Ubuntu 22.04 LTS や、Linu Mint 21 からは、sudo apt update をすると場合によっては警告が表示されてしまう。

自分の手元の環境でも、Linux Mint 20.3 を 21 にアップグレードしたら、love2d関係のリポジトリで警告が出るようになった。

$ sudo apt update
...
ヒット:7 http://ppa.launchpad.net/bartbes/love-stable/ubuntu jammy InRelease

** (appstreamcli:34011): WARNING **: 00:36:52.754: Found icon of unknown type 'unknown' in 'system/flatpak/flatpak/cc.nift.nsm/*', skipping it.

** (appstreamcli:34011): WARNING **: 00:36:52.755: Found icon of unknown type 'unknown' in 'system/flatpak/flatpak/cc.nift.nsm/*', skipping it.
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
パッケージはすべて最新です。
W: http://ppa.launchpad.net/bartbes/love-stable/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

appstreamcli 関係のエラーは、以下を実行することで一時的に消えてくれた。
$ sudo appstreamcli refresh --force

** (appstreamcli:43785): WARNING **: 00:39:22.408: Found icon of unknown type 'unknown' in 'system/flatpak/flatpak/cc.nift.nsm/*', skipping it.

** (appstreamcli:43785): WARNING **: 00:39:22.408: Found icon of unknown type 'unknown' in 'system/flatpak/flatpak/cc.nift.nsm/*', skipping it.
  Metadata cache was updated successfully.

apt-key関係のエラーは以下を参考に作業。

_Ubuntu 20.04 LTS を 22.04 LTS にアップグレードする - Uzabase for Engineers

sudo apt-key list で、apt-key が管理してるソレの一覧を表示。
$ sudo apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa1024 2009-01-20 [SC]
      643D C6BD 5658 0CEB 1AB4  A9F6 3B22 AB97 AF1C DFA9
uid           [  不明  ] Launchpad PPA for Ubuntu-X

pub   rsa1024 2010-01-20 [SC]
      1DB2 9AFF F6C7 0907 B57A  A31F 531E E72F 4C9D 234C
uid           [  不明  ] Launchpad webupd8

pub   rsa4096 2015-10-01 [SC]
      6909 51F1 A4DE 0F90 5496  E8C6 C793 BFA2 FA57 7F07
uid           [  不明  ] Launchpad PPA for Alexander Larsson

pub   rsa1024 2010-06-18 [SC]
      61F8 81CB F3A8 7BDF 74E3  98A4 F192 197F 8199 2645
uid           [  不明  ] Launchpad love-stable
...

Launchpad love-stable というのがエラーを出している項目。最後の8桁、81992645 を指定に使う。

/usr/share/keyrings/ 以下に、任意のファイル名で .gpg を作成。
sudo apt-key export 81992645 | sudo gpg --dearmour -o /usr/share/keyrings/Launchpad_love-stable-keyring.gpg

/etc/apt/sources.list.d/ 以下の、bartbes-love-stable-jammy.list を編集。先ほど生成した .gpg を signed-by= で指定。
sudo vi /etc/apt/sources.list.d/bartbes-love-stable-jammy.list
deb http://ppa.launchpad.net/bartbes/love-stable/ubuntu jammy main
# deb-src http://ppa.launchpad.net/bartbes/love-stable/ubuntu jammy main
↓
deb [arch=amd64 signed-by=/usr/share/keyrings/Launchpad_love-stable-keyring.gpg] http://ppa.launchpad.net/bartbes/love-stable/ubuntu jammy main
# deb-src http://ppa.launchpad.net/bartbes/love-stable/ubuntu jammy main

apt-key の一覧の中から、問題が起きてる項目を削除。
sudo apt-key del 81992645

この状態で sudo apt update をしたら警告が出ない状態になった。

2022/11/10(木) [n年前の日記]

#1 [ubuntu][pc] サブPCに入ってるUbuntuをメンテナンス

手元のサブPCには ―― Intel Core i5-2500 や Intel Core 2 Duo E8400 が入ってるPCには Ubuntu Linux を入れてあるけど、久々に電源を入れて sudo apt update、sudo apt upgrade をしておいた。しかし…。

apt updateが終わらない。 :

i5-2500機 + Ubuntu Linux 18.04 LTS は、sudo apt update すらなかなか進まない。どうやら、jp.archive.ubuntu.com/ubuntu/ からファイルが落ちてこない気がする…。apt upgrade ではなく、apt update でこれでは…。

ググっていたら、jp.archive.ubuntu.com ではなく ja.archive.ubuntu.com を利用することもできると知った。

_Ubuntuのミラー「jp.archive.ubuntu.com」が遅い問題 - ytooyamaのブログ
_【Ubuntu】apt upgradeが遅い - 日記

/etc/apt/sources.list を編集して、jp.archive を ja.archive に変更してから sudo apt update したところ、すんなり処理が終わってくれた。

フリーズする。 :

Core 2 Duo E8400機 + Ubuntu Linux 20.04 LTS は、sudo apt upgrade 中に何故かフリーズ…。何度もリセットボタンを押して、一応最後までパッケージ更新はしたけれど…。

このPC、以前もメモリエラーが発生していたし、そろそろ寿命なのかもしれない…。サムスン製メモリを載せてるけど、当時のサムスン製メモリは熱に弱かったので、ケース内部の熱がこもり始めるとエラーを出してるのではないかと。これでも一応、轟音FANをケース横に追加して冷却してるつもりではあるのだけど…。

今更このCPU + M/Bを延命するのもなあ…。別のメモリを中古市場から探して購入して交換なんてやってられない。頻繁に使うならともかく普段はずっと埃を被っているPCだし。

消費電力もよろしくないし。i5-2500機が50W前後をウロウロする状態で済んでるのに、Core 2 Duo E8400機は80〜100W をウロウロ。ビデオカードも載せているので、そのせいもあるのだろうけど。

2022/11/11(金) [n年前の日記]

#1 [nitijyou] 体調が悪い

まだ喉が痛い。

今日、明日は、市の健康診断/集団検診を受けられる最後の機会なのだけど、この体調で会場に行くのはマズいよなと…。万が一、コロナだったら大変なことになる。今年は健康診断を受けるのを諦めるしかなさそう。

2022/11/12() [n年前の日記]

#1 [ubuntu][linux] Ubuntu Linux上で温度センサの値を調べる

Intel Core2Duo E8400機 + Ubuntu Linux 20.04 LTS 上で、sudo apt upgrade をしたらフリーズしてしまった件がちょっと気になっている。もし熱暴走してるなら、温度センサの値をチェックしながら作業したほうがいいのかもしれないなと。

そんなわけで、Ubuntu Linux 上で温度センサを取得する方法をググってみた。

_LinuxでCPU温度を計測する - Qiita
_UbuntuでCPU/GPUの温度を監視するためのツール4選 | TECH+(テックプラス)
_XSensors CPUのコアごとの温度を表示するコンパクトなシステムモニタ | Ubuntuアプリのいいところ
_Ubuntu/GUIでCPU温度を確認する・xsensors - Linuxと過ごす
_Ubuntu/CPUの温度を確認する・sensors - Linuxと過ごす
_Linux で CPU/GPU 温度を調べる
_ubuntuでGPU, CPU温度などをグラフィカルに監視するpsensorを使う - ろぐれこーど
_XubuntuのパネルにCPU温度センサーのウィジェットを追加する方法 - JANEのスペース

CUI/CLI なら lm-sensors や hddtemp が使えて、GUIなら psensor、xsensors が使えるらしい。

sudo apt install lm-sensors hddtemp psensor xsensors

sudo sensors-detect
$ sensors

nouveau-pci-0100
Adapter: PCI adapter
GPU core:    1000.00 mV (min =  +0.95 V, max =  +1.00 V)
fan1:           0 RPM
temp1:        +40.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +125.0°C, hyst =  +3.0°C)
                       (emerg = +135.0°C, hyst = +10.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +41.0°C  (high = +78.0°C, crit = +100.0°C)
Core 1:       +37.0°C  (high = +78.0°C, crit = +100.0°C)

$ sudo hddtemp /dev/sda
/dev/sda: WDC WD5000AAKS-00YGA0: 31°C

psensor
xsensors

AMD APUは問題有り。 :

Intel Core2Duo E8400機上ではそれっぽい値が取得できたのだけど。試しに AMD A8-3850機 + Ubuntu Linux 22.04 LTS 上で同じ操作を試したところ、CPU も GPU も一桁台の温度が出てきてしまった。さすがにそれはおかしい…。おそらく正常な温度が取得できてない気がする。

ハードウェア構成は以下。
  • CPU : AMD A8-3850 (Socket FM1, 2.9GHz, 4core, L2 Cache 1MB x 4, TDP 100W, Radeon HD 6550D)
  • M/B : GIGABYTE GA-A75M-UD2H (rev. 1.0) (Socket FM1, MicroATX, AMD A75, DVD-D/HDMI/DisplayPort/D-SUB)

A8-3850機上で、sudo sensors-detect を実行して、質問に対して全部 yes を打ち込んでみたところ、sensors で表示される結果が大幅に増えてくれた。
$ sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1:         +7.8°C  (high = +70.0°C)
                       (crit = +100.0°C, hyst = +99.0°C)

radeon-pci-0008
Adapter: PCI adapter
in0:         1000.00 mV
temp1:         +7.0°C  (crit = +120.0°C, hyst = +90.0°C)

it8720-isa-0228
Adapter: ISA adapter
in0:           1.02 V  (min =  +0.00 V, max =  +4.08 V)
in1:           1.49 V  (min =  +0.00 V, max =  +4.08 V)
in2:           3.39 V  (min =  +0.00 V, max =  +4.08 V)
+5V:           2.99 V  (min =  +0.00 V, max =  +4.08 V)
in4:           3.02 V  (min =  +0.00 V, max =  +4.08 V)
in5:           2.13 V  (min =  +0.00 V, max =  +4.08 V)
in6:           2.13 V  (min =  +0.00 V, max =  +4.08 V)
5VSB:          3.02 V  (min =  +0.00 V, max =  +4.08 V)
Vbat:          3.15 V
fan1:         706 RPM  (min =   10 RPM)
fan2:        1016 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
temp1:        +39.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp2:        +76.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp3:        +17.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = Intel PECI
cpu0_vid:    +0.000 V
intrusion0:  ALARM

it8720-isa-0228 と表示されてる項目が増えた項目。おそらく、CPU (k10temp-pci-00c3)、GPU (radeon-pci-0008) が返してくる温度より、it8720-isa-0228 (M/B?)が3つほど返してくる温度のほうが正確なのではないかという気がする。ただ、どの温度が何の温度なのか、そこが分からない…。

BIOS設定画面を出して温度を確認したところ、System Temperature が34度、CPU Temperature が 28度と表示されていた。sensors が返してきた値と大きく違ってる気がする…。

2022/11/13追記。 :

その後もググってたら、気になる話を見かけたのでメモ。

_[lm-sensors] Temperature reading too high for it87

AMD A8-3850 を利用してる場合、temp1 が System Temperature、temp3 が CPU (APU) Temperature に相当すると書いてある。temp2 が70度を超えてるのは妙だなと思ったけれど、そこは正常な値を返さないということだろうか。ただ、temp3 が17度程度になるのもおかしい…。室温が20度なのに、室温より低くなるCPUの温度…。そんなことあり得ない…。

AMD製CPU + Linux では正常な温度を取得できないと思っておいたほうがいいのかもしれない。

#2 [ubuntu] apt upgradeで謎メッセージが出てくる

Ubuntu Linux 22.04 LTS 上で sudo apt upgrade をしたら、見たことが無いメッセージが表示された。
$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
#
# News about significant security updates, features and services will
# appear here to raise awareness and perhaps tease /r/Linux ;)
# Use 'pro config set apt_news=false' to hide this and future APT news.
#
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

よく分からんが、鬱陶しい…。

「pro config set apt_news=false を使え」と言ってるように見えるので、以下を実行。
sudo pro config set apt_news=false
これで前述のメッセージが出なくなった。

#3 [nitijyou] 体調がよろしくない

ずっと喉が痛かったけど、朝06:00頃から咳が出始めてなかなか止まらなくなってきた。これはなんだかヤバイ気がする…。

妹から余ってるマスクを貰って、一日中つけてみることにした。寝てる間もマスクをしてみる。妹曰く、喉が乾燥しなくなってマシになるかもしれないとのことなので…。

2022/11/13() [n年前の日記]

#1 [anime] 「時空の旅人」を視聴

BS12で放送されていたので視聴。昔の角川アニメ。制作はマッドハウス。原作は眉村卓著の小説、「とらえられたスクールバス」。後に改題されて「時空の旅人」になったらしい。

大昔に見たような記憶があるのだけど、どこで見たのだったか…。映画館ではなかったような気がする…。レンタルビデオで見たのかな…。

作画がかなり奇麗だった印象があったのだけど。改めて目にして、そのクオリティの高さに驚いた。原画陣の中に川尻善昭さんと梅津泰臣さんの名前が…。道理で…。

キャラデザは萩尾望都先生となっているけど、あの絵柄をよくまあここまでアニメ用にまとめたなと…。おそらくは作監の野田卓雄さんがまとめたのだろうか。

ストーリーというか設定は、昔のSFジュブナイルらしいというか…。尺の都合もあるのだろうけど、キャラの掘り下げはほとんどせず、ひたすら展開だけで見せていった印象。内容をすっかり忘れていたので、新鮮な気持ちで見れた。個人的には、例の 茶室がお気に入り。アレはビックリ。

しかし…。視聴後、これといって何も残らないアニメでもあったような…。いやまあ、当時はこれほどの作画を堪能できるだけで十分価値はあったのだろうと想像するのだけど。萩尾望都先生の絵が動いてるよ…みたいな。それもあって、自分の中ではイイ感じのアニメとして記憶が残ってた気もするわけで。でも、心を揺さぶる何かがあったかと言うと…。本来、ヒロインの恋心云々がそのあたりを担うはずなのだろうか。

この作品、今の技術でリメイクできないものか…。今ならどういう見せ方をするだろうか…。話もガラリと変わるのかな…。

2022/11/14(月) [n年前の日記]

#1 [pc] PCケースを作れないか妄想中

ダイソーに寄ったら、R30ボックスなる商品がたまたま目に入った。寸法を確認したところ、ひょっとして MicroATXサイズのM/Bが入るのではと思えてきて、帰宅後、各サイズを調べ始めてしまった。

ダイソーのR30ボックスとやらのサイズは、以下で紹介されていた。

_ついに無印を超えた!?ダイソー注目の新作収納グッズ・R30ボックスの検証レポ | ワーキングマザー的 整理収納 & 北欧インテリア

36.5 x 26 x 高さ16cm のサイズなら、M/B が入りそう。MicroATX の M/B は、244 x 244 mm だから…。

_ATX マザーボード規格について e-atx(extended atx)、miniatx、xl-atxなど、各マザーボードサイズ等をご紹介|ドスパラ通販【公式】

ただ、件の商品は、おそらく外側のサイズが書いてあるような気がする…。角は丸まっているし、底面のほうが小さくなってるあたりからして、中のサイズはもっと小さいのではないか。もしかすると、M/B は入らないかもしれない…。

ここは無理をせず、MDF板でも買ってきて作ったほうがいいのではないか。そう思って、Windows10 x64 22H2 上で Google SketchUp 8.016846 を起動して、MDF板のサイズやPCパーツのサイズを指定しながらレイアウトを検討し始めてしまった。

_100均ダイソーで売っているMDF材の商品一覧。板のサイズと枚数【100円】

ダイソーで、300 x 400 x 6mm や 300 x 600 x 6mm のMDF板が売ってるらしいから、ソレを使えばサイズは大丈夫そう。

ふと我に返った。埃を被ってるPCが既に5〜7台あるのに、これ以上増やしてどうする。何に使うんだ…。自分、ちょっと落ち着こうか。

万が一、PCパーツが火を吹いたら、金属製ではないPCケースは火が燃え移りそうで危ない気もするし。ペラペラだろうと何だろうと、一応金属製のケースを使ったほうがいいよな…。

2022/11/15(火) [n年前の日記]

#1 [blender][povray] blenderをアップグレード

手元の Windows10 x64 22H2 上で、blender 2.93.9 LTS を 2.93.11 LTS に更新。かつ、blender 3.3.1 LTS を新規導入。

blender 3.3 が、2.93 と比べてどのくらい新機能が追加されているのか把握してないのだけど…。どこかにまとめ記事は無いものか…。blender 関係の記事って、3.0、3.1、3.2 等のバージョンが上がる度に新機能を紹介してるから、LTS版だけ使ってるとそのあたり把握しづらくて…。

POV-Ray対応アドオンがちょっとアレ。 :

blender 3.3.1 の新機能を把握することは全然できてないけれど。ウインドウの左側にやたらとアイコンが増えていることに気づいた。どうやら POV-Ray対応アドオン(POV@Ble)が、追加可能なPOV-Ray専用オブジェクト(プリミティブ?)を、全てアイコンにして並べてしまったようだなと…。

正直、これはかなり鬱陶しい…。
  • レンダーエンジンが Eevee だろうと Cycles だろうと関係なく表示されてる。
  • POV-Ray専用オブジェクトをひっきりなしに追加していく場面なんてそれほど無いはずだけど、利用頻度が少ない機能を常時画面に表示し続けているのはどうなのか。

せめて、オプションか何かで表示の有効無効を切り替えられないものだろうか。あるいは、一つのアイコンをマウスクリックすると、そこから複数の項目が表示される仕様が妥当ではなかろうか。

まあ、blender と POV-Ray を組み合わせて作業してる人がほとんど居ないから、苦情も出てこなくて、こういう仕様になっているのだろう…。

POV@Ble 自体の有効無効を切り替えていたら、今まで設定していたPOV-Ray関係のパス設定が全て消滅してしまった。ガッデム。毎回クリアしちゃうのか…。覚えておいてくれないのか…。

考えてみたら、POV-Ray の勉強をする時はテキストエディタで打ち込んでいくものだよな…。ということで、このアドオンは今後無効にすることにした。

そもそも、このアドオン、POV-Ray専用オブジェクトにはマテリアル設定ができないのだよな…。オブジェクト追加アイコンを並べるよりそっちの実装を…。

余談。blender 3.3.1 LTS では、POV@Ble 0.1.3 というアドオン名になっているけれど、blender 2.93.11 LTS では、Persistence of Vision 0.1.1 というアドオン名だった。

2022/11/16(水) [n年前の日記]

#1 [povray] Bishop3Dを試用中

Bishop3D は、POV-Ray専用のモデリングソフト。Windows上で動作する。

_Bishop3D - POV-Ray Modeler and Animation System (WebArchive)

blender 3.3.1 LTS + POV@Ble を触っているうちに、POV-Ray専用ツール群の操作感覚ってどうだったかなと気になってきて、Bishop3D 1.0.5.2 を触り始めたのだけど、新規に作成したデータを POV-Ray 3.7 でレンダリングしても真っ暗なレンダリング結果しか出てこなくて悩んでしまった。カメラとライトがあれば何かしら出てくるものと思ったのだけど…。

以前試用した際に作成したテストデータはちゃんとレンダリングできるのに…。新規作成したデータと何が違うのか…。

数時間悩み続けたけれど、原因はプリミティブに Texture (マテリアル)を指定してなかったせいだった。トホ。以前試用した際に使い方を全くメモしてなかったから、こういうしょーもないところでハマったのかもしれない。自分用に使い方をまとめておいたほうがいいのかも…。

2022/11/17(木) [n年前の日記]

#1 [povray] Bishop3Dの導入方法

Bishop3D は POV-Ray専用のモデリングツール。球(sphere)や箱(box)等のプリミティブをGUIでレイアウトして、POV-Ray を呼び出してレンダリングすることができる。
使っている様子をキャプチャして、YouTube にアップロードしてみた。雰囲気が伝わるだろうか…。




手元の環境では、以下のバージョンの組み合わせで動いてる。POV-Ray 3.7 に対して少々フォルダ構成を工夫する必要があるけど…。

せっかくだから、導入の仕方をメモしておく。

POV-Ray 3.7 をインストール。 :

まずは POV-Ray 3.7 を入手してインストール。

_POV-Ray: Download

上記リンク先ページの、「Download Windows Installer」と書かれたリンクをクリックすると、Windows用のインストーラ、povwin-3.7-agpl3-setup.exe がダウンロードできる。

実行すればインストールが始まるけれど、インストール場所は、C:\Program Files や C:\Program Files (x86) ではないほうが望ましい。後で、フォルダ構成を少し弄ることになるので…。自分の場合は、C:\Prog\POV-Ray\v3.7\ にインストールしている。

インストール後、(POV-Ray 3.7 インストールフォルダ)\bin\pvengine.exe を実行してみる。起動すればインストールはできている。

ちなみに、各exeファイルは以下のようになっている。
  • pvengine.exe : 32bit版 POV-Ray 3.7
  • pvengine32-sse2.exe : 32bit版 POV-Ray 3.7。SSE2が有効になっている版。
  • pvengine64.exe : 64bit版 POV-Ray 3.7。

POV-Ray 3.7 のフォルダ構成を少し変更。 :

POV-Ray 3.7 をインストールすると、Windowsユーザのドキュメントフォルダ内に POV-Ray\v3.7\ というフォルダが作成される。中には、include フォルダや ini フォルダが入ってる。

Bishop3D から POV-Ray 3.7 を使うためには、この include フォルダと ini フォルダが、POV-Ray 3.7 インストールフォルダの中に存在するように見せかけないといけない。 *1

そのあたりは以前もメモしたけど、要するに、Windowsのシンボリックリンクを使えばいい。 *2

_mieki256's diary - Bishop3DからPOV-Ray3.7を呼び出すことができた

例えば、自分の環境は以下のようになっているので…。
  • POV-Ray 3.7 インストールフォルダ: C:\Prog\POV-Ray\v3.7\
  • ドキュメントフォルダ : D:\home\

_管理者権限でコマンドプロンプト(cmd.exe)を開いて、 以下を打てば、POV-Ray 3.7 のインストールフォルダの中に、include や ini が存在しているかのような状態になる。
mklink /d C:\Prog\POV-Ray\v3.7\ini D:\home\POV-Ray\v3.7\ini
mklink /d C:\Prog\POV-Ray\v3.7\include D:\home\POV-Ray\v3.7\include

> dir c:\Prog\POV-Ray\v3.7
 ドライブ C のボリューム ラベルは SYSDRV です
 ボリューム シリアル番号は 6CAE-B750 です

 c:\Prog\POV-Ray\v3.7 のディレクトリ

2021/08/25  12:12    <DIR>          .
2021/08/25  12:12    <DIR>          ..
2013/09/24  20:15            35,181 agpl-3.0.txt
2021/08/19  02:16    <DIR>          bin
2013/09/24  20:15           148,678 changes.txt
2022/06/17  19:52    <DIR>          help
2021/08/25  12:12    <SYMLINKD>     include [D:\home\POV-Ray\v3.7\include]
2021/08/25  12:10    <SYMLINKD>     ini [D:\home\POV-Ray\v3.7\ini]
2021/08/30  10:18           164,114 povwin-3.7-uninstall.exe
2013/09/24  20:21           247,673 revision.txt
2021/08/20  06:40    <DIR>          sounds
2021/08/19  02:15    <DIR>          tiles
               4 個のファイル             595,646 バイト
               8 個のディレクトリ  167,254,790,144 バイトの空き領域
include や ini が <SYMLINKD> になっていて、リンク元も表示されているのが分かるかと。

Bishop3Dを入手。 :

Bishop3D 1.0.5.2 を入手する。公式サイトは消滅しているけれど、Web Archive に残っているので、そちらからインストーラを入手する。

_Bishop3D - POV-Ray Modeler and Animation System (WebArchive)

「Bishop3D 1.0.5.2 setup package」をクリックすれば、bishop3d1052setup.exe が入手できる。

また、件のページには、ライセンスネームとライセンスキーも書かれているので、コピペしてどこかにメモしておくこと。インストール後に入力して、ライセンス登録状態にするので…。
Licensee Name: Bishop3D
License Key: ZDTDRKAB-TZKWBLWZ-DZPJYRTC-WDJC

bishop3d1052setup.exe を実行すればインストール処理が始まる。自分の場合は、C:\Prog\Bishop3D\ にインストールした。

Bishop3Dを起動。 :

Bishop3Dをインストールすると、デスクトップにショートカットアイコンが作成されるので、クリックして起動。あるいは、インストールフォルダ\Bishop3D.exe を実行すれば起動する。

Help → Register を選んで、ライセンスネームとライセンスキーを登録。

bishop3d_povray37_ss01.png


Bishop3D は一旦終了。

POV-Ray 3.7 に Bishop3D用のDLLを登録。 :

POV-Ray 3.7 32bit版を起動して、Bishop3D と連携するための設定を追加する。pvengine.exe か pvengine32-sse2.exe を起動。pvengine64.exe は64bit版なので起動させない。 *3

Tools → Edit PVENGINE.INI、を選ぶ。POV-Rayのエディタで、pvengine.ini が開かれる。

bishop3d_povray37_ss02.png


[GUIExtensions] という項目の最後に、Bishop3D用のDLL、Bishop3DPovComm.dll を追加する。
[GUIExtensions]
UseExtensions=1
ExtDLL16=C:\Prog\Bishop3D\Bishop3DPovComm.dll

bishop3d_povray37_ss03.png


POV-Ray 3.7 を終了して、再度起動。POV-Ray 3.7 の Messages ウインドウ内に、以下が表示されていたら登録できている。

bishop3d_povray37_ss04.png

GUI Extension 'POV-Bishop3D Communication' loaded from 'Bishop3DPovComm.dll'
  Report any problems to Hugo Arnaut <hugo@bishop3d.com>

Bishop3D側で設定。 :

Bishop3D を起動。POV-Ray 3.7 (pvengine.exe or pvengine32-sse2.exe)の場所を指定する。
  1. Settings → Options。
  2. Render options → POV-Ray integration
  3. POV-Ray executable に、pvengine.exe の置いてある場所を指定。(例: C:\Prog\POV-Ray\v3.7\bin\pvengine.exe)

bishop3d_povray37_ss05.png

bishop3d_povray37_ss06.png

Bishop3Dの使い方。 :

Bishop3D の使い方は、前述の動画を眺めれば、大体分かるかなと…。

  • Create → Box 等で、プリミティブを追加。
  • ツールバー上のアイコンをクリックしてツールを切り替えれば、選択しているプリミティブに対して移動や回転ができる。
  • Render Current Frame (F9キー) で、POV-Ray を呼び出してレンダリングができる。

注意点。各プリミティブは「Texture」を指定しないと真っ黒な見た目でレンダリングされてしまう。必ず何かしらを選んで設定しておくこと。

Texture(マテリアル)は、マテリアルエディタ(Material Editor)を利用することでカスタイマイズもできる。例えば前述の動画の中では市松模様(チェッカー模様)を追加して利用してる。

マテリアルエディタ(Material Editor)は、以下のどれかの操作で開くことができる。
  • プリミティブ設定ウインドウ内の、「Texture」の横のギアっぽいアイコンをクリック。
  • または、F12キーを叩く。
  • あるいは、Window → Material Editor を選択する。

bishop3d_povray37_ss08.png


マテリアルエディタが表示されたら、「Textures」を右クリックして色々追加していけばいい。

以下は、チェッカー模様を追加してみた例。Pigment の下に color list pigment を追加すれば、Checker模様を指定することができる。

bishop3d_povray37_ss10.png

bishop3d_povray37_ss12.gif


以下は、周りを反射する赤いマテリアルを追加した例。Finish の下に Reflection を追加して、Reflection の値を 0.25 や 0.5 等にしてやれば反射するマテリアルになる。

bishop3d_povray37_ss11.png

*1: Bishop3D は POV-Ray 3.6 時代のフォルダ構成を前提にして作られているので、POV-Ray 3.7 のフォルダ構成のままでは Bishop3D から POV-Ray 3.7 を呼び出せない。POV-Ray 3.6 のフォルダ構成のように見せかけておかないと動作しない。
*2: iniフォルダとincludeフォルダをコピーしても一応動くのかもしれないけれど、POV-Ray 3.7側で iniファイルを変更した際、それはドキュメントフォルダ内のファイルに対して行われるので、コピーしてきた ini\*.ini には変更内容が反映されない。そのことが原因で後々ハマる可能性が高そうなので、シンボリックリンクを使って実体は1つにしておいたほうがいいのではないかと思う。
*3: Bishop3D が 32bit版のプログラムなので、POV-Ray も32bit版を利用しないといけない。

2022/11/18(金) [n年前の日記]

#1 [cg_tools] 昔の3DCGソフトを試用

昔の3DCGソフトを2つほど Windows10 x64 22H2上で再インストールした。

一つは、Vue 5 Easel。風景の3DCGを作成することに特化したソフト。色々な機能が制限されてる版。レンダリングサイズに制限があったり、360度のパノラマ画像がレンダリングできなかったりする。

もう一つは、六角大王Super6。斜めの構図でモデリングができるあたりが特徴だったソフト、だろうか。

一応どちらも Windows10 x64 22H2 上で起動してくれた。

Shadeも試用。 :

Shade 10.5 Standard や Shade 12 Standard も少し試用。POV-Ray形式でエクスポートできないかなと気になって…。少し触った感じでは、そういう機能は無いように見えた。ただ、ググってみると POV-Rayエクスポータなるものが同梱されていることを示す一文も見かけるわけで…。

Shade 10.5 のPDFマニュアルを眺めたら、プラグインによって、POV-Ray形式のエクスポートがサポートされていた時期もあった模様。本来なら、ファイル → エクスポート → 「POV-Ray...」という項目が出てくるらしいけれど、手元の環境ではそんな項目は見当たらなかった。

Shade 10.5 と Shade 12 のPDFマニュアルを見比べてみたところ、Shade 12 のマニュアルではPOV-Ray云々の記述が無くなっていた。おそらく、Shade 10.5 より後のどこかのバージョンで、プラグインが削除されたのではなかろうか。

Shade 10.5 に同梱されているPDFマニュアルには「Shade 10」と書いてあった。ひょっとすると、Shade 10 まではそのプラグインがあったけど、10.5 で削除された可能性もありそうだなと…。

まあ、Shadeのレンダラーはそもそもレイトレーシング系だった気もするので、あえて POV-Ray を使う意味があるのかと言うとビミョーだなと…。

2022/11/19追記。 :

Shade 10.5 のインストールフォルダ内に「お読みください.txt」というファイルがあって、その中にプラグインについての記述があった。一部引用してみる。

■レガシープラグインについて

Shade 10では、旧バージョンに搭載されていた下記に記載のプラグインによる機能(以下「レガシープラグイン」という)については、過去互換用と位置づけており、初期状態ではご使用いただけない設定となっています。
これらの機能をご使用いただくためには、後述の設定方法に従って、レガシープラグインを有効にする必要があります。また、レガシープラグインは、将来のバージョンで廃止させていただく可能性があります。

・フォースドボール
・GRAPHISOFT(GDL)出力
・IGES 5.3出力
・IGES 5.3入力
・パーティクルエフェクタ
・POVーRay3.0出力
・Shockwave 3D出力(Windows 32bit版のみ)
・ViewPoint出力(Windows 32bit版のみ)


●レガシープラグインを有効にする設定方法

Shade 10を起動し、編集(Win)/Shade(Mac)メニューから環境設定ダイアログを開きます。
「プラグイン」タブを選択し、「レガシープラグインを有効にする」チェックボックスをオンした後、Shade 10を再起動することでレガシープラグインを有効にすることができます。

つまり、Shade 10 の段階で、POV-Ray形式エクスポートはレガシープラグイン扱いされて、デフォルトでは削除されていたというオチだった。

試しにレガシープラグインを有効化してみたところ、エクスポートの項目に「POV-Ray...」が表示された。しかし、.pov でエクスポートしてみたら、マテリアル情報は全て消滅。POV-Ray 3.7 でレンダリングしてみたら、形状が縦に歪んだ状態で出力された。なるほど、レガシー機能として削除されるわけだなと…。これでは使えない…。

2022/11/19() [n年前の日記]

#1 [cg_tools] 六角大王Super6を試用中

Windows10 x64 22H2上に六角大王Super6をインストールしたので、せっかくだから少し試用。マニュアルPDFを眺めながら、チュートリアルを試しているところ。

2022/11/20() [n年前の日記]

#1 [cg_tools] 六角大王Super6をまだ試用中

Windows10 x64 22H2上で、六角大王Super6を試用中。

六角大王関係で、何かためになる情報はないかとググってみたのだけど。かつては有用な情報を公開していたのであろうサイト群が軒並み404。Webサイトを公開できるサービスの類がそもそも終了してるからアレなんだけど…。膨大な記録が、わずか10〜20年で失われてしまったなと…。

2022/11/21(月) [n年前の日記]

#1 [cg_tools] 六角大王フリーソフト版をWindows10で動かしたかったけど無理だった

3DCGソフト、六角大王関連の情報をググっていたら、「有償のSuper版より、無料で利用できたフリーソフト版のほうが使い勝手が良い」という話を見かけてフリーソフト版が気になってきた。それってWindows10上で動くのかな。試してみたい。

環境は、Windows10 x64 22H2。

結論を先に。ある程度は動くけどクリティカルな問題があって使い物にならない。一応、ウインドウは表示できたし、多少の操作も可能だけど、「ファイルを開く」や「名前をつけて保存」を選んだ途端に落ちてしまうので、ファイル保存が一切できない。これでは使い物にならない。

ただ、仮想PC上でWindows98等の古いOSを動かして、その上で使う分には利用できた。

六角大王フリーソフト版の入手。 :

六角大王フリーソフト版 5.25 は、今も Vectorから rkw525.lzh というファイル名で入手可能らしい。「六角大王 for Win95/NT」というのが、Windows95/98/NTに対応していた版。

_六角大王 for Win95/NTの詳細情報 : Vector ソフトを探す!


ちなみに、「六角大王 for Windows」は Windows3.1用。

_六角大王 for Windowsの詳細情報 : Vector ソフトを探す!


NEC PC-9801 (MS-DOS)版もあるらしい。

_六角大王の詳細情報 : Vector ソフトを探す!


六角大王フリーソフト版は、Windows95/98上なら、rkw525.lzh を入手するだけで動くらしいのだけど。WindowsNT系上で動かすためには olemfc3.lzh なるファイルが必要だったらしい。

_フリーソフト版六角大王をNTで使う (WebArchive)
六角大王をWindowsNT(または2000)で使うためには古いMicrosoftのDLLが別途必要なのですが、六角大王が公開されている公式の場所の中ではNIFTY SERVE の FGALAVでしか配布が行われていないため、NIFTYに入っていないNTユーザーはそのままでは起動できません。

_六角大王 スレ
559俺用メモ2013/12/13(金) 21:28:58.39ID:+rv08UWS
OS:Windows7 Professional 64bit
http://homepage2.nifty.com/t-okano/rok/rok/olemfc3.lzh を解凍
0)Readme.txt
1)MFC30.DLL
2)MFCANS32.DLL
3)MFCO30.DLL
4)MFCUIA32.DLL
5)MFC30JPN.DLL
6)MSVCRT20.DLL ←捨てる
7)MSVCRT20.NT ←MSVCRT20.DLLにリネーム

1〜7をぜんぶ六角大王フォルダに入れて実行ファイルをWindows95互換モードで立ち上げると動いた
保存もばっちりでめでたし

HDDの中を探したら、 _olemfc3.lzh が見つかった。解凍したら、たしかに DLLファイル群が入っていた。

インストール。 :

_rkw525.lzh を解凍して、中に olemfc3.lzh の中に入ってたDLL群をコピーした。
  • MSVCRT20.DLL は、MSVCRT20.w9x にリネーム。
  • MSVCRT20.NT は、MSVCRT20.DLL にリネーム。

動作確認。 :

この状態で ROKU32.EXE を実行。レジストリがどうのこうのとエラーダイアログが表示されたけど、そのまま進んだら、一応ウインドウが表示されて、モデリング操作っぽいこともできた。

ROKU32.EXE のプロパティで、互換性 → 互換モード → 互換モードでこのプログラムを実行する、にチェックを入れて、Windows 95 を選んでみた。この状態なら、起動時にレジストリ云々のエラーダイアログは表示されなかった。

ところで、rkw525.lzh を解凍すると、中には SETUP.EXE というファイルも存在しているのだけど。実行したら「このプログラムは動かない」と言ってきた。おそらく、昔の Windows に特化したセットアッププログラムなのではないかなと…。

さておき。「ファイル」→「開く」や、「ファイル」→「名前を付けて保存」を選ぶと、それだけで落ちてしまう。おそらく、ファイル選択ダイアログを表示しようとすると落ちるのだろう…。こんな状態ではモデリング作業をしても保存ができないので使い物にならない。

ということで、六角大王フリーソフト版はWindows10上で使えないことが分かった。

仮想PC上で動かしてみた。 :

仮想PC上で Windows98 を動かして、その上で六角大王フリーソフト版が動くのか試してみた。環境は以下。
  • Windows10 x64 22H2 + CPU : AMD Ryzen 5 5600X
  • VirtualBox 7.0.4
  • Windows 98

この環境なら、rkw525.lzh を解凍して ROKU32.EXE を実行するだけで、六角大王フリーソフト版が動作した。「開く」「名前を付けて保存」を選んでも、ファイル選択ダイアログが表示された。

しかし、そもそも VirtualBox 7.0.4 + Windows98 では、Windowsのエクスプローラ自体が正常に動作しない…。MSHTML.DLL が確実にエラーを出して不正終了する。AMD製CPUは仮想PC関係でバグがあるらしいけど、そのせいだろうか…。

_mieki256's diary - VirtualBox上でWindows98が動かない

PCem v17 + Windows98 なら、VirtualBox 7.0.4 で発生したような不具合には遭遇しなかった。六角大王フリーソフト版も起動するし、ファイルも開けたし、名前を付けて保存もできた。ただ、六角大王のツールバー上のアイコンがおかしな見た目になる模様。

2022/11/22追記。 :

Ubuntu Linux 22.04 LTS + Wine (winehq-stable 7.0.1) 上でも、六角大王フリーソフト版 5.25 が動いてくれた。後で別記事としてメモしておく予定。

この記事へのツッコミ

Re: 六角大王フリーソフト版をWindows10で動かしたかったけど無理だった by 立体男    2022/12/07 01:53
随分と懐かしい3Dソフトを動かされているのですね。
フリー版六角大王に近い雰囲気の『3D ACE』というフリーソフトがあるのですが、
WindowsXP時代のソフトですけど、一応Windows10(64bit)上でも動作します。
入出力ファイル形式も多くて(フリー版六角大王rokファイルも読み込めたはず)
2000年代くらいまでは愛用していました。
今でもVECTORからダウンロード出来ますね。
https://www.vector.co.jp/soft/win95/art/se147323.html

最近のフリーのモデリングソフトは、Blender一択になってしまって少し寂しいです。
Wings3Dのシンプル設計も好きですけど、操作の癖が強すぎますね。

2022/11/22(火) [n年前の日記]

#1 [cg_tools][ubuntu][linux] Linux + Wine で六角大王フリーソフト版が動いた

Ubuntu Linux 20.04 / 22.04 LTS + Wine 7.0.1 / 6.0.3 上で、六角大王フリーソフト版 5.25 Windows版が動いてくれたので、そのあたりをメモ。

以下、証拠画像。六角大王フリーソフト版 5.25 WIndows用が、Ubuntu Linux 20.04 LTS + Wine 7.0.1 上で動いてる。

ubuntu2004_wine701_ss01.png


環境は以下。

Wineについて。 :

Wine というのは、Linux上でWindowsアプリを動かすためのプログラム群。DirectX を使ってるアプリにも対応してるそうで、ゲームアプリなども結構動くらしい。

Ubuntu Linux の場合、2つの版のどちらかを選んでインストールできる。
  • Ubuntu 公式リポジトリ版。バージョンが少し古いけど、sudo apt install wine だけでインストールできる。
  • Wineリポジトリ版。リポジトリの追加等が必要になるけれど、比較的新しいバージョンを利用できる。

Ubuntu Linux 20.04 LTSでWineをインストール。 :

Ubuntu Linux 20.04 LTS + xubuntu-desktop (Xfce) 上で Wine をインストールしてみた。ちなみに、この Ubuntu Linux 20.04 LTS は仮想PC上で動かしてる。

インストールの仕方は以下で解説されてる。今回は、Ubuntu公式リポジトリ版の Wine ではなく、比較的新しい版の Wine をインストールしてみた。

_Ubuntu WineHQ Repository - WineHQ Wiki
_Ubuntu20.04 Wine | ろっひー

アーキテクチャについて何かを設定しないといかんらしい。よく分からんけど。現在のソレと、選べるソレを確認。
$ sudo dpkg --print-architecture
amd64

$ sudo dpkg --print-foreign-architectures
i386

アーキテクチャを追加。
sudo dpkg --add-architecture i386

Wine のリポジトリを追加。Ubuntuのバージョンによって記述するURLが違ってくるので注意。以下は Ubuntu 20.04 LTS 用。
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key

sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/focal/winehq-focal.sources

winehq-stable というパッケージをインストールする。
sudo apt update
sudo apt install --install-recommends winehq-stable
バージョンは 7.0.1~focal-1 だった。2〜3GBほどのファイルがインストールされた。結構大きい。

Wine の設定は winecfg というコマンドで行うけれど、32bit版のアプリを動かせるように環境変数を設定しておかないといかんらしい。

_64bit 機で 32bit のWine を使用する - memomuteki

以下を実行して、設定フォルダ等を作成。体感で数分ほど時間がかかる。途中で、Wine Mono インストーラ等々、アレコレをインストールするかと尋ねてきたので「Yes」だか「はい」だかを選択。
export WINEARCH=win32 winecfg

念のため、~/.bashrc にも環境変数の設定を追加しておいた。
export WINEARCH=win32

設定ファイルその他は、~/.wine/ に保存されているらしい。また、WindowsのCドライブやディレクトリ構成を再現する場所として、~/.wine/drive_c/ が用意されていて、中には以下のディレクトリが入っていた。
$ ls ~/.wine/drive_c
'Program Files'   ProgramData   users   windows

今回は、drive_c/ 以下に Prog というディレクトリも作って、その中に各種アプリを入れておくことにした。

Wine 関連のコマンドは、以下が参考になった。

_Linux PC環境構築[23]:Wine 4.0の導入 | クロカワ工房 - 楽天ブログ
_Linux環境設定/Wineをコマンドで操作する - Linuxと過ごす

六角大王フリーソフト版を動かしてみる :

rkw525.lzh を入手。Ubuntu Linux 上で解凍。解凍には lhasa (0.3.1-3) を使った。 *1
sudo apt install lhasa
lha x rkw525.lzh

解凍すると rkw というディレクトリが出てきて、中には roku32.exe その他が入ってる。1ファイルだけ ―― 「ご案内.txt」という日本語ファイル名がおかしなことになるけれど、「goannai.txt」にでもリネームすればよいかと。

実行には _olemfc3.lzh も必要だった。これも解凍。
lha x olemfc3.lzh
中に入ってる .dll を六角大王の実行バイナリと同じ場所(rkw/)にコピーしておく。ただし、一部のファイルはリネームする。
  • MSVCRT20.DLL は MSVCRT20.w9x にリネーム。
  • MSVCRT20.NT は MSVCRT20.DLL にリネーム。

六角大王のフォルダ rkw を、~/.wine/drive_c/Prog/ 以下にコピー。
cp -r rkw ~/.wine/drive_c/Prog

winecfg を実行。アプリケーションを追加。roku32.exe を登録。roku32.exe には、Windows95 を指定してみた。

winecfg_ss01.png


~/.wine/drive_c/Prog/rkw/ にカレントディレクトを変更してから、wine roku32.exe で実行。
cd ~/.wine/drive_c/Prog/rkw/
wine roku32.exe

ウインドウが表示された。操作もできた。ファイルを開くこともできたし、名前を付けて保存することもできた。

ただ、ツールバー上にマウスカーソルを合わせると、フォントが豆腐(黒い四角)になってしまった。文字化けを修正しないといけない。

豆腐を直す。 :

winetricks なるツールを使って、必要なフォントを導入することができるらしい。
sudo apt install winetricks

winetricks を実行。
winetricks

Select the default wineprefix を選んでから、Install a font を選択。fakejapanese その他のソレっぽいものを選択してインストール。vlgothic, ipamona, takao, tahoma 等々も選択。何度かエラーが出るけれど、何度も実行していたら、いつのまにか豆腐が直ってくれた。

ただ、GUIで操作すると、一々エラーが出てきたときにダイアログをクリックしないといけないのが面倒臭い。winetricks の後にフォント種類を指定してフォントをインストールしたほうが楽。以下のページによると、corefonts, fakejapanese, cjkfonts を入れるだけでも違うらしい。

_ubuntu20.10 でWine6.4を動かす - Qiita
winetricks corefonts
winetricks fakejapanese
winetricks cjkfonts

winetricks fonts list と打てば、インストールできるフォント種類の一覧が表示される。

とりあえず、後から以下を指定してみた。cjkfonts を最後にインストールすると、フォントサイズが小さくなってしまう。fakejapanese* を最後にインストールしたほうが良さそう。
winetricks ipamona
winetricks vlgothic
winetricks takao
winetricks fakejapanese_ipamona
winetricks fakejapanese_vlgothic

実行用のシェルスクリプトを作成。 :

六角大王を起動するために、一々フォルダを辿っていくのは面倒臭いので、~/bin/rkw というシェルスクリプトを作成して実行できるようにする。内容は以下。
#!/bin/sh
cd /home/(YOUR_ACCOUNT)/.wine/drive_c/Prog/rkw
wine roku32.exe

実行権限をつけておく。
chmod +x ~/bin/rkw

これで次回からは rkw と打つだけで実行できるはず。

Ubuntu 22.04 LTS でもインストールしてみた。 :

サブPC(実機。CPU : AMD A8-3850)上で動かしている Ubuntu Linux 22.04 LTS + xubuntu-desktop (Xfce) でも、Wine をインストールしてみた。

ただし、こちらは Ubuntu Linux の公式リポジトリ版 Wine をインストールした。

$ sudo dpkg --print-architecture
amd64

$ sudo dpkg --print-foreign-architectures
i386
sudo dpkg --add-architecture i386
sudo apt install wine32 wine64 winetricks

export WINEARCH=win32 winecfg を実行したら、Wine 6.0.3 と表示された。ちょっと古い版らしい。

winetricks を実行して、各種フォントをインストール。

六角大王フリーソフト版の解凍その他は前述のソレと同じ。wine roku32.exe で実行。

以下、証拠画像。六角大王フリーソフト版 5.25 Windows用が、Ubuntu Linux 22.04 LTS + Wine 6.0.3 上で動いている。

ubuntu2204_wine603_ss01.png

ただ、よく見ると、内部のウインドウの右上のアイコンがおかしい。最小化、最大化、閉じる等のアイコンではなく、謎の文字が表示されてしまっている。

Wineのバージョンが古いせいだろうか。公式リポジトリ版の Wine 6.0.3 ではなく、比較的新しい版、7.0.1 を使ってみる。

公式リポジトリ版 Wine をアンインストール。設定フォルダも削除。
sudo apt purge wine wine32 wine64 winetricks
sudo apt autoremove
rm -rf ~/.wine

比較的新しい版のインストールは以下。

_Ubuntu WineHQ Repository - WineHQ Wiki

UbuntuのバージョンによってURLが違ってくるので注意。以下は Ubuntu 22.04 LTS 用。
sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
sudo apt install --install-recommends winehq-stable

もし、アンインストールしたくなったら、以下が参考になりそう。

_Wine 5 のインストール(Ubuntu 上)

Xサーバ経由で利用。 :

サブPC (Ubuntu Linux 22.04 LTS) に MobaXterm でアクセスして、Linux + Wine 上で動いてる六角大王フリーソフト版を、Windows10 x64 22H2 の画面にXサーバを通じて表示して操作することもできた。

ただ、以下のエラーメッセージが大量に表示されてしまう。
Xlib:  extension "MIT-SHM" missing on display "localhost:10.0".

ググったところ、SHMというのは共有メモリのことで、XクライアントとXサーバが同じPC上で動いてるときは共有メモリを利用して処理を高速化できるのだとか。しかし、ネットワークを介して処理する場合は共有メモリなんて使えないので、その場合は利用しない状態で動く…らしいのだけど、Wineは処理を高速化するために問答無用で MIT-SHM を使おうとしてこういうメッセージが出てくるらしい。

Wine関連のフォーラムでは、2009年頃から「こういうメッセージが出てくるんだけどどうしたらいいの?」と質問が出ていて、その都度「--without-xshm をつけて全部無効にしてビルドしなおせ」と冷たく返されて終わってしまう模様。

_Wine and XShm support
_[Bug 23235] If Xserver does not suppoer MIT-SHM, log get spammed

余談。 :

六角大王フリーソフト版と、六角大王Super6を比較してみたけれど。六角大王フリーソフト版の基本機能は、六角大王Super6 において、マンガモードと対称編集モードに分かれてしまったように見えた。フリーソフト版のほうが使いやすいという感想もなんとなく分かる。元々一つになっていた機能が分割されてしまったので、それぞれのモードが劣化版に見えてしまう可能性は否定できない。

とりあえず、Linux + Wine 上で六角大王フリーソフト版が動かせそうだと分かったので、「どうしてもあのモデリング感覚がいいのじゃ」という人は、そういった環境を用意して使い続けるのもアリかも。

仮想PC + Windows95/98 は、そもそも Windows95/98 が有償で、しかも今では入手困難と言うハードルがあるけれど。Linux なら無料で利用できるし、今でも入手可能なので、誰でも試せるはず。

*1: 2022/11/23追記。sudo update-alternatives --display lha と打ったら、/usr/bin/lha は /usr/bin/lhasa にリンクされてた。

#2 [linux][ubuntu][cg_tools] Linux + Wine で G.CREW 5 を試用してみた

せっかく Wine を触ってみたことだし、他のアプリも動くかどうか試してみたいなと。そこで、Ubuntu Linux 22.04 LTS + Wine 7.0.1 上で Windows 95/NT時代のドローソフト、G.CREW 5 が動くかどうか試してみた。ちなみに G.CREW 5 は、めちゃくちゃ大昔に購入したものの、ほとんど使わずに放置してた。そもそも今時のOS上では動作しないし。

_メッツ、「PAINT SHOP PRO」などソフト3種の新バージョンを発売

1997年発売ということは、まだ Windows98 すら出てきていない時代のソフトということになるのだろうか。

G.CREW 5 のセットアップCD-ROMのisoを Ubuntu Linux 22.04 LTS にコピーして、/media/iso にマウント。
sudo mkdir /media/iso
sudo mount -o loop -t iso9660 /home/pub/iso/GCREW5.iso /media/iso

winecfg を起動したら、D: に /media/iso が既に割り当てられていた。

gcrew5_on_wine_ss01.png


winecfg を終了してから、wine explorer を実行。マイコンピューター → D: → setup.exe をダブルクリックしたところ、G.CREW 5 のセットアッププログラムが起動した。

gcrew5_on_wine_ss02.png

gcrew5_on_wine_ss03.png


「G.CREW 5」というロゴをクリックすると、G.CREW 5 のセットアッププログラムが起動した。インストール作業を続行。

インストール後、winecfg を起動して、アプリケーションを追加。GCREW32.EXE に Windows95 を割り当てた。

gcrew5_on_wine_ss04.png


Ubuntu のデスクトップのスタートメニューから、Wine → G.CREW Ver5.0 を選んで起動。

gcrew5_on_wine_ss05.png


起動した。一見するとそれっぽく動いてる。

gcrew5_on_wine_ss10.png


しかし、サンプルデータを開いてみたら、ちょっと妙な結果になった。

gcrew5_on_wine_ss11.png

gcrew5_on_wine_ss12.png

表示倍率が違うだけなのに、ロゴの表示位置がずれてしまっていることが分かるだろうか…? 更に拡大表示すると、位置がますますずれて、ロゴが完全に画面外に消えてしまった。

そんなわけで、Linux + Wine + G.CREW 5 は、ある程度は動くけど、完全に正常動作するわけでもなさそうだなと分かった。

2022/11/23(水) [n年前の日記]

#1 [windows] Windows98 が VirtualBox 7.0 で正常動作しない

Windwos98 FE (First Edition。SEではないバージョン)が、Windows10 x64 22H2 + 仮想PC VirtualBox 7.0.4 r154605 上で正常動作しない状態になってしまった。

症状としては、エクスプローラを使おうとするとエラーが出て不正終了する。例えば、マイドキュメントアイコンをダブルクリックするとエクスプローラが開くはずだけど、エクスプローラが開くと同時に、MSHTML.DLL、JSCRIPT.DLL、KERNEL32.DLL 等がエラーを出したり、あるいは開いた直後はエラーを出さなくてもフォルダ階層を辿ってるとエラーが出て不正終了してしまう。

vbox_win98_error_on_win10_ss1.png

使ってるメインPCのCPUは AMD Ryzen 5 5600X なのだけど、やはり Ryzen のせいだろうか…。Ryzen + VMware / VirtualBox + 古いOS (Windows95/98等)は、動かないという話をよく見かけるわけで…。Ryzen には仮想PC関係のバグがあって、Windows98 を使おうとすると、そのバグを踏むらしい…。

一応、VirtualBox側の設定を ―― 仮想PCの設定 → システムで、「ネステッド〜」とついてるものは無効にしてある。
CPUマスク云々を設定すると状況が変わるという話も見かけたので、ダメ元で試してみた。

_virtualbox.org - View topic - AMD-V with Ryzen not yet supported?
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "Windows98" --cpuidset 1 00800f11 00000800 56d8220b 078bfbfd
"Windows98" は、仮想PC名。

しかし、結果は変わらず。

Windows98を比較的最近のCPUで動かすために必要になるらしいパッチも当ててみた。

_JHRobotics/patcher9x: Patch for Windows 9x to fix CPU issues

Release から、v0.7.45-beta3 の patcher9x-0.7.45-boot.ima を入手。.ima を .img にリネーム。これがフロッピーディスクのイメージファイルなのだろう。中にはおそらく FreeDOS が入っていて、このフロッピーイメージから起動することもできる。。

VirtualBox側で、仮想フロッピーを指定。
  1. 仮想PCの設定 → ストレージ → コントローラ : Floppy → 空、を選ぶ。
  2. 右側のフロッピーのアイコンをクリック → 仮想フロッピーディスクの選択/作成、を選ぶ。
  3. 追加 → patcher9x-0.7.45-boot.img を選択 → Choose、をクリック。
これで、次回のWindows98起動時、パッチの入ったフロッピー(Aドライブ)から起動する。patch9x.exe を実行して質問に答えていけば、C:\Windows\ に入ってるファイルにパッチが当たる…はず。

しかし、結果は変わらず。相変わらずエクスプローラを起動するとエラーが出る。VMware では効果があったという話を見かけたけれど、VirtualBox では効果が無いのかもしれない。

これはどうやら、CPU に AMD Ryzen を使っている環境では、Windows98等の古いOSを仮想PC上で使えないと思っておいたほうがいいのかもしれない。いや、Intel製CPUも、最近の世代はダメらしいけど。

もっとも、それは VMware や VirtualBox を使おうとしたときの話で、例えば PCem、86Box、DOSBox 等なら、Windows98 も動く。その代わり動作が重いけど。

#2 [windows][pc] DOSBox-Xを試用

DOSマシンをエミュレートする DOSBox というソフトがあるのだけど、その DOSBox を魔改造した DOSBox-X というソフトがあるらしい。 色々と機能強化されてるらしい。

これで Windows98を動かせないものかなと興味が湧いた。自分のメインPCのCPUは AMD Ryzen 5 5600X なのだけど、Ryzen は VMware/VirtualBox上で、Windows98 等の古いOSがまともに動かせないわけで…。

動作確認環境は Windows10 x64 22H2。

ちなみに、起動するとこんな感じのウインドウが表示される。画面が大きいので老眼でも安心。

dosboxx_ss01.png

ちなみに、ビデオ → 出力、でアレコレ選ぶとサイズが変わる。

メイン → 設定ツール、を選ぶと、GUIで設定できる画面になる。

dosboxx_ss02.png

入手とインストール。 :

公式サイトは以下。

_DOSBox-X - Accurate DOS emulation for Windows, Linux, macOS, and DOS

左のほうの、Windows version, 64-bit Setup (Vista+) をクリック。dosbox-x-win64-2022.09.0-setup.exe を入手して実行するとインストーラが起動する。

自分の環境では、D:\home\emu\prg\DOS\DOSBox-X\ にインストールしておいた。

設定ファイルについて。 :

DOSBox-X は、.conf という設定ファイル(テキストファイル)を与えることで、設定が違う状態で起動できるらしい。デフォルトでは dosbox-x.conf を読み込む模様。

以下、起動時の指定例。
dosbox-x.exe -conf dos50.conf
dosbox-x.exe -conf win98.conf

とりあえず、dosbox-x.conf をコピー・リネームして残しておいたほうが良さそう。

日本語キーボード配列について。 :

DOSBox-X の起動直後は英語キーボードの配列になっている。keyb jp106 と打ち込むと、日本語キーボードの配列になる。

起動直後から日本語キーボード配列にしたいなら、.conf の最後のほうに [autoexec] と言うセクションがあるので、そこに以下を追記する。
[autoexec]
# このセクションに記載の行は起動時に実行されます。
@keyb jp106 > nul

以下が参考になりました。ありがたや。

_フリーウェア (MS-DOS 用)
_Atsushi's Homepage ? PC-98を仮想化する

参考ページ。 :

Windows98 のインストール手順は、以下で解説されてる。英文。

_Installing Microsoft Windows 98 in DOSBox-X

他に、Windows 1.0x, 2.x, 3.x, 95, 98, ME のインストール手順も掲載されてる。

_Microsoft Windows Installation Guide

#3 [nitijyou] 日記をアップロード

2022/11/06を最後に日記をアップロードしてなかったのでアップロード。

2022/11/24(木) [n年前の日記]

#1 [windows][pc] DOSBox-Xの動作確認

DOSBox-X は、DOSマシンエミュレータ DOSBox の改造版。少し試用してみたものの、何かしらのアプリを動かしてみないとよくわからないなと。

動作確認環境は、Windows10 x64 22H2 + DOSBox-X 2202.09.0。

ひとまず BASIC言語を動かしてみることにする。FreeDOS上で利用できるBASIC言語、Bywater BASIC なるものが公開されていたので、利用させてもらう。

_ibiblio.org FreeDOS 1.3 Updates Package -- Bywater BASIC (Development)

bwbasic.zip を入手。解凍すると、DEVEL\ 以下に BWBASIC\ があって、その中に BWBASIC.EXE その他が入ってる。

Windows側に、DOS関係のプログラムを入れるディレクトリを作成しておく。今回は、D:\dos というディレクトリを作って、その中に BWBASICディレクトリを移動した。

DOSBox-X を起動。

dosboxx_dos50_ss01.png


Windows側が管理してるディレクトリを、DOSBox-X側でドライブとして認識させるために、mount コマンドを使う。今回は、DOSBox-X 側の Aドライブとして、Windows側の D:\dos\BWBASIC を割り当てる。
mount a D:\dos\bwbasic

カレントドライブをAドライブに変更して、ファイル一覧を表示。
A:
dir
BWBASIC.EXE その他が入ってることが確認できる。

dosboxx_dos50_ss02.png


BWBASIC.EXE を実行。画面一杯にBASIC名が表示されて、「bwBASIC: 」とプロンプトが出て入力待ち状態になる。

dosboxx_dos50_ss03.png


以下を打ち込んで動作確認。
10 for i=0 to 10
20 print i
30 next

list でソースを確認。run で実行。数値が0から9まで表示された。

bye と打てば、BWBASIC を終了できる。

dosboxx_dos50_ss04.png


z: と打って、カレントドライブをZドライブにしてから、Aドライブをアンマウント(マウント解除)。mount に 「-u」をつければ、アンマウントができる。
mount -u a

そんなわけで、一応 BASIC言語は動いた。

他に良さそうなDOSアプリはあるだろうか…? 以下を眺めたら何か見つかるかも…。

_Interesting DOS programs - Home Page
_ibiblio.org FreeDOS 1.3 Updates -- Index

NEC PC-9801として動かしてみる。 :

DOSBox-X は、NEC PC-9801 のエミュレータとして動かすこともできるらしいので、そちらも試してみる。

DOSBox-X 起動後、F11キー + Cキーを押すと設定ツールが開く。

マシンの種類を、PC/AT互換機から NEC PC-9801 に変更する。Main → machine → svga_s3 から pc98 に変更。OK → OK → 保存 → 保存後に再起動。

再起動後、画面に、「DOSBox-X は日本の NEC PC-98 エミュレーションモードで動作中です。」と表示された状態になる。

dosboxx_pc98_ss01.png


懐かしのドライブゲームを動かしてみる。PC-9801 + MS-DOS用の、TURBO FreeWay というアプリを入手。

_TURBO FreeWayの詳細情報 : Vector ソフトを探す!

tfway115.lzh を入手して解凍。中には以下の3つのファイルが入ってる。
README.DOC
TFWAY.DOC
TFWAY.EXE

D:\dos\pc98\TFWAY というディレクトリを作ってその中に上記ファイルをコピーしておく。

DOSBox-X で、件のディレクトリをマウント。
mount a D:\dos\pc98\TFWAY
A:
dir

dosboxx_pc98_ss02.png


tfway.exe、もしくは、tfway.exe -c -x を実行。
  • 「-c」をつけるとカーブを自動で曲がる。
  • 「-x」をつけると当たり判定が無くなる。
  • tfway.exe -? と打てばヘルプが表示される。
  • タイトル画面が出たら、カーソルキーの上下でメニューを選択してEnterで決定。
  • アクセルはSHIFTキー。ブレーキはSPACEキー。カーソルキーの左右がハンドル操作。
  • 終了はSTOPキーだけど、Windows機 + DOSBox-X の場合、pauseキーが PC-9801 の STOPキーとして割り当てられてる模様。

dosboxx_pc98_ss03.png

dosboxx_pc98_ss04.png


そんなわけで、PC-98モードでも動作した。

2022/11/25追記。 :

せっかくだから動作画面をキャプチャして追加しておいた。

2022/11/25(金) [n年前の日記]

#1 [windows][pc] DOSBox-X上でWindows98をインストールできるか実験中

Windows10 x64 22H2 + DOSBox-X 2022.09.0 上で、Windows98 FE (First Edition、SEではない)をインストールできないか試しているところ。

一度はインストールできたのだけど、IE6 SP1 をインストールしたら、その後エクスプローラが開けなくなってしまって…。必ず MSHTML.DLL がエラーを出して、エクスプローラが強制終了されてしまう。仕方ないのでHDDイメージ自体を削除して、最初から再インストールしているところ。

#2 [anime] 「劇場版 ヴァイオレット・エヴァーガーデン」を視聴

金曜ロードショーで放送されていたので視聴してみた。初見。小説を原作としたアニメ映画。京都アニメーション作品。例の事件が起きた時期に制作中だった作品だそうで、一時期は完成や公開が危ぶまれていたという話も見かけた。

感想としては…。素人目には映像のクオリティは相変わらずに見えた。こんなに線の多いキャラを、よくまあここまで描くなと…。

話というか脚本は、TVアニメ版の主軸の話に決着をつけるのがメインのようで…。誰かが「ファンサービス作品」と称していたけど、たしかにそういう面が強そうな映画だなと。TVアニメ版を見ていない人がコレを見て楽しめるかどうかは正直難しそうな感じもした。

完成しただけでも褒められてしかるべき映画だろうと思いつつ、しかし、この作品、どうも基本設定が一般向けではないというか…。この作品に限らず、京アニ作品は一般向けとして売り込めそうなものがほとんど無いあたり、もったいない気もする。もっとも、例えば ufotable の「鬼滅の刃」、あるいは新海誠監督作品の「君の名は。」が商業的にあそこまで成功したことを思い返すと、「一般向けとはなんぞや?」と悩んでしまうのだけど。

2022/11/26() [n年前の日記]

#1 [windows][pc] DOSBox-X上でWindows98をインストール

Windows10 x64 22H2 + DOSBox-X 2022.09.0上でWindows98 FE (First Edition) をインストールできたので手順をメモ。

以下は証拠画像。DOSBox-X 上で Windows98 が動いていて、更に、Windows98上で、Windows95時代のドローソフト、G.CREW 5 を動かしている。

dosboxx_win98_ss01.png

自分のメインPCは、CPU が AMD Ryzen 5 5600X なので、VMware + Windows98 や VirtualBox + Windows98 が正常動作しない。DOSBox-X、PCem、86Box なら、動作は遅いけど一応 Windwos98 も動いてくれる。

マウスキャプチャについて。 :

作業前に把握しておいたほうが良さそうな点をメモ。

DOSBox-X 2022.09.0 + Windows98 のウインドウ内をクリックすると、マウスカーソルの動きがキャプチャされて、ウインドウ内でしかマウスカーソルを動かせなくなる。

Windows10側にマウスカーソルを戻したい時は Ctrl + F10 キーを叩く。DOSBox-X のウインドウタイトルバーにも、「Ctrl+F10 releases mouse」と表示されている。

ちなみに、PCem の場合、Ctrl + End キーがマウスカーソルの解放になってる。

設定ファイルを調整。 :

以下を参考にして、Windows98用の設定ファイル、win98.conf を作成する。

_Installing Microsoft Windows 98 in DOSBox-X

設定ファイル win98.conf を指定して、DOSBox-X を起動。
dosbox-x.exe -conf win98.conf

exit と打てば終了できる。

NIC NE2000を有効にしておく。 :

DOSBox-X + Windows98 でネットワークを利用可能にするために、DOSBox-X が内蔵してる NIC (NE2000互換) の機能を使えるようにするのだけど、そのためには、Windows10 に Npcap というプログラムをインストールして、Windows10が使ってるNICの種類を調べないといけない。

_Npcap: Windows Packet Capture Library & Driver
_Windows 10でのWinPcap代替 = Npcap - 滴了庵日録

元々は WinPcap というプログラムが必要だけど、WinPcap は Windows10上で動作が不安定なので、代替として Npcap が使われている。Npcap のインストール時に、「Install Npcap in WinPcap API-compatible Mode」にチェックを入れておくことで WinPcap の代替になる。

今回は Npcap 1.71 installer (npcap-1.71.exe) を使ってインストールした。

ちなみに、Wireshark というツールをインストールする際にも、追加で Npcap をインストールできるらしいけど。

_「Wireshark」ネットワークプロトコルアナライザー - 窓の杜

先にこちらを試してみたら、Windows10 x64 22H2 がブルースクリーンになった…。Npcap だけインストールしておくことにする。


さておき。Npcap インストール後、DOSBox-X の設定ファイル (.conf) を確認。NE2000関係の設定をしておく。IRQ : 10, Address : 0300 - 031F で使うことを前提にする。
[ne2000]
ne2000  = true
nicbase = 300
nicirq  = 10
macaddr = AC:DE:48:88:99:AA
backend = pcap

[ethernet, pcap]
realnic = list
timeout = default
backend = pcap、realnic = list を指定しておく。もし、この指定で動かない場合は、backend = slirp にして試すらしい。

DOSBox-X を起動。ヘルプ → ネットワークインターフェースの一覧、を選択。大量にリストが表示される。このリスト表示をするために、Npcap が必要になる

dosboxx_ne2000_list_ss01.png

dosboxx_ne2000_list_ss02.png

この中に、NE2000 として利用できる指定があるはずだけど、この見た目では把握しづらい…。コピペもできない…。

DOSBox-X の設定ファイル (.conf) 内でログファイルを指定して、そちらにログを残してみることにする。
[log]
logfile     = D:\home\emu\prg\DOS\DOSBox-X\log.txt
debuggerrun = debugger

DOSBox-X に --debug をつけて起動することで、ログファイルに大量の情報が出力される。
dosbox-x.exe -conf win98.conf --debug

log.txt の中から抜粋してみる。
Network Interface List
-------------------------------------------------------------
01 rpcap://\Device\NPF_{B2D2AF0E-CDC8-4ED1-BDB8-A7D15529672D}
    (Network adapter 'WAN Miniport (Network Monitor)' on local host)
02 rpcap://\Device\NPF_{88B4CB1A-33BE-446E-B94A-5DF8C71915BD}
    (Network adapter 'WAN Miniport (IPv6)' on local host)
03 rpcap://\Device\NPF_{FB7380C5-C893-4AEE-81D2-B5D21F9544BB}
    (Network adapter 'WAN Miniport (IP)' on local host)
04 rpcap://\Device\NPF_{220C3716-A969-46A3-82C3-05E21E6CA01B}
    (Network adapter 'VMware Virtual Ethernet Adapter for VMnet8' on local host)
05 rpcap://\Device\NPF_{785F34D2-08FB-4109-B329-902FF7871CE3}
    (Network adapter 'VMware Virtual Ethernet Adapter for VMnet1' on local host)
06 rpcap://\Device\NPF_{D66A8829-34D7-4868-A780-50C65A17D269}
    (Network adapter 'VirtualBox Host-Only Ethernet Adapter' on local host)
07 rpcap://\Device\NPF_{EF33C528-569F-48BA-9222-527CA8C007CE}
    (Network adapter 'Realtek Gaming GbE Family Controller' on local host)
08 rpcap://\Device\NPF_Loopback
    (Network adapter 'Adapter for loopback traffic capture' on local host)

この中のどれかを指定すればいいらしい。
  • 少なくとも、VMware とか VirtualBox と書いてあるのは違うはず。
  • 大体は、NICに使ってるチップのメーカ名から始まっているのがソレ。
この場合、"Realtek Gaming GbE Family Controller" が該当する。

設定ファイル (.conf) を修正。「realnic = list」となっていた部分を変更する。
[ne2000]
ne2000  = true
nicbase = 300
nicirq  = 10
macaddr = AC:DE:48:88:99:AA
backend = pcap

[ethernet, pcap]
# realnic = list
realnic = "Realtek Gaming GbE Family Controller"
timeout = default

realnic には、数値、もしくはNIC名を記述できる。
realnic = 7
or
realnic = "Realtek Gaming GbE Family Controller"

以下、参考ページ。

_Setting up networking in DOSBox-X

HDDイメージを作成。 :

Windows98をインストールするためのHDDイメージを作らないといけない。DOSBox-X に同梱されてる IMGMAKE というプログラムを使ってHDDイメージを作成する。

今回は、4GB、FAT32のHDDイメージを、Windows10側のストレージ内に D:\dos\hddwin98.img として作成した。
IMGMAKE D:\dos\hddwin98.img -t hd_4gig -fat 32

ちなみに、IMGAMKE と打てばヘルプが出てくる。また、IMGMAKE -examples で、使用例が表示される。

HDDイメージを、DOSBox-X 側のCドライブとしてマウント。「IMGMOUNT ドライブ名 イメージファイル名」でマウントできる。
IMGMOUNT C D:\dos\hddwin98.img

HDDにセットアップファイル群をコピー。 :

Windows98 セットアップCDのiso (W98SETUP.iso) をDドライブにマウント。
IMGMOUNT D D:\iso\WIN98\ISO\W98SETUP.iso

xcopy を使って、セットアップCDからCドライブ(HDDイメージ)内に WIN98ディレクトリをコピー。
XCOPY D:\WIN98 C:\WIN98 /I /E

ちなみに、MSBATCH.INF というファイルを作成して、中にプロダクトキーを書いて、C:\WIN98\ 以下にコピーしておけば、 インストール時のプロダクトキー入力を省略することができる。
[setup]
ProductKey="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"

Windows98をインストール。 :

DOSBox-X を終了して、設定ファイル win98.conf の最後に以下を追加。DOSBox-X 起動直後からCドライブにHDDイメージが割り当てられた状態にしておく。
[autoexec]
@keyb jp106 > nul
IMGMOUNT C D:\dos\hddwin98.img

DOSBox-X を再起動。
dosbox-x.exe -conf win98.conf

カレントディレクトリを C:\WIN98 にしてから setup.exe を実行して、Windows98 をインストールする。インストール先は、デフォルトでは C:\Windows になる。
C:
cd \WIN98
SETUP.EXE

ひょっとすると、途中でキーボードの種類を確定させるために「半角/全角キー」の入力を求められるかもしれない。しかし、DOSBox-X 上では半角/全角キーの入力ができない。その場合、Spaceキーを押して、一旦英語キーとして認識させて作業を進めておいて、Windows98のインストールが終わってからキーボード種類を変更する。

ある程度ファイルコピーがされて再起動がかかったら、一旦 DOSBox-X を終了。win98.conf の最後を修正。「BOOT C:」を追加することで、Cドライブから起動(ブート)するようにしている。
[autoexec]
@keyb jp106 > nul
IMGMOUNT C D:\dos\hddwin98.img
BOOT C:

DOSBox-X を再起動。HDDイメージからWindows98が起動して、初期設定が続行される。
dosbox-x.exe -conf win98.conf

もし、NIC (NE2000) を有効にしてあれば、NICの設定をする画面が出てくる。IRQ : 10、Address : 300-31F を指定。

これで、Windows98 のインストールはできた。この後、パッチ類を当てていくのが面倒…。

IEの入れ方に注意。 :

Windows98 は IE4.0 が同梱されているけれど、IE5.5 SP2 や IE6 SP1 に更新することができる。しかし、手元の環境で、一旦 IE5.5 SP2 に更新してから、更に IE6 SP1 に更新したところ、エクスプローラすら正常に動作しない状態になってしまってハマった。 *1

どうやら、IE4.0 から、いきなり IE6 SP1 に更新したほうが、まだ安定して動作するようだなと…。その状態なら、一応動いてるし…。

もし、IE5.5 SP2 をインストールしてしまったら、IE6 にはアップグレードしないほうがいいのかもしれない。ググってみると、Windows98 + IE6 は不安定(だった)という話もよく見かけるし…。

ビデオドライバをVBEMPにする。 :

DOCBox-X のビデオカード部分には S3 Trio64 が載っていることになっている。Windows98 は S3 Trio64 のビデオドライバを標準で持っているので、特に何もしなくても Windows98インストール時にビデオカードが認識されてドライバが使われる状態になる。

本来、S3 Trio64 はVRAMが2MBまでなのだけど、DOSBox-X のソレは 8MB まで使えるようにしてあって、かつ、ワイドスクリーンにも対応できるように強化してあるらしい。

ただ、Windows98の標準ドライバでは、本来の S3 Trio64 のスペックにしか対応してないので、高解像度の設定もできないし、ワイドスクリーンにもならない。そこで、VBEMP というドライバを使えば、高解像度が使えるようになるのだとか。

_VBEMP 9x Project - Universal VESA/VBE Video Display Driver

140214.zip を入手して解凍。中に入ってる 032MB というフォルダが目的のドライバ。

変更の仕方は以下。

画面の何もないところを右クリック → プロパティ。設定タブ → 詳細。アダプタタブ → 変更。

dosboxx_win98_ss02.png


デバイスドライバの更新ウィザードが出てくるので、「次へ」。

dosboxx_win98_ss03.png


「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。

dosboxx_win98_ss04.png


ディスクの使用 → 参照。

dosboxx_win98_ss05.png


032mbディレクトリを選んで、vbemp.inf を選択して、「OK」。

dosboxx_win98_ss06.png


「VBE Miniport - Standard PCI Graphics Adapter (VGA)」を選んで、「OK」。

dosboxx_win98_ss07.png


「〜選択したドライバを使用しますか?」と尋ねてくるので、「はい」。

dosboxx_win98_ss08.png


次へ → 完了。再起動。

dosboxx_win98_ss09.png

dosboxx_win98_ss10.png


これで、1024 x 768以上の解像度でもフルカラーにしたり、1440 x 900 等のワイド解像度を選べたり等、本来の S3 Trio64 (VRAM 2MB)では無理な設定が使えるようになった。

dosboxx_win98_ss11.png

ただ、VBEMP を使うと、S3 Trio64 の標準ドライバと比べて動作速度は50%ぐらいに落ちるらしい。解像度と速度のトレードオフということかなと。

日本語キーボードに変更。 :

Windows98 が英語キーボードとして認識してしまっているので、日本語キーボードに変更する。デバイスマネージャ経由で、英語キーボードのプロパティを出して、ドライバを更新して変更する。

一応手順をキャプチャしてみた。

マイコンピュータを右クリックして「プロパティ」。デバイスマネージャを選択。キーボード → 101/102 英語キーボード、を選択して「プロパティ」をクリック。

dosboxx_win98_kbd_ss01.png


ドライバ → ドライバの更新。デバイスドライバの更新ウィザードが表示される。次へ。

dosboxx_win98_kbd_ss02.png


「特定の場所にあるすべてのドライバの一覧を〜」を選んで、次へ。

dosboxx_win98_kbd_ss03.png


「すべてのハードウェアを表示」を選んで、「(標準キーボード)」→ 106 日本語 (A01) キーボード (Ctrl+英数)、を選択。次へ。

dosboxx_win98_kbd_ss04.png


「〜このドライバを使用しますか?」に「はい」。

dosboxx_win98_kbd_ss05.png


次へ、をクリックしていく。再起動を求められる。

dosboxx_win98_kbd_ss06.png

dosboxx_win98_kbd_ss07.png


デバイスマネージャで確認すると、日本語キーボードになっている。

dosboxx_win98_kbd_ss08.png

*1: 必ず MSHTML.DLL がエラーを出して、エクスプローラが不正終了、強制終了してしまう。ファイル操作が一切できない状態に陥る。

#2 [nitijyou] 某所に行ってきた

某所から電話でPC相談。Excelから印刷できないとの話。電話だけでは状況が分からなかったので、現場まで電動自転車で行ってきた。16:51-17:24まで作業。詳細はGRPでメモ。

2022/11/27() [n年前の日記]

#1 [windows][pc] PCem V17上で Voodoo Banshee を利用

DOSBox-X と同様に、PC/AT互換機のハードウェアをエミュレーションする PCem というソフトがあって、Windows98 が動かせないか実験していたのだけど。PCem + Windows98 の画面解像度を高く設定できない点が気になって、別のビデオカードを選べないものかと試していた。環境は Windows10 x64 22H2。CPUは AMD Ryzen 5 5600X。

今までは、PCem側のハードウェア設定で、ビデオカードに S3 ViRGE/DX を指定していたけど。この S3 ViRGE/DX は VRAM が最大4MBなので、Windows98 の画面解像度を高くしていくとフルカラーが選べなくなって256色になってしまったりする。本来、1280x1024 まではフルカラーでイケそうなのだけど…。どうも手元の環境では、そうはならない…。

_メルコ、ViRGE/DX搭載の3D対応ウィンドウ・アクセラレーター2機種を発表

VRAMが多いビデオカード種類は無いものかとPCemの設定リスト内を眺めてみたら、3Dfx Voodoo Banshee も選べることに気づいた。PCem V17 で新規にサポートされていたらしい。Voodoo Banshee は VRAM が 16MBあるので、VRAMサイズだけなら高解像度でもフルカラーが使えるはず。

_PCem
1st December 2020 : PCem v17 released. Changes from v16 :

* New machines added - Amstrad PC5086, Compaq Deskpro, Samsung SPC-6033P, Samsung SPC-6000A, Intel VS440FX, Gigabyte GA-686BX
* New graphics cards added - 3DFX Voodoo Banshee, 3DFX Voodoo 3 2000, 3DFX Voodoo 3 3000, Creative 3D Blaster Banshee, Kasan Hangulmadang-16, Trident TVGA9000B
* New CPUs - Pentium Pro, Pentium II, Celeron, Cyrix III
* VHD disc image support
* Numerous bug fixes
* A few other bits and pieces

Thanks to davide78, davefiddes, Greatpsycho, leilei, sards3, shermanp, tigerforce and twilen for contributions towards this release.

PCem より

ビデオカード変更の流れ。 :

Voodoo Banshee のビデオドライバは以下から入手してみた。

_3dfx Voodoo Banshee Drivers

voodoo-banshee-10400.zip を入手して解凍。Voodoo-Banshee-10400.exe が得られる。Windows98 上で実行すると解凍される。任意の場所に解凍。

PCem V17 + Windows98上で、ビデオカード(ディスプレイアダプタ)を変更してみる。

まずはWindows98上で、ディスプレイアダプタを、S3 ViRGE/DX から、最低限の標準的なアダプタに変更する。
  1. 画面のプロパティ → 設定 → 640x480, 16色に設定。OS再起動。
  2. 画面のプロパティ → 設定 → 詳細 → アダプタ → 変更。「標準ディスプレイアダプタ(VGA)」に変更。Windows98を終了。

pcemv15_w98_banshee_ss01.png

pcemv15_w98_banshee_ss02.png

pcemv15_w98_banshee_ss03.png


PCem V17の設定で、「3DFX Voodoo Banshee (reference)」に変更。Windows98を起動。

pcemv15_w98_banshee_ss04.png


画面のプロパティ経由で、ディスプレイアダプタを変更。解凍したビデオドライバの .inf を指定して、「3dfx Voodoo Banshee」に変更。再起動。

pcemv15_w98_banshee_ss05.png

pcemv15_w98_banshee_ss06.png

pcemv15_w98_banshee_ss07.png


3DFX Voodoo Banshee に切り替えることができた。画面解像度を高くしてもフルカラー表示が選べる。

pcemv15_w98_banshee_ss08.png


ただ、ビデオドライバが古いので、16:9 や 16:10 の画面解像度は選べない。

VBEMP 9x ドライバが Voodoo3 2000 で動作したという報告もあるので、そちらが動けば選べる画面解像度が増えそうだけど…。

_VBEMP 9x Project - Universal VESA/VBE Video Display Driver

PCem V17 のビデオカード設定を「3DFX Voodoo3 2000」にして試してみたら、画面が縞々状態になってしまった…。ドライバインストール直後は正常に表示されてたけど、画面解像度と色数を変更した途端におかしくなったあたり、何か制限がありそうな気もする。

#2 [anime] 「ルパン三世 愛のダ・カーポ 〜FUJIKO'S Unlucky Days〜」を視聴

BS12で放送されていたので視聴してみた。ルパン三世のTVSP。

本編でナベシン監督(ワタナベシンイチ監督)っぽい見た目のキャラが出てきて、気になってググってみたらナベシン監督作品だった…。納得。キャラの声は監督本人じゃなくて千葉繁さん。最初から最後まで大活躍で、まるで千葉繁さんのために作ったような作品だなと…。

不二子が 記憶喪失になることで、滅多に見られない不二子像が提示され続けるあたりは見所だった気がする。ただ、全般的に、あまり面白いと思える作品でもなく…。この監督さんが手掛けたのに、何故…。

「このすば」の金崎貴臣監督が担当した作品もそうだったけど、ギャグアニメが得意な監督さんがルパン三世を手掛けても、えてしてイマイチな出来になるのは何故なのだろう。シリーズのイメージを壊してはいけない等のプレッシャーでもあるのだろうか。ちょっとアレなことをするとプロデューサーから「ルパンはこんなことをしない」とクレームでも入るのだろうか…。それとも逆に、ルパンなら何でもアリというイメージが見る側にあって、何をやっても驚きが感じられなくなる、とか…。

2022/11/28(月) [n年前の日記]

#1 [pc] CPUについて調べてた

Intel製CPU i3-6100T のスペックについて調べてた。手持ちのサブPC群のCPUと比べて、性能としては上なのか下なのか。

もしかすると弟から、i3-6100T + M/Bを貰えるかも、という話が出てきて、さて、そのCPUはどのくらいの性能なのだろうと気になってきた。2コア4スレッド, 3.2GHz, TDP 35W, Skylake(第6世代) らしいけど…。

i5-2500 > i3-6100T > A8-3850 > Core2Duo E8400 > A6-3500、という状態らしいなと…。

少し前の世代のIntel製CPUなら、VMware, VirtualBox + Windows98 等も正常に動くという話を見かけたので、昔のOSを仮想PC上で動かせる環境として使えそうな気がする。いや、そのあたり、今も i5-2500上で試せばいいのだけど。

それと、LuxCoreRender というレンダラーは、AVX や SSE4_2 を要求するので、Intel製CPUか、AMD APU第二世代以降じゃないと動かない制限があったはず。そのあたりも改善しそうだなと。もっとも、blender + Cycles + GPUでレンダリングしたほうが速いので、LuxCoreRender を使う場面って無さそうだけど…。

_mieki256's diary - LuxCoreRender 2.3 Linux版をビルドしようと試みたけど上手く行かない
_mieki256's diary - AMD CPUのSIMD対応状況を調べたり
_mieki256's diary - Linux上でLuxCoreRenderを動かしてみたかったけどやっぱりダメだった

2022/11/29(火) [n年前の日記]

#1 [nitijyou] 飼い犬を獣医さんに診てもらった

数日前から、飼い犬の首のあたりに妙なできものがあることに妹が気づいていたのだけど、今日の午前中、親父さんが近所の動物病院に犬を連れていって診てもらったそうで。なんでも、腫瘍(がん)ができてしまっているらしい…。12/02 に手術をすることになった模様。

飼い犬の、首のあたりの毛を少し刈り取って、患部を目視できる状態になってたけど、見るからに皮膚がヤバそうな状態…。痛々しい…。

ググってみると、犬や猫ががんになる事例はかなりあるっぽい。痛々しい写真が多々。

2022/11/30(水) [n年前の日記]

#1 [windows] PowerPlanSwitcherを再インストールした

メインPC、Windows10 x64 22H2 + Ryzen 5 5600X上で、ネットサーフィン程度の作業なら電源プランを省電力にして使ってみてもいいのではないかと思えてきた。これからは電気料金が高くなっていくことだし…。

そこで、即座に電源プランを切り替えられるように、PowerPlanSwitcher という、電源プラン切替ソフトをインストールした。Version は、0.4.4.0 となっている。

_petrroll/PowerSwitcher: Power plan switcher for Windows 10. Heavily inspired by EarTrumpet.

githubにソースはあるけど、導入は Microsoft Store経由で行う。Microsoft Storeで、「powerplanswitcher」で検索。

実行すると、タスクトレイにアイコンが表示される。アイコンをクリックすると、現座登録済みの電源プランの一覧が表示されて、クリックするとその電源プランに変更することができる。

電源オプションをスタートメニューに登録。 :

コントロールパネルの電源オプション(電源プラン変更画面)へのショートカットもスタートメニューに登録しておいた。
  1. コントロールパネルを表示。
  2. 「システムとセキュリティ」をクリック。
  3. 「電源オプション」の上で右クリック。
  4. 「スタートメニューにピン留めする」を選べば登録できる。
電源プラン切替ソフトをわざわざ導入しなくても、これだけで良さそうな気もする…。

各電源プランへのショートカットファイルを作成する方法もあるらしいけど、今回はそこまでやらなかった。

省電力プランにした結果。 :

Windows10 x64 22H2 + Ryzen 5 5600X で、電力プランを「省電力」にしたところ、タスクマネージャー/パフォーマンスの表示では、CPUクロックが1.7GHz固定になったように見えた。「バランス」にすると4.38〜4.43GHzをウロウロするので、省電力にすればたしかにクロックは落ちる模様。ネットサーフィンぐらいなら体感では問題無い印象。

#2 [anime] 「カウボーイビバップ 天国の扉」を視聴

先々週にBS12で放送されていたソレを録画していたので視聴。TVアニメ「カウボーイビバップ」の劇場版。

作画がスゴイ…。スタッフロールを眺めると、錚々たるメンバー。「カウボーイビバップ」を作っていたサンライズのスタジオが独立してボンズになるわけだけど、ボンズとしての初仕事相当だったとどこかで聞いた気がする。そのせいもあって、ここまで気合いが入ったのだろうか。いや、ボンズ作品はどれも作画面は気合いが入ってるよな…。

たしかTVアニメ版では、 主人公の一人が死んでしまったり、メインキャラが解散状態になっていた記憶があるわけで、そんな展開を見せてしまった後で劇場版を作るわけだから…。エピソードの時系列としては、TVアニメ版のラストより前の時期として設定してるらしいけど…。外伝として全然関係ないキャラを出すわけにもいかんだろうし、一旦区切りをつけてしまった作品で続編を作るのは難しいよな…。

押井守監督曰く、「キャラ、ストーリー、世界観。3つのうちどれかが成立してれば映画になる」とのことだけど。このアニメは、どれを満たしていたのだろうかとそのへんなんだか考え始めてしまった。キャラと世界観だろうか…。いや、そのあたりはTVアニメ版で培ったイメージを再利用してるわけだから、映画として成立してるかどうかはビミョーなのかもしれない。そもそも基本設定を知らない人が、いきなりこの映画を見て分かるのかと考えるとちょっと怪しい気もする。

以上、30 日分です。

過去ログ表示

Prev - 2022/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project