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)
@steveschow
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
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
Copy link

steveschow commented Nov 13, 2014

The prebuilt binary is also there

@nyarla
Copy link
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