MameXM

MameXM‎ > ‎

Quick Guide

MameXM is just another port of original MAME v 0.37b7 so this guide assumes that you are already MAME-competent.

For further reference you can found many mame-related sites on the web.

MAME means Multiple Arcade Machine Emulator, with this emulator you can play over 1000 games of golden arcade era ( '80 and '90 ).

MAME just emulates the hardware, so it also needs the roms of the games to simulate.


Mame Roms

You must own the roms for the mame 0.37b7 version

Roms goes in c:\mame\roms or e:\mame\roms

You can run the program without roms and these directories will be created.

After copying roms in correct directory you must select the 'Scan for games' menu option.

After that you can select the game from the list and run it with 'Run' menu option.

Building a correct romset for MameXM instructions : Creating the correct romset


Controllers & Configuration


Hardware keys :
These hardware keys are enabled playing a game :

Green key
White key : Please read NOTICE below before relying on that button
Red key
Camera key -- only shutter action. Press firmly until buttons stops. Half press (camera focus) is not supported due usefulness in a gaming interface.
Volume keys -- volume keys, there are 3 volume keys '+', '-' and 'central' (not so famous, and not so clickable and, really, not so useful even tough can be mapped by mamexm) one.

NOTICE : Some background programs can broke the Symbian standard hardware key mappings.
Noticeably the tool "Handy Task Manager" when installed makes further mapping of white key NOT POSSIBLE.
So you must unisntall Handy Task Manager if you want to use the White Key with MameXM.
Beware that other background programs can disable the keys mapping, so if you see that an hardware key is unusable with MameXM you should
detect wich software causes this issue. Mind that a brand new Nokia 5800 lets MameXM capture all hardware keys.


These buttons actions can be configured in mame standard control panel for keymapping.

NOTICE: from version 1.02 the buttons 'Power on' and 'Key lock' are no more mappable to any simulator key.


Virtual touchscreen keyboard :


COMPASS : Virtual joystick. Supports CENTER, UP, DOWN, LEFT, RIGHT, UP/RIGHT, UP/LEFT, DOWN/RIGHT, DOWN/LEFT actions.

SEL : mapped on ENTER, usefoul to confirm options selected in mame standard control panel

CONF :
brings up the mame standard control panel

COIN :
virtual coin

START :
virtual 1-Player start game

ESC:
mapped on ESCAPE key, usefoul to (abruptely) exit from the current game simulation.

AUX :
mapped on Frame rate real time logging. Useful to view the simulation performances and to fine tune it.
            See the revision history in download page for specification about frameskip info line.


Default keymapping :
The default keymapping is

Joystick
: Compass
Button 1 : Red Key
Button 2 : Camera Shutter, White key, Volume '-'
Button 3 : Green Key, Volume '+'
FrameRate  : 'AUX'


Each of these buttons can be remapped using mame standard control panel



Reset Keymapping - Reset MameXM Configuration:

An error on remapping UI Keys can brings to the impossibility to restore an usable keymapping. Nor uninistalling & reinstalling mamexm solves this issue.
Other issues can be experimented if the configuration files goes wrong.
Previously, only the manually removing of configuration files solve these issues (look at FAQ section for details about configuration files).

Now, from version 1.2 there is a new menu command called 'Config.Reset'
This erases all mamexm configuration files restoring a brand new, correct, default MameXM configuration.


- This menu command asks you 2 times the confirmation. You must reply 'YES' to the first message (with blue question icon), and 'NO' to the second one (with yellow Warning icon).
  After that mamexm will shutdown.

- This command also erases all rom scanning data, so next time you start MameXM you must rescan for roms.




Pausing game

An incoming call or SMS puts mamexm sleeping in background.


When you reactivate mamexm you must press the 'Resume' button to go ahead with the game.

Acting on lock slider makes mamexm going in background mode, the phone will lock and the
game thread will sleep in background. MameXM will show the UI interface so you can
- resume the game
- stop the game
- push the white key (menu) button returning on menu screen so you can do other tasks while gmae thread is sleeping.
  Remember that the mame game sleeping in background takes at least 10 Meg of ram, and if you're gaming with a
  'big' game like mslug the remaining free ram may be very little.
  During game sleeping in background, MameXM icon got the little circle means the process is active in background.


