Hasty Briefsbeta

Bilingual

Hunting the 30-Year-Old World of Xeen MT-32 Crash

10 hours ago
  • #audio programming
  • #game bug
  • #retro computing
  • A bug in Might & Magic IV & V: World of Xeen causes freezes and corruption only when played with a Roland MT-32, affecting both emulators and real hardware.
  • The bug stems from an uninitialized register (BX) in the MT-32 driver's fade-out routine, leading to self-modifying code that corrupts memory.
  • A single byte change in a compare instruction transforms it into an unbounded store, creating a self-amplifying corruption engine.
  • The issue is a regression from the 1993 Darkside of Xeen driver, which added a fade for percussion but introduced the uninitialized register and swapped channel numbers.
  • A fix involves ten byte changes to correct the channel assignments and prevent the uninitialized register from causing memory corruption.
  • Patched versions now allow stable gameplay with the MT-32 soundtrack as intended, without crashes.