2011年のニュースアーカイブ(39件)(1/2 ページ)

0.144u4出た

0.144u3出た

0.144u3の差分がリリースされました。古ーいシステムを引きずるdeprecat.hがついに一掃されました。

0.144u2出た

ソース差分u2がリリースされています。このくらいの間隔だと気楽です。いろんな意味で

m1.xml更新

m1.xmlがTafoidさんにより更新されました。雷電2の再生不具合について修正されています。

Download

0.144u1出た

差分u1でございます。訳した限りなんだかなーという感じの普通のリリースですw

0.144出た

オフィシャル0.144のリリース。結局ソフトリストのサポートはネオジオのみになっています。

0.143u9出た

u8でアナログ入力関係にかなり不具合が出ていたのでその修正版が出ました。

m1.xml更新

Tafoidさんが管理しているm1.xmlが更新されました。u9に合わせたセットの更新や新規追加などが行われています。

Download

0.143u8出た

0.143u8のソース差分がリリースされました。今回はとても大きなリリースになっています。個人的には新しいVLM5030エミュレーションで、デキャップによる情報が元になっています。かつては、そんなのデキッコナイスと言われていましたからね。

0.143u7出た

Supermodel 0.2a出た

セガモデル3用エミュレータ、Supermodelのパブリックリリースバージョン0.2aが出ました。what's newは以下の通り:

  • 完全カスタマイズ可能な入力システム。キーボード、マウス、アナログ・デジタルコントローラを組み合わせて使用可能。[Nik Henson]
  • テクスチャオフセット。「ファイティングバイパーズ2」「バーチャロン」「スカッドレース」の車、「デイトナUSA2」のセレクト画面などのモデルを修正。
  • 2Dパレットのバグで、黒色ピクセルが透明になるのを修正。
  • 残りのROMセットをすべて追加。[krom]
  • 新しく起動可能になったゲーム: スパイクアウト、スキーチャンプ、セガバスフィッシング、ダートデビルズ、他
  • サウンドをサポート。SCSPエミュレータを作ったElSemi氏、68kエミュレータの使用を許可してくれたKarl Stenerud氏に感謝。
  • マルチスレッドをサポート。サウンドとドライブボードのエミュレーションは別スレッドにロード。ほどほどにパフォーマンス向上。[Nik Henson]
  • Andreas Gerlich氏よるYAZE-AGとFrank D. Cringle氏のコードを元にしたZ80エミュレーション。
  • R.Belmont氏の協力、およびTomislav Uzelac氏によるMPEGデコーダライブラリによるデジタルサウンドボード(MPEGミュージック)エミュレーション。
  • ROMローダを改良。未使用ファイルを削除しなければ、これまでのように統合したROMセットでも間違うことはなくなりました。
  • 設定ファイルにより、設定項目の増加とゲーム単位の設定が可能。
  • 光線銃の照準表示を追加(「ロストワールド」)。フルスクリーンモードでデフォルトで表示され、Alt+Iで表示を切り替えます。
  • 「スカッドレース」「デイトナUSA2」「セガラリー2」のドライブボードとフォースフィードバックエミュレーション。[Nik Henson]
  • 可視表示領域を正しくクリッピング。ディスプレイの解像度が表示領域を越える場合も、境界部分のゴーストが出ないように修正。
  • ギアシフト動作を変更: 専用のニュートラルギアを追加し、シーケンシャルシフトに変更。
  • コンソールベースのデバッガ(デフォルトでは無効。コンパイル時に有効にする必要あり)。[Nik Henson]
  • ソースコードとMAKEFILEの整理。

Supermodel

0.143u6出た

0.143u6のソース差分がリリースされました。ギャンブルゲームがまた追加され、6000本近くになってます。やってられませんw。ただいまRetrofireにフィルタ機能追加中…。

0.143u5出た

0.143u5のソース差分がリリースされました。Taitoの3D系ゲームの進捗、リッジレーサー2のステート昇格など、濃いリリースです。うちのCPUじゃパワーが足りません。

0.143u4出た

0.143u4の差分が早めにリリースされました。今回は久々に進展らしい進展で、Taito JCが大きく改良されています。

0.143u3出た

0.143u2出た