Menu Commands

Main menu commands:

Run:
    Starts selected game. Also doubleclicking on game-name runs that game.
 
Info:
    Hardware information about selected game

Settings:
    Global: Configuration options for all games that got not local options
    Local for this game: Configuration options only for the selected game, that will not inherit anymore the global configuration options.
    To reset local options for selected game to global ones, select the previous 'Global' menu command. A message will ask you to remove the local options set.

Scan for games:
    Scans c:\mame\roms and e:\mame\roms for installed game roms. The rom set scanning takes some time depending by number of roms installed.
    A full romset scan takes about 10 min. on 5800 XM.

Config.Reset:
   This erases all mamexm configuration files restoring a brand new, correct, default MameXM configuration.
   This menu command asks you 2 times the confirmation. You must reply 'YES' to the first message (with blue Question icon), and 'NO' to the second one (with yellow Warning icon).
   After that mamexm will shutdown.

Help:
   Shows a quick help page.

About:
   Shows information about MameXM.



Configuration Options

There is one global options set, and one (optional) options set for each game.

'Settings' menu options list :

Screen size :
    Normal : 1-1 pixel mapping - faster but tiny.
    Zoom : try to fill the screen -- the default option
    Stretch : if the game has a screen bigger than the 5800 screen resolution you can stretch the wiew.

Keep Aspect Ratio :
   Useful only with Screen size = Stretch. Try to mantain a 1:1 size mapping with original pixel size, ignored with Screen size = Normal or Zoom

Screen orientation :
    Normal : portrait game
    Rot.left : landscape game
    Rot.right : reverse landscape game
    Ups.down : reverse portrait game

Sound :
    No audio : Silent game, much faster simulation speed
    Rate 8000 Hz : 8KHz sample rate stereo audio
   

    Rate 11025 Hz : 11.025KHz sample rate stereo audio   
    Rate 22050 Hz : 22.050KHz sample rate stereo audio
    Rate 44100 Hz : 44.100KHz sample rate stereo audio

Sound volume :
   
You can choose the sound audio volume.
    At maximum level 5800 XM really screams out the game audio!

Audio buffering ms :
    How much audio samples retain in the buffer berfore playing.
    50 milliseconds should be ok.
    Range from 50 to 999 milliseconds.
    Notice that this parameter delays the audio output but can be useful to avoid clicks in audio output.

Frame skip :
    Standard value : 75
    Range from 0 to 99
    The Frameskipper parameter means "the percentage of skipped frames respect to the original FPS rate"
   
    EG :
    Frameskip= 0 on a 60 FPS game means to skip  0 frames and to display 60 frames each 60 real game frames.
  Frameskip=67 on a 60 FPS game means to skip 40 frames and to display 20 frames each 60 real game frames.
  Frameskip=90 on a 60 FPS game means to skip 54 frames and to display  6 frames each 60 real game frames.
  Frameskip=99 on a 60 FPS game means to skip 59 frames and to display  1 frame  each 60 real game frames.
 
  Frameskip=50 on a 30 FPS game means to skip 15 frames and to display 15 frames each 30 real game frames.
  Frameskip=67 on a 30 FPS game means to skip 20 frames and to display 10 frames each 30 real game frames.
  Frameskip=99 on a 30 FPS game means to skip 29 frames and to display  1 frame  each 30 real game frames.

    Note that from version 108 MameXM got a new and enhanced frameskipper.
    Much better than the mame default one. This is needed for the slowness of the target hardware.
    This frameskipper can really drive a 'regular skip' from 1 FPS to max FPS stepping displayed frames one by one.
    Eg: we can get a stable and regular 27/60 FPS or 11/30 FPS or 21/59 FPS and so on.

Auto frame skip :
    On : let the engine choose the best frameskip for your game
    Off : the 'Frame skip' value will be selected

    Now the automatic frame-skip guessing is done one time each original FPS frames.
    The AUX virtual button displays the frame rate line on top of screen.
    The new auto-frameskipper is more stable than before, but it can take some seconds to stabilize guessing the exact frameskip value for current running game.
    The initial auto - frameksip rate is read from 'Frameskip' game option, defaults to 75%.
    Setting a Frameskip near the 'guessed' value speeds up frameskipper stabilizing time. Using Frameskip = 75 is a good starting point.

