Hey guys, I've been working on an NES emulator for a while but only recently stumbled upon this forums, so first of all I wanted to say hi!
Here's a gallery of some shots of my emulator-in-progress. Keep in mind I have not looked at the source of any NES emulators. I have simply referenced the hardware tech manuals spread across the internet.
Of course when I'm done I'm releasing it open source and free. My goal is to code my system in such a way that it passes all of those timing and compatibility tests. It seems most emulators fail these tests due to inherit flaws (or shortcuts) in the way it emulates things. I am trying to code it to be as close to the real thing as possible, and plan on passing all of the test ROMs.
Anyway, I have classes for both the CPU, and the PPU. Both of them correctly take X amount of 'cycles' to do certain things (for example, page boundary crossing will cause certain instructions to take more cycles to execute).
The problem is, even after reading all of the docs out there, I'm still not sure how to properly determine the number of CPU cycles per PPU cycle. Can anyone give me any help on this? I'm looking for the math more than a simple spoon-fed answer.
Oh and also, would an IDE and compiler with debugging/tracing/stepping support be welcomed here for NES programming or are there already things for that? I was considering doing something like that once I get the emulator running smoothly.
Anyway, hello again and thanks in advance!
Here's a gallery of some shots of my emulator-in-progress. Keep in mind I have not looked at the source of any NES emulators. I have simply referenced the hardware tech manuals spread across the internet.
Of course when I'm done I'm releasing it open source and free. My goal is to code my system in such a way that it passes all of those timing and compatibility tests. It seems most emulators fail these tests due to inherit flaws (or shortcuts) in the way it emulates things. I am trying to code it to be as close to the real thing as possible, and plan on passing all of the test ROMs.
Anyway, I have classes for both the CPU, and the PPU. Both of them correctly take X amount of 'cycles' to do certain things (for example, page boundary crossing will cause certain instructions to take more cycles to execute).
The problem is, even after reading all of the docs out there, I'm still not sure how to properly determine the number of CPU cycles per PPU cycle. Can anyone give me any help on this? I'm looking for the math more than a simple spoon-fed answer.
Oh and also, would an IDE and compiler with debugging/tracing/stepping support be welcomed here for NES programming or are there already things for that? I was considering doing something like that once I get the emulator running smoothly.
Anyway, hello again and thanks in advance!