I've seen a lot of people making DEV carts here and it has me very interested, but I see everyone using eprom programmers to program flashroms and then insert them in socketed carts. I was wondering if anyone has made a cart with a built in flasher (serial/USB input or whatever) so the chips didnt have to be removed and inserted into a programmer, but could be programmed right on the board with a cable. I know the funkyflashcart does this, but my hopes of that comming out anytime soon are very low.
I know memblers also made/is making a flashcart that can be programmed with the copynes, but thats not exactly what im looking for. Just to be able to plug a cable from a computer to a DEVcart and program it on the fly would be great.
Thanks in advanced
My CopyCart can do this, if you have your dev cart wired up just right. It has a 72 pin nes connector on one side (to put your devcart into) and a usb connector on the other. It's still a prototype though, I haven't made more than one of them yet.
My Squeedo devcart hooks up to a PC's serial port. You power-cycle the NES, upload your ROM using a terminal program and it re-programs and runs. I was supposed to have released it a long time ago, but my plans with the firmware were pretty ambitious so it hasn't been finished to my satisfaction (someone wrote that the complexity of embedded software grows to fill the available memory, it's damn true
). Plus other real-life-based issues getting in the way, so I haven't been working on it non-stop. All the firmware is updatable though. The basic functionality is already there.
I've built a couple, I can make a few more if anyone might want to buy one and be a guinea pig. A while back I was meaning to post a thread on here looking for developers to work with it (especially anyone willing to work with the special features like the PIC as a coprocessor), but I kinda got sidetracked and forgot.
The CopyNES reprogrammable cart is done too, ready to ship a good couple dozen of them, but the bad thing right now is that it's only supported in the DOS/Win9x version of the CopyNES client. Well, and I need to design a cart label for it. Then I can open my little online store thingy, heheheh.
This is probably a really dumb question, but is it possible that you could solder wires from each pin of the EPROM/Flash chip, and put each end in the programmer, and program it like that? Here is a picture of what I'm trying to say:
So you could have the chip soldered into the cart, and wires soldered to the ends of the pins sticking out of the cart, so you could just stick those in the programmer, and the programmer would read the chip through the wires! Is this possible? Or would it slow things down too much (with programming) and screw up the game?
I thought of something similar, with wires comming out of the devcart and going into a socket that you'd plug into the programmer.
But I figured some of the rewiring could interfere with the programming. Such as pins that you tie to GND or +5V so they will not be left floating, but would have an actual function while in programming (Write Enable?)...
I don't know. Haven't though about it a whole lot. It would be nice not have to plug and unplug the chip all the time, though.
Okay, but I want to test this idea, with a plain EPROM, not soldered into a cart.
tokumaru wrote:
Such as pins that you tie to GND or +5V so they will not be left floating
What does "left floating" mean? I've heard that term more than once, in another thread, and I thought it was just like "Not soldered to anything" or "A bent pin that's just sitting there".
Yeah, it means exactly that. I said that because Flash ROMs have this WE (write enable) pin, wich has no use during play, but is tied to +5V (seemed to work for me) so it's not left floating. But it is necessasy during programming, and since it's tied to another used pin some kind of short-circuit could take place... I don't know...
But what is the point of trying this with an EPROM, since it's not simply erasable...? This could be very useful for Flash, that can just be reprogrammed without even needing to be erased first.
I suppose you are right, I was thinking more like EEPROMs. Does anybody even use EEPROMs here? The most common seems to be EPROM and Flash.
EDIT: A couple of terms, I want to know what they mean, and what effect they have:
+5V - This is self-explanitory, right?
GND - Ground, but what does that mean?
Vcc
Vpp
I'm sorry, I just never knew what those really did, besides the +5V, I kinda know what that means. And a pin is called Axx. What's the difference between Axx and Dxx? What does the A in Axx stand for? Sorry if you can't answer all these questions at once, if you just linked me to something, that'd be good enough =).
I use some 64kb EEPROMs. They work great, but Flash is better. EEPROMs need an erasing step, Flash don't.
AFAIK, Vcc is the working voltage, the same as +5V, for the NES. Vpp is the programming voltage, used by EPROMs. I can't really describe what GND is. The "Axx" pins are the ADDRESS pins, one for each bit. And "Dxx" are the DATA pins, also one for each bit.
VCC is +5V for TTL circuits, it's +1.2V for modern IC.
Ground is a reference point in a circuit, conventional (wrong) current theory says current flows from positive (+5v) to GND in a circuit, harnessing this flow of current makes electronics do stuff.
(simplified answers to avoid physics....)
+5v = positive 5 volts
vcc = same as +5v for nes stuff
vdd = same as +5v for nes stuff (from the old "drain")
gnd = ground, 0 volts. All voltages are measured relative to ground.
vss = same as gnd (from the old "source")
vpp = programming voltage, usually +5v or +12v. Eproms usually need high voltage to set the fuses. Your programmer will take care of all this.
"left floating" = an unconnected wire. Random background noise can cause the wire to "float" from high to low, sucking power and changing the circuit. This is why an unconnected input is a BAD idea. Unconnected output is ok.
Axx = address lines, A0 = least significant address bit
Dxx = data lines, D0 = least significant data bit. Hopefully you will only have D0-D7 because it is an 8 bit system...
---
Connecting power and ground is another BAD idea, so you will need some switches on the cart for the hardwired lines like /WE. If the board has /WE connected to +5 and your programmer tries to connect it to gnd for writing, bad things will happen. Bad may include broken programmer, fried mem chip, and releasing of the magic smoke.
[quote="kyuusaku"]conventional (wrong) current theory says current flows from positive (+5v) to GND in a circuit, harnessing this flow of current makes electronics do stuff.[/quote]
The flow problem goes back to Franklin naming stuff he didnt really understand yet. "Current" flows from positive/vcc/vdd/+5 to negative/vss/gnd. But the physical electrons are travelling the opposite direction, from gnd to vcc. This is why vss (source) is at ground, it is the source of the electrons. The electrons move from vss (source) to vdd (drain). That confusion is part of why vss/vdd have mostly been replaced. Not sure where vcc came from, probably something to do with collector voltage...
(now trying to erase bad memories of analog design classes)
Thank you, this all really helps alot. I've just always been wondering this, so I can start getting into NES hardware. I've learned all the basics of programming the NES to a point where I can start making games, and now I can start learning about the hardware! Thanks!
VCC / VEE is typically used on circuits involving bipolar transistors. VCC means "Voltage Collector", and VEE "Voltage Emmiter". VEE can either be equal to GND (0V) or be a negative voltage, so use of numbered voltage is defintely better.
VDD / VSS is typically used on circtits involving FET transistors. VDD is "Voltage Drain" and VSS "Voltage Source".
Since FET transistors are more recent, normally VDD and VSS should be newer than VCC and VEE. However, I'm unsure, and the use of numbered voltage can be better (+5V is more meaningfull than VCC or VDD).
i am interested in getting a dev cart to run test roms on. something that can be reprogrammed would be great so i can try some of the games and test roms from blargg.
suppose usb or serial would work. and if its a simple data upload then i could use it with linux or unix or osx.
also, how hard would it be to use usb2 and record the cart pin ? so i could see what the game is actually doing ?
matt
Wow, this thread kind of took off didnt it
Memblers: I seen your cart before but noticed it hasnt been in production yet. If someone would actually make it to that stage it would be great. I wouldnt care if its serial or USB (Actually thats a lie, i prefere USB since its nicer looking) As long as someone would make compatible programming software for it, linux windows what ever. I have wine so Im good.
teaguecl: Copycart, is that something you just made, or are the schematics available? Im looking for something realitivly small so it would fit into a NES.
I was originally wiring a regular old NES cart into my NES but I am getting two 72 pin edge card connecters off ebay for less then $10 CAD, so I'm probably going to wire one internally so I could make a flash cart, since what I'm asking for doesnt seem to be reasonable to get, and i certainly could not make one myself. Im going to have to remove the expansion slot, and also dremel down a few screw holes that the metalic sheilding used. I may even have to drill out the indents put in to remove the expansion ports cover from the bottom of the nes, and flatten it out with body filler or something to make even more room in there.
Thanks for all the information, but it looks like im just gonna have to make a devcart that I can plug in and out.