Throttle speed :
    On : throttle speed - recommended to left ON this parameter
    Off : use no throttle
   
Autofire <key name> :
    On : enable rapid shoot on that key, just press the key and a rapid sequence of that keypresses will occour.
    Off : normal key mode
    This option is enabled for these <key names> : Phone Green, Phone White, Phone Red, Camera Shutter, Volume '+', Volume '-'

Compat.flag:
    'Magical' flag to enable video compatibility for Samsung Omnia HD
    Symbian has not an uniform layer to hardware video acceleration. MameXM is optimized for Nokia devices but Samsung ones use a different
    graphic memory mapping schema. So using this flag will constrain MameXM to use a standard but slower graphic renderer.




Performances

Year 1980-1986 games should run smoothly from 10 to 27 fps in fullscreen mode.

Vectored games runs smoothly too.

Remembering that Nokia 5800 is an ARM 400 Mhz based hardware,
the performances of the games with many simulated processors (eg pacmaina) will
not acheive a 100% speed even with 3/5 fps.

Samsung i8910 Omnia HD performs much better than Nokia devices.
   A beta-tester 'giz' reports to me a speed of 40 fps with pacman.
   Another beta-tester 'ThePhawx' has tested mslug 1 performing from 8 to 20 FPS with sounds enabled and from 18 to 24 FPS without sound.

On Sony Satio, mslug 1 performs at about 13 FPS with sound sample rate set to 44100 KHz.

You can activate the mame profiler with 'AUX' button and see the simulation timings.

To improve the performances please :

- try to reboot the phone and start mamexm on his own without any background tasks.

- Disabling sound makes faster emulation speed.
  Please read FAQ for performances explanation.




NOTICE : NeoGeo support is heavy for the 5800 hardware. Some games will work, some others got speed and/or free ram issues.
Mind that the free ram on 5800 is about 50 Meg and so cannot fit a romset that is bigger of 40 meg (10 Meg used by MameXM itselfs). On OmniaHD you got more free ram.
EG: lastbld2 is 69 MB unpacked. So it cannot fit in a nokia 5800 phone free ram.
Speed of neogeo games can improved disabling audio. Under this condition you can acheive about 10 FPS, a little but playable frame rate.
EG: mslug 1 with no audio runs between 8 and 10 FPS on Nokia 5800 XM.
EG: puzzle de pon runs with audio enabled at about 7/8 FPS. This is a special case due the fact the neogeo simulator is optimized for this game.
There is not a uniform rule to report performances about neogeo games. Just try.


Quick help

When prompted to press OK at the start of a game, press LEFT followed by RIGHT on virtual compass

To insert coins, press the 'Coin' key, and to start a one player game, press the 'Start' key.

The 'red' phone (hw) button and 'Camera Shutter key' are mapped to game buttons 1 and 2, respectively.

The 'Conf' touchbutton is used to bring up the mame standard control panel, and the 'Sel' touchbutton is mapped to Enter.  The 'Esc' touchbutton is also used to exit a running game.

Refer to the in-game mame standard control panel for more detailed key mapping information, and for key mapping customization.



Obtain further informations

MameXM is based on EEMame for symbian S60v3 so you can crawl the internet for EEMame howto's.



Source Code

Will be soon posted on SourceForge. Stay tuned.

Will be fully compatible with Nokia Carbide C++ 2.0 & standard SDK Toolkit, and will compile with GNU C++ for ARM and with wins compiler for epoc simulator.



References

MameXM is

     A porting of MAME to symbian S60v5 OS written in 2009 by * AMZ *, that is

     based on EEMame 1.11 by Staffan Ulfberg -- (http://www.harmonicode.com/EEMame/) that is

     based on EMame 1.1 by Peter van Sebille -- (http://www.yipton.net/)  that is

     based on original Mame 0.37b7 by Nicola Salmoria and others  (http://mamedev.org/)


Acknowledgments

Many thanks to

  'ThePhawx' for indeep testing on OmniaHD and for the Demo Video
 
  'Giz'
for testing on OmniaHD
 
  'Sensai' for testing on OmniaHD
 
  'Lum'
for testing with N97

  'Juno106' for testing with Sony Satio
 
 
  





* * *

2009 by amz  -- mail : mamexm at gmail.com