問題タブ [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.
assembly - GBZ80:LD HL、(SP + e)はHフラグとCフラグにどのように影響しますか?
LD HL,(SP+e)
ゲームボーイZ80では、操作はHフラグとCフラグにどのように影響しますか?(ハーフキャリー+キャリー)
c - ゲームボーイ カラー エミュレータ オペコードの自動化
私は C でゲームボーイ カラー エミュレーターを書いています。この世界に自己紹介するためだけに、それは解釈され、動的または静的な再コンパイルはありません :P
今、私はすべての CPU オペコードを C コードで実装するという退屈な作業に取り組んでいます。これらすべてを記述しなければなりません: http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.htmlそして、私はしたくないそれらを別のエミュレーターから取得します。
問題は、オペコードの書き込みを自動化する方法があるかどうかです。ばかげた質問かもしれませんし、ばかげた答えになるかもしれませんが、私はできるだけ仕事を減らしたいと思っています。:)
c - DMA を使用して画像を Visual Boy Advance (VBA) に読み込む
私はCが初めてです。オンライン ツールを使用してイメージ ファイルを .h および .c ファイルに変換しました。C ファイルには、ビットのオン/オフを示すために使用される 1024 個の 16 ビット 16 進数の配列が含まれています。このファイルを読み込んで、DMA を使用して画面上に画像を描画したいのですが、どうすればよいかわかりません。誰か助けてくれませんか?誰かが私が話していることさえ知っていますか?
debugging - 完全なデバッガーを備えたゲームボーイエミュレーター?
ポケモンレッドの不具合の技術的な仕組みに関するこの質問に答えるために行ってきた作業の一環として、標準のデバッガを使用してゲームボーイ ROM をデバッグする方法を探していました。私が見つけたエミュレータの多くは、デバッグをある程度サポートしていますが、これまでのところ役に立たなかったものはありません。
背景として、今のところVisual Boy Advanceの組み込み機能を使用してデバッグを試みましたが、私がやろうとしていることには特に役に立ちません. VBA にはブレークポイントを設定する機能がなく、命令ではなくフレームのレベルで前進するため、実際に必要なときにコードがどのように実行されているかを確認できません。VBA は GDB のデバッグをサポートしていると言っていますが、私は完全に動作させることができませんでした。指示に従って GDB for ARM をクロスコンパイルしようとしましたが、GDB をエミュレーターに接続できませんでした (接続するプログラムがあることを認識しますが、プロトコルに違反していると報告しました)。これを繰り返して、Cygwin を使用した Windows と Ubuntu Linux の両方で同様の成功を収めました。友人と私は Insight/GDB を使用しようとしましたが、まったく同じ問題に遭遇しました。
NO$GBA デバッガーも使用しようとしましたが、Pokémon Red 用の ROM のロードを拒否しました (そして、ファイルが完全に間違っているため、何も修正できないと言って侮辱されました)。
さらに、デバッガーが含まれていると主張するこのバージョンの Visual Boy Advance をダウンロードしようとしましたが、何らかの理由でデバッガーを有効にすることができません。指示に従って F11 を押しても、何の効果もありません。
私は、デバッガーを動作させるために十分な注意を払ってきたと信じていますが、動作するデバッガーが 1 つもなかったことに驚いています。標準的なデバッグ技術を使用してゲームボーイのゲームをデバッグする簡単で簡単な方法を知っている人はいますか? 私は主に、メモリに書き込みブレークポイントを設定できるようにすることに関心があります (どのルーチンがメモリの特定の部分を破壊しているかを確認するため)。この件に関するオンラインリソースはかなり限られているように見えるため、これを直接経験した人がこれを行う方法の詳細を提供してくれると本当にありがたい.
emulation - ゲームボーイ:「ハーフキャリー」とは何ですか?
ゲームボーイZ80CPUにはハーフキャリーフラグがあり、いつ設定/クリアするかについて多くの情報を見つけることができないようです。
私がこれまでに理解していることは、8ビットの加算、減算、シフト、または回転操作(およびおそらく他の操作)が結果のビット4に設定し(?)、DAA命令がこれを何らかの方法で設定/使用することです。私がよくわからないのは、16ビット命令がそれにどのように影響するか、そして特定のレジスタの使用によって影響を受けるかどうかです。
c - Cゲームボーイセパレート機能メインファイル
私はクラスの割り当てのためのゲームボーイプロジェクトに取り組んでいます。別の「関数」ファイルと「メイン」ファイルが必要だと言われました。私はこれをやって狂気になります。ヘッダーファイル「myLib.h」を作成しました。このファイルには、「myLib.c」にある関数の定義とプロトタイプが含まれています。メインファイルで、「myLib.c」から関数を呼び出すと、コンパイルされますが、機能しません。makeファイルに「myLib.c」を追加しました。ファイルは以下のとおりです。
myLib.h
myLib.c
main.c
Makefile
c - Zilog Z80 OP コードの実装
私は現在、古き良きゲームボーイ用のエミュレーターを開発していますが、いくつかの基本的な操作コードを実装する方法を理解する上でいくつかの問題に直面しています。
現在、AND 演算を実装しています。最初のいくつか (0xA0 -> 0xA3; 0xA6 & 0xA7) は非常に単純ですが、レジスタ H、L の AND 演算は少し異なります。
z80 のドキュメントは、次のリンクからダウンロードできます: um0080.pdf (172 ページ)
ここに、私が何を意味するか (疑似コードを使用) と基本的に何をするかを示すいくつかの例を示します。
AND A,H (ビットシフトに注意)
AND A,L (ビットマスキングに注意)
私はすべてのビット操作を知っており、それらが何をするかを知っていますが、なぜそのようにする必要があるのか 理解できないようです. 私にはいくつかの理論があります (間違っていたら訂正してください :-)):
私がすでに理解していることは、レジスタ H と L は基本的に 16 ビット レジスタであるレジスタ HL であるということです。CPU/バスは 8 ビット操作しか処理できないため、分割する必要があります。または、より論理的な提案: 唯一のレジスタであるため、H と L の値はレジスタでマスクされ、単に互いに分離する必要があります (上位/下位ニブル?)。
背景知識(これらすべてが内部でどのように機能するか)を知りたいので、誰かがこれをより明確にしてくれれば、深く感謝します。
android - ゲームボーイのようなキーとAndroid用の十字キー
私はAndroid2.3携帯電話用のRPGを作りたかったのですが、古き良きゲームボーイはそのようなゲームに最適なフォーマットだと思いました。そこで、十字キーといくつかのキーを使用して「ケース」を作成し、それらをUSB経由でAndroidデバイスに接続したいと思います。Bluetoothは多くのエネルギーを必要とするため、必要ありません。ケースに独自のバッテリーセルを与え、Androidデバイスにそれをロードすることを考えました。だから私の質問は:
Androidデバイスからこのケースのキーにアクセスするにはどうすればよいですか?
emulation - 関数の表とgolangのスイッチ
私はgoで簡単なエミュレーターを書いています(私はすべきですか?それともcに戻るべきですか?)。とにかく、私は命令をフェッチしてデコードしています。この時点で、私は0x81のようなバイトを持っており、正しい関数を実行する必要があります。
私はこのようなものを持っている必要があります
またはこのようなもの
1.どちらが良いですか?
2.どちらが速いですか?
また
、3。関数をインラインで宣言できますか?
4.cpu
struct
私はレジスターなどを持っているのですが、レジスターとすべてをグローバルとして持っているともっと速くなりますか?(なしstruct
)
どうもありがとうございます。
assembly - ARM7TDMI(ゲームボーイアドバンス)のOS関連の操作とモード
GBAのCPUが通常OS用に予約されている機能を使用できるかどうか、そしてどのようにこれを行うことができるかを知りたいです。
たとえば、CPUがサポートしていると思われる特権モードにアクセスしたいのですが、gbaがユーザーで起動するため、そもそもそれを入力する方法(および実行するコードを変更する方法)がわかりません。モード。
さらに、コプロセッサー、mmu、mpuなど、gbaのアーム拡張機能がある場合はそれを知りたいと思います。
カウバイトスペックリファレンスで特権モードが存在することを読みましたが、それ以上の言及はありません。