Case study
d2mac-linux: porting the Diablo II Mac executable to 32-bit Linux
d2mac-linux ports the Diablo II 1.14d Mac executable to 32-bit Linux by converting its i386 Mach-O container to ELF and reimplementing imported Darwin, Carbon and AGL interfaces in Zig. The shim translates graphics to GLX and adapts threading, files and sockets. The author reports that the game reaches its menu and character creation.
- Targets
- Binary · Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: A legitimate copy of the original Diablo II Mac client and its game data is required.
- Prerequisites: Execution needs a 32-bit-capable Linux userland, Mesa GL and an X server.
- Limits: Right-click handling and sound remain unimplemented.
- License: MIT.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · jaenster/d2mac-linux · Revision 313fa1c
- scripts/README.md GitHub · jaenster/d2mac-linux · Revision 313fa1c
- LICENSE GitHub · jaenster/d2mac-linux · Revision 313fa1c
More in Games
- DevilutionX: porting Diablo’s reconstructed engine · Case study
- DiabloWeb: a WebAssembly browser port built on Devilution · Case study
- Dusklight: a native Twilight Princess port built on the decompilation · Case study
- Ghostship: a libultraship native port of Super Mario 64 · Case study
- GoldenEye 007: an agent-assisted native port from a decompilation · Case study
- ico-pc: a native ICO port compiled from the PS2 decompilation · Case study