Troubleshooting

Shortly after the release of Starbirds it turned out that Starbirds didn't work on every system. In fact, we discovered that only BlizzardPPC equipped systems were affected by this problem. Using a patch Starbirds can be made working also for these systems.

Now the big question is, why were only BlizzardPPC systems affected, while systems with CyberStormPPC hardware didn't have similar problems? What's the difference between those hardware systems and what could be the reason why such old games don't work anymore?

The answer to these questions is obvious: the big difference between those accelerator cards is the Flash ROM and its content. And indeed, it turned out that the Flash ROM was responsible for Starbirds not working anymore. Now we will discuss the reasons in greater detail and the BlizzardPPC users will learn, what all is caused by this Flash ROM.

The BlizzardPPC flash ROM contains, among other things, the ppc.library and the 68040.library/68060.library. The problems caused by the ppc.library (especially for WarpUp) don't have to be discussed anymore, they should be well-known. But what is still not known widely are the consequences which arise from starting the 68040.library/68060.library at boot time. These libraries' job is to setup features of newer processors so that the full power of the hardware can be provided.

For every system with the exception of the BlizzardPPC-equipped systems, the 68040.library/68060.library is started when the 'SetPatch' command is executed in the startup-sequence. This has the consequence, that the AMIGA still behaves mostly like a Low-End-AMIGA directly after boot time. For the BlizzardPPC systems things change completely, those systems are forced to enter a 'high end mode' directly after boot, and that's the reason why there is such a big incompatibility to old software, mostly to old games.

The following operations, which are done by the 68040.library/68060.library at startup, lead to a big incompatibility to old software:

  • The exception area of the 68K (the vector table) is moved to FAST-RAM by changing the VBR register. This register was not present in the 68000, and therefore it follows that every game, which was written before newer CPU's game out, definitely doesn't work on this system, if it accesses the hardware directly. This was also one (but not the only) reason, why Starbirds failed on these systems. The assumption, that the VBR is zero after boot time, is LEGITIMATE, because this register indeed is initialized with zero at boot time, and because it's SetPatch's job to enable such features, which aren't present in every processor.
  • The data cache of the 68K is enabled. A lot of games can't handle this situation, because they were written at a time, where the caches were either small or even not present, and least of all no copyback caches existed. The assumption that the data cache is disabled after boot time, is LEGITIMATE, because this is the case for every 68K processor, and because it is SetPatch's job to enable the data cache.
  • The MMU is configured, a lot of manipulations are done with the appropriate registers, a page table is set up. The MMU is part of 68K-CPU's since the 68040 (as external unit since the 68030). The consequences of having a MMU enabled certainly coulnd't be foreseen by the developers of such old games. The assumption that the MMU is configured to be in a 'neutral' way, which doesn't affect applications much, is LEGITIMATE, because after reset no page table is active and the transparent translation register are set in a way, which keeps a good compatibility to 68000 processors. And finally it's SetPatch's job to set up the MMU.
  • Further modifications on 68040/68060 specific registers basically could have an influence on the compatibility to old software.
  • We strongly believe that very few owners of BlizzardPPC hardware really know that not the CPU is responsible for the low compatibility, but the Flash-ROM.

    For Starbirds we were able to write a patch which solves the problem. This patch resets the VBR to zero, switches the data cache off and switches the MMU off and sets the registers to some neutral value. For many other games it is almost impossible to add such patches, because these are started from boot-block. Such games have no chance on BlizzardPPC systems until a new Flash-ROM comes out, which doesn't contain the ppc.library/68040.library/68060.library anymore.