Which eeprom chip to use for burning my rom?
Moderator: Moderators
Which eeprom chip to use for burning my rom?
Hi,
I'm a little confused about the chips needed for burning my own rom, for use on a real nes.
I know they're both memory chips, PRG is for the program code, CHR is for the video stuff.
If I recycled a super mario bros. cart, I would remove the old PRG eprom and replace it with an eeprom flash chip? Which chips could be used for the PRG, without having to modify the cart's PCB?
Also, the code I want to test on a real NES doesn't use any video yet, only sound. Would I need to replace the CHR eprom on mario bros. cart in this case?
When I do make some video for my rom, which chips can be used for the CHR chip?
Thanks for any info, very much appreciated.
T
I'm a little confused about the chips needed for burning my own rom, for use on a real nes.
I know they're both memory chips, PRG is for the program code, CHR is for the video stuff.
If I recycled a super mario bros. cart, I would remove the old PRG eprom and replace it with an eeprom flash chip? Which chips could be used for the PRG, without having to modify the cart's PCB?
Also, the code I want to test on a real NES doesn't use any video yet, only sound. Would I need to replace the CHR eprom on mario bros. cart in this case?
When I do make some video for my rom, which chips can be used for the CHR chip?
Thanks for any info, very much appreciated.
T
Re: Which eeprom chip to use for burning my rom?
SMB has 32KB of PRG ROM. Conveniently enough, the 32KB chips found in nintendo carts are compatible with a few programmable chips without the need for any modifications to the PCB (except desoldering the old chip and soldering the new one, or a socket, but I'm sure you know that much). Anything larger than 32KB will most likely need some rewiring though.electro wrote:If I recycled a super mario bros. cart, I would remove the old PRG eprom and replace it with an eeprom flash chip? Which chips could be used for the PRG, without having to modify the cart's PCB?
If you decide to go with EPROMs (the ones that are a pain to erase, with UV light) you can use the 27C256 (you can find them here, for example). If you decide to go with Flash, the AT29C256 is a great choice. They can be erased very quickly and easily (using the programmer). The store I linked doesn't seem to have them right now, so you may need to look elsewhere.
Always make sure you get the DIP packaging (the tall type), because the other type (the square one) will not fit in place of a Nintendo chip.
You don't need to replace the chip, but at least leave the original one in there (it might not work with no chip at all).Also, the code I want to test on a real NES doesn't use any video yet, only sound. Would I need to replace the CHR eprom on mario bros. cart in this case?
In case you ever decide to replace this chip as well, the ones mentioned above will also work fine, even though there are only 8KB of CHR-ROM. Since the chips have 32KB, simply write the same data 4 times to fill the entire chip.When I do make some video for my rom, which chips can be used for the CHR chip?
NROM (the type of cart used by SMB) and CNROM carts are the only ones that can be converted without any rewiring. If you ever want to make devcarts from other boards (you probably will), you'll have to compare the pinouts of the nintendo chips to your chips and see what needs to be rewired. It's not that difficult, really. Let's see how you handle NROM first. =)
Never tried this one... but I have some of these, and they work just fine with NROM carts too. This W27C512 is an EEPROM, meaning it can also be erased by the programmer, without the need for UV light. It still has 28 pins, but it can hold twice as much data (64KB), so be sure to replicate the data you have to fill the entire chip when programming it (just use an hex editor to copy and paste the data as many times as necessary to complete 64KB).
I'll look into these. Thanks for the link to that site.
I'm not sure I understand the process of "filling up the chip". I would just copy the same assembled data to take up the available memory on the chip? (It doesn't sound too complicated, but just looking ahead a little.)
Would I have to modify my assembly code in anyway in order to fill the 256 kb chip with my assembled data?
Thanks again,
T
P.S.
Would my code that was compiled with NESASM and tested in Jnes and Nestopia work on a real NES system?
For some reason my rom would not work properly in Nintendulator.
T
I'm not sure I understand the process of "filling up the chip". I would just copy the same assembled data to take up the available memory on the chip? (It doesn't sound too complicated, but just looking ahead a little.)
Would I have to modify my assembly code in anyway in order to fill the 256 kb chip with my assembled data?
Thanks again,
T
P.S.
Would my code that was compiled with NESASM and tested in Jnes and Nestopia work on a real NES system?
For some reason my rom would not work properly in Nintendulator.
T
Yeah... If you have 8KB or CHR-ROM and need to use a 32KB chip, write the same data 4 times. Same thing for PRG-ROM.electro wrote:I would just copy the same assembled data to take up the available memory on the chip?
Not at all. But you must be able to extract the PRG-ROM and CHR-ROM data from the .NES file (burning each to their own chip), ignoring the 16-byte header of iNES. All of that, as well a data replication, can be done in a few seconds with any hex editor.Would I have to modify my assembly code in anyway in order to fill the 256 kb chip with my assembled data?
Can't tell. You'll only know when you try.Would my code that was compiled with NESASM and tested in Jnes and Nestopia work on a real NES system?
If it doesn't work in Nintendulator, chances are it will not work on a real NES. IMO, you should try and make it run in Nintendulator.For some reason my rom would not work properly in Nintendulator.
So if I have a 16kb PRG rom I would need to copy the hex code of that 16 times to fill up a 256kb flash eeprom? (If the eeprom holds 256kb).
In my case, there is no CHR data. However I will still need a hex editor in order to copy the hex code and fill the entire eeprom chip (my new PRG rom).
(When I do program some video stuff in my rom, I'll also use the hex editor to separate the PRG stuff from the CHR stuff?)
Thanks,
T
In my case, there is no CHR data. However I will still need a hex editor in order to copy the hex code and fill the entire eeprom chip (my new PRG rom).
(When I do program some video stuff in my rom, I'll also use the hex editor to separate the PRG stuff from the CHR stuff?)
Thanks,
T
Yes. But keep in mind that the numbers they use to name the chips are in Kilobits. The 27C256 holds 256 Kilobits of data, which is the same as 32 Kilobytes. Just divide by 8 to do the conversion.electro wrote:So if I have a 16kb PRG rom I would need to copy the hex code of that 16 times to fill up a 256kb flash eeprom? (If the eeprom holds 256kb).
Even though you don't use CHR yet, if your ROM is a standard NROM image you probably have CHR data in there, even if it's just a bunch of 0's. NROM images are usually composed by a 16-byte header followed by a 16KB or 32KB (SMB is 32KB) PRG-ROM bank, followed by 8KB of CHR-ROM. This format is convenient for emulators, but to put that program in a real cart, you must get rid of the header, copy the PRG-ROM part to one chip, the CHR-ROM to another chip, and replace the original Nintendo chips with those. Since you are the one that made the program, you must know how many KB of PRG-ROM and CHR-ROM you have. You must know this in order to copy the correct parts from the .NES file.In my case, there is no CHR data. However I will still need a hex editor in order to copy the hex code and fill the entire eeprom chip (my new PRG rom).
Yup, same thing. It's all about extracting from the .NES file (which holds everything) the parts you need for each chip.(When I do program some video stuff in my rom, I'll also use the hex editor to separate the PRG stuff from the CHR stuff?)
Experimenting with the Hex editor HXD. I think I was able to remove the iNES header and then copied the original hex code 4 times.
However, it seems that the .NES flie size only went from 64KB to 63.3KB.
I tried 2 things.
1. first copied the entire hex code 4 times and ran it in nintendulator, and it ran fine. This was 64KB
2. then removed (what I think was the iNES header) from the hex code, copied it 4 times and then ran it in nintendulator. It didn't run, saying "iNES Header Signature Not Found."
This is what I expected, however I didn't expect only 0.7KB to belost from removing the iNES header.
Is this what I should expect?
Thanks,
T
However, it seems that the .NES flie size only went from 64KB to 63.3KB.
I tried 2 things.
1. first copied the entire hex code 4 times and ran it in nintendulator, and it ran fine. This was 64KB
2. then removed (what I think was the iNES header) from the hex code, copied it 4 times and then ran it in nintendulator. It didn't run, saying "iNES Header Signature Not Found."
This is what I expected, however I didn't expect only 0.7KB to belost from removing the iNES header.
Is this what I should expect?
Thanks,
T
I think I see what happened during my last post above.
Not only did I remove the iNES header, I removed some of the code.
Now, I think I only removed just the iNES header. When I copied and pasted 4 times (my chip will have 64KB) the .NES file read 64KB.
I removed 16 bytes from the top of my hex code. It looked like this:
I assume the iNES header would always be the first 16 bytes in the hex code?
T
Not only did I remove the iNES header, I removed some of the code.
Now, I think I only removed just the iNES header. When I copied and pasted 4 times (my chip will have 64KB) the .NES file read 64KB.
I removed 16 bytes from the top of my hex code. It looked like this:
Code: Select all
4E 45 53 1A 01 00 01 00 00 00 00 00 00 00 00 00
T
The iNES header is always the first 16 bytes of the iNES format rom. In the vast majority of roms, the PRG immediately follows. In a few rare cases, there is also a "trainer", or 512-byte block of preloaded save data that gets copied to $6000 through $7FFF, before the PRG data.electro wrote:I assume the iNES header would always be the first 16 bytes in the hex code?