MAMEのソースをコンパイルしてみるテスト2

本当に俺豆が作れるのか気になったので、tiny.lstとtiny.makをmame.lst、mame.makへリネームしてコンパイルしてみた。コンパイル時間も短く、EXEも7MB程度のものができた。実行してみると確かに指定したものだけになっている。
それと、先日行おうとしていたXMLからDBへ落とす件ですが、それらしいツールが見当たらないのでmame.datを読み込んでゲーム名と使っているCPU、オーディオチップを一覧するプログラムを作った。この一覧をDBへインポートしてlstを読みつつSELECTさせればCPUとオーディオチップを一覧できるのでそこからmakefileを書き直せば作れそうかな?ゲームのドライバのソースファイルを抜き出すのを忘れてたのでそれを付け加えねば。
あと、makefileを見ていて気になったのがarでライブラリ化してる点か。その単位がdatからではわからないので、そこをどうするのか調べてみたいところ。これがわかればlstからmakを作り出せるプログラムが書けそうな予感がしてます。

MAMEのソースをコンパイルしてみるテスト

アーケードゲームのエミュレータです。
当時出たころは、MS-DOSが主流だった時代で、SPACADEというエミュレータが再現性が高くてMAMEはそんなに注目されてなかったと感じてました。パックマンから始まって数本程度しか動かなかったし。開発スタイルがオープンだったのですぐに人が増えてSPACADEを一気に追い抜いていったという感じだったか。それと、世の中がMS-DOSからWindowsへ移行しだしてSPACADEは追従しなかったのも追い越した原因か。
現時点でバージョンは0.147です。巨大化しすぎて本体のEXEが69MBという。サポートゲーム数も2万6千を超えてます。しかし、完全に動くのは8000程度ですし、軽くしたいと前から思ってました。
ソースのコンパイル自体は、MAME本家に置いてあるMinGWとツールを落とせばコンパイルできます。GUI対応のMAMEも本家ソースを展開してGUI対応のソースを上書き展開してコンパイルすれば作成できます。
では、俺豆にするにはどうしたら?というのが次の問題ですが、ソース内のsrc/mameにmame.lstとmame.makがキーワードっぽい。tiny.*を見ると最小のものが作れそうです。中身はlstに対応させたいゲーム名を入れる。makはMakefileなのでいじらなくても限定できたものが作れそう・・・な気がする。最終的にはmakも編集して不要なドライバを削るというのが一番かも。
闇雲にコンパイルしても駄目なので、まずはmakをいじってみたいです。その前に、必要なドライバを選び出さないといけない。いろいろと考えてみましたが、一番楽そう・・・というか確実なのは、MAME本体から作れるXML
リストを元にゲーム名に対応するドライバ、CPU、サウンドなどの情報を抜き出し、そこからmakを作ればいいんじゃね?と思ったのでした。これができればlstを作り、それを元にしてドライバなどの情報を抜き出し、可能ならmakを作成するプログラムを書けばいいと思いました。
XMLは単なるテキストファイルですが、シーケンシャルにいちいち読み込んで抜き出すのも時間がかかりそうです。なので、MySQLとかSqliteへデータベース化してそこからSELECTすれば?って構想でいます。
まずXMLをMySQLへインポートからやってみます。

DVDの再生その3

