MAME - What's New-J 0.123u4.txt
0.123u4 ------- MAMETestersの修正バグ --------------------- 00817 [RansAckeR] ソースの変更点 -------------- - MC6845のアップデート: [Zsolt Vasvari] * 同期ピンの0→1と1→0のどちらの遷移もシグナル化 * mc6845_assert_light_pen_inputを追加; ライトペンアドレスのラッチング用タイマ * デバイスのリセット機能追加 * VSYNCの高さの演算結果が、MotorolaとRockwellのデバイスで異なるのを実装 * Commodore 40xxコンピュータではHSYNC幅をスキャンラインの終端を超えてプログラム するため、I am clamping it in lack of anything better to do * Commodore 6545-1デバイスタイプをサポート * ステータスレジスタをサポート * 変数名の改良 * アサート追加 - "Input (This Game)"メニューで条件付きの入力をサポート。[stephh] - Amigaベースのゲームを、partialアップデートとスキャンラインベースの正しいタイマー にコンバート。[Zsolt Vasvari] -「Space Guerilla」のクリーンアップ開始。画面回転などを修正。[Zsolt Vasvari] - tmpbitmapを一部ドライバから削除。[Zsolt Vasvari] - mame_bitmapをbitmap_tを直接使用するものと置き換え。mame_bitmap typedefを削除。 [Zsolt Vasvari] - 一部のゲームでクラッシュを起こしていたtaitoicのバグを修正。[Zsolt Vasvari] - VBLANK_INTの処理方法を変更: - 新マクロMDRV_CPU_VBLANK_INT_HACK()をdeprecat.hに定義。これは現在の MDRV_CPU_VBLANK_INT()のコピーです - 各フレームで2回以上の割り込みとVBLANK_INTが使われている箇所を全て見つけ、 新マクロと置き換え - MDRV_SCREEN_VBLANK_INT()から"# per frame"パラメータを削除。その場所にスクリー ンタグを追加; 全ての呼び出し元を更新 - validate.cに、割り込み設定についてのバリデーションを追加 - SH4のリフレッシュチック値を修正。awbiosがタイマーシステムを壊すのを修正。 [R. Belmont] - dkongドライバで、これまで使っていなかった2つのディスクリート構造体を使用: [couriersud] * dkongの歩く音でjump構造体を使用 * radarscpで、dkong 555構造体を使用 - MACHINE_DRIVER_EXTERNでセミコロンが一つ必要になるよう変更。余分なセミコロンを 削除。[couriersud] - memory.c: 実行されたことがないコードを削除: [couriersud] * READ*マクロから"return 0"を削除 * type FPTR < 0とFPTR >= 0の比較を削除 - 未使用のコードを見つけて、"#ifdef UNUSED_FUNCTION"を追加。[couriersud] - Naomi: IRQソースについてマジックナンバーからdefineを使うよう変更。VBL-outを追 加。[R. Belmont] - AICAスロットモニタリングを改良(まだ不完全)。[kingshriek] -「Jackpot Joker Poker」から「SSI Poker」のセットを分けるため、親子関係を変更。 [Roberto Fresca] - cpuexec_data構造体から未使用の項目を2つ削除。画面表示が無いドライバがVBLANK割 り込みをしないことを確認するバリディティチェックを追加。[Zsolt Vasvari] - デバイス関数を定義するマクロを追加。既存のデバイスでこのマクロを使うように更新。 [Aaron Giles] - デバイスクラスのコンセプトを導入。デバイスはクラスをget_info関数で定義します。 クラスにより、タイプに比べより全般的なレベルでのデバイス参照が可能です。タイプ 同様にクラスによってデバイス全体について反復処理を行うための関数を追加しました。 [Aaron Giles] - device_configから未使用なフィールドを削除。[Aaron Giles] - ビデオタイミングロジックを全てcpuexec.cからvideo.cに移動。VBLANKのコールバック 登録用にvideo_screen_register_vbl_cb()関数を追加。inptport.cとdebugcpu.cで、 VBLANKコールバックを使うように変更。video_screen_get_time_until_vblank_start()を 追加。かなり広範囲なテストは行いましたが、これはとても大きな変更のため、不具合 が起こるかもしれません。[Zsolt Vasvari] - CVSドライバからcpu_scalebyfcount()を使っている部分を削除。[Zsolt Vasvari] - globalな関数の多くをstatic化。[couriersud] - コンパイラに依存する可能性があったコードを書き直し: [couriersud] * osdcomm.hにATTR_FORCE_INLINEを追加 * ATTR_NONNULLを追加 * U64 S64 fram mamecore.hをosdcomm.hに移動 * osdcomm.hに、ppc602とppc603向けのSETJMP_GNUC_PROTECT()を定義 - cpu_getcurrentframe()を削除して、video_screen_get_frame_number(int scrnum)と置 き換え。呼び出し元を全て更新。[Zsolt Vasvari] - ウォッチドッグ処理ロジックを独自のモジュールへ移動。[Zsolt Vasvari] - tp84.cでのスプライト多重化ハックを、スプライトRAM書き込み時の video_screen_update_now()と置き換え。またドライバ全体のクリーンアップ。 [Zsolt Vasvari] -「ジャイラス」: タイルマップへ変換。スプライトの多重化を修正。ドライバのクリー ンアップ。[Zsolt Vasvari] - z80dmaで新デバイスインターフェイスを使うように変更。mario.cとdkong.cも新インター フェイスを使うように更新。既存のメモリリード・ライトハンドラをキープする方法を 解説。これはデバイスインターフェイスをキャッシュするよりも遅い方法ですが、この 場合のように低周波数でのデバイスアクセスによる影響がありません。[couriersud] - video_screen_get_time_until_vblank_end()とvideo_screen_get_time_until_update()を 追加。[Aaron Giles] - CCPUとQB3がcpu_scalebyfcount()に依存しないよう修正。CCPUコアでのタイミングがお かしくなっていたのを修正。外部のウォッチドッグを使わず、内部的なウォッチドッグ でカウントするように変更。CCPUがドライバからの割り込みシグナルを受け付けるよう に変更。cinematドライバのクロックをクリスタルから割り出すように更新。 [Aaron Giles] - 関数ポインタのtypedefを規格化: 全て_funcという添え字がつきます。コア全体と個人 的に慣れているドライバについて行いました。[Aaron Giles] - PORT_CHANGEDマクロを追加。指定したポートが変更された場合コールバックを呼び出し ます。使い方はPORT_CUSTOMととても似ています。使用例は「アストロインベーダー」 ドライバを参照。[Zsolt Vasvari] - input_port_set_changed_callbackを削除して、全てPORT_CHANGEDにコンバート。以前 のコールバックとの唯一の違いは、PORT_CHANGEDが返す値がPORT_CUSTOMのようにbit 0を 基準にしたものに統一されていることです。[Zsolt Vasvari] - CUSTOM_INPUTコールバックにrunning_machine*を追加。使用するドライバを更新。 [Zsolt Vasvari] - brkthru.c、btime.c、exerion.c、fcombat.c、astrof.c、cheekyms.c、cinemat.cで、 PORT_CHANGEDを使うように更新。必要な箇所についてメモリマップの統合。cheekyms.cを タイルマップに変換。[Zsolt Vasvari] - XからZで始まるドライバのメモリマップを統合。[Andrew Gardner] - Exidy440: CUSTOM_INPUTとINPUT_CHANGEDを使って、入力ポートを近代化。例外処理の クリーンアップ。ドライバとビデオコードの分割を改良。[Zsolt Vasvari] -「ピーカブー!」のクロックとOKI Pin7を検証。[Mike Ellery] -「ファイアートラック」ドライバを整理。ギアシフトロジックなどでPORT_CUSTOMと PORT_CHANGEDを多く使用。[Zsolt Vasvari] - ladybug.c、lasso.c、m10.c、madalien.c、maxaflex.cでコインエイジにPORT_CHANGEDを 使うよう更新。[Zsolt Vasvari] - リード・ライトハンドラ全てに引数running_machine *を追加。全てのcall-throughな ハンドラも必要に応じて更新。read8_handlerをread8_machine_funcに改名。その他全 てについても同じパターンで処理。[Aaron Giles] - 新メモリ処理関数を定義。これまでと似たものですが、running_machine *の部分に device_config *を渡します。これらはread8_device_funcなどと呼びます。 このタイプを指定するためのマクロ、READ8_DEVICE_HANDLER()を追加しました。 [Aaron Giles] - device_configにrunning_machine *追加。トークンと同様に、デバイスが生きている間 有効で、その他の場合はNULLです。[Aaron Giles] - Meadowsドライバの更新: [Zsolt Vasvari] - メモリマップをマージ - コイン用にPORT_CHANGEDを使用 -「Inferno (S2650)」を「Inferno (Meadows)」に改名 -「Bowling 3D」「3-D Bowling」に改名 -「ジプシージャグラー」のボールのグラフィックについてNO_DUMPエントリ追加。また GAME_IMPERFECT_GRAPHICSフラグも追加 -「エクセリオン」のスプライト色修正。[Zsolt Vasvari] - 新マクロ、AM_DEVREAD、AM_DEVWRITE、AM_DEVREADWRITEを追加。これは、アドレスマッ プ内について、参照するデバイスのタイプ・タグと共に、デバイスのリード・ライトハ ンドラを指定します。[Aaron Giles] - MC6845のリード・ライトハンドラをREAD/WRITE8_DEVICE_HANDLERにコンバート。MC6845を 使う全てのドライバで新マクロに、またアップデートした関数を呼び出すように更新。 この目的のために使われていた多くのヘルパー関数を削除。[Aaron Giles] - 実際に存在するデバイスを参照しているかを確認するバリディティチェック追加。 [Aaron Giles] - 画面情報について、オリジナルの設定値ではなく、現時点の情報を表示するよう修正。 [SailorSat] - 以下のドライバについて、DIPスイッチ定義の改良、DIP配置の追加、入力ポートのシン プル化: atarisy2.c, atetris.c, avalnche.c, bagman.c, balsente.c, lasso.c, seta.c. [RasnAckeR] - onetwo.cにDIPとDIP配置追加。[Sonikos] -「Deal'Em」の不具合とバンク読み込み修正。[James Wallace] - 以下の基板についてクロックの変更または確認: [Corrado Tomaselli] 1943、アルカノイド、Action Hollywood、ギャルズパニック、べんべろべえ、 グレート1000マイルズラリー、ピット&ラン、原始島、ラスタンサーガ、HotMind、 Hard Timtes、ステッガーI、虎への道 - 以下の基板について、Oki pin 7の変更または確認: [Corrado Tomaselli] グレート1000マイルズラリー、ギャルズパニック、Action Hollywood、HotMind、 Hard Times、World Rally、ステッガーI - listxmlのDTDに新しいディスプレイタイプを追加。[Oliver Stoneberg] - 内部のアドレスマップコンストラクタを変更: [couriersud] * construct_map_##_nameにはrunning_machineパラメータを渡す * AM_BASE_MEMBERとAM_SIZE_MEMBERの"Machine->"を"machine->"に変更 * construct_address_mapで、Machineを渡す -「ミステリアスストーンズ」を"完全治療"。[Zsolt Vasvari] - 8085 RST75がPULSE_LINEで動作しないのを修正。データシートによれば、他のマスク可 能な割り込みがサンプルされている間、RST7.5は立ち上がり時にラッチされます。 [Nicola Salmoria] - AM_SPACEとマッチマスクのサポートを削除。関連ドライバについては、同じ動作をする ためにAM_MIRROR()とAM_MASK()を使うように更新。[Aaron Giles]