Hi,
I recently registered in the forums but I've been reading them and the Wiki for several months now, and I have to say that the info you guys have compiled along these years is gold.
So, I decided to start my own NES emulator (just for fun). Right now, I've finished my CPU core and it passes Nestest.nes, and Blargg's Official / Unofficial instructions tests.
I have also come up with a PPU that shows most of the NROM games. The problem is that I can't seem to pass all of Blargg's ppu_vbl_nmi tests.
Currently I get the following results:
01-Vbl_Basics - PASS
02-Vbl_set_time - PASS
03-Vbl_clear_time - PASS
04-NMI_control - PASS
05-nmi_timing - FAIL
06-supression - FAIL
07-nmi_on_timing - FAIL
08-nmi_off_timing - FAIL
09-even_odd_frames - PASS
10-even_odd_timing - PASS
So, I'm a bit stuck here. I seem to have my frame timing correct (The VBL flag sets and clears correctly, odd / even frames are OK).
CPU polls for interrupts at the second to last cycle of every instruction, except for branches, that behave differently (polled before the 2nd cycle and polled again if there's a page cross).
Can you guys, give me some hints so I can start looking at the right place for passing test 05 (and then i can start working my way for passing the remaining ones?
5-NMI_Timing_Fail.png [ 18.62 KiB | Viewed 1565 times ]
Sorry for my poor English.
Thanks!
I recently registered in the forums but I've been reading them and the Wiki for several months now, and I have to say that the info you guys have compiled along these years is gold.
So, I decided to start my own NES emulator (just for fun). Right now, I've finished my CPU core and it passes Nestest.nes, and Blargg's Official / Unofficial instructions tests.
I have also come up with a PPU that shows most of the NROM games. The problem is that I can't seem to pass all of Blargg's ppu_vbl_nmi tests.
Currently I get the following results:
01-Vbl_Basics - PASS
02-Vbl_set_time - PASS
03-Vbl_clear_time - PASS
04-NMI_control - PASS
05-nmi_timing - FAIL
06-supression - FAIL
07-nmi_on_timing - FAIL
08-nmi_off_timing - FAIL
09-even_odd_frames - PASS
10-even_odd_timing - PASS
So, I'm a bit stuck here. I seem to have my frame timing correct (The VBL flag sets and clears correctly, odd / even frames are OK).
CPU polls for interrupts at the second to last cycle of every instruction, except for branches, that behave differently (polled before the 2nd cycle and polled again if there's a page cross).
Can you guys, give me some hints so I can start looking at the right place for passing test 05 (and then i can start working my way for passing the remaining ones?
Attachment:
5-NMI_Timing_Fail.png [ 18.62 KiB | Viewed 1565 times ]
Sorry for my poor English.
Thanks!