MAME-X (XBox port of M.A.M.E) Updated by superfro, ported by OpCode, interface by plonkman

changes:

Beta 6:

I lost alot of sleep over this one ... be thankful.  Bastards.

The Good Stuff:

-------	Mame:
----- Core:

Most obvious, using mame .61 core, porting was almost re-done, but looking at the differences between what
NEEDED to change in .60 to get it working was the most help of all.  Once again props to OpCode on that.

Hi score, NVram, and cfg now makes directories on the xbox hd and saves your data.  (You can delete it from
the dashboard just like regular save games)

Game compatability has improved

Game compatability has improved

Game compatability has improved

keepaspect and hw_stretch DO WORK, altho I don't know why you'd even want to turn off hw_stretch.

Without using keepaspect, some games can distort really bad, (tall ie playerchoice games), wide (the ninja
warriors).  Keepaspect = hw_stretch are default (and recommended).

You can configure the analog sticks in popup menu.

The code was cut up to save some ram into two pieces, Neo Geo / CPS2 and FULL.  So now you can have a Neo Geo
and CPS2 only version, which allows you to play games you cannot with the FULL version.  You can switch between
the two with the B Button.
Hopefully this is temporary.  Should allow some large games to be played.

LOTS of error handling, and the LOG variable in mame.ini works, and does alot of debug info.

------- Game Select:

Finding roms is now 1000x faster

------------ Controls:

Mapped (Y) Key to go back to the dashboard, (useful if you are using evolution X)

(X Button) Clones on/off fixed (woops! damn typo)

Mappyed (B) to switch between Neo Geo / CPS2 Version and FULL

DPAD left and right buttons jump to the Next / Previous letter

DPAD up and down (move up 1 and down 1, I know how hard it was to just move 1 with the triggers)

More info shown

Free memory is shown while loading a rom

Error messages are hopefully shown if needed.

Added faq.txt

The Bad Stuff: (Yes this stuff is being worked on)

Loading large roms still doesn't work, i figure you got about 44 Megs of ram (un zipped rom size),
with the Neo Geo / CPS2 version you can get 54.

Some games dont like to load after others, for instance the ninja warriors loads, then you exit and run
tetris, and it wont load.  But you reboot then run tetris and it runs.  Usally games that have
this problem you will see the OK screen and then it locks up.  So rule of thumb is if you see OK and it
locks up, reboot and try it again.

Some (big) games will report you are missing a rom, when its really running out of memory decompressing it.

Vector games (asteroids, star wars) have a bitdepth conversion problem, so after the game is loaded,
the screen will go black but its really running, if you press OK and another key it will load just fine.
You will also notice if you bring up the configuration menu, it will be black.  (same problem with the OK
screen, white=black).

Beta 5:

OpCode is no longer working on this project
Superfro is trying to help out the scene =).

Added splash, soon to be nice gfx when someone makes me one.

Added color, ahhh.

Added Rom Searching message (and progress) at bootup.  (good for lots of roms).

Added Rom Loading progress meter.

When a rom fails to load, it now prints some error messages for you.

Fixed bug where if a game doesn't load and is just black, it doesn't just sit there you can hit
back+start to go back to the menu.  (You'll notice these guys have sound too if you push OK and
keep messing with the buttons, Working on figuring out why now)

Clones displaying is an option now, at the selection screen press X;

Beta 4:

Fixed scratchy sound in that occurred some games sound should be 100% correct now (well on par w/ MAME anyway).

Mapped all speakers in a 5.1 stereo system (i.e. all left channel goes to left channel speakers (Front and Back) and likewise w/ right channel, mono I think plays in all channels), this sounds a LOT better IMHO on nice stereo systems.

Mapped MAME's Config Menu to the XBox White button. With this you should be able to configure button mappings and anything else you can configure through this menu.  NOTE: as of this release nothing is saved so you will have to reconfigure games every time you start them.

Mapped MAME's pause key to the XBox Black button.

Fixed the game list to read available games from the roms directory no matter what case they are in they will show up as available as long as the rom is named correctly.

Beta 3:

Fixed crash when returning to game selection menu from a game then trying to load another game.  This means you can play as many games as you like from your media without rebooting.

The game list now displays ALL games that you have roms for in the roms directory on the disk. This should either clutter the screen less (if you have less than a full set of roms) or more since now clones WILL be displayed if you have the clone roms.

