Skip to content

Instantly share code, notes, and snippets.

@nyarla nyarla/HOWTO.md Secret
Last active Jan 1, 2017

Embed
What would you like to do?
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://git.code.sf.net/p/wineasio/code 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 http://sourceforge.net/p/wineasio/discussion/802003/thread/83199090/

Step 3: Copy ASIO SDK files to wineasio-code

  1. ASIO SDK is downloadable from https://aur.archlinux.org/packages/steinberg-asio/
  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 wineasio.dll.so

$ cd wineasio-code
$ cp wineasio.dll.so /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)
@Saren-Arterius

This comment has been minimized.

Copy link

Saren-Arterius commented Sep 21, 2014

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

@Saren-Arterius

This comment has been minimized.

Copy link

Saren-Arterius commented Sep 25, 2014

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'
___thiscall_Init
^
<inline asm>:14:1: error: invalid instruction mnemonic '___thiscall_getdrivername'
___thiscall_GetDriverName
^
...tldr...
<inline asm>:167:1: error: invalid instruction mnemonic '___thiscall_controlpanel'
___thiscall_ControlPanel
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [asio.o] Error 1
@nyarla

This comment has been minimized.

Copy link
Owner Author

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.

@nyarla

This comment has been minimized.

Copy link
Owner Author

nyarla commented Oct 5, 2014

P.S.

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 sourceforge.net forum.
Sorry.

@Saren-Arterius

This comment has been minimized.

Copy link

Saren-Arterius commented Oct 12, 2014

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

@Saren-Arterius

This comment has been minimized.

Copy link

Saren-Arterius commented Oct 12, 2014

regsvr32: Successfully registered DLL 'wineasio.dll'

Thank you! I love you and what you wrote!

@steveschow

This comment has been minimized.

Copy link

steveschow commented Nov 7, 2014

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?

@steveschow

This comment has been minimized.

Copy link

steveschow commented Nov 8, 2014

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?

@steveschow

This comment has been minimized.

Copy link

steveschow commented Nov 9, 2014

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: https://github.com/steveschow/osxwineasio

@steveschow

This comment has been minimized.

Copy link

steveschow commented Nov 13, 2014

The prebuilt binary is also there

@nyarla

This comment has been minimized.

Copy link
Owner Author

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
You can’t perform that action at this time.