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


64

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


59

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


44

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


34

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.


27

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


26

All of the classic 3D screensavers (3D Maze, 3D Pipes, 3D Flying Objects, 3D Text, and 3D Flower Box) used OpenGL instead of DirectX. This was a virtual necessity for two reasons: (1) the original version of Windows 95 didn't ship with any version of DirectX, and (2) the Direct3D API required hardware acceleration that most PCs of the time wouldn't have had....


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


24

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


21

In many 8 bit games the position of the player's sprite is stored as the pixel coordinates it rests on. For many games that is adequate, but it has some limitations. If the game only uses whole pixel coordinates then the minimum movement speed is 1 pixel. In other words the resolution of the player's speedometer is 1 pixel. They can be moving at 1 pixel per ...


21

You can find it at https://files.scene.org/search/?q=unreal The file you want is /demos/groups/future_crew/demos/unreal11.zip - the latest version. There are many other fantastic demos worth checking out, available there as well! It is an official archive. If you like Unreal, then you'll love its sequel, Second Reality! You can also find recordings of ...


20

The [pre-AGA] Amiga: uses a planar frame buffer, stored in memory that is shared with the CPU (and which therefore reduces the CPU's speed); provides dual-playfield hardware scrolling, but the total bit fetch total per output byte doesn't stretch beyond six, so you end up with e.g. a 7 colour foreground and an eight colour background; provides 8 hardware ...


17

You can't really answer this question without acknowledging the parallel development paths for high-quality 3D graphics, which includes not only the dominant Polygon/Texture-mapping approach, but also the Ray Tracing approach. This parallel development path continues through today, with recent announcements like Nvidia's next generation RTX platform, that ...


16

In DOS you had direct access to the hardware; so you grabbed some good source of information about the card you wanted to support, and got down to code your routines. A book which was often cited as a good source was "Programmer's Guide to the Ega, Vga, and Super Vga Cards", by Richard F. Ferraro; I hadn't the luck to own it or read it, but it was fondly ...


15

I had a brief look into the game running in an emulator. The pillow fighting game is using the multicolor bitmap mode. In this mode, the video screen RAM defines the colors for the bit patterns 01 and 10, which are set separately for each 8x8 area with one byte each. The area filled with water has only around 100 bytes for color definition. These bytes are ...


15

Looking for either "rose.neo" atari or "rose.pc1" atari in Google images with an exact requested size of 320x200 yields this result, which seems to match your description pretty well. Could it be that one? EDIT #1 Here is a better version from Demozoo. EDIT #2 The original Neochrome file can be downloaded from this page.


13

Yes, there were, even though AF became available rather late in the day for DOS games (1996). However AF was never successful or even really relevant. In the nineties, supporting graphics resolutions beyond those defined by VGA was complex; see Fractint’s source code for evidence of that. Some programs had driver interfaces (notably, AutoCAD and Windows), ...


12

Here are a couple contenders: The Microvision, with a 16x16 pixel display. To emulate this one you might need to have both Intel 8021 and TI TMS1100 cores. Hartung Game Master, with 64x64 pixel display. This one is already emulated by MESS in case you want to consult a reference implementation


12

Because it was an acceptable way to show damage Remember who's playing these games. Primarily it was children. Games back then were entirely aimed at children (or at least young people). With that in mind, some way of showing damage without graphic imagery became necessary. As a counter-example, consider Barbarian which had more graphic depictions of ...


11

[TL;DR] vertical rastersplit with different graphic modes is possible with some quirks, in practice one would rather write characters onto a full hires image. I did some experiments, and found out that it is possible for the VIC chip to switch mode within a rasterline. However a practical application is hindered by the following issues: Every 8th ...


11

The Nokia 3310 had a monochrome screen resolution of 84x48, and the game Snake II:


11

In DOS world in the golden age of VGA (early to mid 90s), by far the easiest and most popular way to do graphics was the famous Mode 13h, a 320x200 pixel linear 256-color paletted video mode. The closest you would get to a standard video API was BIOS interrupt 10h, giving access to a handful of functions including switching the video mode and configuring the ...


11

On paper, based on the fill rate only, all the high-end graphics adapters available on PC in 1999 were at least as powerful as the Dreamcast’s PowerVR2: the CLX2 in the Dreamcast ran at 100MHz, with one operation/pixel/texture per clock, and memory bandwidth of 0.8GB/s; the PMX1 (PC-compatible PowerVR2) ran at 125MHz, again with one operation per clock, and ...


10

Your code is correct; a yellow prompt means that you’re using the red/green/brown palette. However, to get the low intensity variant, you also need to call interrupt 10h service 0Bh with BX set to 0 (black background, low intensity; strictly speaking, you can have any background — the bottom four bits, 3–0 — and the fifth bit, bit 4, controls the intensity; ...


10

Based on the absolute dearth of information on the Motorola 68486/68487 video chipset (RMS), I would conclude that it was never officially released as a product for OEMs, and was therefore never used in any actual computer products. [UPDATE: Per OP finding, it appears that one company, Micro Concepts of the UK, was offering an SBC based on the 68000/010 ...


9

As to the headline question: yes. The Acorn Electron, a convenient example because it's a BBC relative, proves this after a fashion. ROM is accessed at 2Mhz. The supplied RAM, which is shared with video, is accessed at at most 1Mhz. This is effected by slowing the CPU's clock based on its access destination. A modification to the machine was to replace the ...


9

The 6502 is designed to be used in systems with devices that may need to cause an interrupt. The way this is accommodated is by having each device use an open-collector/open-drain output to drive the /IRQ pin, which is passively pulled up with a resistor. If any device wants the /IRQ pin low, it will be low. Only if no device wants it low will it be high. ...


9

[not a complete answer, but some remarks too big for a comment] [also it focuses on games, as they are the most complex, real time application. Antialiasing for desktop UI and editors are a fairly insensitive issue and a subset thereof] Need for Colours A point, often forgotten from today's view is that antialiasing does need a video system systems with ...


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