62

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


44

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


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


25

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


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


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

As I understand it the GPU’s microcode was written for the RSP (Reality Signal Processor). The RSP’s instruction set is comprehensively documented in the Nintendo Ultra64 RSP Programmer’s Guide, including detailed opcode format descriptions. The R4300 Processor Specification is also useful, as is the Nintendo Ultra64 RDP Command Summary. The Ultra 64 project,...


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

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


11

The Gist Games on the N64 typically did not have a lot of memory to use. Instead of keeping all code and data loaded onto the cartridge at one time, it would typically keep some necessary game code loaded into memory, and would only load temporary game code or data when needed. This is seen with cartridge tilting on "The Legend of Zelda: Ocarina of Time" ...


10

While it may seem odd that Nintendo chose for every last one of their properties released on the N64 was transformed into 3D. Why odd? Being all-3D was the USP (*1) for the N64. Since games had to be rewritten anyway, why not making them fit the new dogma? Until you consider the possibility that the N64 may have been incapable of 2D graphics. Just ...


9

RAMBUS was choosen for speed. They always came in 9 bit, which in turn was used for more precice storage by the graphics hardware by using 18 bit words for RGB/Coverage and Z/Delta-Z. (And no, it's not 'repurposing' a parity bit, as the RAMs are simply organized as 9 bit words. There is no special purpose of either bit - thats something external logic may ...


9

The Wiki Entry says that the N64 calculated with 24-bit color, but output 21-bit. Right,that's the way it is. The 15 or 24 Bit colour is what the Reality Display Processor can produce (see Video Interface on p.46). Internally it works with a 32 Bit RGBA based pipeline. Results are stored as 15 or 24 Bit values before being send to the DAC. This is where ...


9

Not the blowing but most likely the process of repeated inserting has removed the cause - as so often with connectors, especially PCB connectors. As @Ross Ridge already mentioned, the Question has been answered in full before at Gaming Why did you have to blow into an NES cartridge to make it work?:


8

While I was looking for information on the Hong Kong bootleg mentioned in Tommy's answer, I actually found information on a different bootleg released in Brazil: Ronaldinho Soccer 64 Released by TEG Peru only in Brazil in January 1998, this bootleg was a modified version of International Superstar Soccer 64 which replaced all fake roster names with real ...


8

This answer is based solely on the information here and the original Parallel Universe video. There is a part of the game's code that detects whether Mario is standing on the floor. This part of the code uses 16 bits to process Mario's position in the X, Y and Z direction (so 48 bits total, but 16 bits per direction). 16 bits is enough to store a number ...


7

Yes, at least if you count pirated games (which are neither licensed from Nintendo nor from whomever owns the game, so twice as unlicensed). Per this moment in a REcon presentation on the Nintendo 64 CIC: ... now I should say, unlike the older Nintendo stuff, instead of having very widespread pirate chips, this pirate game is actually very very very rare. ...


7

Yes. TV Tropes NoFairCheating page lists a number of games that would react to the use of GameShark including Donkey Kong 64: Using any Gameshark code in this game will cause DK to spasm uncontrollably throughout the game. Even in the opening. Also, your cartridge will be permanently damaged if you save. To such a level that you cannot pick up any items ...


6

You are asking how to convert the analog video output from a console for using it on a modern HDTV system. The usual answer is to use some kind of converter from the best video output option available in the console, to the best video input available in the TV. Chances are that your TV already has the right kind of input. In this case, you won't gain ...


6

It depends on whether you also want to modify the N64 to support RGB output. Without modification, the best output to use from the N64 is S-video. Cables are commonly available on eBay for the N64 that support S-video, and there are upscalers that will convert S-video to HDMI 1080p. This unit from Amazon looks like it would do the job. You can also get far ...


6

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


5

N64 uses cartridges pretty differently compared to other platforms. The console itself does not access the program on the cart but rather treats it as a storage device and all access is done via special chip called RCP. Carts also don't have the usual data+address signals available, but rather data and address lines are multiplexed - this means that every ...


5

First, if you go to The Cutting Room Floor and browse awhile, you will discover that the binary images of many old ROM and cartridge based games have often have test code, unused code, debug code, partially overwritten code, and in some cases even messages and text-based source code. Why this code is not deleted and instead "skipped over" is beyond me - it'...


5

It may be worth looking at exactly how Nintendo 64 controllers work in the first place, before addressing this question. The N64 controller's analog stick works in a very similar way to a mechanical (non-optical) computer mouse. Moving the stick in the X and Y directions rotates one of two optical encoding wheels, which are placed between an infrared LED ...


5

All consoles with 3D capability are able to do 2D graphics, simply by rendering flat polygons on a fixed plane. Nintendo provided libraries to do this with the N64, which were used for things like 2D menus and the HUD in otherwise 3D games. For example, the popular game Goldeneye featured 2D menus and a 2D HUD overlaid on the 3D game display. The N64 did ...


5

Is it possible to run code directly from ROM [...] by jumping into this region of the address space? Game Code can of course be run from ROM. And most games will do so. If so, why did games generally copy code into RAM before running it? Generally sounds a bit too much here. In fact, as game cartridges range from 4 MiB to 64 MiB (and more), the existing ...


4

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


4

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


4

The RAMBUS bus was a very specific sort of thing, optimised for it's purpose of very-high-speed RAM, which was a black art then. So it wouldn't be suitable, or the best choice, for other hardware. Besides which, any other hardware would be likely to mess up the functioning of the machine's internal RAM. The fact that a "jumper" (actually termination) pack ...


4

 My recommendation what be to use Bizhawk. It's an Emulator that was originally designed for TASing (Tool Assisted Speedrunning, see tasvideos.org for details), however it's come a long way since it was first being developed, and now is mostly used for emulating pretty much everything (at least that I can think of), including Nintendo 64DD games, ...


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