ARM recompiled exe of Diablo II: LOD requires: 1.13d version of the game data files (including expansion) usage: setarch linux32 -L wine libd2game_sa_arm.exe.so Game hacks, controlled with environment variables: D2_SLEEPHACK - uses sleep while idle to avoid excessive CPU usage D2_TSHACK - attempts to make the game usable on touchscreens D2_SHIFTHACK - make leftclick act as rightclick while holding rshift (intended for use with touchscreens) D2_CTRLHACK - make Ctrl act as shift too "setarch -L" is needed because the game (or more likely compiled-in m$ c++ runtime) relies on pointers to be below 0x80000000 (as they are on Windows). Since 3.3 kernel ARM Linux uses so called topdown mapping and uses addresses above 0x80000000 by default. Beware of GCC bug 67037! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67037 Some distributions (like Debian jessie) are affected by it. workaround: $ cd src/wine/dlls/kernel32 $ touch volume.c $ sed -i -e 's/-O2/-Os/' Makefile $ make You may also want to disable wine's OpenGL blits and use gdi instead, see DirectDrawRenderer in http://wiki.winehq.org/UsefulRegistryKeys