70

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


69

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


68

@user253751 and @WimC are correct, this fade is achieved by drawing a semi-transparent rectangle over the screen, but using a transparency mode where the rectangle's color is subtracted from the color of the background. The PS1 has four semi-transparency modes (search this for "Semi Transparency"). The one used here is mode 2 in which the result of ...


67

XORing a cursor into a frame buffer (which is what you seem to be calling "inverted cursor") is actually simpler than ORing it in there: when the cursor has to be removed again (to move to another position) you simply draw it a second time, with the same pixels, and it will vanish, courtesy of the XOR logic. If you have ORed the cursor into the ...


67

The original IBM Color Graphics Adapter (CGA) for the first IBM PC introduced the "80x25 at 16 colors" text display mode for use with output to color monitors like the IBM 5153 (as opposed to output to televisions, where you'd want the 40-column mode). All later color graphics adapters (EGA, VGA, etc.) provide compatibility with that mode and that'...


60

Early high-performance 3D accelerators such as the Voodoo Graphics have limited framebuffer resolutions (640×480 for most Voodoo Graphics configurations, 800×600 for the Voodoo2 in non-SLI) and colour depths (16-bit with dithering), which make them unsuitable for 2D — in the second half of the nineties, 1024×768 was a requirement at least in computer ...


56

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


55

I think the question I would ask is why would you program arcade gamers in C back in the 80's. Firstly, C was not nearly as popular in the world of microprocessor programming as you might imagine back then. It was only one of a number of high level languages that were available (if it was available for your platform). Secondly, arcade games need performance. ...


54

John Carmack almost certainly was the first to use the hardware scrolling capabilities of the EGA specifically, together with efficient tile and sprite drawing and erasing algorithms to create a slick, full-screen scrolling 16-colour console-like game engine on the IBM PC. "Adaptive Tile Refresh" was one part of this. He did so through ...


51

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


46

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


46

Like all games from that era, cheating and tables. Two 256 byte tables and logarithms gave a 10x speed boost on multiply and divide on Commodore 64 at least. Matrix operations using addition only for fixed known rotation rates. Lazy evaluation. Only convex shapes making hidden line removal simpler and hidden line removal meaning only half the vertices ...


45

I researched this question online fairly thoroughly a while back. I could not find any reference to an AGP device that wasn't a graphics card. It wasn't exhaustive, and absence of proof is not proof of absence, but I strongly suspect no such cards were made. I also think there are technical and economic reasons that make it unlikely. It would have been a ...


44

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


41

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


41

Where did the 80x25 text terminal size come from? Quick answer: It's one Punch Card Per Line Resulting in 24/25 lines (cards) per screen when using a 4:3 tube and a reasonable font as dictated by proportions fostered since Roman times. Detailed Answer: Prior to the 1981 release of the IBM PC, the VT05 (72x20 1971), VT52 (80x12 1974), and VT100 (80x25 ...


40

The Epson MX-80, upon which many other printers were based, had nine round pins which were vertically spaced at 1/72" intervals. On such printers, the print head could generally move at two speeds, one twice the other. At high speed, a printer could place dots at 120dpi resolution, but could not strike two adjacent dots. At low speed, the resolution was ...


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


37

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


37

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


36

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


35

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.


34

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


34

The transform applied to project geometry from 3d to the 2d coordinates necessary for drawing on a screen is called a perspective projection. It involves calculating 1/z and multiplying x and y by that. Filling a triangle involves visiting every pixel within it and deciding which colour to put there. To paint a texture that properly obeys perspective you'd ...


32

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


32

First, it may be good to know that the MX-80 did not feature a bitmap mode for graphics, but only 64 symbols. The MX-80 also used 7 bit encoding, so no room for 8 bit graphic data. It was the MX-80 Type II that included it. So while the name is used simply as MX-80, it's always the MX-80 Type II we're talking. Second, Just because some printer looked alike, ...


32

Seems like VGA only has one background layer, it appears to be a typical bitmap screen like most home computers of the 80s (Amstrad CPC, Commodore 64 etc.) where each pixel's color is stored in a section of memory that can be written to directly. Most video cards of the day could theoretically have up to four pages of video memory, as they had 256 KiB of ...


31

The SNES hardware doesn’t implement perspective, it implements affine transforms of the background layer. Affine transforms aren’t sufficient for perspective. Perspective is implemented by changing the affine transform at every scanline, to change the scale. This is what allows parallel lines to be transformed so that they aren’t parallel on-screen, thus ...


31

On Windows (1.x), at least, it's no more work to have this style of cursor than the normal sort. A Windows cursor is formed of two bitmaps: A mask that blanks out the shape of the cursor, and a pattern that is then drawn in the same place using the XOR operation. There are thus four possible combinations for any pixel: Mask bit Pattern bit Resulting pixel ...


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