79

With a powerful enough microscope, you can see each transistor. Reverse-engineering silicon then boils down to carefully removing each layer (ceramic or plastic to expose the chip, then each metal layer), taking detailed photographs, and figuring out what each part does. For CPUs of the era, this was already possible in the early eighties. Ken Shiriff does ...


71

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


50

(More of a memory dump related to Stephens Answer) At a time when ICs were of low complexity (compared today), could you actually see each transistor on the silicon and reverse engineer it? Yes. Just try it yourself. Take some 1980s TTL, like a 7400 - I'm sure you find some on old boards - and crack it open. Usually it separates well from the plastic. Put ...


49

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


35

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


35

Memory is allocated statically in Super Mario World. Every RAM location used is hard-coded into the game, although some are re-used by different parts of the code. A full, annotated, and searchable memory map for Super Mario World (archive) with 824 entries in RAM (4949 total) is presented at SMW Central. If you're interested in glitches due to re-used ...


33

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


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

Mode 7 is just an image warp — the programmer sets a 2d offset that is applied between each pixel and the next when proceeding in raster order. That allows 2d rotation and scaling to be applied; if you change the start position and scale per line then that’s how you get a flat perspective plane. Doom can’t make use of this for at least two reasons: it would ...


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


30

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


28

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


28

It's worth noting what you can see, and what you can't. First, you cannot see any feature that is much smaller than the wavelength of light that you are using. In 1995 I designed a chip for my Master's thesis in 1.2um technology; features are clearly visible under microscope. Features in 0.5um technology might be visible, but by 1997 0.25um technology was ...


25

Neither. The level determines how fast the pieces drop. At level 9 a piece drops (assuming you don't press down) 1 row every 11 frames. So at the Gameboy's framerate of 59.73fps that means it drops at a speed of 1 row every 184ms. At level 10 it speeds up, dropping the piece every 10 frames. At level 20 it reaches a speed of 1 drop every 3 frames (50ms) and ...


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


20

Among other reasons: floors and ceilings of different heights would be very difficult due to the way Mode 7 is used to imitate a projective transformed plane. The effect works by setting the rotation, scale and offset of the tilemap on each scanline and these remain constant for the entire horizontal line. This can be used to render a single perfectly flat ...


19

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


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

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


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

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


15

1. Was Family BASIC powerful enough to create full programs or was it just made as a toy for people interested in programming? It depends on your defintion of 'powerfull'. The Famicom, aka NES, was a 1.8 MHz 6502 machine, thus it got processing power superiour to a C64 or VIC20. It's graphics system was also more capable than what a C64 or similar machines ...


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


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