On some cartridge-based video game systems (NES, Game Boy Color, etc.) it is possible to remove the cartridge while the game system is still powered on. What kind of damage can this behavior do to the system hardware or game itself?
6 Answers
The NES can be damaged by software, so removing the cartridge at just the wrong timing could theoretically damage the console.
The 2CO2 PPU in the NES normally reads the background color from palette index 0, but this isn't hard-wired into the chip -- it actually reads the palette index of the background from four EXT pins. These pins are grounded on the NES, forcing the palette index to 0, but an arcade board using the 2CO2 or a similar chip could connect these pins to another PPU.
Bit 6 of PPUCTRL selects whether the PPU should run in master or slave mode. If the PPU is in master mode, it reads the palette index from the EXT pins as explained above, but in slave mode, it outputs the palette indices it is currently drawing to the EXT pins.
This way, the images from two PPUs can be layered. The slave PPU draws one image, and the master draws another image on top of that and outputs the combined images.*
The NES didn't use that feature, but the hardware still exists in the PPU. If the PPU is set to slave mode, it will attempt to output the background palette index to the EXT pins. If it outputs a 1 to any of these pins, it will cause a short from Vcc, through the PPU, and to ground (because the EXT pins are grounded).
Suppose the game is writing to its memory, for example address $200
:
sta $0200
If the cartridge is removed at just the wrong time and D7
floats high, that instruction could become sta $2220
, which is mirrored to $2000
. If bit 6 of A
is set, the PPU will be set into slave mode and potentially damaged. It's unlikely that just the right bit will be flipped at just the right time, but it's possible.
*: The image generated by the slave PPU can only use colors from the background palette of the main PPU because there are only 4 EXT pins, not 5.
-
1Are the output drivers strong enough to cause physical damage? I know I accidentally broke the 6507 in the first Atari 2600jr I owned by accidentally programming a CPLD to drive a CMOS high on an address pin (which would have been trying to drive an NMOS low), but most chips are designed to survive bus conflicts when paired with others of similar vintage.– supercatCommented Jul 21, 2017 at 19:22
-
1@supercat US Patent 4824106 describes the PPU in detail, including the EXT pins (and there's even a schematic of the EXT pins in Figure 7). There's no mention of anything to prevent a bus conflict in either the patent or the schematic. That doesn't necessarily mean it's not there, but I haven't found any evidence to suggest that there is. Commented Jul 21, 2017 at 19:59
-
4NESDev Wiki seems pretty confident that setting the PPU into slave mode is a bad idea. If you understand semiconductors really well, you could try and see if you can learn anything from Visual 2C02, but it looked too complicated for me to be able to figure anything out. Commented Jul 21, 2017 at 20:03
-
1Imagine trying to use an excavator to scoop up an immovable object. If the the strength of the hydraulics exceeds the strength of the scoop, such an attempt might break the scoop. If the hydraulics aren't strong enough, however, the scoop will simply not move. Most chips I've seen from that era aren't likely to be damaged by bus conflicts because the output drivers simply aren't strong enough to cause damage. I'm a little confused by the "powered diffusion" and "grounded diffusion" layers; are there metal layers devoted to power and ground which are tied to those?– supercatCommented Jul 21, 2017 at 21:24
Hardware
No damage to the hardware should occur (unless by chance removing the cartridge physically damages the hardware contacts). The reason for this is is that loading a cart basically completes a big circuit the the system hardware. There is no internal storage (at least not on the NES/SNES/N64 and Game Boy), so there is no persistent memory to corrupt. On the N64, removing a cartridge mid game will freeze any instructions and I/O, and the last frame before the disconnect will be displayed.
Some systems (such as the original Game Boy), lock the cartridge into place to prevent improper removal or hot-swapping. I believe this was removed from the Game Boy Pocket onward, but it's also possible the Game Boy Color was the first version to no longer have this lock (I no longer have each system to check). Instructions were added to gracefully shut down the system on improper cartridge removal to these systems.
Software
It is possible that with any improper removal, any game that uses internal memory to save player information (think The Legend of Zelda save files or Mario Kart track times) could become corrupted. This can also occur by powering down the system while a save is in progress. Many games have defensive programming to handle such issues. The player is alerted that internal data has become corrupted, and will reset to some default values. It is also possible that a poorly programmed cart could be rendered useless with corrupted data, rendering it unplayable.
Additional Notes
Newer systems, such as the Nintendo DS and above have code in place to gracefully handle improper cartridge removal. In fact, the original DS can actually run if a game is inserted improperly. If the contacts are dirty or blocked somehow, the system menu will load, and a GBA game or PictoChat can run without issue.
In the Nintendo 64 game Banjo-Tooie, Rare originally planned to create a feature where the player would intentionally hot swap Banjo-Kazooie and Banjo-Tooie to transfer items between the two games (or, at least unlock new items in Banjo-Tooie from Banjo-Kazooie) called "Stop 'n' Swop". In development on the SGI Indy Workstations, the RAM lasted much longer, I think about seven seconds, from when the cartridge was removed to when the data would be purged. The SGI boxes turned out to be more powerful than the actual retail hardware, and in production a player would have less than one second to perform a successful hot swap. Thus, the feature was abandoned.
-
1From a software point of view, the older consoles didn't have much of a bios to rely on, so if you pulled a cartridge from a 2600, the CPU didn't have any other code to execute. The intellivision had a rom called the exec, but it didn't handle cartridge removal, the coleco would reset itself to it's main screen, in the rom; the NES, SNES and Genesis didn't have any code to handle cartridge removal either. On a modern system, it's different since they have quite complex OS and the cartridge is just mapped in one area; the system can run without it.– ThomasCommented Dec 9, 2016 at 18:01
-
7Now, from an electrical point of view, there was always the chance of a contact arcing and the IO ports were not buffered, cartridges were connected on the main CPU bus without any protection in a context were voltage/intensity was higher than today's devices; some systems, like the c64 had frequently their PIAs failing for example. Nowadays, everything is buffered and if you look at the diagram of most off the shelf chips, you'll see they have internal buffers. In practice I have never seen a system die from cartridge removal, but I have seem some break from peripheral removal while on.– ThomasCommented Dec 9, 2016 at 18:12
-
1@Thomas These are excellent points! You should post your own answer :)– JALCommented Dec 9, 2016 at 18:16
-
1In a lot of electronics removing a module "live" can cause considerable damage in case the GND line is disconnected before power and data lines are. Current that powers up the circuitry, normally fed through Vcc and driven out through GND, instead is grounded through data lines that happen to have "1" on the peripheral side and "0" on the main board side. That means the flimsy logic circuitry lines are handling power load of the whole device, often much more than they are rated for. This can definitely cause damage. OTOH if there's nearly nothing to run, the current will be minuscule...– SF.Commented Dec 13, 2016 at 12:51
-
...so, in conclusion, don't remove the Doom cartridge from a running NES :)– SF.Commented Dec 13, 2016 at 12:52
Technically, it could damage the cart and/or the NES or other console. It probably won't, but it could.
Removing (or inserting) a cartridge on a live system is similar to de-bouncing issues with push buttons. See, as the cart edge is being pulled from the edge connector, for a few microseconds, it could produce electric arcs back and forth from any of the pins such as the address bus, data bus, etc.
Because our human hands are so clumsy and slow, compared to the 5V (or whatever) traveling through the pins, the pins can physically "bounce" several times in a few microseconds. Removing a cartridge would be the same.
Anyway, NES carts are actually pretty tough. Again, it probably won't damage it, but it certainly could.
Which is why I don't suggest it.
-
1I'd also like to add that in many bus systems (like cartridges) it's often found that the power and ground rails (pins) are slightly longer than the data pins. This is so that the power is the first thing that gets connected and the last when being disconnected. Many IC's can actually still conduct a little current through the data pins for a few microseconds and this can cause problems. USB devices typically have longer power pins too for this very reason (well, they SHOULD, anyway).– cbmeeksCommented Apr 21, 2017 at 13:00
Most chips do not like to have signals applied when they are not powered or lack a ground connection; how they react may depend upon a variety of factors. Because cartridge card edges generally made no effort to ensure that power and ground would be connected before anything else, inserting or removing a cartridge to a live system could result in a chips having some pins connected and driven while power and ground aren't.
It's unlikely that inserting or removing an Atari 2600 cartridge while a console is powered on would cause such a perfect storm of coincidences as to cause damage to the console or cartridge, but it could certainly stress components momentarily beyond their ratings, and neither Atari nor any other manufacturer would want to guarantee that such stress would never cause failure.
-
I would like to clarify a few things: some chips require a specific power on sequence where I/O shouldn't be driven before Vcc is stable; this is not the case for mask ROM. The only risks here are arcing/ESD and floating lines on the data bus which is problematic in CMOS. The first problem is usually mitigated by 2 diodes on each I/O pin and the second one is an impossibility with the architecture of the 2600.– ThomasCommented Dec 12, 2016 at 5:02
-
As a side note, Tigervision had some cartridges with a coil (Miner 2049er is one of them); without knowing the schematics, it's hard to guess how they'd handle a hot plug or removal; but the machine I can think of where it could be problematic to pull / insert a cartridge while it is running is the Intellivision since it uses a multiplexed address/data bus and each chip replicates (more or less :)) the decoding logic and conflicts on the control lines can do shorts the chips are not designed to handle (I did design a cartridge board for it, and the whole system is an oddball design)– ThomasCommented Dec 12, 2016 at 5:03
-
@Thomas: There are many situations where bus conflicts can occur, even purely as a result of errant code, but momentary conflicts are unlikely to cause damage, and even sustained bus conflicts between NMOS devices are also unlikely to cause damage (whichever device is trying to pull the bus low will simply win). A sustained bus conflict where a CMOS device is trying to pull a bus high and an NMOS device is trying to pull it low may damage the NMOS device (I fried one of the address wires on my 2600jr's CPU with a mis-programmed PLD in a cartridge I was developing).– supercatCommented Dec 12, 2016 at 5:49
-
With cartridges of the types that were in use, the only failure mode I can see damaging a CPU would occur if the cartridge's ground pin were floating but VDD and the buses were connected. If pulling the cartridge ROM pins below VSS caused it to latch up, it might lock all of the address lines high, which could cause damage to the 6507's address bus drivers. Not a likely scenario, but not impossible. Otherwise I'd consider most forms of bus contention as unlikely to cause damage.– supercatCommented Dec 12, 2016 at 5:52
-
1
Not cartridge games, but the ZX Spectrum has a big problem with removing peripherals with power on because they have the +5V (pin3) and +9V (pin4) very close to each other; removing the peripherals had a big chance to make a short circuit that would send +9V to TTL circuits, which would damage them and render them unusable.
This problem was solved on Spectrum Plus 2A and Spectrum Plus 3 by moving the +9V output on pin 4.
I broke my first ZX Spectrum 48K two times by moving the printer :(
It was indeed possible to damage a Commodore 64 by inserting a cartridge while the power was on - it could destroy the CIA chips, for example.
-
yes, I was commenting about it in the first post; the C64 was failure prone; both CIAs share some lines with the cartridge port; it seems like some of the lines, like the reset, were not buffered, but it's too long ago to remember the details :)– ThomasCommented Dec 12, 2016 at 13:37
-
1Connecting two of the pins in the cart port with a paperclip would do a soft reset leaving the programme in memory, allowing POKEs to be entered. Or you could do what I did and connect the wrong two and fry the thing.– Alan BCommented Dec 12, 2016 at 14:30
-
2Anecdotally, my family's C64 fried its CIA chip on such a regular basis that my dad ended up socketing the chip, bought a huge stockpile of them, and taught me how to swap them out. And then there's the time I hooked up the C128 to an amplifier wrong and fried its SID...– fluffyCommented Dec 12, 2016 at 23:07