macemu icon indicating copy to clipboard operation
macemu copied to clipboard

Civilization II on B2 systematically crashes on a Linux host, works well on a Windows host

Open NovHak-Linux opened this issue 5 months ago • 6 comments

I already posted the problem on the E-Maculation forums, but I’ll explain again here, hoping this fine wall of text won’t rebuke too many !

After some difficulties, I finally managed to run Civilization II on B2, on my Linux laptop (Ubuntu 24.04). Everything was well, until a system update that occurred during between the 22nd and the 23rd of august. After the update, each and every time I launch the program, OS 7.6.1 immediately crashes with a CHK Error.

I tried the latest AppImage, the Ubuntu stock basilisk2 package, and compiled the program myself with various memory options : direct, banks and real, all with the same result, CHK Error upon program execution.

Having serious reasons to suspect a host-specific problem, I switched to Windows and tried the Windows build… and it worked perfectly.

In both cases, I tried to emulate the same guest : same ROM (performa 500, modelid 74 i.e. gestalt 80), same RAM (128 MB), same CPU (68030 w/o FPU), same OS (Mac OS 7.6.1 French), same disk size and format (2 GiB HFS… what else than HFS on OS 7.6.1 anyway ?).

It may be worth noticing that I first wanted to install the gold edition of Civ II, which is PPC only, so I tried Sheepshaver w/ OS 8.6, but that didn’t work : the game was starting, but the guest was freezing upon unit movement, which happens very soon in game. I had the same freeze upon unit movement on B2 & FPU enabled with the vanilla edition of the game, and with the CPU set to 68040, OS would crash with the CHK Error mentioned before. That’s how I ended up with a 68030 w/o FPU, which worked fine for some weeks, until that recent system update, making the game effectively unplayable on Linux.

But now, on a Windows host, even the gold edition works well on Sheepshaver.

I tried to blame the Linux update first. The update has indeed been quite large, including a glibc update, no kernel update though… but it turns out, or so they say, that the update was a “no-change build” the description being “Fix framepointer flags for s390x and ppc64el”, hence other architectures than my amd64.

My theory is that there’s something wrong with the Linux specifics of B2 and Sheepshaver, that makes it susceptible to subtle changes, such as time management maybe. I’m not picking that out of the blue, since I noticed the similar warning messages when launching B2 and SS on Linux :

  • On B2 : WARNING: RmvTime(000f4b3e): Descriptor not found
  • On SS : WARNING: RmvTime(00247414): Descriptor not found

So that’s where I am. Your insights are welcome !

NovHak-Linux avatar Sep 02 '24 13:09 NovHak-Linux