EPROM Access Speed question
Moderator: Moderators
EPROM Access Speed question
Hi all,
I'm looking to buy some EPROMs for my homebrew projects.
I found some online (27c64 and 27c128) for my 8KB CHR ROM and 16KB PRG ROM.
The chips I found are postfixed with 120ns, 150ns, etc. Does that matter when it comes to NES chips? Is there a value I should be targetting?
Thanks
I'm looking to buy some EPROMs for my homebrew projects.
I found some online (27c64 and 27c128) for my 8KB CHR ROM and 16KB PRG ROM.
The chips I found are postfixed with 120ns, 150ns, etc. Does that matter when it comes to NES chips? Is there a value I should be targetting?
Thanks
Re: EPROM Access Speed question
200 ns or faster should be good enough for NES or for Super NES slow ROM. For Super NES fast ROM, you want 120 ns or faster.
- krzysiobal
- Posts: 1036
- Joined: Sun Jun 12, 2011 12:06 pm
- Location: Poland
- Contact:
Re: EPROM Access Speed question
Older and smaller EPROMS (2764) tends to be slower.
When using 250ns, I had issues with graphics (but Kazzo readbacks were OK), so probably yes, 200ns or faster.
When using 250ns, I had issues with graphics (but Kazzo readbacks were OK), so probably yes, 200ns or faster.
Re: EPROM Access Speed question
Keep in mind that you don't need chips of the exact sizes of the binaries you're programming on them, you can safely use larger chips and ground the upper address lines. So if by any chance you find chips that are cheaper, faster, etc. but are larger than what you need, you can get those too.
Re: EPROM Access Speed question
Nice, thanksKeep in mind that you don't need chips of the exact sizes of the binaries you're programming on them, you can safely use larger chips and ground the upper address lines. So if by any chance you find chips that are cheaper, faster, etc. but are larger than what you need, you can get those too.
Thanks, I'll pick up some of the 120 or 150ns pairs.200 ns or faster should be good enough for NES
Excited
Re: EPROM Access Speed question
tokumaru, when you mentioned grounding the address lines I assume that's only if the chip isn't packed right?
So I ended up getting two 27c128 eproms for my NROM game. 16KB PRG and 8KB CHR. PRG will fit nicely, but what are options for CHR? If I just write an 8KB CHR file will it cause problems?
I picked up a cheap little programmer to get started, a TL866ll Plus.
So I ended up getting two 27c128 eproms for my NROM game. 16KB PRG and 8KB CHR. PRG will fit nicely, but what are options for CHR? If I just write an 8KB CHR file will it cause problems?
I picked up a cheap little programmer to get started, a TL866ll Plus.
Re: EPROM Access Speed question
No problem at all. Here's a little crash course on address lines:
The address lines in a memory chip are controlled by the console, and they're used to tell the chip which address the NES is going to access. Each address pin is a bit, and as you probably know, a bit can only be 0 or 1 (from the hardware's point of view, GND or +5V), so each bit is only enough to choose which half of a portion of the chip will be accessed. Say you have a 16KB chip, with address lines labeled A0 through A13 (not coincidentally, 2 to the 14th power is 16384: 2 values per bit ^ 14 bits = 16384 combinations). The highest line, A13, will select which 8192 (8K) half to access. The next line, A12, will select a 4192 (4K) half from the chosen 8K block. A11 will select a 2048 (2K) half from the 4K block, A10 will select a 1024 (1K) half out of the selected 2K, and so on, until A0 selects one byte out of a pair of bytes, and that's the byte that will be accessed.
If you need a 16KB chip to hold only 8KB of data, all you have to do is take control of the highest address line (A13) and force it to either GND or +5V, in order to force the lower or upper 8KB to be accessed, respectively. You can take a look at the pinouts of the chip and the PCB to see what the A13 line will be connected to in order to predict which half of the chip will be read. If the pin goes to GND or +5V, you're in luck, and don't need to do any rewiring, just drop the chip in.
To improve your chances of things working correctly even more, write the 8KB of data TWICE (i.e. double the file before writing), filling the entire chip, so that regardless of what A13 is connected to, the correct data will be returned. If both halves of the chip contain the same data, it doesn't matter which half gets selected for reading. Note that this is only true of ROM! If you ever need to use RAM that's larger than needed, you absolutely need to connect the unneeded address lines to a constant signal (either GND or +5V will work), so the same part of the chip is used every time.
The address lines in a memory chip are controlled by the console, and they're used to tell the chip which address the NES is going to access. Each address pin is a bit, and as you probably know, a bit can only be 0 or 1 (from the hardware's point of view, GND or +5V), so each bit is only enough to choose which half of a portion of the chip will be accessed. Say you have a 16KB chip, with address lines labeled A0 through A13 (not coincidentally, 2 to the 14th power is 16384: 2 values per bit ^ 14 bits = 16384 combinations). The highest line, A13, will select which 8192 (8K) half to access. The next line, A12, will select a 4192 (4K) half from the chosen 8K block. A11 will select a 2048 (2K) half from the 4K block, A10 will select a 1024 (1K) half out of the selected 2K, and so on, until A0 selects one byte out of a pair of bytes, and that's the byte that will be accessed.
If you need a 16KB chip to hold only 8KB of data, all you have to do is take control of the highest address line (A13) and force it to either GND or +5V, in order to force the lower or upper 8KB to be accessed, respectively. You can take a look at the pinouts of the chip and the PCB to see what the A13 line will be connected to in order to predict which half of the chip will be read. If the pin goes to GND or +5V, you're in luck, and don't need to do any rewiring, just drop the chip in.
To improve your chances of things working correctly even more, write the 8KB of data TWICE (i.e. double the file before writing), filling the entire chip, so that regardless of what A13 is connected to, the correct data will be returned. If both halves of the chip contain the same data, it doesn't matter which half gets selected for reading. Note that this is only true of ROM! If you ever need to use RAM that's larger than needed, you absolutely need to connect the unneeded address lines to a constant signal (either GND or +5V will work), so the same part of the chip is used every time.
Re: EPROM Access Speed question
Wow, very cool information, I appreciate the in depth explanation.
So for my first board sounds like doubling the chr data should work by itself, though that does feel a little dirty / grounding seems more elegant. I ordered some wipe sockets so I can practice writing the eproms a bit first so for now I'm soldering the other components.
I may be going off tangent a bit but since my chip is 16KB should I leave the mirror jumpers alone? And I read how the nes header needs to be stripped from my rom prior to writing to the eprom, so I found this utility and was wondering if you've used it or if it seems legit?
https://www.romhacking.net/utilities/683/
So for my first board sounds like doubling the chr data should work by itself, though that does feel a little dirty / grounding seems more elegant. I ordered some wipe sockets so I can practice writing the eproms a bit first so for now I'm soldering the other components.
I may be going off tangent a bit but since my chip is 16KB should I leave the mirror jumpers alone? And I read how the nes header needs to be stripped from my rom prior to writing to the eprom, so I found this utility and was wondering if you've used it or if it seems legit?
https://www.romhacking.net/utilities/683/
Re: EPROM Access Speed question
Mirror jumpers? Do you mean the H and V solder pads? If so, those control the name table (background) mirroring, and are not related to the CHR-ROM chip in any way. Different games need different mirroring types. If you're gonna socket the board and use different games with it, it's better to install a switch so you can change the NT mirroring depending on the game, otherwise, just solder the pads to permanently select the type of mirroring the game needs.casprog wrote:I may be going off tangent a bit but since my chip is 16KB should I leave the mirror jumpers alone?
Do note that the information on the NES header refers to MIRRORING, while the letters on the board refer to ARRANGEMENT (whoever came up with that header format probably didn't have a cartridge PCB in front of him!). Horizontal mirroring is vertical arrangement (solder the pads marked "V"), and vice versa.
I've always used hex editors to split ROMs, so I can't really vouch for any specialized tools. It's a very simple procedure though, so I'm sure there are tons of tools out there that can do it.And I read how the nes header needs to be stripped from my rom prior to writing to the eprom, so I found this utility and was wondering if you've used it or if it seems legit?
Re: EPROM Access Speed question
Thanks for the help tokumaru. I got my eproms programmed and board all ready to go, however the eproms are not in yet (waiting for my switches to arrive). I will make this first board my test board and solder the eproms to other boards after they have been tested. This has been a lot of fun : ) I'm currently using the repro x boards which so far seem very straight forward.
Re: EPROM Access Speed question
And it works! After verifying on my test board with the switches I went ahead and soldered the chips onto a dedicated board.
What's the best way to cover the eprom windows? Just some electrical tape?
What's the best way to cover the eprom windows? Just some electrical tape?