私はemuで最初の一歩を踏み出しているので、単純なGBエミュレーターを作成しています(これは新しいことですよね)。
私が理解していないように見えるのは、CPUサイクルと無条件ジャンプを正しく実装する方法です。
次の基本的なループがある場合は、JP1000hのようなコマンドJPnn(指摘されたメモリアドレスへの無条件ジャンプ)を検討してください。
increment PC
read opcode
execute command
次に、JPオペコードが読み取られてコマンドが実行された後(メモリから1000hを読み取り、PC = 1000hに設定)、PCがインクリメントされて1001hになり、エミュレーションが不良になります。
tl; dr PCをインクリメントするCPUループがある場合に、PC値が正しいままになるように、エミュレーターでジャンプをどのようにエミュレートしますか?