mieki256's diary



2023/10/16(月) [n年前の日記]

#1 [dxruby] Ruby 3.2.2 x86 上で DXRuby を動かせるか試してみた

Windows10 x64 22H2上で、Ruby 3.2.2 x86 (RubyInstaller2, DevKit付き)をインストールしたけれど。その後、gem を使ってインストールした2Dゲーム制作ライブラリ DXRuby が動かなかった。

> ruby --version
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [i386-mingw32]

> gem install dxruby
Fetching dxruby-1.4.7.gem
Successfully installed dxruby-1.4.7
Parsing documentation for dxruby-1.4.7
Installing ri documentation for dxruby-1.4.7
Done installing documentation for dxruby after 0 seconds
1 gem installed

今現在、gem でインストールできる DXRuby 1.4.7 は Ruby 2.5 - 3.0 x86 までの対応なので ―― Ruby 2.5 - 3.0 x86 の dxuby.so は同梱されているけれど、Ruby 3.2.2 x86 用の dxruby.so は同梱されていないから動かないのは当たり前なのだけど、手元の環境で Ruby 3.2.2 x86 用の DXRuby をビルドしたら動くのだろうかと気になったので、ビルドできるか試してみることにした。

ビルド手順 :

ビルド方法は、公式配布サイトの README.md で説明されてる。

_GitHub - mirichi/dxruby: gem作成用。ソースもここで管理しております。

説明に従って作業してみた。

まず、コンパイラ込み(DevKit付き)の RubyInstaller2 をインストール。これはもうインストール済み。

作業用に、任意のディレクトリを作成して、その中に入る。今回は、D:\Ruby\builds\dxruby\ というディレクトリを作って、その中に入れることにした。
mkdir D:\Ruby\builds\dxruby
cd /d D:\Ruby\builds\dxruby

git がインストール済みで使える環境なら、git clone で dxruby のリポジトリを入手。
git clone https://github.com/mirichi/dxruby.git

もしくは、github から dxruby のリポジトリを zip でダウンロードして解凍してもいい。右上の「Code」というボタンをクリックすれば、「Download ZIP」というリンクがあるので、それをクリックすれば dxruby-master.zip が入手できる。

ソース、というか extconf.rb があるディレクトリに移動する。ext\dxruby\ が対象のディレクトリ。
cd dxruby\ext\dxruby

コンパイラを使える状態にする。以下を入力。大量に色々表示されるけどキニシナイ。
ridk enable

Makefile を自動で生成する。Makefile は、ビルド処理手順が書かれているファイルのこと。
ruby extconf.rb
> ruby extconf.rb
checking for -ldxguid... yes
checking for -ld3d9... yes
checking for -ld3dx9_40... yes
checking for -ldinput8... yes
checking for -ldsound... yes
checking for -lgdi32... yes
checking for -lole32... yes
checking for -luser32... yes
checking for -lkernel32... yes
checking for -lcomdlg32... yes
checking for -lwinmm... yes
checking for -luuid... yes
checking for -limm32... yes
checking for d3dx9.h... yes
checking for dinput.h... yes
checking for rb_enc_str_new()... yes
creating Makefile

「creating Makefile (Makefile を作ったよ)」と言っているので、make と打ってビルドする。
make
色々な警告が表示されるけど、あくまで警告で、エラーではないのでキニシナイ。

ビルドが成功すれば、カレントディレクトリ直下に dxruby.so が生成される。
> dir *.so /b
dxruby.so

Ruby 3.2.2 x86 に DXRuby (dxruby.so) をインストールする。(しかるべき場所にコピーする)
make install
> make install
/usr/bin/install -c -m 0755 dxruby.so /D/Ruby/Ruby32-x86/lib/ruby/site_ruby/3.2.0/i386-msvcrt

dxruby.so が、(Ruby 3.2.2 x86インストールフォルダ)\lib\ruby\site_ruby\3.2.0\i386-msvcrt\ 以下にコピーされた。
> dir D:\Ruby\Ruby32-x86\lib\ruby\site_ruby\3.2.0\i386-msvcrt\*.so /b
dxruby.so

この状態で、手元にある DXRuby のサンプルを動かしてみたところ、大半のサンプルは動いてくれた。

ということで、Windows10 x64 22H2 + Ruby 3.2.2 x86 (RubyInstaller2, DevKitつき) 上でも、自分でビルドすれば DXRuby が動きそうだと分かった。

注意点 :

Windows10 は DirectX 9.0 が標準で入ってないので、そのままでは DXRuby も動かないそうで。別途 d3dx9_40.dll を入手して、しかるべき場所にコピーしないといかんらしい。そのあたりの手順は以下で解説されているので参考に。

_Windows10では、DXRubyを動かすのに d3dx9_40.dllが必要 - Issue #3 - mirichi/dxruby - GitHub

あるいは、以下から入手できそう。

_DXRubyの実行環境構築 - EastBack Archives
_Ruby実行環境のダウンロード - EastBack Archives

以上です。

過去ログ表示

Prev - 2023/10 - 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 31

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project