0.143u2のソース差分がリリースされました。ギャンブルゲームが1600本(画面無し含む)追加って…だからピンボールなんて追加しなきゃよかったのに。

バブルシステムの情報

Charlesさんページにバブルシステムについての解析が載っています。


2007年のことになりますが、私とGuru氏でKonami Bubble Systemの基板についていくつかテストを行いました。ここで、その動作の仕組みについて忘れる前に説明しておきたいと思います。

システムは128KのワークRAMをDRAMとして実装した68000を使用し、最初の4Kは2個の2Kx8 SRAMチップで置き換えてある。SRAMは正体不明のMCU(64ピンSDIP)と共有されていて、必要に応じて読み書きを行っている。このMCUは68000を停止させることが可能で、バブルメモリと直に接続されている。68000がセクタリード/ライトのリクエストを出すために使われる、専用のハードウェアレジスタが$40000にある。MCUは共有RAMの$F00-$F7Fをこのリクエストに対するセクタバッファとして使用している。

パワーアップリセット後、MCUは68000に実行させるベクタテーブルとブートプログラムを共有RAMに書き込む。Guru氏はこのプログラムがゲームプログラムに上書きされる前に取り出すため、SRAMをNVRAMと置き換えた。その結果が次の通りである:

  • 一定時間待つ
  • ウォッチドッグを始動する
  • MCUが取得したデータを14C-D00よりコピーする。これは不良セクタのビットマップで304バイトと思われる。128バイトの各セクタ毎に2432ビット、または合計で304Kである。各セクタは実際には132バイトだが、使えるデータは128バイトである。MCUがRAWセクタをRAMに書き込んだ後、BIOSが不要データを切り取る。
  • オフセット$78000が$5555の場合、$78002に飛ぶ。これは、ドーターボードコネクタに接続した外部EPROMに該当する。おそらくは開発用だろう。
  • バブルメモリのセクタ$001、$001、$801を読み込む。このデータは使用されない。たぶんこの後の本番アクセスに備えたダミーリードと見られる。セクタ番号のビット11が特別な目的を持つかもしれない(例えば、セクタ$001と$801が同じなど)。
  • セクタ$181からRAMの$10000へ8セクタを読み込む。このとき、132バイトのRAWセクタを128バイトセクタにコンバートする。
  • バブルメモリから最初のゲームプログラムを1K読み込んだところで、$10000にジャンプする。これはRAMのなかでMCUと共有されていない箇所。

この時点からゲームが動作し始め、セクタからメモリへの読み込みを継続しながら、ゲーム固有の命令を実行する。ワークRAMの下位4KにはシンプルなBIOSがあり、#0がセクタ読み込み、#1がセクタ書き込みのトラップをする。しかし、ゲームがハイスコアなどをバブルメモリに書き出していたかや、セクタの書き込みがRAWフォーマットかそうでないかなどは不明。

保存とエミュレートという目的から言えば、各ゲームのバブルメモリー内データを全て読み出すことがゴールと言える。これを行うためには、68000でトロイの木馬を実行させ、MCUに対してセクタの読み込みをさせる必要がある。68000のプログラムコード自体もバブルメモリーから読み込んだり、MCUの内部ROMからコピーする必要があるため、独自コードを実行するのは簡単ではない。SRAMをROM(この場合書き込み不可にしたNVRAM)と置き換えると、起動時にMCUがデータの読み込みをしなければいけないため、正常に起動しないと思われる。そのため、ドーターボードのコネクタを使用するのが残された手段のようだ。

シグネチャの確認を行ったり、68000の実行コードを記憶させたカスタム基板をドーターボードに取り付けることができるかもしれない。また、NVRAMやUSBインタフェースなどを追加して、セクタの読み込みに応じて保存させることも考えられる。他には、68000をフルークモジュールと置き換え、起動プログラムがバブルメモリーから読み込まれたプログラムに制御を移したときに一旦ブレークし、そのアドレスをトロイの木馬で上書きする方法もあるだろう。

いずれ、正確な動作のためにはMCUの腑分けや解析、読み出しが必要になると思われるが、バブルメモリーのゲームは大変希少で高価なため、基板にアクセス可能で、しかもこのような作業に対するリスクを冒す人を探すのは難しい状態である。当座は、バブルメモリーの吸い出しとMCUのシミュレーションで差し支えないだろう。

