PC関係」カテゴリーアーカイブ

ベーマガの打ち込み

1986年6月号の記事を打ち込み中。
やる気が出なかったのでだいぶ放置してました。
1本打ち込みが終わって実行してみてもまともに動かないのでいろいろと見直していて見落としに気づくのに時間がかかってたのも要因です。
似たような処理が並んでいてGOTOの飛び先が間違うと悲惨です。うちは怪しいと思うポイントにSTOP文を入れて処理を停止させてロジックを通ってるのを確認したり、変数内容を確認したりしてます。トレース機能とかあればもっと楽なのですけどね。
あと、文法エラーとか出ると、コンパイラでないのが悔やまれたり。コンパイルできれば文法チェックくらいはシステムに任せられるし。BASICコンパイラも当時出てましたけど持ってないし、I/Oに載ってたBASICコンパイラは本体のコンパイルで無限ループに陥って原因不明だったりする。EXAS MZコンパイラとdB-IBASICコンパイラが出品されるのを熱望してますけど高騰するんだよね。石油王じゃないので無理です。

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

問題なく自分用のMAMEができた。まあ、一覧を自分用にしただけですけどね。
やり方は次の通り。
1.コンパイル環境を作る
2.src/mame/にmame.lst、mame.makを参考に絞り込んだファイルを作る。
3.make SUBTARGET=2で作ったファイル名(拡張子なし)でコンパイル。
こんな感じ。lstは残したいゲーム名だけを指定しておけばいい。ただし、BIOSとか親となるゲーム名がないと必要なファイルをすべて指定したゲーム名の書庫を作らないと実行できません。makはゲームが含まれるソースをコンパイルしてリンクされるように指定する。プログラミングの知識がないと変更は難しいかも。CPUSとSOUNDSの指定も絞れますけど、うちは判断がつきにくいのが多かったので削りませんでした。DRVLIBSは使わないアーカイブは削除、その次にあるアーカイブの関連で使われるドライバ、マシン、オーディオのオブジェクトを指定します。この辺りはコンパイルしてエラーが出たら訂正という形で進めました。うちは皆無から付け加える方向で作ったので、リンク時に見つからないエントリとか変数を検索してオブジェクトを指定するやり方でした。削る方向だとこの方法は無理かと思います。
バージョンアップのたびに追いかけるのは面倒なのでこれまでかな。

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

Plusのソースのチェックアウト方法がわかったのでソースをゲットしました。
コンパイルは問題ないのですが、ゲームを起動するとそこから動かず。
Ashのバイナリもゲットして動かしてみたけど同じ症状なのでうちの環境が悪いのでしょう。
サポート数は2万オーバーですけど、実質動くのは8千くらいなのですよね。しかもHDDやGDROMイメージを含むものは大抵動かないので外したと思ってました。Not Workingの一覧をエクスポート、mame.lstを読み込んでエクスポートしたものが含まれないmame.lstを吐き出すプログラムを書いたのでそれに食わせてmame.lstを作りました。あと自分的に外したいのを削ってmame.makを作ればお気に入りのみのmameが作れると思います。可能なら16ビット以下のものとかNEOGEOのみとか分けてみたいです。

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へインポートからやってみます。

ThinkPad R52

以前、長年使っていたA31pが起動しなくなり、液晶の陰極管も切れてお手上げだったので、代わりにと思って入手したR52があります。しかし、ジャンルのA31と液晶部分を入手して起動できるレベルにできたのでR52はそのまま放置してました。A31pは17インチでUXGAの表示能力を持つのでなかなか手放せません。
最近サーバも調子悪いし、省電力を考えてR52を使おうかと思って引っ張り出しました。ノートPCの場合、HDD容量が稼げないのが問題。120GのHDDを積んでますが、多少物足りなさがありますので、DELL GX260に入れてたWestern Digitalの250Gを差し替えました。こちらもDVDドライブが思うように動かないので使うのをやめてた機種です。
入れ替えて起動するとPOSTブートで2010エラーが。そういえば、120Gへ置き換えたときもエラーが出てHDDのファームを書き換えて何とか対応しましたが、今回は公式ファームも無くてあきらめか?と思いましたが、エラーを回避するカスタムファームが出回ってるとのことなので入手して入れ替えました。特に問題なく起動できました。興味ある人は検索してみてください。日本語ページはないので読めない人は諦めるしかないですが。
R52にはGentoo Linuxを入れる予定。サーバ用途ならそんなに管理も苦労しないしローリングリリースタイプならアップデートと共に最新の状態を維持できますし。

ビデオカード死亡

