#aqboy 次は instr_timing をやるか
Conversation
Notices
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:46 JST 艮 鮟鱇 -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:23 JST 艮 鮟鱇 さて次の目標は何にしようか。現状は一通りの命令が実装できたというところで、肝心のスプライトやらウィンドウやらが実装されていないのでゲームは何も動かないはず。このあたりを実装したいが、このあたりをテストできるROMは https://gbdev.gg8.se/files/roms/blargg-gb-tests/ にはなさそうだ。 mem_timing や interrupt_time を試してみたがどうも CAMLBOY も対応していないっぽいのでゲームを動かすだけなら無視してもよさそう。となると、ウィンドウ・スプライトを使っていそうなhomebrew ROMを取ってきて、それを相手に頑張ることになるのか……?
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:30 JST 艮 鮟鱇 CPUの使用率が常時60%くらいあるのが気になるので治す。とりあえず描画用スレッドと計算用スレッドで2つgoroutineが走っているのをやめて、典型的なinput-update-drawのloopにしてみる。例のRust実装もOCaml実装もそうなっていた。治った。
In conversation permalink 今谷里奈 repeated this. -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:33 JST 艮 鮟鱇 通った〜〜〜〜
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:35 JST 艮 鮟鱇 これもopcode表のバグ。BITの(HL)のサイクルは16ではなくて12
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:36 JST 艮 鮟鱇 明日用
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:37 JST 艮 鮟鱇 違うバグが出たけどとりあえずreloadし続ける問題は解決した。良かったよかった。
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:38 JST 艮 鮟鱇 あー分かった分かった、opcodeの表が間違っていて、LD (C), Aは1 byteの命令なんだな。そりゃそうだ。opcode表に騙された。
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:39 JST 艮 鮟鱇 実際一つ手前の命令 POP HL のときは正しい
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:40 JST 艮 鮟鱇 謎バグだったがだんだん分かってきた。そもそもこのROMは0xd820の値をincrementしつつ実行することで全ての命令を実行することを目的にしている。この値が0xe2、つまり LD (C), A を実行しているときに、後続の0xd822が INC L になっているのが問題で、本当はここは JP C42C になっていないといけないはず。
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:42 JST 艮 鮟鱇 そしてinstr_timingを動かそうとしたら謎のreloadされまくるバグにハマった。
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:43 JST 艮 鮟鱇 いま各命令に別れていない方のcpu_instrs.gbを動かそうとして思い出したけど、ROMサイズを一番小さいやつに決め打ちしてるんだった。これは直しておきたい。
In conversation permalink -
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Sunday, 06-Feb-2022 17:32:45 JST 艮 鮟鱇 ゲームボーイのエミュレータを自作した話 · Keichi Takahashi https://keichi.dev/post/write-yourself-a-game-boy-emulator/
> 命令の動作をテストするcpu_instrsと,命令のクロック数をテストするinstr_timingは通らないと,実際のゲームは動かないと思う.逆に言えば,他のテストは通らなくても何とかなる.
In conversation permalink Attachments
-
艮 鮟鱇 (anqou@mstdn.anqou.net)'s status on Thursday, 10-Feb-2022 00:36:04 JST 艮 鮟鱇 https://github.com/mattcurrie/dmg-acid2これがよさそう。object/window/backgroundを使って顔を表示する。表示できていない箇所によってどこが間違っているか分かる。
In conversation permalink Attachments
-