66

Did every programmer of every game implemented all possible various API's that old graphic cards supported? Yes - but it went even deeper than that. Early graphics cards had virtually no callable code associated with them at all, the concept of "drivers" had not quite become a reality yet. There was the concept of a Video BIOS, which were extensions to the ...


63

So, why was this so widespread? Was it simply because it was easier to do than anything else (and, you know, limited hardware of the day), Exactly that. To make a sprite blink, all you've got to do is to set it to be not displayed and then displayed again. Usually by just writing a single register or pointer or setting a flag to skip drawing it. No ...


52

A nice one - and coming up every now or then. TL;DR The Apple IIs video logic produces a B&W bitstream at the right frequency to bedazzle an NTSC TV set in a way to make it 'see' colour. The colours produced are based on the way the bitstream creates interferences that are detected by the TV set as colour information. The encoding is rather a series ...


50

Modern AI on its own is not really advanced enough to be able to make a meaningful difference in this sense. However, there are many situations where the massive asymmetry between computational capabilities of modern computers and computational capabilities of the old computers can be exploited in ways that were not feasible decades ago. For example, some ...


47

TL;DR: Exactly as you assume. The CPU shovelled the data around, even way slower than your calculation suggests, and everyone was happy about the high speed with which it happened :) To be honest, I'm not complete sure what your question is. It was a plain bitmap display (like you assumed) and quite sufficient to be handled by the CPU. After all, no-one was ...


43

That sounds a lot like the Cromemco Cyclops. Released in 1975, it used a modified1 MOS 1kbit DRAM2 to capture a 32×32 black and white or greyscale image. The memory cells were initially set to all 1s. As they were exposed to light they would progressively switch to 0s; the more light hitting a cell, the faster the transition4. By making multiple read ...


42

Unreal Megademo, Future Crew, 1992 possibly? Certainly has all the elements you mention.


38

The first appears to be Evans & Sutherland's LDS-1, introduced in 1969. The first one was delivered to Bolt, Beranek and Newman Inc., in August 1969. This was an analogue vector system, with depth cuing, and could draw and manipulate complex wireframe models in real time. The first 3D engine produced as a VLSI microchip was the Geometry Engine, ...


36

This is done by changing the scroll mid-screen. This is what the nametables look like on scanline 30 in Super Mario Bros, with the scroll shown: The horizontal scroll is 0 (you can barely see the white line on the left side). Here is the same image on scanline 31: Now the horizontal scroll is at the left edge of the visible area. The PPU draws the ...


36

Fonts for text rendered to the screen or paper in a graphics mode would simply be data shipped with the application. If this was perceived to be non-copy-able, it is likely because it was not (obviously) in a standard font format, and perhaps intentionally obfuscated. It is also worth noting that VGA cards permitted relocating the text mode character ...


34

The reason for this glitch is rather obscure; it's not surprising that the developers didn't catch it. It all starts with the tunnels on the sides of the screen. These tunnels allow Ms. Pac-man and the ghosts to move from one side of the screen to the other. But, somewhere in development, somebody decided that the ghosts were moving too quickly through them. ...


33

In addition to the other answer and comments, a character would often enjoy a brief period of invulnerability after sustaining damage — this period was indicated with the character blinking. The blinking effect here helps suggest an ethereal state where you can’t suffer more physical damage.


29

There were three important design aspects of the original Macintosh that allowed the relatively limited video display hardware to provide a pleasing user experience in terms of the performance of its GUI. Vertical blanking hardware interrupt - this provided the necessary timing for software to synchronize display updates to the CRT refresh cycle. Thus,...


28

What you're missing is that early computers didn't generate their video signals the way that modern computers do. You're probably picturing a C64 working in much the same way that a VGA adapter does: you specify a color index to RGB mapping, and a digital-to-analog converter looks up that mapping and generates appropriate red, green, and blue signal values. ...


28

There are a few reasons why multi-platform 3D games turned out to be no faster on the Amiga than on other 68000-based platforms without its blitter: The developers may have targetted the lowest common denominator system and not taken advantage of the blitter when they ported to the Amiga. Early games and poor conversions tended to be like this. A naive ...


27

The Picture Processing Unit (PPU) in the NES can only draw 64 sprites per frame and 8 sprites per horizontal line (scanline). If the game tries to draw more than that, some of them will be invisible. It could ruin the game if enemies became invisible because there were too many of them, so the developers programmed the games to change the order of sprites ...


