2010年のニュースアーカイブ(57件)(1/3 ページ)

ヘビーなネタ

MCUの腑分けでヘビーユニットが動き出してます。これはHazeが上げたムービーですがオリジナルのクレジットはPhil Bennett、Dr. Decapitator、Andrew Gardnerです。

0.140u3出た

0.140u3用の差分ソースが出ました。What's New Jは以下の通り。ある意味クリスマスプレゼント的なリリースみたいな。

不遇のIrem M107ドライバ

KaleさんとHazeのWIPにIrem M107基板の進捗情報です。見事なラインスクロールの動画もあがっています。

Irem M107ハードのドライバといえば長年不遇な扱いで、ワールドPKサッカーも動かないまま、ファイヤーバレルもスピード落ちすぎと、一応動作可能とはなってますが、音も壊れていて画面半分に謎のレイヤーがかぶっているという、動いているとはほど遠い状態でプレイもままならないものでした。コードを見てみると、メインCPUから未マッピングなラインへのトリガが継続して起きていて、サウンドへのR/Wに直接関係しているのがわかりました。これはサウンドCPUへ直接つながるリセットラインなので、簡単な修正です。

次にグラフィック系。私とHaze氏でコードを調べてみたところ、現状のロースクロール処理は完全な間違いで、その切り替えをするビットが全然違うものでした(ワールドPKサッカーで使用)。そこで、ネットに転がってる実機の映像を検証して、それが実際には列の選択をするのもので、さらに縦軸方向に擬似的な拡大エフェクトを行うものだと判明しました。

ファイヤーバレルのローエフェクト(2面の海や、6面の渓谷で使用)はまだ作業が必要で、スプライトの修正も少ししなければいけませんが、ファイヤーバレルは大体プレイ可能なところまで来たと思います。また、仮実装の段階ですが、ワールドPKサッカーの表示も改善しました。ファイヤーバレルはまだ完全ではありません。

0.140u2出た

0.140u2用の差分ソースが出ました。What's New Jは以下の通り。SDL系の修正が多いですがネタは少なめです。

最新のm1.xml

Tafoidさんのm1.xmlファイルは0.140u1に合わせて最新版になっています。

Download

New list pack for M1

a2c-s438さんより投稿して頂いたリストを含めてM1用リスト集を更新しました。更新内容はこちら。投稿ありがとうございました。

New m1 lst pack including 7 new lists made by a2c-s438 is available. Please check the list WIP page for update details.

Download

0.140u1出た

0.140u1用の差分ソースが出ました。What's New Jは次の通りです。新しく-uifontオプションが追加され、UIのフォントを直接選べるようになっています。

MAME 0.140出た

オフィシャルMAME 0.140がリリースされました。What's Newは次の通り。アーロンさんがバグを一気に直してます。

0.139u4出た

DVD時代に生きるMSX2

KaleさんWIP更新です。この前LD時代の麻雀のシリーズがありすぎねという話をされていましたが、WIPにDVD花札と麻雀が出ています。この世代なのに使っているビデオチップがMSX2のV9958というのが、このゲームの性格をよく表しているような、いないような…。

Kale's MAME WIP: Doing Versatile Damaging

0.139u3出た

0.139u3用の差分ソースが出ました。コードのメンテやカジノゲームの大量追加に埋もれてますが、おもしろい更新もいろいろ混ざっています。

0.139u2出た

Toaplan2.cの描画順序

Haze氏ページのtoaplan2.cについての解説が興味深いので採り上げておきます。

Toaplan2ドライバ(GP9001 VDPを使うゲーム)、特にそのプライオリティシステムは常に不具合のあるままでした。2つ前のリリースで、私は数多く残るハックを取り除くため、ドライバを書き直そうと決めました。実は書き直し自体はかなり以前からやってましたが、デュアルVDPを使った新しいコードではバツグンとドギューン!がうまく動作せず提出を見送ってたのです。

問題は、古いコードが全てのレイヤーを複数の手順で描画していた(スプライト描画関数を各プライオリティに対して呼び出すなど)ため、スプライト間のプライオリティのような基本的なものが正常に動作しないというものでした。各ゲームが好き勝手な順序でレイヤーを描画していたので、それぞれに調整が必要になっていたからです。

コードの整理により、これまでVDPの場合分けをしていた箇所を一回の呼び出しで全てのグラフィックを正しい順序で描画するようにできました。ただ、これでは各VDPからの出力をインタリーブするハックが内蔵関数によっておかしくなるため、バツグンとドギューン!の表示不具合が出るのです。バツグンはこれまでも正しく動作したことはないのですが、新コードだと一部の面が完全にプレイできないほどにおかしくなります。

もともと私はこの問題を修正してから提出しようと考えていたため、しばらく放置していたのです。その後、誰か別な人がToaplan2ドライバの「修正」を試みようですが、提出されたものはハック以外の何物でもなく(何面が動いているかを調べ、各レイヤーのプライオリティをさらにハックするもの)、控えめに言っても最悪なものだったため、私自身のコードを提出し、代わりにバツグンとドギューン!を動作不可ステータスに格下げすることにしました。新しいコードはこのドライバの他のゲームについても大幅に整理されているので、これが正しい解決策への基礎になっていくだろうと考えていました。数バージョンの間ゲームがプレイできなくても、このステップは無駄ではないのです。

