Darkside(リンクエラー修正しました)

2015年02月の記事

<< 前のページ

2015年2月28日(土) 20:06

コンパイル成功

 make を実行すると、いきなりエラーが出た。gcc が実行されるはずなのに、代わりに g++ が実行されている。そして、インクルードファイルが見つからない。インクルードPATH は、パラメーターで指定されるはずだ。ところがパラメーターが何も指定されないまま実行されている。これでは見つかるわけがない。
 この訳の分からない現象は、どういうことだ?

 makefile を調べると、ソースファイルが *.cpp なのに *.c と記述されている。そのため変換規則に引っ掛からず、gcc は実行されないわコマンドラインパラメーターは挿入されないわ・・・
 だが、この makefile は自作ではない。ソースファイルに含まれていたものである。そこに、拡張子を間違ったまま公開されているのはおかしい。
 こうして、安直なミスに気付いた。それは、ソースファイルの入手先である。いきなり検索して、正式ではない場所からダウンロードしてしまっていたのだった。PSXjin の正式なサイトでは、アーカイブしたソースは配布していない。個々のファイルを随時更新している。

 実行用バイナリのバージョンは 2.0.2 となっているが、恐らく r719 ぐらいである。番号は、ソース改変履歴の回数。
 最新は r726 となっていて、2013年の修正。つまり、2011年を最後に更新が放棄されていたわけではなく、マイナーな修正が何度か行われていてそれはソースしか公開されていなかったのである。
 ただし、更新頻度は年に数回。更新も、数行の小規模なものが多い。だからいちいちバイナリを更新していなかったようだ。また、自前の改造に加えて保守するとしても、それほどの負担にならずに済みそうである。

 そしてこの更新履歴を見ると、すぐに Visual C++ 2010 対応の修正が行われていたことを発見。
 何と、MinGW ではなく VC2010 で動くようになっていた!
 要するに、製作者が処理系を MinGW から VC に変更していて、そのため makefile は古いまま更新されていなかったのである。コンパイルには、VC が必要である。Win32 フォルダ下に、Microsoft Visual C++ 2008 用のプロジェクトファイルが存在していた。

 VC2010 は非常に高価だが、Express エディションなら無料である。

 さっそくダウンロードする。
 無料同士となれば、コマンドラインツールの MinGW を使うよりも VC の方が遥かに開発環境が整っている。処理系の乗り換えは当然の決定だ。

 注意点として、サービスパック1は必須。当てておかないとコンパイルは成功しない。

 公開されているのは VC2008 用のプロジェクトファイルなので、読み込むと最初に変換が行われる。
 コンパイルは無事に完了し、公開バイナリよりも新しい r726 の PSXjin が手に入った。

 ただし、警告が出ている。このままでは、デバッグできない。
 出力ディレクトリーをプロジェクトファイルと同じ場所とし、出力ファイル名も psxjin-debug.exe ではなく psxjin.exe となるようにする。
 これで、普通に使用しつつデバッグも可能となる。

 これなら、改造やる気も出る。

 なお、r726 になってもネジコンには対応していないし、lua スクリプトでアナログ入力することもできない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2015年2月27日(金) 21:12

改造すればいい

 ここで、思い付いた。
 pcsx-rr も PSXjin もソースが公開されている。だったら、自前で PSXjin を改造すれば良いのでは?

・PSXjin 自体が pcsx-rr の改造版なので、pcsx-rr のソースは流用し易いはず。
・pcsx-rr からネジコン対応しているソースを PSXjin に移植すれば、ネジコン対応 PSXjin を作れないか?
・そして最後は PSXjin の lua にアナログ入力を追加すれば最高だ!

 オリジナルの製作者が修正を加えると、自前の改造部分にマージせねばならず保守が大変になる。しかし PSXjin は4年間放置されている過去のエミュレーターなので、製作者の修正を考慮しなくて良い。見捨てられたプログラムというのは、改造する側からすれば逆に有利である。

 この皮算用を実現するためには、何よりもまず PSXjin のソースをコンパイルできねばならない。大抵の場合、コンパイルを成功させるのは大変である。使用されるコンパイラーやオプションが異なると、エラーが出まくって実行ファイルなど生成できない。自分がこれまでコンパイルに成功したのは MAME ぐらいである。
 幸いなことに PSXjin のソースには、makefile が付属している。見ると、コンパイラーは MinGW のようだ。

 MinGW は独特で、まずインストーラーをインストールする所から始まる。

 次に、インストーラー上からインストールしたいパッケージにチェックマークを付ける。そして、メニューの [Installation] から Apply Changes を選ぶとインストールが開始される。

 インストールには、かなりの時間が掛かる。

 インストールが終了すると、チェックマークの部分が薄緑に変化する。
 これで必要なものは揃ったが、基本的にコマンドラインツール。PATHを通さないと make 出来ない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2015年2月26日(木) 21:06

