Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Working on Mac OS X Compatibility #473

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

displaced
Copy link

Hi,

This project looked very cool indeed and I'd like to get it working on my Mac Mini HTPC.

I followed the standard instructions to build. Initially I had to satisfy a couple of dependencies using the OS X 'Homebrew' package manager. I also downloaded the latest SDL Framework for OS X and copied it to /Library/Frameworks as normal.

So, then it at least started compiling. However, I had to make a couple of changes to the source tree to get things up and running.

The main sticking-point is that I've merely left the methods in VolumeControl.cpp as 'no-ops' rather than #errors for when APPLE is defined. I'll come to that later when I learn how to use the CoreAudio framework in C++.

I had to make a few changes to cmake's settings to get it to build with clang on OS X.

Anyway, EmulationStation now launches on my Mac. I just need to configure it and test it to see how much of it actually works as expected. Thought I'd send this PR over since it might at least act as a basis for further Mac support.

Chris added 5 commits July 12, 2015 15:46
Tell clang to compile against the C++11 standard
Replaced #errors in __APPLE__ ifdefs to simply no-op.

A proper implementation will need some work to interface with CoreAudio
on the Mac which will require some c++ to Obj-C bridging which I don’t
know how to do yet.
More clang combat.  Added set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
-Wno-inconsistent-missing-override")

Should make it easier to spot actual clang errors.
the mBackgroundOverlay setImage call was causing a later call to an
OpenGL method before SDL had been asked to init OpenGL on Mac OS X
@displaced
Copy link
Author

Ok -- just tested it out with a Genesis emulator -- it seems to run fine. Tested scraping etc. and that's working. Only tried keyboard so far, but will shortly test with an Xbox 360 controller.

EmulationStation itself has a bits of layout weirdness -- but as I've never seen it before (and the README says it isn't pretty without themes) that might not be a platform bug.

One thing to note is that some OS X emulators don't take command-line arguments for ROMs. In that case, I set the option to something like the following:

<command>open -W -a /Applications/SomeEmulator.app %ROM%</command>

That tells OS X to launch %ROM% with the application (-a switch) and wait for the app to exit before returning (-W switch)

@displaced
Copy link
Author

Ok - the visual weirdness was because I'd got the Genesis theme name wrong -- it's 'megadrive'. Even though I'm in the UK (where it was called the Mega Drive), I've been using emulators so long I just presumed it'd be genesis.

ES running and looking great so far on OS X!

Chris added 3 commits July 12, 2015 22:33
e.g. static std::vector<std::shared_ptr<Sound> > sSoundVector;
Generally a good idea to ignore dot files, but especially important on
OS X which spews ._SomeFile files on filesystems which do not natively
support HFS+ metadata streams
Oops.  Left some cruft behind in dotfile exclusion.
@pasnox
Copy link

pasnox commented Jul 24, 2015

Wow did not noticed this pull before, looks like we done twice osx porting effort...xD
#478

@CrispyXUK
Copy link

is there a build for testing or is this something that will be in the next release?

@ghost ghost mentioned this pull request Aug 19, 2015
@wolf-sigma
Copy link

I got this to build too. We should come up with some build instructions for Mac, as it wasn't intuitive for me. Hey @Aloshi - What's the appetite for merging this PR or others? I think Mac support would be a great feature, and we can collectively come up with some tests to make this maintainable.

What would you need to merge one of these Mac ports?

@namnm
Copy link

namnm commented Apr 11, 2019

Any news, guys?

@pablormago
Copy link

I got this to build too. We should come up with some build instructions for Mac, as it wasn't intuitive for me. Hey @Aloshi - What's the appetite for merging this PR or others? I think Mac support would be a great feature, and we can collectively come up with some tests to make this maintainable.

What would you need to merge one of these Mac ports?
Hi, do you have an xcode project or can you give me some instructions to compile?? Thanks

@leonstyhre
Copy link

FYI, I have been working on an EmulationStation fork for quite some time now that has complete macOS support. If you're interested you can check it out at https://es-de.org

The source code repository is hosted on GitLab, you can find the link at the web site mentioned above.

@pablormago
Copy link

pablormago commented Feb 23, 2022 via email

@leonstyhre
Copy link

@pablormago Very nice, at some points during my work with ES-DE I've been thinking that it would have been easier to start from scratch instead of working on an existing codebase. But when I started the project I didn't have the skills do to such a thing and there are also many nice things about the original EmulationStation code of course.

If you would be interested in joining the project and work on ES-DE you are very welcome!

@pablormago
Copy link

pablormago commented Feb 26, 2022 via email

@leonstyhre
Copy link

Well C++ is quite a different thing so I can imagine it's a big threshold to get over :)

Do you have any screenshots available for how the bezels look like as I'm not sure exactly what this adds?
GLSL shader support has already been added to ES-DE but Netplay would be very nice to add in a future release.
But it would probably have to wait a while as there are just so many other things planned already.

@pablormago
Copy link

pablormago commented Feb 26, 2022 via email

@pablormago
Copy link

pablormago commented Feb 26, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants