I'm a french developer, as I was stuck at home recovering from injury, I decided to give a try to get the latest Raine on my Mac to get some 90's fun !
So I've found Raine is now on github (nice !). I get it and tried to make it ! After 3 days of hard try / error, I managed to get it running and playing with it on my 64bit hardware !
I made several modifications to be able to compile it on OS X. I would like to share it with you, so people could make it on OS X easily too ! How can I do ? Github pull requests ?
Here are some points:
- Clean OSX install, 10.10.5 with Xcode and command line tools.
- Use homebrew to reach a unix like dev environment (brew install xxx --universal). The --universal option to get both i386 and x86_64 in a fat dylib
- Install sdl, sdl_image, sdl_ttf, sdl_sound
- install muparser after adding the universal option in the formulae (brew edit muparser to edit and add it, just copy the example of sdl for instance to add univeral option).
- install nasm to get the lastest asm compiler
- install gettext and force the link (brew link gettext --force). No danger to do so, unlink can be done if necessary
- intall libpng and libtiff is not yet present
- install xz
You don't think you need Xcode here, just install gcc from homebrew too.
Then I started to launch make... I needed to update:
- detect-cpu: as the script does not see my processor as 64bit and wrongly set it as x86...
- makefile: update the darwin sections to use correctly the homebrews binaries and libs
- cpuinfo.c: add includes to compile on OSX
- adding missing bitmaps directory and content for the final app
- adding missing fonts directory and content for the final app
- update starscream init function as on OSX you can't use mov to load a variable address, you need to do a lea with indirection (portable, works on linux too)
And here I am. I get a full 32 bit Raine app running on OSX, 0.64.9 with asm optimisations.
I had to disable the asm video core as I can't get the move.s working. It compiles, but it seems that code was first set as data (strange asm.inc def for CODE_SEG)... Do you still use this strange asm code ? Seems that it is so optimized (self modifying code no ??) that it keeps crashing on OSX (I think it is not allowed to modify the program on the fly or the program memory address can't be accessed like that on OSX). So I use the C video core.
I also tried to compile a full native C as 64bit, but the z80 does not compile (the helpers on asm version have more methods than the C one ... not up to date ?).
Et voila !
ps: I can't attach the Rain.app because it's too big. I might put it on a dropbox for people to test