Skip to content

Instantly share code, notes, and snippets.


nyarla/ Secret

Last active January 1, 2017 04:21
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save nyarla/ce394658599a75cef6c7 to your computer and use it in GitHub Desktop.
How to install wineasio with OSX Mavericks

How to install wineasio with OSX Mavericks

  1. Tested Environment

  • Mac mini late 2012 (JP Model)
  • OSX Mavericks 10.9.5
  1. Install wine

$ brew install --with-libgsm --devel 
  1. Install Jack Audio Connection Kit

  1. Donwload Installer from JACK Audio Connection Kit|Downloads * I used that: Binaries: Mixed 64/32 bit, 0.90 of JackOSX for Snow Leopard

  2. Unzip archive && Install Jack Audio Connection Kit

  3. Reboot by installer

  4. Install wineasio

Step 1: clone wineasio Git Repository

$ git clone git:// wineasio-code
$ cd wineasio-code

Step2: patch asio.c

diff --git a/asio.c b/asio.c
index 6e5dd9c..1532b47 100644
--- a/asio.c
+++ b/asio.c
@@ -57,9 +57,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(asio);
 /* From config.h */
-#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl " #name suffix "\n\t.type " #name suffix ",@function\n" #name suffix ":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous");
+#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl _" #name suffix "\n\t\n_" #name suffix ":\n\t" code "");
 #define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code)
-#define __ASM_NAME(name) name
+#define __ASM_NAME(name) "_" name
 #define __ASM_STDCALL(args) ""
 /* From wine source */

NOTE: this patch is copied from

Step 3: Copy ASIO SDK files to wineasio-code

  1. ASIO SDK is downloadable from
  2. Download tarball && extract asiosdk2.3zip && unzip asiosdk2.3zip
  3. Copy all files to wineasio-code from ASIOSDK2.3/Common

Step 4: make

1. Quick fix library path in Makefile

diff --git a/Makefile b/Makefile
index 1ef0029..aa35d3e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 ### Generated by Winemaker
-PREFIX                = /usr
+PREFIX                = /usr/local
 SRCDIR                = .
 SUBDIRS               =
 DLLS                  = wineasio.dll
@@ -31,8 +31,8 @@ wineasio_dll_LDFLAGS  = -shared \
                        -m32 \
                        $(wineasio_dll_MODULE:%=%.spec) \
                        -mnocygwin \
-                       -L/usr/lib32/wine \
-                       -L/usr/lib32
+                       -L/usr/local/lib/wine \
+                       -L/usr/local/lib
 wineasio_dll_DLL_PATH =
 wineasio_dll_DLLS     = odbc32 \
                        ole32 \

2. make!

$ cd wineaiso-code
$ make

Step 5: Install

$ cd wineasio-code
$ cp /usr/local/lib/wine
$ regsvr32 wineasio.dll
  1. That's all

Any Questions? ;-)

  1. Changelogs

  • 2014-10-05 - second edtion (I clean up this document)
  • 2014-05-30 - first edition (this version is included mistake, confution and complication)
Copy link

Hi, could you please share the binaries compiled? I had trouble compiling wineasio. (shows invalid instruction mnemonic and overs the errors limit)

Copy link

I hope if somebody can solve this compilation problem

gcc -c -I. -I/usr/include -I/usr/local/include -I/usr/local/include/wine -I/usr/local/include/wine/windows    -m32 -g -O2 -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o asio.c
<inline asm>:5:1: error: invalid instruction mnemonic '___thiscall_init'
<inline asm>:14:1: error: invalid instruction mnemonic '___thiscall_getdrivername'
<inline asm>:167:1: error: invalid instruction mnemonic '___thiscall_controlpanel'
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [asio.o] Error 1

Copy link

nyarla commented Oct 5, 2014

Hi @saren!

I clean up this documentation, and I succeed to working FL Studio with wineasio!

So, Could you retry to install wineasio by this second edition document ?

thank you for reading.

Copy link

nyarla commented Oct 5, 2014


invalid instruction mnemonic error is happend by my mistake in first edition document.
So, patch code for asio.c is broken in first edition document.

This mistake is happend when I copy and paste from forum.

Copy link

Hi @nyarla,
I just checked this document again and I am very happy that there are some good news.
I'll try again.

Copy link

regsvr32: Successfully registered DLL 'wineasio.dll'

Thank you! I love you and what you wrote!

Copy link

why don't you fork the wineasio project and codify this patch so that we can clone the fork and have it easily without everyone having to manually patch it?

Copy link

I've been able to compile using these instructions. The DLL registers and shows up inside a host in wine, but no audio with JackOSX no matter what I've tried. Is anyone actually getting this to produce audio?

Copy link

I have been able to build this using the patches supplied, and also i made a further change to get audio working. Need to include -DASIOST32INT to the gcc lines of Makefile. I have created a github fork of the sourceforge project that has these changes for anyone that wants to try it. Check it out:

Copy link

The prebuilt binary is also there

Copy link

nyarla commented Nov 20, 2014

Hi @steveschow.

why don't you fork the wineasio project

This reason is so simple.
So I really haven't skill for maintain C/C++ or OS X assembler. it's so seriously.

I think that your fork wineasio project for osx is Good job. 👍

Thank you for message to me, And sorry for delayed response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment