The Problem
In the early days of the Amiga, games programmers
could safely make certain assumptions about the hardware and software configuration
of the machines that their games would end up running on in people's homes, thereby
making the game program smaller, faster, more impressive or even simply easier to write.
The games worked because the assumptions held true for the vast majority of the Amigas
out there. However, as timed moved on, new Amiga operating systems and models appeared
and expansions such as extra memory, hard drives or faster processors became commonplace,
and upgraders found that most of their favourite old games no longer worked on their new
systems.
The reason for the failures was quite simple: one or more of the assumptions made
by the programmer no longer held true on the more advanced software or hardware,
and the game program either did not work correctly or just stopped working entirely
as a result.
The Solutions
It has to be said that one possible modern-day solution to the incompatibilites is
to run the game under an emulator like WinUAE and this approach has both its advantages and its disadvantages. However, this section is
about getting games to work correctly on real Amiga hardware so
the subject of emulators will not be covered here.
Efforts to get old games to work on new hardware have passed through a number
of stages to date; the first of these were programs called "degraders",
small utilities that reconfigured the machine to more closely match the setup of
an older computer that the game would work on. The basic philosophy is that if
the game works on machine configuration "A", then if you change your
setup to match that of "A" the game should work on your machine also.
Degraders did have success in eliminating some simple incompatibilites, but other
problems with the games were more fundamental and required that the game program
code itself be changed in order for it to work. Changing program code in this way
is referred to as "patching" and the program used to do the patching
is called a "patch". These patches are a much more powerful solution
than the degraders since they actually replace, fix and extend sections of the
original code and so can reprogram the game to do anything; when the game is running
it is as if the new sections had been present from day one, typed on the original
programmers' keyboard!
Binary Bodging
The first patches to emerge were generally written from scratch and highly customised
for each individual game, making patch development a slow and painstaking process. They
incorporated some of the functionality of the degraders but also applied changes to
the game code to fix more serious incompatibilites, fix bugs and add new features such
as hard-drive loading, cheats ("trainers"), high score saving, quit options
and so on.
It was soon noticed that these early patches shared large sections of code, or that each
had their own code for doing the same things such as degrading and accessing the hard disk.
Logically, this led to the development of "patch systems" like
WHDLoad or JST
that implemented the common functions once within themselves and allowed patch creators
to develop patches as plug-in sections able to access the common code, thereby freeing
them from having to re-invent degrading, hard disk loading, keyboard interfacing and so
on for each new patch. The creation of these patch systems streamlined the patch development
process enormously and caused an explosion in the number of patches available!
State Of The Art
WHDLoad is the dominant Amiga game and
demo patch system in use today. Over 2,000 patches exist for it and more are
released all the time! That's over 2,000 games and demos that are available to users
of expanded Amigas that never were before, and this accounts for a significant fraction
of the total Amiga software catalogue. The chances are that, for any given game in your
collection, there will be a patch available that will allow it to run on the latest,
most advanced Amiga hardware available, usually with additional features not present
in the original game. How good is that?
|