問題タブ [gameboy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1582 参照

emulation - エミュレーションに関して、ゲームボーイとゲームボーイカラーの違いは何ですか?

ゲームボーイカラーのエミュレーターを書いています(楽しみのために)。元のゲーム ボーイのハードウェア、つまり Imran Nazar のチュートリアル ( http://imrannazar.com/GameBoy-Emulation-in-JavaScript ) と Zak の本 (Z80 命令リファレンス) に関する大量のリソースとリファレンスを見つけました。同様に、空白を埋めるためにいくつかのオープンソースエミュレーターを調べてきました。

私が理解できない、またはリソースを見つけることができないことの1つは、GBCのメモリレイアウトとそのgpuです。GBC はゲーム ボーイの 3 倍のメモリを搭載し、LCD ディスプレイは 2 ビットではなく 15 ビット カラーをサポートします。したがって、説明する必要があることは間違いありません。

どんな助けでも大歓迎です。:)

0 投票する
2 に答える
792 参照

assembly - LR35902 アセンブリを使用して、独自の非 ASCII チャームマップを 10 進数として使用して、符号なし 16 ビット整数を HL からテキストに変換する

LR35902 (ゲームボーイの Z80 に似た CPU) のルーチンを作成する方法を理解する必要があります。これは HL の内容 (それが指す場所ではなく、格納されている実際の数値) を取得し、それを 1 から 5 に変換します。 (HL は 16 ビットであるため、実際の値は 0 から 65,535 の範囲になります) 10 進法を使用した非 ASCII* 文字。印刷するルーチンがあり、先頭のゼロを切り取る方法を簡単に見つけることができます。

必要なのは、少なくともこの関数の疑似コードと、せいぜい実際のRGBDS LR35902 ASM ルーチンだけです。

*ASCII の代わりに、私は独自の 1 文字あたり 1 バイトのチャームマップを使用します。このマップでは、文字 0 は 16 進バイト $17 で、9 まで増加すると $20 になります。

0 投票する
1 に答える
410 参照

lua - Lua: Bizhawk エミュレーターで未署名の DWORD が機能しないことを読み取る

コードを実行すると、次の行にエラーが表示されます。

これは、コンソールから表示されるエラー メッセージです。

私はしばらくこれについていくつかのテストと調査を行ってきましたが、この概念が次のような他のいくつかのプロジェクトで使用されているにもかかわらず、機能させることができません: https://projectpokemon.org/forums/showthread.php?16681-Gen -3-Lua スクリプト

その他の情報:
1. BizHawk エミュレーターで lua スクリプトを実行しています。
2. 行を memory.readbyte() に変更すると、別のメッセージが表示され、コンソールが memory.readdwordunsigned() を機能として認識していないと思われます。
3. スクリプトはエミュレータの実行ファイルと同じフォルダにあります。

事前に助けてくれてありがとう

0 投票する
1 に答える
153 参照

c# - ゲームボーイエミュレーターに NAudio を使用する

GB エミュレーターにオーディオの実装を開始しました。このために、NAudio を使用しています。エミュレーターは出力をバイト配列に計算し、フレームごとにそれを BufferedWaveProvider にロードします。出力には、最初のバイト配列が BufferedWaveProvider にロードされた後に開始する WaveOut を使用します。

かなりうまくいっているようですが、オーディオを扱うのはこれが初めてなので、これが正しいことかどうか知りたいです。

また、四角波の音を良くする方法などをご存知でしたら教えてください。

0 投票する
1 に答える
1886 参照

assembly - 命令の長さ LD A,(C) ゲームボーイ ~Z80 プロセッサ

こんにちは、ゲームボーイ用のエミュレーターを書いています。

私はこのリファレンスを使用します:ゲームボーイCPU(LR35902)命令セット

このドキュメントでは、オペコードについて次のように述べています。

長さは 2 です。

Game Boy CPU Manualには、これらの命令がそれぞれ次のように記載されています。

アドレス $FF00 + レジスタ C の値を A に入れます。

A をアドレス $FF00 + レジスタ C に入れます。

オペコードは自己完結型であり、別の値を解釈する必要がないため、長さは 1 だと思います。長さが 2 の場合、2 番目のバイトの目的は何ですか?