最新エミュ事情確認

 部屋の掃除を少しやったが、3センチぐらいしかない基板とかBB弾みたいに小さなFETとか、見つかるものではない。
 そこで、PX4FLOW の新品が届くのを待つ間に、エミュレーターのチェックを行うことにした。

 TAS製作環境は、使用可能なエミュレーターの出来に左右される。
 エミュレーターはソフトウェアであり、普通はバージョンアップが繰り返される。だから、数ヶ月以上経過すれば最新の状況を確認しておく意味がある。
 自分がメインでTASを作りたいのは、SFCかプレステである。

 SFCに関しては、BizHawk のバージョンが頻繁に更新され現在 1.9.1 まで進行しているのを確認。しかし、最後にTASを作っていたときの最新バージョンは 1.6.1 だったが、TASは 1.5.3 を使用した。いきなりスクリプトが動かなくなったからである。では、1.9.1 はどうか。画面消しての最高速実行が可能になるとかスクリプトでPAUSEが効くとかの、明確なメリットがあるのか?
 それを確認する必要がある。だが、後回し決定。というのも、放置してある F-ZERO を進行させるのは大変だからだ。最適なプレイ方法は完全に分かっているが、途轍もなく最適化が大変。理論限界より0.01秒遅い程度まで煮詰めるには、恐らく1億回単位の追記が必要になる。
 BizHawk はスクリプトが遅い上にメモリーリークしてるっぽいので、人力による介入が頻繁に必要となり膨大な追記を処理することはできない。それが 1.9.1 で仮に改善されていたとしても、天文学的な追記回数を要することに変わりはない。

 そこでプレステに目を向けると、こっちも状況は絶望的。
 エミュレーターが、ここ数年全くアップデートされていない。つまり、状況が全く変化していない。
 TAS製作で使い物になるのは PSXjin しかなく、最新バージョンは2011年である。ネジコンに対応していないため、プレステ初期に出た数々の魅力的なレースゲームを対象にできない。
 ネジコン時代のレースゲームの大半は、ネジコンの有無でクルマの性能が変わる。事実上、ネジコン抜きではTAS製作できない。

 ネジコンが使える pcsx-rr は最新バージョンが2010年で、PSXjin よりも互換性が低い。動くソフトがあっても、lua スクリプトがアナログに対応していないためこれも事実上TAS製作できない。
 プレステのリッジレーサー等のTASを誰も作っていないのは、それが不可能だからである。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2015年2月25日(水) 21:37

気分転換を要す

 半年振りにコンデンサー充電器を取り出して、唖然とした。記憶と違っていた。

 作りかけの充電器が載っていると思ったら、違った。そうだ、FETが無いから作業を続行できず、充電だけできれば良いとZVSを取り付けたんだった。

 問題は、5ヶ月前に一部製作を開始したチョッパー充電器が行方不明なこと。作業は2日ほどしか進んでいなかったので作り直しても良いのだが、もったいない。
 それに、ようやく全ての要素試験が完了したと思ったらマイコン故障で何週間も回り道させられた挙句、買い直しに追い込まれ精神的ダメージがでかい。もちろん金銭的ダメージもでかい。だから、志気が思い切り低下している。 

 ここは、部屋の掃除をしつつパーツを探した方がマシかもしれない。

written by higashino [マルチローター] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2015年2月24日(火) 21:17

仕切り直し

 このままマルチローターの自主開発を断念するというなら別だが、続行するならフローセンサーの買い直しは不可避である。少しばかりの慰めは、ソナーが流用できるのでソナー抜きで買えば良く、少しばかり安く済むというぐらいだ。また、半年経ったことで基板バージョンが v1.3 から v1.3.1 へと更新されている。

 今後経験を積めば、マイコン交換も可能になるかもしれない。
 しかし、空モノに使うパーツでは避けるべきだろう。作業空間の不足が今回は致命的だったが、そうでなくても表面実装の手作業ハンダ付けは信頼性が劣るのは疑いない。過去に大修理した航空機には乗りたくないのと同じだ。

 予想外の出費が痛いので、暫くはカネの掛からない方面を進めたい。
 コイルガン充電用の小型チョッパーは、かなり前にFETの調達が済んでいるので作業再開可能である。
 カルマンフィルターの研究は、ジャイロセンサーとして PX4FLOW 搭載のものを使うため、進めにくい。

 ところで、フライトレコーダーはマルチローター以外にも搭載可能である。
 例えば人間が持参すると、運動時の軌跡を取得できる。モーションキャプチャー的な使い方が可能である。超音波を使った高度計ではなく、軌跡を取得して高度を割り出すようなことも理論的には可能。いろいろ面白い使い道が思い浮かぶ。だが、実現にはカルマンフィルターが同様に必要となる。
 更に、機械ではなく人間に搭載する場合、スピン時に回転中心からの距離が不明確なので遠心力を補正困難。一段厄介な話になりそうだ。実用にならないかもしれない。

written by higashino [マルチローター] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4