[Fixed] 10.9 compatibility issues
Posted: Tue Oct 22, 2013 9:45 am
EDIT: An update is pushed that fixes HaloMD from crashing on certain systems (see below) when running on 10.9 Mavericks
With 10.9's release incoming, Halo may not run on certain systems with certain graphics cards (e.g, integrated cards likely, though not entirely sure) due to a bug. Now it is actually unclear if the bug is a memory-smasher in Halo that has gone long unnoticed, or if it's a bug in GPU drivers with the new release. Either is likely possible, although after looking into it a bit I'm convinced it's probably the former.
For the technical: the bug is that Halo crashes during its OpenGL context creation -- the function offset is at 0x002b45f2 in memory (and makes calls to relevant function offsets 0x002c3fba and 0x002b395a). It is possible to play around with swizzling functions at runtime (see halomd_overrides.m in HaloMD's source). You can also use Hopper to examine the disassembled code and get a pseudo-code C output to see exactly what it is doing. I have actually made a small test app calling some of the same deprecated functions Halo does with running into no obvious issues. Machines so far known to run into the crash: MBA with Intel HD 3000, MBA with Intel HD 4000, MBP with NVIDIA GeForce GT 650M and Intel HD Graphics 4000. Machines not known to be affected: some iMacs.
With mavericks becoming free to users from 10.6 - 10.8, and with it being a nice upgrade otherwise, unless we can try to resolve the issue in Halo, or unless it's a bug in the drivers in which apple releases a bug fix later, I anticipate this will be pretty detrimental to the Halo field. If I were to make a guess now, this will affect most laptops, and thus most Macs.
With 10.9's release incoming, Halo may not run on certain systems with certain graphics cards (e.g, integrated cards likely, though not entirely sure) due to a bug. Now it is actually unclear if the bug is a memory-smasher in Halo that has gone long unnoticed, or if it's a bug in GPU drivers with the new release. Either is likely possible, although after looking into it a bit I'm convinced it's probably the former.
For the technical: the bug is that Halo crashes during its OpenGL context creation -- the function offset is at 0x002b45f2 in memory (and makes calls to relevant function offsets 0x002c3fba and 0x002b395a). It is possible to play around with swizzling functions at runtime (see halomd_overrides.m in HaloMD's source). You can also use Hopper to examine the disassembled code and get a pseudo-code C output to see exactly what it is doing. I have actually made a small test app calling some of the same deprecated functions Halo does with running into no obvious issues. Machines so far known to run into the crash: MBA with Intel HD 3000, MBA with Intel HD 4000, MBP with NVIDIA GeForce GT 650M and Intel HD Graphics 4000. Machines not known to be affected: some iMacs.
With mavericks becoming free to users from 10.6 - 10.8, and with it being a nice upgrade otherwise, unless we can try to resolve the issue in Halo, or unless it's a bug in the drivers in which apple releases a bug fix later, I anticipate this will be pretty detrimental to the Halo field. If I were to make a guess now, this will affect most laptops, and thus most Macs.