オフィシャルMAME掲示板へようこそ。MAME32MacMAMEの掲示板も合わせてドーゾ。またMAME Testing Projectで最新のバグ報告もチェックしましょう。ゲームをリクエストする前には、Bobby Tribbleの未対応アーケードゲームページをチェックして下さい。

この掲示板へのリンクはhttp://www.mame.net/msg/へお願いします。ここをクリックするとメインページに戻ります。

フォーラムインデックス | FAQ | 新ユーザー | ログイン | 検索

新規投稿ひとつ前のスレッド全部のスレッドを表示*ずらっと一覧*


Subject Re: ハイスコア保存の新フォーマットについて教えて下さい この書き込みに返事を出す
投稿者 HobbesAtPlay
時刻 04/24/00 09:08 AM



まず最初に、あるゲームがHISCORE.DATでサポートされている場合、MAME.CFGファイル内のhi =のところで設定されたディレクトリに.HIファイルが作成されます。 例えばmappyはHISCORE.DATでサポートされています。 デフォルトのMAME.CFG設定だとHIディレクトリに.HIファイルを保存します。 mappyをプレイした後にHIディレクトリを見てみると、ハイスコアが保存されている「MAPPY.HI」というファイルが出来ているのが確認できると思います。

それでは新しいフォーマットについて説明します。それぞれのフィールドをひとつずつ見ていくことにしましょう。恐らくこれでわかると思います。
下が基本的なフォーマットです。

ゲーム名:
CPU:アドレス:サイズ:値その1:値その2


  • ゲーム名: この定義を使うzipゲーム名を書きます。複数のゲーム名を並べて書くことも出来ます。
  • CPU: ここではCPU番号を指定します。マルチCPUのゲームでない場合は普通0になります。
  • アドレス: ハイスコアデータが含まれているメモリ番地を16進数で指定します。たいていはハイスコアテーブルそのもののアドレス、トップスコアの始まり部分、または表示用のディスプレイメモリのアドレスになります。
  • サイズ : メモリ領域のサイズを16進数で指定します。
  • 値その1 : メモリ領域の最初のbyteまたはwordがこの値になるまで待ちます。16進数で指定します。
  • 値その2 : メモリ領域の最後(アドレス+サイズ-1の番地)のbyteまたはwordがこの値になるまで待ちます。16進数で指定します。

    それでは、実際の例としてmappyが簡単なので見てみましょう。

    mappy:
    mappyjp:
    0:1460:28:00:41
    0:1385:3:00:00
    0:07ed:7:00:20


    最初の2行はこれを利用するゲーム名です。mappymappyjpを指定しています。

    0:1460:28:00:41

    最初の数字はCPU#0を示していて、そのアドレス1460の値が00に、アドレス1487 (アドレス1460+サイズ28-1)の値が41になるのを待ちます。この部分は実際のTOP5のハイスコアとイニシャルが保存されている場所です。

    0:1385:3:00:00

    次もCPU#0についてです。アドレス1385が00、アドレス1387(1385+3-1)も00になるのを待ちます。 これは、トップスコアが更新されたとき、画面の上のHIGH SCORE欄に表示される値です。

    0:07ed:7:00:20

    これも同じくCPU#0を指定しています。アドレス07EDの値が00、アドレス07F3(07ED+7-1)に20が入るのを待ちます。 これは、ディスプレイメモリ上のエンコードされたトップスコアの値で、HIGH SCORE欄のところに正確に表示されるようにします。

    この3つのメモリ領域の指定はすべて、MAPPY.HIファイルがロードされたときだけに行われます。 ここが大事なところで、いつテーブルをロードすれば安全かということを知る必要があります。 テーブルのロードが早すぎると、マシンのセルフテストのときにリセットされてしまいます。 それから、ハイスコアテーブルをロードするコンディションが満たされているかを知ることも重要です。 そうしないとMAMEを終了したときに.HIファイルが作成されません。

    普通は、デバッグを有効にしてコンパイルしたMAMEを用意して、MAME.CFGファイルの中でdebug = yesと指定します。それから、MAMEを起動して、セルフテストが終わって安定した状態になったときに メモリ内をみて、ハイスコアテーブルがどこから始まってどこで終わるかなどを探します。

    また、ハイスコアセーブをサポートしていたころのMAMEのソースを見るのもひとつの手です。これだと、関係している部分が直接わかります。

    新しい.HIファイルは、初期の.HIファイルと実は少し変更になっています。 これはなぜかというと、以前セーブする必要があったのはハイスコアテーブル本体だけだったからです。 トップスコアの値や画面の上に表示されるハイスコアは、ビルトインのルーチンでテーブルから取り出すことができました。しかし新しいルーチンではそれができなくなったため、現在はトップスコアを正確に表示するために、mappyで言うと残りの2つ(0:1385:3:00:000:07ed:7:00:20)が必要になりました。こういった変更があったので、古い.HIファイルが使えなくなってしまうかもしれないのがお分かりいただけたでしょう。


  • -
    スレッド一覧
    Subject   投稿者 時刻
    *ハイスコア保存の新フォーマットについて教えて下さい   tjmorrow 04/24/00 07:24 AM
    ..Re: ハイスコア保存の新フォーマットについて教えて下さい   HobbesAtPlay 04/24/00 09:08 AM
    ..*Re: ハイスコア保存の新フォーマットについて教えて下さい   tjmorrow 04/24/00 02:23 PM
    ...*Re: ハイスコア保存の新フォーマットについて教えて下さい   Chad H 04/24/00 03:38 PM
    ...*Re: ハイスコア保存の新フォーマットについて教えて下さい   HobbesAtPlay 04/24/00 03:10 PM
    ....*Re: ハイスコア保存の新フォーマットについて教えて下さい   veg the dev 04/25/00 02:05 PM
    ..*Re: ハイスコア保存の新フォーマットについて教えて下さい   Chad H 04/24/00 01:53 PM
    ...*Re: ハイスコア保存の新フォーマットについて教えて下さい   HobbesAtPlay 04/24/00 04:09 PM
    ....*Re: ハイスコア保存の新フォーマットについて教えて下さい   Chad H 04/24/00 04:30 PM
    .....*Re: ハイスコア保存の新フォーマットについて教えて下さい   Stroff 04/25/00 11:21 AM
    ......*Re: ハイスコア保存の新フォーマットについて教えて下さい   HobbesAtPlay 04/25/00 03:24 PM

    英語版本物はこちら