Beta 2:

Moved the direction controls to the DPAD by request supposudly 8 way games didn't work with the analog stick and they will with the dpad (again thats what I was told, not confirmed).

Added Reset key combo (White+Black buttons) this helps a lot in williams games (defender and joust to name a couple) that stick at testing when they do this press the White+Black buttons and it will reset the game and then work.

Added return to game seletion menu (Back+Start buttons).  NOTE: You can select another game but when you play it it will load the roms then lock up, I don't know why yet.

Beta 1:

First Relase

FAQ

Q: How do I get past the press OK to continue windows?
A: Press Left then Right on the DPAD this simulates typing OK.

Q: Why do NEO GEO roms give me the OK screen then lock up when emulation starts?
A: It appears if you haven't set your XBOX's time this will be the result, set the xbox time.

Getting MAME up and running

Ok here's a quick guide on how to get this running.  First unzip the contents of this archive to some directory on your HD (preserving the archives directory structure).  You then should have these files:

/default.xbe 	- mame executable
/mame.ini    	- mame config file
/Media/Font.xpr - font used for menu display
/roms           - directory where mame rom files should be placed
/mame.txt       - Official MAME readme file
/xbox.txt       - the text file you are reading now

You should place you mame roms in the roms folder either in zipped format or in unzipped format (I recommend zipped format). Don't ask where to get roms, I don't know.

You then should create an gdf format iso (there are xbox iso creation tools floating around find one) of the directory I described above. Burn the resulting iso to the media of your choice (from testing DVD-RW works best less read errors and less times you have to reboot or eject to get the xbox to recognize the media).  Now the easy part, boot the xbox with the disc in the drive, it is working if you see a list of games.  If it doesn't work at this point try rebooting the xbox if it still doesn't work then you must have done something wrong.

The mame.ini file

You really shouldn't have to change anything in this file as long as you follow the directions above.  One thing you may but probably won't need to change is the resolution parameter.  This parameter determines at what resolution mame will try to render to on your TV, from testing I have found 587x440 to work well on my TV.  If mame games seem to be cut off you may need to back this resolution off (remember to keep the aspect ratio at 4:3).

This file is mostly self explanatory as it follows the standard mame.ini file.  Please note that I have not tested many options from the ini file but they should work, if you wonder if something like scanlines or the filter effects work, give them a try please.

Game selection

The interface for displaying games only displays non-clone games.  This was done to cut down on the number of games displayed, scrolling through 3500 is crazy! To select a game from the list of games displayed first scroll to the game you want to play using the L trigger & R trigger buttons.  L trigger scrolls up and R trigger scrolls down, the scrolling speed is determind by how hard the button is pressed (I know it can be a bit tricky to get it to stop on a game).  Once a game is highlited, press the A button to load the game roms and start the emulation.

Emulating a game

IMPORTANT: WHEN GAME EMULATION ASK YOU TO PRESS OK, PRESS L THEN R ON THE DIGITAL PAD.

The only thing that needs explaining here is the buttons on the xbox controller.  I mapped the buttons as follows:

Digital Pad		- Direction controller
A 			- MAME button 1
X			- MAME button 2
B			- MAME button 3
Y			- MAME button 4
L Trigger		- MAME button 5
R Trigger		- MAME button 6
White Button		- Brings up or Hides MAME Config menu
Black Button		- MAME Pause Key
Start			- MAME Start button (starts games)
Back			- MAME Select button (inserts coins)
Black+White             - Reset (useful for willaims games that require a reset)
Start+Back		- Return to selection menu, can't play another game though
I seem to have a bug here it locks up after loading roms

MAME-X will support up to four controllers mapping them to the game you are emulating if it supports that many controllers.

Note on Large Games

From testing I have found that larger new games that total in size above around 29MB will not run on the xbox port of mame.  If you select a game and it tries to load the roms and it doesn't play it is because the xbox ran out of memory or the roms couldn't be found. Some games will show a blank screen after loading which also means they ran out of memory or something (meaning I truly don't understand why yet), I've only seen this on large games.

Final Notes

This port would not have been possible without the excellent work by the core MAME team (read the mame.txt file).  The work that has been put into MAME is trully amazing and the MAME team should be given all the credit they deserve.

Well thats about wraps it up I'm not much on documentation and this is still a work in progress.

opcode