Charles MacDonald's Home Page

0.143u1出た

0.143u1のソース差分がリリースされました。なんだか安定してません。

MAME 0.143出た

オフィシャルMAMEの0.143がリリースされました。バグ修正とメンテナンスがメインです。コスレッドはチェックが定期リリースに間に合わず、まだ無効化されています。

0.142u6出た

0.142u6の差分ソースがリリースされています。次は0.143の模様です。

0.142u5出た

0.142u5の差分がリリースされました。HLSLの更新の他には、表には出にくい深めの内容です。ESCキーを押したときの終了確認が派生版から取り込まれてます(デフォルトはオフ)。前回のリリースでHLSLのエフェクトに必要なアパーチャマスク用のファイルの配布が忘れられていましたが、今回はこちらからダウンロードできます。っていうか、うちでHLSLをONにするとクラッシュするんですけど…

【更新】HLSLフォルダ内のエフェクト定義も追加・更新されていました。最新の定義ファイルをこちらに上げておきます。

0.142u4出た

0.142u4の差分ソースがリリースされました。今回はDirect3Dのシェーダ機能を使った画面エフェクト機能が試験的に追加されています。いろいろなエフェクトを組み合わせて、古いCRT風の表示を実現しようという試みのようです。有効にするにはDirectX 9(シェーダモデル3.0)をサポートしたGPU、それも比較的処理速度のあるものが必要とされています。コンパイルツールも新たにヘッダ関係が追加され更新されています。ただし、まだテスト段階のため、速度調整やグラフィックカードの違いによる不具合をはじめ、いろいろと問題があるようです。

こちらにお試し用の設定を上げておきますが、スライダーコントロール内でも直接調整できるので、お好みの設定を探してみるのもおもしろいかもしれません。

 hlsl_enable               1
 hlslpath                  hlsl
 shadow_mask_alpha         0.2
 shadow_mask_texture       aperture.png
 shadow_mask_x_count       640
 shadow_mask_y_count       480
 shadow_mask_usize         0.3875
 shadow_mask_vsize         0.3875
 oversample_x              1.0
 oversample_y              1.0
 curvature                 0.05
 screen_scale_top          1.0
 screen_scale_bottom       1.0
 pincushion                0.05
 scanline_alpha            0.7
 scanline_size             1.0
 scanline_bright_scale     1.0
 scanline_bright_offset    0.6
 scanline_jitter           0.2
 defocus_x                 0.4    
 defocus_y                 0.2
 red_converge_x            0.0
 red_converge_y            0.0
 green_converge_x          0.0
 green_converge_y          0.0
 blue_converge_x           0.0
 blue_converge_y           0.0
 red_radial_converge_x     -1.0
 red_radial_converge_y     -1.0
 green_radial_converge_x   2.0
 green_radial_converge_y   2.0
 blue_radial_converge_x    0.0
 blue_radial_converge_y    0.0
 red_from_r                1.0
 red_from_g                0.0
 red_from_b                0.0
 green_from_r              0.0
 green_from_g              1.0
 green_from_b              0.0
 blue_from_r               0.0
 blue_from_g               0.0
 blue_from_b               1.0
 saturation                1.0
 red_offset                0.0
 green_offset              0.0
 blue_offset               0.0
 red_scale                 1.2
 green_scale               1.2
 blue_scale                1.2
 red_power                 1.0
 green_power               1.0
 blue_power                1.0
 red_floor                 0.08
 green_floor               0.08
 blue_floor                0.08
 red_phosphor_life         0.2
 green_phosphor_life       0.3
 blue_phosphor_life        0.5
 yiq_enable                0
 yiq_w                     4.1187867
 yiq_a                     0.5
 yiq_b                     0.5
 yiq_fsc                   1.5
 yiq_fsc_scale             1.0
 yiq_phase_count           2

0.142u3出た

0.142u3の差分ソースがリリースされました。listxmlにsoftlistなどの新項目が追加されています。Retrofireの不具合は修正済みです。

DECOカセットの吸い出し方

少し前の更新になりますが、Charles MacDonaldさんがデコカセのドライブとその吸い出し方について解析されています。


DECOカセットドライブ概要