これらをひとつにまとめるためいろいろ試してみましたが、しばらくの間ドライバは動作しないままでした。その一方で私はVDPのレンダリングコードをさらに整理して、新しいC++デバイスを使うよう全てをコンバートしました。さらに、GP9001をデバイスとして独自ファイルに抽出したのに伴い、2つのVDP出力を混合するPALのようなものが基板上にあるに違いないと考え、プライオリティミキシングを再調査することにしたのです。

最大の問題点は、各VDPの出力内容が不明なことでした。そこで、各VDPの出力を別々の画面に出力したところ、予想通りVDP単体のミキシングはそれぞれ正しいことがはっきりしました。しかし、VDPの出力がプライオリティデータを混合したものか、それともだたの色データだけのかが不明だったので、その後の解析でもデュアルミキシングについては進展がみられず、ほとんどあきらめかけていたのです。

このときQuench氏が大変有用な情報を提供してくれました。彼は、バツグン基板の2つのVDP間にあるPALの等価回路を解析してくれたのです。これによりVDPがプライオリティ情報を外部に出力しておらず、ミキシングは完全にパレットインデックスを元に行われているのが判明しました。

私は彼の回路を直接実装してみました。理論的には動くはずだったものの、実際の出力はぐちゃぐちゃで、ピクセルの位置もばらばらでした。原因は不明でした。1週間ほど時間をおいて原因を探り、少し異なった方法で実装してみても結果は同じでした。

回路は直接動作はしなかったものの、ここである情報が得られたため、この段階で全てが失われたわけではありませんでした。これにより、どのビットがPALに入力されているかが完全にわかったのです。つまり、ミキシング順を決定するのに使われる可能性のあるビットがわかったということです。

次にドライバの再構成に伴って、Quench氏が解析したPALへの入力ビットと同じビットを使うという、私独自の解決法を思いつきました。最初の段階では黒いドットがランダムに残っていましたが、そこはもう一つのVDPを表示させるところだとすぐにわかり、コードを修正したところ正しく動作するようになり、ついにゲームを最初から最後までテストしても、これまで分かっていた問題点が全て解決しているのが確認されました。

このミキシングにはもう一つの利点があって、バツグンの1面でゴミグラフィックを隠すために使っていたタイルナンバーハックを削除できるのです。偶然にも背景の裏側に表示されるようにゴミのパレットインデックスが設定されているからです。

ドギューンはまだ問題があり新コードでは動作しませんが、少しテストを行えば単純なミキシングシステムを使ってるのはほぼ間違いないと思われます。

これにより、バツグンが初めてハック無しで描画され、全ての面で正しく表示されることになりました。コード自体にはまだ最適化の余地があります(デバッグ時にはできるだけ冗長にしておくのです)。

バツグンの次の段階は、V30コアの未実装命令と機能、V35+の機能(レジスタ、バンキングなど)を追加することになるでしょう。いまのところこの作業はAWJ氏さんがされていると思いますが、最近は進展がないようです。これがあれば、完全なサウンドエミュレーションが可能になります。

David Haywood's WIP - Getting Your Priorities Right

0.139u1出た

Pugsy's Cheat更新

Pugsyさんのチートコレクションファイルが0.139版に更新されました。通常はcheat.zipファイルのまま解凍せずに本体と同じところに配置するのでご注意を。

Pugsy's Cheats

m1.xml更新

Tafoidさんが地道にm1.xmlファイルを更新されています。0.139に合わせてセット名変更などされています。

Download

New list pack for M1

新しいM1用リスト集を更新しました。合計で1012本です。更新内容はこちら。投稿いただいたみなさん、ありがとうございます。

New m1 lst pack is available. Thank you for contribution. Please check the list WIP page for update details.

Download

MAME 0.139出た

オフィシャルMAME 0.139がリリースされました。What's Newは次の通り。

0.138u4出た

0.138u4用の差分ソースが出ました。What's New-Jは次の通り。最近忙しくて更新がサボり気味ですね。

0.138u3、チートの不具合

u3でチートをONにしていると200本以上のタイトルで起動できない(OUT OF MEMORYエラーが出る)問題が起きています。まもなくTafoidさんがまとめて報告してくれると思います。

0.138u3出た

0.138u3用の差分ソースが出ました。What's New-Jは次の通り。デキャップによるMCU追加が多数、前回リリースでの速度低下が(ほぼ)解消、前回に続いてさらにC++化などなど。

0.138u2出た

0.138u2用の差分ソースが出ました。What's New訳は次の通り。これまでのなんちゃってオブジェクト指向から、C++のちゃんとしたオブジェクト指向へ大きな変更がされています。その他には、bin+cue形式のイメージサポートなど。

0.138u1出た

0.138u1用の差分ソースが出ております。What'sNew訳は次の通り。バツグンの修正はHazeがだいぶん前に挑戦してとりあえずここまで、というものです。

MAME 0.138出た

オフィシャルMAME 0.138がリリースされました。What's Newは次の通り。