Ville氏ページが更新、アレック64の進捗状況が出ています。MAME内での64エミュレーション自体はほとんどできあがっているので、少しの作業で対応できたそうです。スターソルジャーとビビッドドールズのスクリーンショットが出ています。
2007年のニュースアーカイブ(134件)(6/6 ページ)
アレック64 WIP
0.111u4出た
0.111u4のソース差分がリリースされました。what's new-Jはこちら。UIでUTF-8として文字描画をするようになったため、英字以外を表示するには「ユニコード対応のbdfフォント」が必要です。いいのを募集中。
【更新】24x24ドットのフォントでテストしたところ、起動に3分以上かかりました。いまのところ実用的ではない感じです。
とりあえずフォント
UIがUnicode対応になりましたが、普通の日本語フォントでは読み込みに時間がかかりすぎるため、必要な文字だけを追加してみました。といっても「上、下、右、左、軸、矢印、ボタン」だけです。とりあえずこれで表示は問題ないと思います。使い方は解凍してMAME本体と同じところに置くだけです。足りない文字を発見されましたら掲示板へお知らせを。
【更新】「無、変、換」を追加。
【1/24更新】MAMEのUIでは使わない記号や文字を削除(約1500字)。読み込みがかなり早くなります。「テ・キ・ー」を追加。
CPS2との戦いは続く
ということで、ニコラさんがXORでサポートされている既存のCPS2ゲームのチェックしたそうで、あるアドレスに7つ以上の(E,D)ペアがあれば数時間のアタックでキーが見つけられる模様。11本でアタックがうまくいかず、そのうち3本ではペアが2つしかないので別なアプローチが必要とのこと。ペアが4つのものについては裏技を使ってなんとかアタックできる見込みとのこと。
Haze氏WIP更新
Haze氏の個人WIPにマジカルキャットアドベンチャーの更新が出ています。Testersで出ていたラインスクロールを実装しています。
アーロンさんのクリーンアップ計画
去年一年間はドライバのクリーンアップを進めたAaron氏ですが、他の開発者にも役立つように作業予定のチェックリストを公開しています。
タイミング・割り込み:
- 基板の全てのクリスタルを#defineで記述
- 全てのCPUとサウンドクロックを#defineの周波数から生成
- 割り込みの発生タイミングと、発生元を再確認
- 割り込みのACK実装
- 正確なウォッチドッグ有効時間の追加
メモリ:
- リード・ライトメモリマップの統合化
- 完全なアドレス空間のマッピング。可能ならば回路図から
- 適切な場所ではAM_SHAREを使う
- メモリバンキングを新システム(memory_configure_bank)に変換する
グラフィック:
- レイアウトで可能なところでは決め打ちした値にあけてRGN_FRACを使う
- 共通のレイアウトは共有する(vidhrdw/generic.c)
- hblank・vblank・表示領域を正確にする。可能なら回路図から
- ディスプレイ情報を旧マクロから新マクロに変換
- 水平・垂直位置用により正確なタイミングルーチンを使う
- 適用できるところはタイルマップに変換する
- パレット生成にレジスタを使うよう変更する
- わかっているものについてはスプライト表示の最大数(スキャンライン毎にいくつかなど)を追加する
入力:
- 全入力ポートのタグ付け
- コード内のポート参照を全てタグを使うようにする
- 非DIP設定をconfigに変換する
- 適切な場所ではメモリオーバーライドに代えて、PORT_CUSTOMを使う
- コインカウンタを正確にする
- 基板出力を新出力システム経由で接続する
- DIPLOCATIONSを追加する
- DIPスイッチと入力の検証
ROM:
- メモリ領域を必要最低限にする
- ROM名が妥当・正確か調べる
- 未エミュレートのクローン版がないか調べる
その他:
- ソースファイルの整理: header, includes, constants, typedefs, macros, globals, inlines, code
- ドライバファイルを次の順に統一: address maps, input ports, graphics definitions, sound configs, machine driver, ROMs, driver init code, drivers
- セーブステートサポート
- グローバル変数を全てdriver_dataの後ろに移動
- ぐちゃぐちゃのコードをわかりやすくする
64bit MAMEベンチマーク
Aaronさんが64bitビルドを中心にパフォーマンスの徹底比較されています。VC対GCC、VCの最適化あり対なし、-mtオプション、32bit対64bitなどなど。特に、デュアルコア環境での-mtはタイトルによっては約3倍、平均でも41%もスピードアップしているのが目立ちます。GCCとVCでは、リッジレーサーとスターウォーズ以外は5%程度の向上、64bitでは3Dゲームで大きく向上しています。
0.111u3出た
0.111u3のソース差分がリリースされました。what's new-Jはこちら。Unicode関係のトラブルの修正、CPS2更新、その他OSDの大幅変更が入っています。
CPS2 coming to MAME
ということで、ニコラさんが4GBのCHDを192bitのキーに置き換えるためのコードをDevに提出されました。サイトからもコードをダウンロードできます。まだSボックスの動作について不明な点が多く、キーもオリジナルとは異なるとのこと。腑分けしたCPS2チップの写真からSボックスの内容がつかめるかもしれないそうです。この次は、XORしかないゲームからのキーの割り出しにチャレンジする模様です。
「CPS2基本動作解明」
との書き出しで、ニコラさんまたまた更新。動作の基本的な部分が判明、96bitのキーx2にまでたどり着いた模様。アルゴリズムは1)16bitのアドレスと96bitのキーで最初のフェイステル構造を通して16bitのサブキーを生成、2)16bitの暗号文、16bitのサブキー、もう一つの96bitのキーで2回目のフェイステル構造を通し、16bitの平文を生成するとあります。だだし、喜ぶのはまだ早いそうで、1回目のフェイステル用Sボックスの完全な割り出しが必要で、これができて初めて、8GBの完全なテーブルがあるタイトルについてはキーを求められるそうです。
一方で完全なテーブルが無いものは、キーがもっと小さかったり、ビットの再利用の可能性があるものの、それがどれくらいかはわからないので、最大で192bitのキーとして対応しなけらばいけないそうで、このサイズでは総当たりは問題外、XORの情報があったとしても差分攻撃ができる類ではないだろうとのこと。
【訂正】96bitが2つに訂正。
「CPS2はそんなに甘くない」
との書き出しで、ニコラさんの更新。4GBのサイズだったテーブルは128kBまで小さくなったものの、ハードウェアの実際の動作が解明されたわけではなく、オリジナルの8GBテーブルが無いゲームについては、まだキーを生成できない状態とのこと。
0.111u2出た
0.111u2のソース差分がリリースされました。what's new-Jはこちら。今回よりUnicodeファイルのサポートが追加されましたが不具合が出ているようです。まず、-cheatを有効にすると起動時に固まるバグがあります。また-ccでutf-8のmame.iniを出力するようになりましたが読み込めないので、Shift-JISなどに戻す必要があります。
CPS2でブレイクスルーか
スペインのAndyさんがCPS2の解析で進展があった模様です。にこらさんも合わせて更新しています。えーと、手短に言うと「今4GBあるテーブルファイルのサイズが768kBになるかもしれない」ということだそうです。
恭喜新年發大財!
あけましておめでとうございます。みなさんにとってよい一年になることを心よりお祈りしております。今年もよろしくお願いします。