27

Fast Screen Refresh With PEI Slamming (Or: Dirty Tricks With the Direct Page) This article is based on my KansasFest 2004 presentation "Code Secrets of Wolf 3D." Introduction Drawing super high-resolution (SHR) graphics on the Apple IIgs is slow. Unfortunately, the SHR screen's memory in bank $E1 is located in "slow RAM" — that is, memory controlled by ...


26

A very broad question, so a random dump of thoughts: Elite approximates solid objects through convex objects. Because every game object (other than the missile) is convex that means by definition that every hypothetical ray of vision from your eye to the object other than generate edge cases must pass through it exactly twice: once through a front face and ...


26

The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles. The vectors are then rendered to that RAM using the NES CPU in the normal way.


26

Early on, you had to explicitly code your game for each graphics card you wanted to support: Hercules, CGA, Tandy, EGA, VGA. You had to know how to put the card into graphics mode and you had to know the memory layout, palette, and so on. You had to figure out how to avoid flicker and how to prevent tearing. You had to write your own line drawing and fill ...


25

This is perhaps obvious, but AI isn’t magic. This has two relevant consequences here: it can’t add new hardware capabilities, and it can’t find techniques which humans absolutely couldn’t. What “AI” is good at is trying lots of things, fast, without getting bored. So it can try lots of different ways of implementing an algorithm, in the hope of finding one ...


24

ZX Spectrum: has 21 user definable graphics (UDG) available to the user via POKE USR command. Also, main character set can be redirected to RAM (sysvar CHARS, 23606-23607) so it is fully definibled. It doesn't have a real text mode. All text is rendered into pixels by the firmware. Jupiter ACE: has the entire character set in dedicated RAM (but available in ...


24

The gameplay can be implemented without any 3D calculations (or very little, depending on your definition of 3D calculations): The checkerboard never rotates, so it can be drawn using affine segments and fills (y = ax + b); the players never get close enough to the edges (on the goal sides) for the vanishing point to be an issue. The checkerboard isn't ...


24

There's something of a conflation here of antialiasing and filtering, I think. Antialiasing is literally preventing things from adopting aliases — e.g. if a diagonal line looks like a staircase rather than a diagonal line, it has adopted an alias. So you can imagine the same thing happening to textures as they rotate or take awkward angles. But it's always ...


23

EHB For example, a game that uses EHB (Extra HalfBrite) mode during the game action (i. e. ingame) is Pinball Dreams. In my example run of the Beat Box table I can find the following in the copper list: $00D6EA WAIT $4211FFFE $00D6EE MOVE #$6200,BPLCON0 I. e. it waits for raster line $42 (66) and uses BPLCON0 to set the number of bitplanes to 6 without ...


23

The Amiga hardware supported only bitplane graphics, and you could have as many or as few bitplanes as you desired, up to certain bandwidth and archtectural limits. A neat trick of the Amiga's video hardware is to superimpose two three-bitplane screens and scroll them independently, which is obviously pretty useful for games. I tended to use an eight-colour ...


23

Subpixels in general are invisible fractional pixels that you cannot see, but are used internally to represent the positions of objects at a finer level than they're capable of being displayed at. So far as Super Mario goes they're represented as an integer with 16 subpixels per visible pixel. This allows inertia to be loosely modeled so that you can start ...


22

There are two elements: The background The sprites The background is very straightforward: The vanishing point never changes so you have one graphic with a checkerboard in perspective. That graphic takes 2 bits per pixel so that you have the 2 checkerboard colors and the edges of the field color. It just needs to be the width of the screen + 4 tiles (2 ...


21

What's the reason for the limited palette size? Intuitively it would seem straightforward to e.g. have a palette of 65536 colors; it would just be a matter of having a few 16-bit registers in the video chip, easy enough even given the technology of the day. The resolution of the digital to analog conversion circuitry would need to be improved, but ...


21

There are various ANSI art viewers for modern platforms which satisfy all your feature requirements (command-line syntax excepted), for example: PabloDraw for Windows, macOS, and Linux ACiD Viewer 6 for Windows ANSI Express for Windows Inside a terminal, at least on Linux/Unix and presumably macOS, viewing ASCII/ANSI art boils down to setting the font and ...


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