Hot answers tagged

109

When CD-ROM games were first introduced, game developers didn’t take any measures to prevent users from copying them, for two main reasons: CD-ROMs could contain more data than most hard drives at the time; CD writers were rare, and extremely expensive. The Wikipedia page on CD-R gives some idea of the expense involved: in 1990, CD recording systems cost ...


82

Bootable game disks do exist for the IBM PC. Conflict in Vietnam is an example of such a game. As can be seen on page 8 of the manual, the game boots directly without loading DOS first. The main reason it wasn't common was for compatibility. A self booting game has to have its own drivers for all the hardware it wants to support. As PCs quickly diversified ...


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

How does the Sonic & Knuckles cart detect another cartridge? It checks the serial numbers of games; they can be found in the ROM's header. It probably detects all preceding Sonic the Hedgehog games since they all result in specific effects when locked-on. Are the game ROMs merged in some way when connected? It seems both games are simply mapped onto ...


52

This is quite a wide-ranging question. There are some resources online which help: Jonathan Cauldwell, author of various Spectrum hits, has a How to write games for the Spectrum" guide, which seems to mainly cover modern Speccy development. The Oliver Twins (authors of many Codemasters-published titles back in the day) detail some of their development ...


51

Interestingly enough, I stumbled in a related article, that hints firstly the (cross)development at Sinclair was made on CP/M machines, (which corroborates the Matthew Smith Manic Miner development in the TRS 80 reference on the OP question), and later on in CP/M emulated under a VAX for (re)using the original binary (cross)toolchain. At Sinclair, a £60,...


50

Video game hardware, whether for home consoles or arcade machines, is designed pretty much from scratch. Hardware designers have pretty much free rein on choosing what CPU to use, basing their choice on factors like cost and ease of programming. The Intel 8086, quite frankly, was a poorly designed processor and was never well regarded. While you could ...


45

We had some software delivered on a CD in which the vendor purposely put a defect on a specific track. If that defect wasn't there, the software could say it wasn't an original CD. Since defects are not copied, even on low level track copies, an exact replica could not be created.


35

I'm putting CHIP-8 forward. This system is essentially a virtual machine developed for some reason. There are games written for the CHIP-8. It has a few opcodes, a stack, a couple of timers, and a low resolution bitmapped display, but it's simple enough that the first few emulators fit in a few kilobytes on early 8-bit computers. There are more than a few ...


33

The first game sold for use on the IBM PC was Microsoft Adventure, which was available on the day the IBM PC was released (it was part of the launch, along with VisiCalc, Easywriter etc.). It was developed by Gordon Letwin (later of OS/2 fame) in 1979, based on the Colossal Cave mainframe game. It didn’t run on DOS though, it was a “booter” — you booted the ...


27

Excess capacity. ROM chips come in standard sizes based on powers of 2 and it is quite unlikely a particular size will be exactly what a game needs. For example, suppose a game displays numbers that are 8 x 8 pixels in size. It will need the digits from 0 to 9, each digit needs 64 bits so a ROM of 640 bits is required. That could be accommodated with a ...


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


24

The nicest DOS emulator for Mac OS X is Boxer, which is an OS X-specific version of DOSBox. Not only is it free, it's free software (or open source if you prefer); its source code is available and freely modifiable. Boxer or DOSBox are the best option nowadays for running old DOS games (it has pretty good hardware emulation for the kinds of peripherals used ...


24

The adventure module on PyPI is a faithful, modern re-implementation of the 1977 PDP-10 FORTRAN version of Adventure (aka the “350-point” version), which goes so far as to re-use the exact same advent.dat file: This is a faithful port of the “Adventure” game to Python 3 from the original 1977 FORTRAN code by Crowther and Woods (it is driven by the same ...


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

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.


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

(preface: While Stephen's answer already covers the basic points, I would like to put a different emphasis here - and merge in some private history :)) Short answer: It was the game's size and the need to copy it to a CD again, combined with expensive and unreliable writers. Further, the CD itself was used as a copy protection. While games often got ...


23

Well there were some PC booter titles (MobyGames lists 249), but most of these were quite early games, even before hard drives, XMS or EMS even existed. These were almost always self contained single floppy games, that could run on the very specific hardware that existed. All they used was BIOS for disk access. Also DOS was not the only operating system, so ...


21

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


20

A Duron of this era is a cut-down version of a Thunderbird Athlon, and is broadly comparable to a Coppermine (Pentium III) Celeron. Paired with the right audio/video hardware, it's absolutely capable of playing most 1990s DOS games, although a few (and an even larger number of 1980s games) may have trouble with it running too fast. It will also run Windows ...


20

The IBM PC was NOT a Game Machine Plenty of people played plenty of games on IBM & compatible computers. But the IBM PC was designed as a business machine, not a game machine. This is most obvious with audio capabilities. Where Atari 400/800, VIC-20, Commodore 64, Amiga and many other machines of the era included some (for the time) serious sound ...


19

Ultima V was I think the best known game that behaved differently on a Commodore 128 than it did on the Commodore 64, on the C128 it had music but not on the C64. I believe this was accomplished by separate C64 and C128 versions on the same disk. Apparently some of Andrew Braybrook's games for the C64, like Morpheus and Alleykat, took advantage the ability ...


19

I remember a friend of mine who did a lot of C64 coding. I distinctly remember seeing him writing out the assembly mnemonics on a lined notepad, then working out what the hex codes were for each instruction, then writing a BASIC program to POKE them into memory before running them. He did eventually get a disk assembler (store a text file on a floppy disk,...


19

As documented by Jeffrey S. Lee, the AdLib simply provides raw programmatic access to its OPL2: The sound card is programmed by sending data to its internal registers via its two I/O ports: ... The sound card possesses an array of two hundred forty-four registers; to write to a particular register, send the register number (01-F5) to the address ...


16

Many, many Spectrum games were written with Devpac, on the Spectrum itself. Devpac was written by HiSoft, where I worked during this period (on the 68k Devpac, I never worked on the Z80 stuff myself). HiSoft themselves developed their Z80 software on CP/M machines (using their own Z80 assembler), though for the life of me I cannot remember how they got the ...


16

There are some good ideas so far. But something to consider. If you do something like a CP/M machine, they're really quite basic and simple, especially since everything is isolated by not just the BIOS, but also the IN/OUT nature of the 8080/Z80 family. It does not seem untoward to me to have a CP/M machine be the goal of the first semester. (I don't know ...


16

Oh. Nice question. I'll try to give a few hints, but I would consider the issue way to broad to be answered here instead of a more meaningful conversation. Nonetheless: [...]tasking the students with creating an emulator for an older system Quite cool. from scratch, If this is supposed to be really from scratch and in software, it would not really ...


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

“Software rendering” usually refers to 3D rendering which doesn’t use hardware assistance (see Wikipedia for a lengthier description). Older games only had software renderers; hardware rendering didn’t exist in consumer PCs. In the late 90s, 3D-capable graphics processors became available, including the famous 3Dfx chips, and games started using them — ...


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