家に帰ったらPCの電源が落ちてたので何事と思って調べてるとビデオカードが死んでました。
最初、電源を何度か入れなおしてるとCPUファンとか少しだけ動くし、マザーボードのランプも点いてるので電源は大丈夫と思ってました。電源から出てる周辺機器用の電源コードをすべて引き抜いて電源を入れると起動することがわかりました。HDDなどが問題なのか?と思って一つづつ繋いでみるも、まったく動かなくなるので謎だったのですが、ビデオカードへの電源供給が問題と気づきました。カードのファンも回らないし、繋ぐと電源が入らなくなるので、ほぼ間違いないです。
このPCでオンラインゲームもやるのでオンボードのビデオでは問題ありなのでどうしてもカードが必要となります。メインストリームのカードは高いのとマザーボードも古いので2スロット占有タイプは使えません。まあ、サウンドカードをオンボードにすればいいのですけど、接続周りを変更したくないので1スロットタイプを探すことにしました。
秋葉に出向ければ露店で売ってる安いカードを探してつけるのもいいのですけど、通販となるとジャンクカードはないのと、ショップ売りは新品がほとんどだから頼りはヤフオクか。古いカードは数百円から手に入りそうなのですが、nVIDIA GF9600GXを使ってたのでそのクラスを探しました。2スロットならもう少し性能のいいのがあるのですが、1スロットだと同じクラスのが精一杯でした。何とか手に入れられたのであとは到着待ちです。
今代わりに使ってるのはASUSのETX1600Pro。知り合いから借りてたもので、ファンの音がうるさいから使わないという話だ。それでもこれなら問題なく使えるので助かった。
以前使ってた8600クラスは死亡してるし、AGPのカードが出てきたけどこれらも死んでるので何枚か調達したいと思ってます。最近のグラフィックカードは熱ですぐ死ぬので取り扱い注意だったり

HDDが死んだ

サーバマシンのHDDが1台お亡くなりに。
今の場所に引っ越してからP4マシンに乗せ変えて、HDDも寄せ集めたマシンだったので寿命ですね。
250GBを4基、300GBを1基積んでるマシンですが、250GBの1つが駄目でした。そろそろ2TBのHDDを新調したいと思ってた矢先に。
中身はたいしたものを入れてなかったので諦めかな。EXT3でフォーマットしてあるのでWindowsでは読めないだろうし、それ以前にサーバ上でかなりの期間エラーを吐いてたし、直前でデバイスが切り離されてたのでもう駄目でしょう。
再起動が必要になってしまって電源を入れなおせばCMOSバッテリーが切れてて時間が狂ってしまうし散々です。新カーネルの構築中だったのをすっかり忘れててショックも大きかった。
まあ、これで異音もしなくなったし、しばらくこのままかな。HDDが欲しいところですけど、メインマシンの方も欲しいし、車検も近いので金欠だから当分新調は先の話です。それにPATAだからSATAとなるとまた面倒なことになるのでマシンを入れ替えるときに考えたいです。新マシンをメイン、今のメインをサーバって感じで置き換えたいと思ってます。

BD環境整備

まずはPioneer 内蔵型 Blu-rayドライブ BDR-206DBK バルクを買った。バルク品だったのでライティング環境が整備できないのが何とも。DVD-Rドライブの置き換えなら問題ないので、ImgBurnとかで問題ないのがわかった。
通常ファイルのライティングはB’s Recorderで頑張ってましたが、唯一使えてたPioneerのドライブを置き換えたのでこれはもう使えません。ImgBurnで一本化できるからそれでもいいかなと思う。

インクの買い替え

年末に購入したプリンタのインクが切れたので購入しました。
うちのプリンタは黒と3種類のカラーインクですが、切れたのは黒インクです。HP 178XLインクカートリッジ(黒)を購入しました。入れ替えてから200枚くらい印刷したのですが、途中で他のカラーインクも切れたので、HP 178XLインクカートリッジ(シアン)
、HP 178XLインクカートリッジ(マゼンタ)
、HP 178XLインクカートリッジ(イエロー)
を購入。そしてまた黒が切れました。
買ったのは増量タイプだったのですが、異常に消費が早いと思ったのですけど、よく見たら印刷したものは、元が雑誌をスキャンしたもので、取り込みで周りが黒くなってるものでした。これが消費の原因でしょうね。
恐らく想定される印刷可能ページ数って白い紙に文字だけを印刷したものでしょうから、真っ黒な部分が多ければ消費が早いのかと思いました。
また2本黒を買ったので次もどれくらいで減るのか確認してみます。異常に減るのなら問題ありそうですし。