View Single Post
Flandry's Avatar
Posts: 1,559 | Thanked: 1,786 times | Joined on Oct 2009 @ Boston
#1
Alright, there are random threads cropping up and being resurrected to inquire about MAME on Maemo 5. I have been using the Emulators thread for discussion and wasn't going to create a Talk thread about it until it is ready for general users, but it's better at least keep the conversation in one place. Besides being a place to bring together the SDLMAME discussion, this is a also a call to arms. Work is killing me and MAME will progress a lot faster if i can get some help. I need two things from you.

Community Involvement

First, a warning: SDLMAME is not ready for general users. That's why it's only in Extras-devel. It can and will crash and/or lock up your N900, requiring a reboot. It could do worse. In short, it is a Work In Progress.

1: Bug reports

If you are going to just go ahead and install it anyway, which a surprising number of people seem to be doing, then you are recruiting yourselves as alpha testers. I will keep a list of known issues here. These issues will most likely become known because somebody experiences them and reports them, and that's the most likely way they will get fixed. I can't fix a problem i don't know exists, and i simply don't have time to play ahem, test most of the 0.135 ROM set.

So, if SDLMAME crashes or doesn't work with a specific ROM, please give a detailed report here. If something seems to be broken or poorly working, please report it.

2: ROM status maintainers

There are some real hardcore MAME junkies here. Your task, should you choose to accept it, is to help maintain the ROM Status wiki. It should be an alphabetically-ordered list, divided into sections (Playable, Problematic, and Broken) and ideally contain information such as % speed performance. Also mark the Broken and Problematic ROMs with a "Confirmed" if you verify an existing report, so we can be sure it's not just one particular person's setup that's the problem. This will give me a better idea which machines are in need of help and it will give users an idea what is possible with MAME on the N900.

Currently i have a basic list in the second post, but i'm not going to update that without help.

3: Custom Configurations

Because there are so many ROMs with different control schemes, some are not going to work well with the defaults. It would be especially useful if some power users could try fiddling with the controls (.cfg files) and main mame.ini file to find the best settings.

All of the configuration files are in /home/user/.mame/ and its subdirectories. (That's just a "cd .mame" from the default x terminal prompt.)

Here's a guide to the mame.ini settings.

Status

Version
Package page
Old package page

The current version is 0.138u1.
The name was changed in version 0.137because SDLMAME was merged into the main MAME project.

Directories
Configuration base: /home/user/.mame/ Guide to mame.ini settings.
ROM base: /home/user/roms; /home/user/MyDocs/roms; /media/mmc1/roms (i.e. ./roms, ./MyDocs/roms (N900/roms from mass storage), and microSD card)

Controls
Besides the arrow keys and the keys on the lower left as various player 1 buttons, the 'q' key ('1' in Fn-land) is both the player 1 coin and player 1 start key. This seems to work ok in the games i've tried--you just press it twice to get going.

I suggest trying the accelemymote accelerometer-to-joystick driver. That utility can really add a new dimension to a lot of ROMs.

Known issues
  • UI not adapted for N900
  • Incomplete keymaps; also the Nokia keyboard localization bug Fixed in 0.137-0maemo2
  • Some ROMs cause lockups
  • Performance is not where it could be. GL ES support is probably needed to accelerate drawing and scaling. This is a long-term goal but is not planned before the first public release.
TODO
  • Centipede/etc (portrait games)
    • Modify mouse input code to enable screen tap as one button input. Possibly emulate two buttons via position of tap.
    • Update accelemymote to support rotating joystick axes for portrait mode
  • Space Harrier, Outrun, Galaga, etc. performance issues
    • Re-add arch and cpu flags to compiler Done
    • Profile problem ROMs to determine possible improvements
    • Implement arm-specific assm helper functions in src/emu/eigccarmel.h
  • General
    • Implement sleep-on-lose focus
    • Track down keyboard/mouse input lockup bug
    • Track down Galaga 88 bug (try reducing -o for starters)

As you can see, there's a lot to do before this is ready for general release. Please be patient and consider helping out as requested.

Plans and goals for SDLMAME on Maemo
Originally posted here.

I'll make a few follow-up comments for context and expectation management. I will probably wax philosophical.

Philosophy of the SDLMAME Maemo port

The advantage of using the latest release of SDLMAME instead of an old MAME branch project like most mobile device port maintainers do is that all the improvements of the main upstream source go directly into the port for "free". In this case, there's an added bonus in that the SDLMAME maintainer has an interest in arm support for his own devices (which is why this port is possible right now). My intent is to just be a maintainer of the port, not a MAME developer. I don't have time to get fully into the MAME codebase, so this is a way to contribute to MAME and Maemo and possibly my own uses without a huge investment.

Similar to my reasons for using a modern MAME upstream source are my reasons for picking MAME itself. The good thing and bad thing about MAME is that it's a very thorough emulator. It's good because it means that if it emulates on any system it runs on, it should work on all of them. It's bad because it means there is more overhead than there would be if it had all kinds of speed hacks.

It's basically the stability and versatility vs. performance tradeoff common in the tech world. The N900 is a powerful enough system to run the ROM drivers i'm interested in seeing emulated without resorting to cheap hacks and custom projects, and future Maemo devices will only get better. Making a port that tracks the improvements in MAME and doesn't introduce hard-to-maintain device-specific changes will be a more useful contribution in the long run.

Expectations for SDLMAME on Maemo

All of that was basically an elaborate excuse to justify the minimal amount of changes to the upstream source i plan on making for this port. Besides the initial optified packaging that is done, getting the UI, config and keymaps into useful condition and any optimizations necessary to get reasonable performance on the old ROMs are the only other changes i plan on making.

And as for compatbility, if it is a pre-1990 ROM and works well in MAME on the PC, it should work well in this port when completed. That's my target.

Last edited by Flandry; 2010-06-13 at 19:57. Reason: SDLMAME merged into MAME
 

The Following 26 Users Say Thank You to Flandry For This Useful Post: