This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

EPROM Speed Question

EPROM Speed Question
by on (#86539)
At what speed would the NES start noticing a decline in performance with larger EPROM speeds. Speeds like 200 ns and above. I've seen people not care for certain speeds and I would like to see some more opinions.

by on (#86540)
The NES doesn't wait for anything. Its clock speed is fixed. No waitstates anywhere. It either works, or it doesn't.

558ns is equal to the clock speed of the CPU (~1.789MHz), so I wouldn't go any higher than that. Not sure if you need to halve that or not because of clock edges, but 200 is still below half of 558.

As usual, I don't have a clue about how these things work, I'm just making guesses based on the CPU clock speed.

by on (#86542)
I wouldn't think it's a matter of "performance" if memory is too slow the next instruction won't get read properly for the CPU and it'll freeze/never even start up. So as long as it's fast enough to work you'll be fine, it's not like the CPU would end up slowing down and affect "performance" like you're suggesting, it just plain won't perform at all.

The NES is operating at ~1.7Mhz and thus ~590nsec period. Assuming that phi2 has a 50% duty cycle that means PRG /CE is low for half the period which is ~290nsec. That means the ROM has about that long to get the data on the bus. You've got things like clock jitter and skew going on as well so it's hard to give an exact number but I would stay sufficiently far away from 290nsec. Your ROMs are probably even faster than listed also under ideal conditions as well.

So 200nsec is well within that and should be fine. IIRC I've seen games on bootgod's DB with speeds as slow as 220 - 240nsec which obviously didn't have a problem either. But I wouldn't push it much slower than that. Under ideal conditions like good 72pin connection, and cool atmosphere I wouldn't be surprised if 300nsec memories worked if you had some that were actually that slow. But I certainly wouldn't count on em ;)

I'm just giving the numbers and theory here but someone else may have some actual testing to give you as well.

by on (#86555)
I think it's unlikely you'll find any EPROMs too slow. As noted, there is no performance issue here. The NES always operates at its fixed speed. If the ROM/RAM hooked up to the CPU or PPU can't keep up, it doesn't know any better. In the PPU case it'll glitch, in the CPU case it'll probably crash if it's fetching code from this memory that is too slow to be ready in time. But again, I think 250ns is fast enough for the NES CPU atleast. Most EPROMs of sufficient size for NES use are going to be fast enough.

Now SNES has a thing called FastROM in which it can speed up ROM access from approx 2.68mhz to 3.58mhz in which the ROM speed rating needs to be 120ns or faster compared to SlowROM which is 200ns or faster.

by on (#86596)
Normally address decoding can begin before Phi2 (as with the SNES), but not on the NES since the ROM is selected with /ROMSEL which is dependent on Phi2. The ROM speed must thus be the period of Phi2 - '139 propagation (~30 ns) - 6502 setup time (possibly 20 ns). 200 ns would be advisable, especially with games which further decode /ROMSEL into two selects for two ROMs.

by on (#86620)
Per Quietust's contributions to the wiki, the duty cycle of M2 on the NTSC NES is not 50% but rather 62.5%. (I also verified it on my oscilloscope), for a true (high) time of 362.6ns. I then measured the output of the '139 and found a true (low) time of 362ns also, because the rise and fall times are the same — 16ns. Rockwell's 6502 spec asserts a setup and hold time of 50 and 10 ns. Also, at least one game was sold using 300ns PRG-ROM.