Which eeprom chip to use for burning my rom?

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Which eeprom chip to use for burning my rom?

Post by electro »

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
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Which eeprom chip to use for burning my rom?

Post by tokumaru »

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?
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.

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.
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?
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).
When I do make some video for my rom, which chips can be used for the CHR chip?
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.

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. =)
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

Thanks for that info.

Are there any direct alternatives to the 29C256?

No one seems to have them.

I'll do some more seraching and post what I find here in case anyone is searching.

Thanks again,
T
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

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).
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

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
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

electro wrote:I would just copy the same assembled data to take up the available memory on the chip?
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.
Would I have to modify my assembly code in anyway in order to fill the 256 kb chip with my assembled data?
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 my code that was compiled with NESASM and tested in Jnes and Nestopia work on a real NES system?
Can't tell. You'll only know when you try.
For some reason my rom would not work properly in Nintendulator.
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.
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

Thanks for that.

Correction, it does work in Nintendulator. I didn't have the keys set up.

Works fine now.
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

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
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Is that a 256 kilobit or kilobyte chip?
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

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).
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.
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).
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.
(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?)
Yup, same thing. It's all about extracting from the .NES file (which holds everything) the parts you need for each chip.
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

kilobits... ok making sense now!

(Damn, "kilobytes"!?)

I will digest this some more. Once I receive my programmer, I'll post more.

What would be a good Hex Editor?

(thanks again, very educational, very cool)

T
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

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
User avatar
electro
Posts: 132
Joined: Tue Jan 29, 2008 11:12 am
Location: New York

Post by electro »

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:

Code: Select all

4E 45 53 1A 01 00 01 00 00 00 00 00 00 00 00 00
I assume the iNES header would always be the first 16 bytes in the hex code?


T
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

electro wrote:I assume the iNES header would always be the first 16 bytes in the hex code?
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.
Post Reply