I'm beginning my journey with 6502, and want to experiment with flashing my code to a real cart.
As a start, I want to take some known working code (Super Mario Bros. for example) and flash it to a cart that I don't mind destroying.
I got this clone cart with the game "Ikari" on it, and I bought a few AT28C256 EEPROM chips which I was able to read and write to with my G540 programmer.
So my questions are:
1. Can I use this cart for SMB?
2. Do I need to modify the data that I split (with "NES Mapper Reader / Rom Fixer / Rom Splitter") to fit the EEPROM chips I have?
SMB uses NROM (mapper 0).
Ikari uses UNROM (mapper 2).
You will need to desolder the 2 TTLs and connect/rewire your EPROMs for CHR and PRG properly.
To create the PRG and CHR binary of the ROM use famiROM.
http://nintendoage.com/forum/messagevie ... adid=63070
Ice Man wrote:
You will need to desolder the 2 TTLs and connect/rewire your EPROMs for CHR and PRG properly.
Can you elaborate, or direct me to resources about that? What is TTL? and how do I rewire?
Thanks.
Alternatively you can just desolder the original 128kB mask PRG-ROM, place DIP32 socket for 128kB EPROMs/FLASHes and you have generic UNROM devcart.
Then you can modify original NROM game into UNROM:
* add CHR-ROM data into it
* add routine that copies that piece of data into CHR-RAM
* jumps into original reset vector
That way you can modify all NROM games into UNROM so you will have a much more generic cartridge.
krzysiobal wrote:
Alternatively you can just desolder the original 128kB mask PRG-ROM, place DIP32 socket for 128kB EPROMs/FLASHes and you have generic UNROM devcart.
Not sure I follow.. My cart has 28DIP chips. How can I place a 32DIP socket?
TTL is
Transistor-
Transistor-
Logic which is the 74161 and 7432 IC in this case.
For putting 32 Pin socket you will need to bend the pins of course and rewire them properly.
If you're really new to this I'd suggest getting familiar with the pinouts first.
http://nesdev.com/NES%20ROM%20Pinouts.txtThis might help as well:
http://nesdev.com/NES%20EPROM%20Conversions.txt
Do you know about Address Bus, Data Bus, and Control Bus? Do you understand that there are 2 sets of these busses in the cartridge -- one for the CPU ("PRG") and one for the graphics processor ("CHR")? These concepts are important to understand when modifying cartridges. I would recommend reading about this, then reading about the pinouts as Ice Man linked. Also the pinout of the main edge connector might be helpful. You should have some understanding of how the cartridge works when you do this, and we can help explain any questions you have. Basically, your goal is to make the correct connections from the edge connector to your EPROMs, and you want to use DIP sockets so that you can remove the EPROMs to reprogram them.
Do you have a real SMB cartridge, or other cartridges? SMB/Duck Hunt will be different than SMB. To help with learning how it works, you can use a continuity tester on a real cartridge and take notes to see the correct connections for that game. You will be much more successful with this and get less frustrated if you spend some time and form a high-level understanding and experiment like this first.
Thanks. I think I'll look for another cart. I believe I have an original famicom SMB, but I 'm hesitant to pry it open...
I'll look into my pile of clones and look for an NROM in the cart database.
Sounds like a great plan! Let us know if you have questions or want us to review any of your schematics/drawings/wiring/photos. I remember the first cart that I modified to EPROMs, I find it very nostalgic. I was SO excited to finally get it to work. It will be worthwhile.
Well, I opened my famicom SMB cart, with a HVC-NRON-256k-02 PCB and replaced the chips with sockets.
I split the SMB ROM with famiROM, with chip size 32K for both PRG and CHR.
Flashed the images on two AT28C256 EEPROMS, dropped the cart in my famicom and.... grey screen
I tried seversl times, with other NROM games but the result was the same...
Where do I go from here? Verify continuity between the chips and the cart connectors? am I missing a step?
EDIT:
I believe I found my mistake. The AT28C256 chips are not compatible with the original chips.
I originally ordered the AT29C256, but apparently my programmer does not support it.
Back to Ebay, and this time I'm ordering W27C512 which is supposed to be compatible with both the original chips, and my programmer.
The 28C256 parts should be compatible, except that A14 has moved which pin it's connected to. (On flash, A14 is on pin 1 and /WR is on pin 27. On 28-pin mask ROMs, like those used by Nintendo, A14 is pin 27 and A15 is on pin 1)
29 series parts should have the same problem. 27 series parts may be ok, but you should check the datasheet. Either way, you "only" need to rewire those pins.
Does your ROM burner verify? If it verified, it probably was successful flashing them anyway.
Feel free to post pictures before trying it, we will check your wiring for you.
AT28C256 is not pin compatible with NROM.
NROM uses 27C256/27C512 EPROM mostly.
You will need to rewire pin 27 (/WE) of your AT28C256 to VCC and pin 1 (A14) to hole 27.
Just got a new batch of chips - W27C512 (
https://www.jameco.com/Jameco/Products/ ... INBOND.pdf)
As far as I understand they supposed to work for 32k NROM games, right?
I tried flashing Super Mario Bros (after splitting and compensating for chip size), but again I'm getting grey screen.
Do I still need to mess with wiring or leg lifting?
How did you duplicate and/or pad the PRG and CHR from the original .nes file to fill the 64KB expected by the two EPROMs?
lidnariq wrote:
How did you duplicate and/or pad the PRG and CHR from the original .nes file to fill the 64KB expected by the two EPROMs?
With FamiROM, with target size of 64K (27C521).
I went over both chips with a continuity tester, and found that all the pins are connected as expected, except pin 27 of the CHR which is connected somehow to +5v. Is it normal?
NROM can only handle 27C256 and 27C128, hence NROM-256 or NROM-128.
27C512 will need A15(pin 1) to be connected to either VCC or GND.
If this is your PRG ROM make sure PRG-A13 and PRG-A14 are connected to the cart edge connector CPU-A13 and CPU-A14.
If your CHR ROM is a 27C512 as well you will need to connect A14 to VCC (which is pin 27 and should be fine) and A15 (pin 1) to GND or VCC as well. Never leave input pins floating.
Well being the impatient idiot that I am, I already de-soldered the socket only to find out that pins 27 and 28 are connected... And pulling few solder pads in the process :\
I'll re solder and fix the damage tomorrow. But I am still not sure what went wrong in the first place.
I think that all the pins are connected to the right place.