xineのメニューを日本語にしようと思っていろいろと試行錯誤を。
原因はHelveticaというフォントへ置き換えられて表示されるのですが、このフォントが日本語を持たないことが原因らしい。解決策は、1.英語メニューを使う、2.フォントを置き換える、3.ソースをいじる。これらがあるらしい。
1.英語メニューを使う
これはすごく簡単。環境変数LANGに英語を指定するかCを指定すればいい。コマンドラインからならLANG=C xineで問題なく起動可能である。GNOMEのメニューをいじるならシステム→設定→メインメニューを起動し、サウンドとビデオ内のxineのプロパティを開き、コマンドラインに”env LANG=C xine”を指定すればOK。
2.フォントの置き換え
これは失敗しました。
まず、/etc/fonts/conf.d/30-metric-aliases.conf内の置き換えてるのをコメントアウトにする方法。これは駄目だった。次に、ユーザーのホームディレクトリに.fonts.confを作成してXMLにてフォントを日本語フォントへ置き換えるもの。これも駄目だった。そして、FONTCONFIG_PATHで.fonts.confを指定して起動する方法も駄目だった。参考にしたサイトのフォントも入れてみたけど駄目なので諦めっぽい。
3.ソースをいじる
これをやるには変更したソースの差分をpatchとして作り、ebuildを書いてパッチをあてるようにしてemergeってことになる。過去こういったパッチが出てない以上、スマートな方法とは言えないのかも。どうしてもいじるならローカルにソースを展開して変更し、コンパイルしてできたバイナリを上書きかな。
結局英語でいくことにしました。やり方が書いてあるサイトもたくさんあるので、同じ現象でハマってる人は参考にしてみるといいかもです。

DVDの再生その2

結局xineを入れたら再生できた。
xineは日本語ローケールだと文字化けするのでLANG=Cを指定して起動して英語ローケールにするか改造が必要となります。日本語対応のパッチとかありそうな気もするので調べてみたいと思います。
そろそろHDDを新調したいところ。GNOME上で作業してると警告が出っぱなしになるのがうっとうしいし。

DVDの再生

その前にオートマウントが効いてないので有効にした。
ログを見るとドライブは認識してますが、/dev/sg0がドライブとなってなかった。
カーネルの設定が問題なのですが、少し前からSATAはSCSIの設定に依存してたのを忘れてました。SCSIの設定内のCD-ROMのサポートを有効にしたら割り当てられました。
DVDを挿入するとマウントされようとしますが、rootじゃないとマウントできないとエラーになりました。利用するユーザーのグループにcdromが入ってましたが、マウントされなくて謎だったのですが、/etc/fstabのオプション指定にuserを加えたら問題なくマウントされるようになりました。
totemでDVDを再生させてみたのですが、何の反応も無く駄目だった。gnome-mplayerはDVDメニューは出るものの、本編が再生されない状態。今回は時間切れなので、後日別メディアや別のプレイヤーを試してみます。

alsaconfが動かない件

SLAX-jaのライブCDが出てきたのでKDEで起動して設定を見てみた。
カーネルの設定(.config)を見てみたけど違いが無くてわからず。一応合わせて、RTCも効いてなかった問題もあったのでカーネルを作り直しました。
/etc/modprobe.d/alsa.confにoptionsとか指定しろとかの情報もありましたけど効いてる気配なし。
試しにalsamixerを起動してみるとPCMの音量だけ表示されたのでもしや?と思ってGNOMEを起動して音の設定を見てみれば音が正常に出てるし。つか、最初から問題なかったのかも。
alsaconfでカードが見つからない問題はありそうだけどとりあえず設定できてよかった。
nautilusでネットワーク経由でWindowsマシンにある動画とか見られるので問題ないです。totemで大抵の動画は見られそうです。DVDはまだテストしてないので後日にでも。

ALSAの設定が出来ない

サウンドの設定を行おうと思ってalsa-utilsをインストール。alsaconfを実行したらカードを認識しなかった。
nVIDIAチップのオンボード音源ですが、lspciでは問題なく認識。ドライバはsnd-hda-intelがロードされており、/proc/asound/cardsを見ても問題ないようにみえる。
ALSAから認識できるような設定をしないと駄目なんだろうけどこの辺りはよくわからんです。
確かDebianを入れたときは音が出てた気がするので何らかのLiveCDから起動して設定を調べてみようとおもいます。

DELLマシンのデスクトップ環境その2

