Tech News
← Back to articles

Why Castrol Honda Superbike crashes on (most) modern systems

read original related products more articles

A friend cleaned up and gave me a copy of a game I've not heard about before: Castrol Honda Superbike World Champions, a motorbike racing game for PC, released 1998 by Interactive Entertainment Ltd. and Midas Interactive Entertainment.

Given the age of the game (and looking at the system requirements) it's clear that the game comes from the tricky era of early 3D-accelerated PC gaming. For context, my copy of the game helpfully asks to install DirectX 5.

Before Windows was known for cramming AI and account requirements into every single corner of the system, no matter how unnecessary, it was known for its excellent backwards compatibility with older software. Generally, unless there are genuine bugs (and sometimes even despite them), Windows tries its hardest to run old applications correctly.

Pushing my luck and trying to run it on my Windows 7 machine, however, resulted in either a getting stuck on a black screen, or a crash, seemingly at random:

Let's go back in time and see how far we need to go to get it running: Installing and running it on my Windows 98 and Windows XP machines was as uneventful, and the game works just fine , including with 3D acceleration. Glorious 1024x768x16:

Debugging the issue #

Debugging is more fun than playing, so let's get started! :^)

I pulled over the installation directory to my main machine and ran Detect It Easy to see what we can learn about the executable:

Linker: Microsoft Linker(5.10) and Compiler: Microsoft Visual C/C++(...)[libcmtd] are the interesting bits here. Notice how it's libcmtd , not libcmt ? The binary is linked against the static debug version of VC5's runtime. The debug runtime has heaps of extra checks and logging, which might help later.

Let's attach a debugger and see what's going on. Given that the game crashes very early on (before the credits intro screen), I hoped to see something right away. The cases where the game got stuck in a loop seemed to actually get stuck in some Windows API call stack.

... continue reading