We’re rewarding the question askers & reputations are being recalculated! Read more.
63

The main point to understand is that the console is limited. RAM on the console itself is faster than memory on the cartridge (and the cartridge memory was usually read only, with a little non volatile for user data). So the game designers had to carefully consider how to use the precious, but faster, ram on the console, vs the slower rom on the cartridge....


58

No MMC3 tricks are used for this effect; just standard background and sprite manipulation. Tiles that are completely invisible are replaced with a blank tile, while black sprites forming a circle outline cover the partially-visible tiles. We can make the effect more obvious by drawing background and sprites separately (and coloring the circle sprites white ...


45

I wouldn't say "It's a very specific and subtle kind of behavior." I really think this is the case of undefined behavior that has been reproduced so many times from N64 launch to now that users have seen repeat behavior. In fact, sometimes cartridge tilting can actually delete your game save (Donkey Kong 64), and not just mess with the graphics (Goldeneye'...


38

This isn't a deliberate animation, it's an accident of the way the screen is being photographed, combined with the fact that a Donkey Kong arcade machine uses a CRT turned on its side. A typical CRT draws an image by drawing many successive horizontal lines, starting at the top and working towards the bottom. The "refresh rate" indicates how many times ...


32

The Zapper worked by receiving light through the photodiode at the front of the gun in the barrel. mental_floss has a really great description of what happens: When you point at a duck and pull the trigger, the computer in the NES blacks out the screen and the Zapper diode begins reception. Then, the computer flashes a solid white block around the ...


32

Ken's answer is close but not quite right. On the real arcade hardware the signal sent to the CRT monitor is read directly from RAM as the electron beam scans over the screen. That means that whatever is shown on screen is whatever is in RAM at the moment the beam passes that area. The game's CPU takes a few frames to draw the entire play area (the girders, ...


31

The Nintendo 64 ROM is only 2KB in size and apparently easy to emulate. It seems to only check the validity of the inserted cartridge's ROM and set up a limited environment. Nintendo 64 cartridges are self-sufficient; they don't need any services provided by a common “BIOS”. In fact they even contain the code used to drive the audio and graphics co-...


31

Gameboy games use a CR2025 battery which over the years eventually dies stopping games from saving and causing previously saved games to disappear. Note however while the game is powered you can still save, however once you power down the save will be gone. In order to replace the battery you must open up the cartridge with a 3.8mm screwdriver security bit. ...


28

This website might help. A guy (Chris Covell) picked up a children's picture book in Japan which shows kids how NES games were made. (Mostly focussing on Super Mario Bros. 3) Chris actually scanned the whole book and translated it so you can read it on the website! The book shows many things such as designing (with Shigeru Miyamoto smoking), programming, ...


26

This is the pinout of a Nintendo 64 cartridge (from here). The Nintendo 64 used a multiplexed address/data bus with a three-stage access protocol: write the high word of the address you want to access, write the low word, then read the data, all going across the same 16 pins. This indirect access method means that program code needs to be run from the ...


23

I worked with one and it was a pain to use. It was a cartridge made of static ram; the computer would write the contents to the cartridge and you would manually reset the console. it was slow, the upload would sometimes fail and there was no way to communicate anything back to the computer. We were using an assembler under MSDOS to make the games. On the ...


23

I was involved with hardware remakes / clones of a few machines and we did reverse engineer one G&W game; I think it was Green House, if I remember well. The games are build around a custom ASIC and the rest of the circuitry is essentially support for it. As a side note, if you've ever opened a G&W game double screen game, you'll have noticed that ...


23

As cbmeeks said, you're much better off with a FPGA or CPLD. It's going to be nearly impossible to emulate an NES ROM with a microcontroller. A Raspberry Pi would be fast enough, but not with an operating system. It's possible to run code directly on a Raspberry Pi without an OS, like a microcontroller. You don't even need to worry about cycle timing to ...


22

Any electronic equipment using radio frequencies which is sold in the USA has to be tested to show that it doesn't cause interference to other equipment, and also that it doesn't fail in a dangerous manner if it is subjected to interference from other devices. "Interference" could be anything from messing up the display on your own TV, through disrupting ...


21

In the case of the NES Advantage at least, the Turbo rate was adjustable, by turning the dial at the top of each button. You are right in assuming that the NES does not communicate the start of a frame to the controller. But also, these buttons do not need to know when the frames are. All they need to do is open and close the circuit; the software will ...


18

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


17

If you read this, you'll find that the CIC chip is actually a primitive 4-bit CPU with a small bit of ROM. The chip in the NES and the chip in the cartridge attempt to communicate, if expected communication does not happen the CIC resets the system. There is one chip inside the console, and one in every cartridge; the code inside the chip decides what to ...


16

So I've been doing a little more research on this and it appears that in the early days of the NES, Nintendo did not license a dev kit themselves. Developers were forced to hack away and make their own dev kits. A popular one at the time was the "NES Mission Control" created by Rocket Science Production. Bill & Ted's Excellent Adventure and The Mutant ...


15

Gameboy games use CR2025 battery, which will die and take all the data with it: It's lost for good. Saved games back in those days were preserved through the use of a battery right in the game pack, not stored on the gaming device itself like it is today. And when that battery dies, so does the saves with it. It's not about corruption of the save or ...


14

I'm sure someone would be able to expand upon this further, but from what I understand there were four things: Different case and physical layout (e.g. controllers have storage slots on the sides of the main unit). Cartridge slot has fewer pins as it didn't support the "10NES" lockout chip. One of the controllers had a microphone on it for voice activated ...


14

It used the same C compiler that shipped with the Indy workstation. See: Nintendo 64 Development Manual: C Compiler Suite It required a few flags not normally used when building C programs for the Indy itself. And there were utilities for downloading to the development boards and converting executables into ROM images. Some IDE's were available for UNIX ...


13

No, this is only for RAM. The jumper pack actually just terminates connection of the onboard RAM and adding the expansion pack works just as it sounds. You can even upgrade the capacity to even more RAM than is supplied by the expansion pack and the console will boot with it, but no games will take advantage of it. See http://assemblergames.com/l/...


13

The GBA's memory controller can be configured using WAITCNT, an MMIO port at 0x04000204, to use slow or fast timing when accessing the Game Pak slot. The BIOS boots up in slow mode, in case Nintendo would release games on slow ROM. But Nintendo ended up releasing all games on fast ROM, and when a game starts, it writes a value to WAITCNT to enable fast ...


13

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


13

The NES cartridge connector does not have expansion sound. However, there's an expansion port on the bottom of the NES which does, although this connector was never used by any commercial games. JAL's answer describes a mod involving soldering a resistor between pins 3 and 9 of the expansion connector. This actually does work. Pin 3 is the expansion ...


13

I doubt you're going to be able to pull that off with a micro-controller. Maybe one of the 200-300 MHz versions...maybe....but unless you try a Teensy 3.6, you may also have to design your own board for the mcu too. Anyway, the problem is that you can't compare MHz to MHz like that. Just because the NES ran a 1.79 MHz and MCU "A" runs at 200 MHz doesn't ...


13

Did Nintendo really change their mind about using the 68000? Hard to say, as these decisions were never public. If so, how does this square with that CPU being so cheap even two years before the launch of the new console? Maybe because the price of the CPU drops to almost zero when using the 65816 as IP. After all, they didn't use the stock CPU, but had ...


12

I used to use a clean rubber eraser to clean golden contacts in general, not only cartridges but that can also leave residues if you don't clean it properly after. There is a comprehensive article on Arstechnica website that recommends using Q-Tips, Brass polish, high-concentrated alcohol, and lint-free cloths. Based on the instructions and the companion ...


12

"Incomplete decoding" means that the address decoder only pays attention to a few of the address lines: the high bits indicating the PPU chip and the three low bits selecting a register on that chip. The purpose of doing this is to simplify things: by ignoring most of the address lines, the PPU chip needs fewer pins, while a three-bit address decoder is a ...


Only top voted, non community-wiki answers of a minimum length are eligible