マウスをUSB接続にしたら問題なく使えた。
PS/2を2系統USBに繋ぐというのは現時点だと厳しいのか。
まだxdmを自動起動すると問題があったときに面倒なので手動で立ち上げ。GNOME環境が問題なく起動しました。ローケイルを日本語にし、外見は問題なし。
ネットワークからWindowsの共有を見ようと思ったらgnome-vfsにsambaのUSEフラグの設定がなかったので参照できず。これは設定してリコンパイルか。
そういえば、起動したらHDDが故障しかけてるって警告が出て吹いた。Windows領域は問題ないと思いますが、Linux側の領域でバッドセクタが出てるっぽい。こりゃHDDを交換しないと突然お亡くなりになる可能性がありそうです。IDEだったかSATAだったか忘れてますが、先日サーバにしていたマシンを止めたのでそちらからHDDを拝借かな?あけるのが面倒だけどそのうちやらないと。

DELLマシンのデスクトップ環境

Debianの実験用でしたけど、いろいろと細かいところが気に入らないのでGentooへ戻しました。
コンパイルしなくても誰かのバイナリでいいかなとか思いましたが、やはり環境に合わせてすべてコンパイルした方がすっきりする。変なエラーも出ないしね。
基本的なインストールは楽なのですが、今回XorgのインストールとGNOMEのインストールもするのでいくつかハマりました。最初にハマったのがavahiのコンパイルでエラーとなる点。何度やってもautomakeでエラーとなる現象が出ました。どうやらautomakeのあるバージョンからの問題らしく、まだマスクされてる次のバージョンならパッチがあるので回避できるとわかりました。動作的に問題なければ降りてくるだろうし、automakeをダウングレードしても他の問題が出たら嫌なので最新を入れることで対応しました。まあ、ローカルに野良ビルドでebiuildを書いてautomakeのパッチを当ててしまうのもアリなのですけどね。
コンパイルも一通り終わり、えいやーとxdmを立ち上げてみるも、マウスとキーボードが聞かなかったり。こんなときの為にxinetdとtelnetdを入れてtelnet接続できるようにしておいたので、強制電源OFFにはなりませんでした。問題はxf86-input-evdevのモジュールを要求されてた点。evdevフラグは入れてなかったと思ったらデフォルトで入ってるっぽいのでインストールして解決。キーボードは難なく反応するも、マウスが駄目だったり。ログを見てもエラーはなく、cat /dev/input/mouse0とかやってマウスを操作しても何も表示してくれないので物理的な問題かドライバの問題かカーネル的な問題か何かか。
ハード的にはこのマシン自体はPS/2ポートがないのでコンバータを噛ませてPS/2キーボードとマウスをつないでます。どうもこの辺りが怪しいと思われます。PS/2接続は切り替えBOXを経由目的でつけてたのですが、現在スタンドアローンだからコンバータを使い理由がありません。なので後日USB接続に切り替えてみる予定。
あとはALSAの設定を忘れてるし、USEフラグももう一度見直さないと駄目かな。Javaとかブラウザとかいろいろ入れないと駄目な問題も多数。日本語環境にも出来てないし…。
ちなみに、GNOMEを選ぶ理由は、KDE関係ってコンパイルに時間がかかるのと慣れの問題かな。twmとか使うとネタにもなっていいのでしょうけど、GNOMEが行ってる機能に慣れてしまったので戻れない体に。

ファンタ

ファンタからゴールデングレープの復刻が売られていたので飲んでみた。
これは当時飲んだかどうかも覚えてません。レギュラーのグレープの味も忘れてます。
炭酸は弱めでぶどうっぽい味がするのはよくわかります。
甘さは自分好みじゃないのでいまいちだったり。
フルーツ系フレーバーで多少炭酸が欲しいときはいいかもね。
CCレモンシャキッとすっぱいを飲んでみた。
クエン酸が7倍(CCレモンとの比較らしい)ということで一口飲んで、すぐすっぱさがわかった。
自分的には少しすっぱさが強いけど驚くほどじゃないかなという感じです。
感覚的には実の生レモンをちょっと薄めにしたのを舐めた感じかな?甘さとかそういうのが絡むと体感でこんな感じに思えた。
結局これらは飲み続けるほどではないと思った。
甘いのが欲しいならコーラでもいいし、スプライト辺りで十分かなと。自分が求める方向と違うと思うし。