
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@                          MAMEoX FAQ v 0.17                          @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@                                                                     @@@
@@@           MAMEoX v 0.72.1b, based on the MAME v 0.72 core           @@@
@@@           Ported by eabair, opcode                                  @@@
@@@           Portions based on MameX b5                                @@@
@@@           original port by opcode, updated by superfro              @@@
@@@                                                                     @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 0.0 Change log:
 ---------------

 07/07/2003 - 0.10 Initial creation.
 07/08/2003 - 0.11 Added info about bugs in the MAME core.
                   Added info about the MAMEoX ini file.
 07/10/2003 - 0.12 Added info about using Samba shares with
                   MAMEoX. (Thanks GoDKiLLaX!)      
 07/22/2003 - 0.13 Updated version, added question about what
                   do do if MAMEoX will not load up.  Also 
                   added a note about neogeo bios.
 07/23/2003 - 0.14 Changed screenshot information.
 07/24/2003 - 0.15 Added note regarding the calendar in the 
                   M$ dash and neogeo games starting properly.
 08/12/2003 - 0.16 Added information about autobooting save 
                   states.  Updated version.  Updated vmm 
                   information.  Added lightgun information.
 08/13/2003 - 0.17 Added information on default key mappings
                   (can be used with USB keyboard)                                                                                    

 1.0 Purpose:
 ------------

 The purpose of this FAQ is to answer some very common questions
 about MAMEoX.  This FAQ is in no way intended to address questions
 about using MAME in general, as there is an excellent FAQ located at 
 http://www.mame.net that address many of the common questions users
 have when using MAME.  This FAQ specifically focuses on the X-Box 
 flavor of MAME that is MAMEoX!

 1.1 About MAMEoX:
 -----------------
 MAMEoX is an effort to port MAME to the X-Box.  MAMEoX is open source.
 MAME is distributed with MAMEoX under the MAME license.  Current source
 code for MAMEoX can be found at it's home on SourceForge - 
 
 http://mameox.sourceforge.net
 
 Then select SF Project from the menu. 

 Please note that only source code can be found on this website.  MAMEoX
 is built with an official Microsoft XDK, so no compiled binaries of this
 source code are made available.

 1.2 Frequently Asked Questions About MAMEoX:
 --------------------------------------------
 Q.  The source code won't run on my X-Box!  How do I get the source code
     to run on my X-Box?

 A.  You need to compile the source code into binaries that will run on 
     your X-Box.  To do so you will need Visual Studio.NET and the X-Box
     XDK.  Currently it is suggested that you use Visual Studio.NET 2003
     and the 5558 XDK.  Follow the directions provided with the source code
     (in Docs\readme.txt of the MAMEoX root) to compile MAMEoX.
 -------------------------------------------------------------------------
 Q.  Where do I get the XDK and Visual Studio.NET?

 A.  I don't know.
 -------------------------------------------------------------------------
 Q.  OK, so if I can't compile the source code, where do I get the 
     compiled binaries, smart guy?

 A.  I don't know.
 -------------------------------------------------------------------------
 Q.  Can you at least tell me where I can get roms for MAMEoX?

 A.  Nope.  Dump the arcade board of the cabinet you own.
 -------------------------------------------------------------------------
 Q.  OK, I have MAMEoX binaries, yipee!  How do I get them to my X-Box
     so I can use them?

 A.  I don't know.  There are instructions for setting up MAMEoX and it's
     directory structure in Docs/readme.txt, but getting the files to your
     X-Box HD in the first place is your own business.  Moreover, there
     are numerous ways to accomplish this, not one specific way - and some
     people use CDRW / DVDR media instead of the hard drive.
 -------------------------------------------------------------------------
 Q.  This is a FAQ, right?  

 A.  Yup. :)
 -------------------------------------------------------------------------
 Q.  My MAMEoX hangs / won't run correctly!  What is the deal here?
 
 A.  If you can't seem to get MAMEoX to run correctly, or at all, there 
     are a number of different things you might try:
          
     +  Update your dashboard or try a new one out.  Make sure it's one
        that is somewhat current and is not outdated.  Some people have
        reported problems with older dashboards.
     +  Update your bios, and make sure IGR is disabled while you are at
        it.
     +  Check your binaries (make sure you're not attempting to run
        source code, if you have no xbe files in your distribution, you
        probably have the source code).
     +  Upgrade to a newer version of MAMEoX if you have not upgraded
        in a while.  Each new version of MAMEoX has numerous fixes to 
        specific problems encountered in prior versions of MAMEoX.
     +  Reinstall MAMEoX completely.  Delete all MAMEoX binaries,
        subdirectories, and files.  Don't forget to delete everything in
        E:/TDATA/4d414d45/ as well, this includes subdirectories in this
        directory.  All of these files should be gone before attempting
        a complete re-install of MAMEoX.
     +  If you're having difficulty geting something to work correctly
        that you think should be working, you might check the help file
        included with MAMEoX.  It can be accessed by pressing 'X' in the
        rom list in the launcher.  
        
 --------------------------------------------------------------------------        
 Q.  Ok!  I've got MAMEoX on my X-Box and it's running like a champ!  I 
     have never been happier!  Where do I put my roms?

 A.  In the roms subdirectory of the MAMEoX root directory.  If it's not
     there already, create it.  Make sure your roms are zipped.
 --------------------------------------------------------------------------      
 Q.  None of my neogeo roms will load!  Why?  MAMEoX tells me there are 
     files missing!  All my neogeo roms can't be bad, can they?

 A.  Do you have a neogeo bios in your roms directory?  Is it zipped?  Is
     it current and up to date (use a rom checking utility like clrmamepro
     or romcenter)?  As of this writing the neogeo bios had changed in
     v.70 of MAME.  Since MAMEoX is a port of MAME, it will require the 
     same up-to-date bios.
     
     It's also important to note that neogeo games require the calendar
     to be set in your original X-Box dash.  If you're having problems 
     getting your neogeo roms to run you might boot to your X-Box dash to
     be sure that your clock is set.  Sometimes when power is disconnected 
     to your X-Box this requires resetting.
 --------------------------------------------------------------------------      
 Q.  I've put my rom files in the roms directory, but they still don't
     show up in the list. What's wrong?

 Q.  I've just added some new rom files to the roms directory, but they
     don't show up in the list. I can only see the files that I put into
     the directory the first time I ran MAMEoX. What's going wrong?

 A.  Try pressing START and selecting "Scan for ROMs" in the pop-up menu.
     Anytime you add (or remove) rom files, you have to run this file to
     let MAMEoX know that something has changed.
     If that still doesn't work, make absolutely sure your rom files are
     zipped and named correctly. MAMEoX does not support unzipped roms.
 -------------------------------------------------------------------------     
 Q.  Does MAMEoX support samples?

 A.  Yes, put them in the samples subdirectory of the MAMEoX root 
     directory.  If it's not there already, create it.  Your samples 
     should also be zipped.
 -------------------------------------------------------------------------
 Q.  Does MAMEoX support cheats?

 A.  Yes, put them in the general subdirectory of the MAMEoX root
     directory.  It should be there already.  Place your cheats.dat 
     file in this directory.  Make sure cheats.dat is _not_ zipped.
     Also, you may enable/disable the cheat function on the "General"
     page of the options menu (press START and select "Options Menu" to
     get there.
     
     NOTE:  Using cheats requires more memory than not using cheats.  If
            you are having difficulty running a specific rom with cheats
            enabled, it's possible this is the reason why.
 -------------------------------------------------------------------------
 Q.  Does MAMEoX support screenshots?

 A.  Yes.  Take a screenshot in game by pressing B+A+Back.  To view the
     the screenshot, use the detail view (press the white button until it
     is displayed).  You can also view screenshots when the screensaver
     kicks in.  Alternatively, you can download screenshots from various
     sources (we can't provide you with links).
     
     Alternatively you can map a button combination to take screenshots
     in the in game menu (input settings).    
 -------------------------------------------------------------------------
 Q.  I modified/added my INI file in the MAMEoX/INI directory, but none of 
     the changes seem to work?  What am I doing wrong?
 
 A.  Use the in game editor, the INI file is only read out of UDATA, and 
     when you use the editor it modifies the correct ini file.  The 
     in-game editor also keeps you from entering incorrect values.
 -------------------------------------------------------------------------
 Q.  How do I use save states / autoboot save states?  
 
 A.  First, save your game.  Save game support is still very new in the 
     mame core, and you may find that it varies from driver to driver in
     how well it works.  To save your game, assuming you have not mapped
     the function to other buttons, use back + rt analog click + 
     rt trigger.  When this is done you have your choice of four save
     slots.  These can be selected by choosing A, B, X, or Y.
     
     When you have a save state saved, you should see it in subdirectory
     NVRAM.  For example, the save state for Ms Pacman is called 
     mspacman-0.sta, which tells you that your game has been saved to 
     bank 0.  By changing this to mspacman-autoboot.sta, upon selecting
     the game again it will start automatically at the save game.  You 
     can use this to get around long rom initialization sequences you
     would rather skip.
     
     Alternatively, you could also throw the .sta file into the 
     autobootsave directory.  If the folder is not there already, create
     it.  
     
     NOTE:  If you use the autobootsave directory, your save state should
            still be named with the romname-autoboot.sta convention!
            This directory is just for keeping which games autoboot
            straight - it's like an extra NVRAM directory for you without
            all of the other entries.
 -------------------------------------------------------------------------
 Q.  What is wrong with lightgun support?  I can't get it to work right.
 
 A.  It's still not working as well as we would like.  We hope to fix 
     in a later release.  Please be patient.
 -------------------------------------------------------------------------
 Q.  How do I use a keyboard with MAMEoX?
 
 A.  MAMEoX as of version .72.1b supports USB keyboards.  Here are the 
     default keymappings (thanks to xaiNiax for this info!) :
     
     ***** FUNCTION KEYS *****
     TAB - Toggle the configuration menu. 
     Tilde - Toggle the on screen display. Use the up and down arrow 
     keys to select the parameter (global volume, mixing level,
     gamma correction etc.), left and right arrow keys to modify it. 
     P - Pause. 
     Shift+P - While paused, advances to the next frame 
     F3 - Reset game. 
     F4 - Shows the game graphics. Use cursor keys to change 
     set/color, F4 or Esc to return to the emulation. 

     Shift+F7 then number 1-0 to save a game. 
     (NOTE: Not all games support this function!) 

     F7 then number used to load a saved game. 

     F9 - Change frame skip on the fly.
     F10 - Toggle speed throttling.
     F11 - Toggle speed display.
     Shift+F11 - Toggle profiler display.
     F12 - Save ScreenShot. 
     ESC - Exit.    
 -------------------------------------------------------------------------
 Q.  Does MAMEoX support any filters?
 
 A.  As of version .72.1b, there is AdvanceMame2X support.  You can 
     activate it in the Options menu in the rom list by pressing start, 
     and navigating through the pages using the L and R triggers.
     
     Beware, using this does cause some overhead, and can cause MAMEoX 
     to drop frames.  It also has a memory cost associated with using it.
 -------------------------------------------------------------------------
 Q.  How do I set up samba support within MameoX?

 A.  Here it is in 3 steps (Courtesy of GoDKiLLaX).

 1.  Setup a Samba share on your PC. I won't go into how to do that since 
     it's been covered elsewhere (try the documentation for XBMP), but I 
     will give you a tip. If you play Mame ROMs on your PC then share the 
     folder where Mame is installed.. i.e.; "C:\mame32" When you do this,
     you can share any other folder within that folder easily.  These
     folders can be shared as 'read only'.

 2.  Get to the options menu in MameoX and setup the Network options.
     Make sure you enable network support in this panel.  Input all your 
     IP information for the machine that has the directory your are 
     sharing. 

 3.  Next go to the Directory Path Options Page 2 (The one where you can 
     set the directories for MameoX i.e.; ROMs, Samples, High score 
     ect...) and set the ROMs directory to your Samba share. This is the 
     share you created in the first step. The format is the same as in 
     XBMP. i.e.; 

     "smb://username:password@WorkGroup/ComputerName/MameShare/ROMs"

     You might also want to share the samples folder since some games 
     might need them, and so you won't have to store them on your Xbox. 
     i.e.; 

     "smb://username:password@WorkGroup/ComputerName/MameShare/Samples"

     You can share any of the read only folders, but don't share any 
     folder that MameoX must write to since MameoX won't write to a 
     shared directory. 
         
     NOTE:  Using Samba means that you have to enable network support
            within MAMEoX.  This results in more memory being consumed in 
            later versions of MAMEoX (v70.2b and thereafter).
 -------------------------------------------------------------------------
 Q.  Why won't a particular rom run?

 A.  There are many reasons your rom might not run.  You might have a bad
     rom.  You might have a rom that changed in a later version of MAME
     that requires different files in the rom fileset.  You might not have
     the required bios file the rom needs to run (neogeo bios being one of
     the more popular 'forgotten rom files'). If you're sure that you have
     a valid zip file, and that it contains all of the necessary files,
     MAMEoX may just be running out of memory when loading the ROM.
     One of the more common reasons MAMEoX cannot run your rom is 
     because there is a limited amount of memory available to do so.  
     If you get an out of memory error (malloc error), then the X-Box has
     run out of memory trying to load your rom.
 -------------------------------------------------------------------------
 Q.  My rom loads, but MAMEoX still reports that it's out of memory and 
     then kicks me back out to my rom list!  My zipped rom isn't that big!  
     MAMEoX says the rom files loaded!  Why won't my rom run?

 A.  If only things were as simple as just loading your rom!  Your rom is 
     zipped, so MAMEoX has to decompress it.  It then has to decode 
     graphics and start video and audio emulation within the same memory
     space.  

     A good analogy would be to imagine making bread.  All of the dry 
     ingredients for bread can fit into a pretty tiny bag (your zipped
     rom).  However to make bread, you need to add water and other 
     ingredients to the dry mix.  When you have dough, you have to let
     it rise a bit (at this stage we have uncompressed your zipped rom).
     
     At this point, everything that is going to go into the bread is 
     there, but you certainly wouldn't want to eat it yet, would you?  
     Additionally, the bread in it's current state isn't nearly as large
     as it's going to get.  You put the dough in a bread pan and stick
     it in the oven (your X-Box) to bake.  You quickly realize as the 
     bread bakes that it is not going to fit in the pan, and it starts to 
     rise above the edges (at this point the rom files are allocating 
     the amount of RAM they will need to run).

     Unfortunately, our oven (the X-Box) happens to be very small.  
     Sometimes the pan can barely fit into it!  If the bread rises out 
     of the pan and does not have room in the oven, it will most 
     probably light on fire, destroying your oven, burning down your 
     house, and probably horribly disfiguring you in the process.  At 
     this point the last thing you want to do is bake more bread 
     (you're kicked back out to the rom list menu).
 
     There you go.  I hope we haven't terrified you.

     A good test to see if a rom might work is to load it up in the latest
     version of Mame32 and see how much memory it consumes in the task 
     manager.  If it's over 64 MB, it is unlikely that your rom will run
     in MAMEoX anytime in the near future (as it would require virtual 
     memory support, which is very low on the developer's priority list).
     MAMEoX loads drivers in "sections" to save memory, and unloads the 
     ones it does not need.  If it were not for this fact, roms that 
     consume over 32 MB in Mame32 would probably not work. As of the time
     of this writing, MAMEoX can provide around 54 MB, but this number
     changes as the MAMEoX wizards figure out how to squeeze more RAM 
     out of the X-Box.
 --------------------------------------------------------------------------
 Q.  My X-Box isn't really going to light on fire and burn down my house, 
     is it?

 A.  If it does you can not hold us personally responsible ;)
 --------------------------------------------------------------------------
 Q.  I like eating bread dough!

 A.  That isn't a question.
 --------------------------------------------------------------------------
 Q.  Everyone says creating a swap file for MAMEoX to use would solve the
     problem of running larger roms in MAMEoX!  Windows uses a swap file!  
     It must be really easy to implement!  Why don't you guys use 
     virtual memory in MAMEoX?  It's probably easy to do!  What's the 
     holdup?  KawaX already uses virtual memory!  By the way, I am not a 
     coder and I have never looked at code in my entire life.

 A.  MAME currently loads roms into RAM, so it can emulate games properly.
     Rom information that is dumped into your rom file was originally 
     present in memory to allow the arcade machine quick access to its 
     contents.  Since the files were in memory, access to this information
     was extremely quick from an I/O perspective (I/O is input/output
     for the non-technical).  I/O to a hard drive, which is what would be
     used in MAMEoX, because of lack of RAM to use, would be a _lot_
     slower than memory I/O wait.  To make it work well, the MAME core 
     would need to be investigated so we would know the proper things in 
     each rom to send to virtual memory.  Virtual Memory support has been
     added to MAMEox.  However, it has not implemented with the rom 
     loading code yet.

     If you could not tell by the tone of the question, the MAMEoX team
     is not fond of receiving 'demands' from it's users for this, 
     especially when the tone of the question would have anyone believe
     adding this sort of 'feature' is simple.

     MAMEoX is open source.  If you think that implementing virtual memory
     is easy, you're more than welcome to check the source out of CVS and 
     do the work for us. :)  Isn't the open source model wonderful?          
 --------------------------------------------------------------------------
 Q.  I want to help the MAMEoX team!  What can I do?

 A.  The MAMEoX team can always use the following:

     - Testers.  If you can compile the CVS tree and make working binaries
       for your X-Box, we _need_ your help.  Any testing the developers
       have to do is time away from doing the coding they need to do to
       make MAMEoX great!  Being a tester involves testing and submitting
       bug reports.  We need people to submit proper bug reports, because
       the coders work so hard coding that they seldom even have time to
       play games in their rom collection.  Chances are that if a rom is
       broken, the coders don't know.
       
       Even if you can't compile CVS, we can still use your help.  Testing
       with the latest release level is appreciated, just follow the 
       proper procedures for reporting a bug (see below).

     - Suggestions to make MAMEoX better.  Do you have an idea for an 
       enhancement or feature that you think would make MAMEoX great?  We
       want to know about it.  Check out the 'RFE' section of the main
       MAMEoX Sourceforge site and let us know about it.       
 --------------------------------------------------------------------------
 Q.  How do I post a bug report?

 A.  We're glad you asked :)  Bugs can be posted on the Sourceforge website
     under the subheading, 'bugs'. If you take the time to post a "good"
     report, it both saves the dev team a _lot_ of time (you'd be surprised
     how quickly the time spent reading through bug reports adds up when
     you need to open and read 50), and makes your bug a better candidate
     for developer attention. Bad reports make it much harder for us to
     find and fix the problems, and often take up time that we would 
     otherwise spend fixing problems or adding features.

     Here are some tips:

	1.  Make sure you've looked at the pending and closed bug reports
            before posting your bug.  Duplicate bug reports are annoying
            and time consuming to process, even if we ignore it. You can
            see these "hidden" reports by switching the "status" option
            on the bug page to "any".

        2.  Please post the following if you're posting a bug related to 
            a specific game:

		- Game name  (for example, Mortal Kombat)
		- Rom name   (for example, mk.zip)
		- Rom bios   (for example, neogeo.zip)
		- Size  (please list size in zipped / unzipped)
		- Post the problem in the subject with the game title
		  (for example, Mortal Kombat - out of memory)
		- Post a brief description of the problem in your
		  comments
		- Assign bug to eabair
		- if game specific, please set this in the form

	3.  All other bugs should follow in principle the above format 
            as it would apply to the bug you are reporting.  In general
            please post a short description if possible in the subject
	    line so we have an idea of what the bug is before we read
            further. This allows us to prioritize bugs without eating up
            alot of time, which allows the overall development to move
            along much faster.

	4.  Please, only post one bug per report.  Do not report 
            multiple nonworking games in one bug report.  Please do not
            report multiple bugs in one bug report.  Split them up as
	    each bug is assigned a priority. Failing to do this will
            often result in us missing bugs, as only the first item
            mentioned in the report will be worked on.

	5.  It always helps us if you're having a problem using MAMEoX
	    if you respond to the forum topic on Sourceforge entitled, 
	    'Poll for info about user's X-Box' so we know what your 
	    setup is (very useful as sometimes we can not duplicate 
            problems). If you don't do this, you'll probably just get
            a reply from the team asking you to provide this info before
            we can even start looking into it.
            
        6.  Lastly, please keep in mind that MAMEoX is a port of MAME.
            any problems that are in the MAME core will likely be 
            present in MAMEoX.  There is not much we can do about this.
            Please check the rom in Mame32 or your favorite 'flavor' of
            MAME prior to reporting a bug with a rom in MAMEoX.  It is
            unlikely that we will fix a bug that is present in the 
            MAME core.    
           
      Also, please consider using the new compatiblity listing that can
      be found here: 
      
      http://mameox.sourceforge.net/compat.php
      
      This system is used to generate a romstatus.xml file that you can 
      place in your GENERAL directory.  This file is generated twice 
      daily.  This can be parsed through by MAMEoX to determine what the 
      running status of the rom is.  If it's GREEN, the rom has framerate 
      issues.  If it's RED, the rom either runs out of memory or causes 
      MAMEoX to crash.  Try it.  The nice thing about using this system is
      that it allows you to help out other users of MAMEoX!
 --------------------------------------------------------------------------           
  Q.  I posted a bug/feature request/help item, and it disappeared!
      What's going on?

  A.  Check closed/pending items, as it's already fixed or marked as a
      duplicate entry.  You can check 'closed' and 'pending' statuses
      of the bugs and feature requests (RFE) pages of the Sourceforge 
      MAMEoX site. 
 --------------------------------------------------------------------------     
      
          

 1.3 Credits
 -----------

 Credit Info
 -----------

 Want your name in the credits?  Then submit a frequently asked question
 along with a good answer!  All submitted questions are subject to editing
 but you will receive credit for your submission in this section.  Help us
 help the MAMEoX challenged!  Please submit your FAQ entries on the 
 official MAMEoX forums found on the Sourceforge page:

 http://sourceforge.net/projects/mameox

 Please put 'FAQ addition' along with the name you'd like to be credited
 under in the subject line of the post and we might add your submission.

 We currently need people to work on the following sections:
 -----------------------------------------------------------

 Installing MAMEoX on your hard drive
 Installing MAMEoX on CDRW / DVDR
 
 If you can translate this FAQ for us into something that is readable in
 another language (i.e. you're not just using Bablefish or an equivalent)
 we will accept your help!
 
 Contributing users
 ------------------

 noodle1009
 ----------
 Initial creation of the FAQ, initial entries in version 0.1. 

 eabair
 ------
 For the wonderful bread making analogy ;)
 
 GoDKiLLaX
 ---------
 For instructions for setting up samba support with MAMEoX.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@                Thanks for reading, and enjoy MAMEoX!                @@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@