データイーストはかつて、ゲームデータをマイクロカセットからゲームデータを読み込むアーケードシステムを製造していた。これは専用のテープドライブで再生を行う。ドライブのチップセットはMag-Tek社で、この会社は現在も磁気テープ関係の製品を作っている。以前、デコカセシステムの動作方法とゲームの吸いだしや保存が可能かについて尋ねられたため、そのハードの概要と(未テストの)吸いだし回路をお届けしようと思う。

カセットドライブは2x10ピンコネクタで"BIO-8"基板に接続されている:

                    +----------+
     TAPE_SENSE     |A1 <   B1 |    (N.C.)
     (N.C.)         |A2     B2 |    (N.C.)
     RCLOCK         |A3     B3 |    RDATA
     GND            |A4     B4 |    (N.C.)
     REV            |A5     B5 |    FWD
     FAST           |A6     B6 |    (N.C.)
     (N.C.)         |A7     B7 |    (N.C.)
     EOT/BOT        |A8     B8 |    (N.C.)
     +12V           |A9     B9 |    +12V
     GND            |A10    B10|    GND
                    +----------+

ケーブル"E"には、このコネクタをさすための2x10ヘッダがついており、上記のピンA1を示す矢印がモールドされている。ケーブルの反対側は、金色の端子に緑色のコネクタがあり、カセットドライブの基板に接続する。

TAPE_SENSEはスイッチ出力で、カセットが挿入されてフタを閉めたときに5V、カセットが無かったりフタが開いている時は0Vとなる。このスイッチはモーターのそばにあるバネ付きのメタルピンである。

EOT/BOTは、LEDからの光を受けるフォトダイオードの出力で90度ずらして取り付けられている。カセットテープの導入部以外のところは、光を反射するよう裏側がメタル状になっている。不透明な部分は光を遮り、透明な導入部分では光が通過する。テープが導入部(テープが終端か先頭)のときは5Vが流れ、それ以外の、テープが不透明な箇所(データがある)のとき、カセットが無いとき、フタが開いているときは0.40Vが流れる。

FWD、REV、FASTはそれぞれ、カセットのモーター制御中には5V、停止中は0Vとなる。FWDとREVは同時に有効にはできず、BIO-8基板にはそれを防ぐロジックが組み込まれている。通常、FWDとREVのみで適切なカセットの再生速度となり、FASTと同時に指定すると早送りや巻き戻しとなる。

RCLOCKとRDATAはテープにエンコードされたデジタルデータである。クロックシグナルはデータ信号のサンプルが可能になった時を判断するのに使われる。RDATAは、ビット"1"については5V、ビット"0"については0.40Vが出力される。 テープの巻き取りが進むにつれて、ピックアップを通過するテープ速度は上がるため、再生中クロックとデータレートは上昇し続ける。BIO-8基板上のMCUは、このデータレートの上昇に十分対応できるようになっていると思われる。

DECOカセットドライブの吸い出し

今回、信号の引き出しが出来るようにRCLOCKとRDATAをスプライスによりケーブル"E"に接続する回路を設計した。RCLOCKは、灰色のスリーブ付き白色配線、RDATAは黒色スリーブの赤色配線とする。また、グランドとして、ラベル"E"を付けた黒色配線を接合することもできる(回路のA10にあたる)。この回路により、基板の通常動作と平行して、吸い出し用の音声出力も可能となる。

ここでは、PCのサウンドカードのライン入力に合わせてインピーダンスを下げるため、出力レベルを1.25Vに変換している。ただし、ダメージを防ぐため、安いアンプなどを一旦経由し音量を調節することを勧める。回路図にRCAジャックまでしかないのは、この理由による。

回路図

注意: "E"ケーブルには+5Vラインが無いため、DECOボードセットには別途電源を供給する必要がある。このとき、出力の録音には44100 Hz以上を選び、音割れを防ぐため録音レベルに注意するのが重要である。 右チャンネル(クロック)は方形波、また左チャンネルは矩形波のようになる。うちでは、動作するものを1台作成するため、手元のドライブを2台流用する必要があるので、まだテストは行っていない。従って、この回路はあくまで使用者の責任において利用してほしい。とはいうものの、私自身は新しいテープがサポートされることをとても心待ちにしている。

Charles MacDonald's Home Page