Nesizmは、Casio Prizmシリーズのグラフィック計算機の任天堂エンターテイメントシステムエミュレータです。現在、FX-CG10、FX-CG20、FX-CG50、およびグラフ90+ E CASIO計算機をサポートしています。 NESIZMは、パフォーマンスを念頭に置いてゼロから構築されましたが、必要に応じて巧妙なキャッシュ、強制アラインメント、および手書きのアセンブリで可能な限り正確なエミュレーションと互換性を維持します。 60 fpsでほとんどのタイトルを実行し、FX-CG50でオーバークロックすることはありません。
このプロジェクトは、初期のゲーム開発テクノロジーへの私の関心と、プラットフォームとしてのPRIZMの固有の利点にルーツを持っています。キーボードからディスプレイまでの0入力ラグで何時間ものバッテリー寿命でNESを再生できるプレーヤーの大きなインストールベースがあります。
nesizm.g3aファイル(またはfx-cg10がある場合はnesizm_cg10.g3a)をCasio prizm電卓のルートパスにコピーします。 NES ROM(.NES)もルートディレクトリの内側に移動する必要があります。これらのファイルのファイル名を保持する必要があり、mygame.nesなどの32文字未満でなければなりません。エミュレータはNES 2.0 ROM形式をサポートしていますが、私はそれを広範囲にテストしていません。
メニューシステムでは、矢印キーを使用してシフトまたは入力して選択します。 Alphaを使用して、サブメニューからすばやくバックアウトすることもできます。現在選択されているオプションのヘルプは、右上にあります。
ゲーム内でメニューキーが[設定]画面に終了し、メニューを再び押すと、計算機OSに戻ります。
設定メニューで独自のキーを構成できます。これらは、私がうまく機能することがわかったデフォルトです。
ターボ設定を30 Hzに設定した場合、これは一部のゲームでは誤動作を引き起こすゲームでは速すぎる可能性があることに注意してください。
2番目のコントローラーで再生したい場合は、Options-> ControlsのRemapボタンオプションを使用して、計算機の他のボタンにマッピングできます。ただし、これは非常に面倒なので、デフォルトではプレーヤー2は任意のボタンにマッピングされません。
ROMごとに単一の保存状態がサポートされており、コントロールセクションで言及された再申告可能キーを使用してロード/保存できます。これらは、計算機の「S」および「L」キーにデフォルトです。 Save Stateファイルは、.FCS拡張子を使用してメインストレージに保存されます。
これらの保存状態は、一般に、人気のあるPC NESエミュレーターであるFCEUXと相互に伴うものです。ただし、デフォルトでは、FCEUXは保存時に保存状態で圧縮を有効にするため、保存状態を電卓に戻すために、FCEUXでの状態圧縮を無効にする必要があります。
ROMがLegend of Zeldaなどのバッテリーバック機能を使用している場合、メニューボタンを使用してメインメニューに戻ると、このメモリは自動的に保存されます。保存状態を使用すると、バッテリーバックされたデータが完全に上書きされることに注意してください。
画面ストレッチオプションは、画面の高いリフレッシュレートを使用して信号をインターレースします。これは、インターレーステレビの作品と非常によく似ています。これは、PRIZMにわずかな色のレイテンシを持つTFTカラー画面で作業し、気付くのが非常に困難です。ストレッチオプションを4:3に設定すると、元のゲームに向けて意図した割合に非常に密接に一致します。ただし、高いFPSが必要です。そのため、非常に高いFramesKipオプションセットがある場合、エミュレータビジュアルはグリッチに見え始めます。一般に、オプションを非常に高いフレームスキップに設定するのは不要です。計算機のバッテリー寿命は、フレームスキップによって大きく影響を受けるようには見えません。
3つのパレットが含まれています。彼らは皆少し違うと感じているので、あなたが最高だと思うものを選んでください。多くの点で、NESの真の正しい色はありません。時代のテレビはすべて、NESからの信号をわずかに異なる方法で解釈できるためです。パレットを選択したら、明るさ(暗い環境にいる場合は非常に低いレベルまで)と色の飽和量を調整できます。輝度を高めると、画面の明るさではなく、使用される色の相対的な明るさが増加するだけであることに注意してください。
あなたがそのように傾いている場合、カスタムパレットを使用できます。オンラインで簡単に検索することで見つけることができる192のバイトパレットファイルがあります。目的のパレットを「custom.pal」に変更し、ファイルストレージのルートディレクトリに含めます。この時点で4番目のパレットオプションとして選択可能である必要があります。
4つの背景オプションが利用可能です。 「ワープ」の背景はメインメニューと一致します。テレビの背景は、特に小さな画面ストレッチモードで、ノスタルジックな古いテレビの背景を提供します。ゲームBGカラーオプションは、現在選択されているゲームバックグラウンドパレットの色と一致します。これの使用はゲームごとに異なりますが、スーパーマリオブラザーズの青/黒の背景選択など、一部の場合はうまく機能します。
時間を追跡する必要がある場合、ゲーム内のクロックを画面の右下隅に表示できます。ただし、計算機のOSではクロックが一般的に使用されていないため、セットアップが必要です。 G-ClockなどのサードパーティアプリやGBL08MAの優れたユーティリティアプリの内部で時計を設定します。
FPSは、画面のこの隅にも表示できます。これは単にスキップされたフレームではなく、特定の秒で描かれたフレームです。したがって、40 fpsとフレームスキップオプションが自動に設定されている場合、エミュレータはまだ100%速度で実行されていますが、処理を保存するために画面に描画するときに3番目のフレームごとにスキップしています。
エミュレータは、互換性のあるマッパーでほとんどすべてのゲームを問題なくサポートします。本当に重要な問題があるゲームに遭遇した場合は、お知らせください。
これがマッパーサポートテーブルです。エミュレータは、MMC5を除くほぼすべての米国NTSCおよびPALマッパーをサポートし、それらの地域で市販のゲームの98%をカバーしています。 FamicomディスクとVSシステムサポートは計画されていません。
マッパー名 | 出版社 | 名前 | 出版社 | 名前 | 出版社 |
---|---|---|---|---|---|
MMC1 | 任天堂 | axrom | 任天堂 | 南京163 | 南京 |
MMC2 | 任天堂 | gxrom | 任天堂 | サンソフト3 | サンソフト |
MMC3 | 任天堂 | bnrom | 任天堂 | サンソフト4 | サンソフト |
MMC4 | 任天堂 | null / nrom | いくつかの | サンソフト5 | サンソフト |
MMC6 | 任天堂 | 色の夢 | 色の夢 | RAMBO-1 | Tengen |
cnrom | 任天堂 | ニーナ-03/06 | アベニュー | Nina-1 | アイレム |
UNROM | 任天堂 | カメリカ | はい | JF-11/14 | ハレコ |
ROMとマッパーの完全なテーブルはここにありますが、私はそれを完全に最新の状態に保ちません:https://docs.google.com/spreadsheets/d/1tfgiu6dodagvizsmy3flpsmzvifkiysoxi9uwl-rlry/edit?
PAL ROMは、60 Hzで実行される米国および日本(NTSC)のゲームと比較して、50 Hzの異なるフレームレートで実行されます。これに加えて、他のいくつかのタイミングの違いは、異なる方法でエミュレートする必要があることを意味します。残念ながら、PALゲーム用のほとんどのROMファイルは、PALエミュレーションを必要とするものとして自分自身を正確に識別しません。 NESIZMを使用すると、ゲームパル。
ゲームジーニーコードは、ゲームごとに個別のファイルを介してサポートされています。ファイル名「GameName.gg」のテキストファイルがある場合、GamenameがROMファイルを差し引いてNES拡張機能を差し引いて、ライン分離ゲームジーニーコードを除いて、EmulatorはROMのロード時にそれらのコードをロードして使用します。これが正常に行われると、メニューにダイアログが表示されます。計算機のテキストエディターを使用して手動でコードを編集したい場合は、GBL08MAのユーティリティアプリをお勧めします。 https://github.com/gbl08ma/utilitiesで見つけることができます
ROMファイルと同じ名前のTXTファイルがある場合、ゲームがメインメニューを介してFAQビューアにロードされている間に表示されます。 FAQビューアは、プレイするときに以前のポジションを覚えています。矢印キーを使用してFAQをナビゲートし、右側のスクロールバーを介して位置が表示されます。 0-9キーを使用して、ファイルの10%増分をジャンプできます。
エミュレータはサウンドを完全にサポートしています。サウンドは、1ビットサウンドが1秒に500,000回以上調整されるため、細かい調整されたアルゴリズムです。残念ながら、サウンドルーチンはエミュレーションを約20%減速させますが、フレームスキップではこれはそれほど悪くありません。 PTUNE3などのユーティリティを使用してCG50をオーバークロックしてサウンドで60 fpsを取得することもできますが、バッテリードレインであるため、お勧めしません。オプションのサウンドメニューで有効にします。それを使用するには、2.5 mm(男性)から3.5 mm(女性)アダプターが必要です。これらは、さまざまなオンラインベンダーで数ドルで見つけることができます。また、サウンド信号を楽しむために、耳ヘッドフォンを超えることをお勧めします。
主観的なもののような追加の品質オプションが利用可能です。品質オプションは、元のNESと同じようにDMCジェネレーターに基づいて三角形とノイズウェーブジェネレーターを減少させ、クイックシフトを回避するために追加のローパスフィルターを追加します。ただし、ワンビットサウンドでは、非常に重要ではないようです。
私の他のリポジトリであるPrizmsdkは、ソースからNESIZMを構築するために必要です。 SDKプロジェクトディレクトリにnesizmクローンを入れます。
Windowsマシンを構築するには、Visual Studio Community Editionを使用してプロジェクトファイルを使用することをお勧めします。他のシステムについては、プロジェクトをコンパイルする方法に関するPRIZM SDKドキュメントを参照してください。 make-devicerelease.batの構成オプションを参照してください。
Visual Studioを使用している場合、Windowsシミュレーターを使用するプロジェクトが含まれています。PrizmOS機能をラップして、コードとエミュレーターを簡単にテストしてVisual Studio内で繰り返すことができるようにしました。その使用の詳細については、prizmsim.cpp/hコードを参照してください。
http://wiki.nesdev.com/で見つかったNesdev Wikiは、Nesizmの開発に非常に役立ちました。エミュレータを1か所で書くために必要なすべての情報を収集したエミュレーター開発者のコミュニティに心から感謝します。
http://www.fceux.comで見つかったFCEUXは、互換性の問題があるゲームについて、エミュレーター状態を簡単に比較対照できる優れたデバッグツールを提供しました。 PCでエミュレータを使用して、彼らにいくつかの愛を見せてください!
Ti-Planet.orgのCritorは、NesizmとGeneral Casioコミュニティに関する彼の優れた記事のために。彼の興奮は伝染性があります!