RetroArch/libretro status – new DOSbox / MAME 0.78 ports

By Squarepusher – Over the course of this week, two new ports have appeared courtesy of meancoot.

DOSbox libretro

Released on October 21 2012.

Next to maxe-libretro, this is probably the first time a libretro port is reliant on the keyboard and mouse as an input device. It seems to have MIDI and Soundfont support as of a few days ago, it supports CD images (no real physical CD support, but then again this is pretty much an undesirable feature anyway what with storage being cheap and CD access being slow – Genesis Plus GX libretro core doesn’t bother with physical CD support either, neither does Mednafen PCE/PSX).
I might consider looking into this as a candidate for the consoles – the problem is that (like DOSbox on PS3 before, port by Robo Hobo) the speed will be very slow without a dynarec. Even Duke Nukem 2 had to fall back on severe frameskipping (1/2/3) to run tolerably on PS3 before.
Repository: https://github.com/libretro/dosbox-libretro

MAME 0.78 libretro

Released on October 31, 2012.

MAME has seen several performance regressions over the years, some of them quite severe to the point of sacrificing +100fps in some games over the course of a few revisions. Unfortunately, what this means for us these days (in 2012) with so many low-performance systems out there on the market (Android, iOS, game consoles, Raspberry, etc) is that we have to resort to very old versions of MAME in order to get decent performance on anything beyond early/mid ’90s arcade games.

A year ago, Lantus ported a MAME 0.72 version to Xbox 360 (it was basically a re-port of MAMEox, released back in 2003/2004 for the Xbox 1). This managed to run Midway/Williams games like Mortal Kombat 1/2/3 and NBA Jam at fullspeed on the 360 – not something that can be taken for granted if you’ve ever tried to port a modern-day MAME version to the current-gen consoles.

Meancoot’s recently released MAME 0.78 port right now can be expected to run on OSX, Linux and Android libretro frontends.  I have requested for the repository to be transferred over to the libretro organization – when that has happened I’ll spend some time on including Wii, PS3, 360 and Xbox 1 support to it – which shouldn’t be too hard.

For people running 64-bit OSes, expect to run into quite a lot of problems with this MAME version – even though the source shows an indication of some effort having been made to ensure 64-bit compatibility, there are still many 64-bit errors lurking around in the code. I could never get any of the ROMs on XMAME 0.72 to run on x86_64 Linux – even with this being the case, this makes for a good port for the consoles and ARM-based devices, which all have 32-bit ABIs (including PS3/360).

Repository: https://github.com/libretro/mame078-libretro

Advertisements

3 comments

  1. Troy McClure

    Good to see computer-emulating stuff making it in. I hope the speed issues aren’t a sign of things to come though, I was hoping for something usable on the Wii, since I’m not really happy with most of the computer emus there. Hope the Mame port works out, could be especially great once the low-res progressive modes are properly implemented (I had PAL-related issues when I tried those last time with the existing cores).

  2. libretro

    Well, the speed issues with certain emus (if you can call them that) are all to do with certain emulators just not getting any kind of decent performance on low-end hardware (which PS3/360/Wii pretty much are at this point) by using interpreter-based CPU cores – making a dynarec CPU core involves signifcantly more work and on consoles often requires the NX bit to be disabled (among other hacks), but it’s the only way to get most of these systems running fullspeed on these systems.

    So, yes, DOSBox, Desmume and PCSX Rearmed all need dynarecs to run acceptable on anything other than medium-specced PCs.

    I’m very interested in working with people who have some experience in writing dynarecs for some of these emus – especially PPC dynarecs are lacking in general – whereas ARM is well looked-after by most emus (for obvious userbase/monetization reasons I’d wager – the latter reason which I detest but it’s a reality nonetheless). I think overall it should be more worthwhile writing a dynarec for libretro-based ports than it would be making your own standalone emu port for one specific platform – since that same PPC/ARM dynarec could be reused on lots of other libretro targets that have the same ABI.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s