Jump to content
almightytodd

Emulation on Linux: MAME + MESS + STELLA... ...Is it an adequate solution?

Recommended Posts

I have a few computers now that dual-boot into Windows and Linux. I prefer Linux for most things (like this post I'm typing right now) but I've been using some of the Windows emulation programs for years now and have gotten used to them. In particular, Atari 800 Win plus, Altirra, Steem Engine (for the ST), and Pro System 7800.

 

There are also several Nintendo emulators, but honestly, I just don't play those very often. My question is; would switching to a Linux solution using MAME, MESS, and Stella be adequate to cover all of these systems that I'm currently using dedicated Windows emulators for? (...I occasionally do Texas Instruments, Intellivision, Coleco Vision, and even Vectrex emulation as well as the Atari systems mentioned above).

 

Are there any Atari Age members who have moved exclusively into the Linux realm for emulation? Or are most like me... ...booting back into the old reliable Windows XP in order to fire up the emulators?

Share this post


Link to post
Share on other sites

I can only speak for Stella, since that's all I use currently. The emulation core is exactly the same in Linux and Windows (and OSX for that matter), since the code is cross-platform compatible. IMO, the biggest difference is in video driver performance/capabilities. OpenGL rendering in Stella is (IMHO) the way that it should be used, since you get tear-free display, TV effects, etc. But OpenGL support in Linux isn't always great, and this is sometimes true for Windows too. Stella is moving to SDL2 over the coming months, and the final result will be rendering that is based on Direct3D in Windows, OpenGL/ES in Linux/OSX, etc.

 

So long story short; if you have a video card with decent OpenGL drivers, then it shouldn't matter which OS you use (but I'd recommend Linux). Otherwise, go with the one where OpenGL works best.

Share this post


Link to post
Share on other sites

That's a technical reason why I use Windows. OpenGL works great.

 

So if I read the above post correctly. There will be no more OpenGL support in Stella in Windows?

 

And does the SDL2 and Direct3D take more overhead?

Share this post


Link to post
Share on other sites

I use Linux exclusively, not just for emulation but for everything. It works great. There are no technical reasons not to use Linux for an emulation box.

 

Keatah, no you didn't read that correctly. SDL is a cross platform library that uses whatever graphics backend is available. Stella will use OpenGL *through* SDL2. OpenGL works great on Linux if you have supported hardware.

 

I tend to avoid MESS. It supports the most systems, but not all of them are well supported. I prefer Mednafen for any platform it supports (NES, SNES, PCE, Lynx, GBA, and a few more. Unfortunately, I don't often emulate the 7800, A800, or ST, so I can't offer recommendations beyond what Google or your package manager might recommend. There are Linux emulators for those platforms, so try them out and let us know.

Share this post


Link to post
Share on other sites

SDL2 will basically become a hardware-accelerated graphics library, in contrast to the current SDL, which is software-based. In SDL1.2, if you want hardware acceleration, you need to write code specifically for it. That's why there's a separate OpenGL renderer in Stella. Problem is, if you want to use Direct3D in Windows, I'd need to write a Direct3D specific backend for Stella. And for Android/iOS, I'd need to write yet another backend for OpenGLES.

 

In SDL2, all of this is abstracted away, because the API itself will target whatever backend(s) are supported in the operating system. For Windows, this means Direct3D or OpenGL. For Linux and OSX, it's OpenGL. And for Android/iOS, it's OpenGLES. The main benefit from my POV is that I no longer have to care what the backend is; I just let SDL worry about it.

 

There will still be a choice of backends on systems where multiple ones are supported (like Windows, for Direct3D and OpenGL). Performance should be the same, since it will be similar code doing the same thing. What's happened over the years is that SDL has become somewhat outdated, so I added stuff to Stella that rightly belonged in a lower level (SDL itself). I've been watching SDL development over the years, and added features to Stella that matched the way they were doing things. Now when SDL2 comes out, a lot of the code I added can disappear, since the functionality is now available where it belongs; in the lower level graphics library. It's basically the same functionality, but just moved to someone else's codebase so I don't have to worry about it :)

 

One thing that will disappear for Stella 4.0 is software rendering. It won't be present in SDL2, and I don't think it's worth wasting time adding it. It's 2013, and all computers made in the past 8 years or so can easily run Stella hardware-accelerated.

Share this post


Link to post
Share on other sites

One thing that will disappear for Stella 4.0 is software rendering. It won't be present in SDL2, and I don't think it's worth wasting time adding it. It's 2013, and all computers made in the past 8 years or so can easily run Stella hardware-accelerated.

 

You could use Mesa software rendering to support OpenGL on platforms without the hardware or drivers.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...