===========================================
   MAME4ALL GP32 v1.1 (January 1, 2009)
              For the GP32
              by Slaanesh
        http://www.slaanesh.net/
Contact me at www.gp32x.com (slaanesh)
        (originally by Franxis)
===========================================


1. INTRODUCTION
---------------
MAME4ALL GP32 is a port of MAME 0.37b5 emulator (originally by Nicola Salmoria) for the GP32. MAME4ALL is also available for the GP2X, Wiz, PSP and A320 Dingoo.  Please refer to the MAME license at the end of this document.

MAME4ALL GP32 currently emulates many arcade games supported by original MAME 0.37b5 plus some additional games from newer MAME versions. Most larger games currently do not work (and never will) due to lack of system RAM.

Official web page for news, additional information and donations:

http://www.slaanesh.net/


2. CONTROLS
-----------
The emulator controls are the next ones:
- Joystick: Movement in pad, mouse and analog control of the players. 
- Buttons A,B,L,R,SELECT,START: Buttons A,B,C,D,E,F.
- Button SELECT+R: Insert credits
- Button SELECT+L: 1P Start
- Button START+B: Pause
- Button START+R: FPS display
- Button START+L: Profiler display
- Buttons L+R+SELECT: Exit to selection menu to select another game.
- Buttons START+SELECT: MAME menu.

In the rotated video modes the following additional controls are available:
- Button A: START

NOTE: To type OK when MAME requires it, press LEFT and then RIGHT.

Redefining Controls

Redefining controls is entirely supported and easy to do.
Once the game has started, select the MAME Menu (START+SELECT by default).
The top two options are "Input (general)" and "Input (this game)".
Redefining controls for "Input (this game)" will make control changes for the current game only.
Redefining controls for "Input (general)" will make default control changes for all games.
If you make a change for "Input (general)" that you don't like, it can be tricky to set it back to the original settings. The best thing to do in this case is to delete the GP:\GPMM\MAME4ALL\CFG\DEFAULT.CFG file.


3. EMULATION OPTIONS
--------------------
After selecting a game on the list next configuration options are available:

- GP32 Clock:
66 to 200 MHz options are available.  133Mhz (DEFAULT).
Performance of the emulator is better with bigger values.
If you your GP32 is capable of overclocking, 166Mhz is a nice sweet spot for many games.

- Video Depth:
Sets both MAME's and the GP32's internal video depth.
Auto: The emulator uses the most suitable video depth.
8 bit: MAME uses 8 bit color (DEFAULT).
16 bit: MAME uses 16 bit color.


- Video Aspect:
The video aspect is configured with the following combination of options:
Auto: Depending on the game, will auto-rotate the screen to suit. (DEFAULT).
Landscape: Force landscape mode.
Portrait: Force portrait mode (ie. rotate GP32).

- Video Sync:
Normal: Single buffer and dirty buffer is used. (DEFAULT).
VSync: VSync activated.
DblBuf: <not available yet>
OFF: No video synchronization, use manual frameskip.

- Frame-Skip:
Auto: The frameskip is adjusted automatically in real time. (DEFAULT).
0 to 11: The frameskip is manually adjusted where 'N' out of 12 are skipped.
For example, a value of '6' would mean that 6 out of 12 are skipped and 6 out of 12 are drawn. ie. every second frame.

- Sound:
The sound options are the following ones:
ON: The sound is activated. 8kHz, 11 kHz (DEFAULT), 16.5kHz, 22KHz sound mixing rates are available.
OFF: The sound is disabled.

- CPU Clock:
The clock of the CPUs can be adjusted from 50% to 200%. The nominal value is 100% (DEFAULT) and the CPU is emulated accurately.
The clock can be safely underclocked to about 80% to gain performance in almost all games (be careful because some
games could not run correctly). Use lower values to get more performance but probably several more games would not
run correctly. Also the clock can be overclocked up to 200% to avoid slowdowns in some games.

- Audio Clock:
The clock of the audio CPUs can also be adjusted from 50% to 200%. The nominal value is 100% (DEFAULT). It can be underclocked
and overclocked as well.

- Z80 Core
Compatible: Use the default 'C' based Z80 core (DEFAULT).
All CPUs: Replace all Z80 'C' based CPUs with the faster 'assembler' based DrZ80
Sound CPUs only: Only replace sound Z80 'C' based CPUs with the faster 'assembler' based DrZ80.

The 'Sound CPUs only' is handy for many multi-Z80 CPU games where DrZ80 would otherwise not work. ie. 1942, Choplifter (and other Sega System 1 games), Tapper (and other MCR 1/2/3 games) as well as many others.

Note that for games using the MC68000, Cyclone is always used. There is no option for the 'C' based core as it's not needed. The Cyclone core is excellent. :-)

- Cheats:
ON: The cheats are enabled. To access in game press SELECT+START and enter the "Cheats" menu.
OFF: The cheats are disabled (DEFAULT).
Note: The high scores are not saved if cheats are enabled!!!.

- Auto-Fire:
To access the auto-fire configuration, during game press SELECT+START and enter the "Auto-Fire" menu.

- Press A to play the selected game or B to go back to game selection menu.

- L+R+SELECT to exit back to the GP32.


4. INSTALLATION
---------------
The frontend mame4all.fxe must be installed in GP:\GPMM\MAME4ALL.FXE
The modules must be installed in GP:\GPMM\MAME4ALL\MXXXXXX.FXE
The other directorys must be installed under GP:\GPMM\MAME4ALL\

GP:\\GPMM\mame4all.fxe			-> Frontend to select games
GP:\\GPMM\MAME4ALL\m<MODULE>.fxe	-> MAME emulator
GP:\\GPMM\MAME4ALL\cheat.dat		-> Cheats definition file
GP:\\GPMM\MAME4ALL\hiscore.dat		-> High Scores definition file
GP:\\GPMM\MAME4ALL\artwork\		-> Artwork directory
GP:\\GPMM\MAME4ALL\cfg\			-> MAME configuration files directory
GP:\\GPMM\MAME4ALL\frontend\		-> Frontend configuration files
GP:\\GPMM\MAME4ALL\hi\			-> High Scores directory
GP:\\GPMM\MAME4ALL\inp\			-> Game recordings directory
GP:\\GPMM\MAME4ALL\memcard\		-> Memory card files directory
GP:\\GPMM\MAME4ALL\nvram\		-> NVRAM files directory
GP:\\GPMM\MAME4ALL\roms\		-> ROMs directory
GP:\\GPMM\MAME4ALL\samples\		-> Samples directory
GP:\\GPMM\MAME4ALL\skins\		-> Frontend skins directory
GP:\\GPMM\MAME4ALL\skins\splash.bmp	-> Frontend splash screen
GP:\\GPMM\MAME4ALL\skins\menu.bmp	-> Frontend menu background
GP:\\GPMM\MAME4ALL\snap\		-> Screen snapshots directory
GP:\\GPMM\MAME4ALL\sta\			-> Save states directory


5. SUPPORTED GAMES
------------------
MAME 0.37b5 supports 2258 different supported romsets.
The GP32 version supports about half this number.
For more details, see "gamelist.txt" file.


6. ROM NAMES
------------
Folder names or ZIP file names are listed on "gamelist.txt" file.
Romsets have to be MAME 0.37b5 or compatible (July 2000).
There are also additional romsets from newer MAME versions.

Please use "clrmame.dat" file to convert romsets from other MAME versions to the ones used by
this version for GP2X, using ClrMAME Pro utility, available in next webpage:

http://www.clrmame.com/


7. SOUND SAMPLES
----------------
The sound samples are used to get complete sound in some of the oldest games.
They are placed into the 'samples' directory compressed into ZIP files.
The directory and the ZIP files are named using low case!.

The sound samples collection can be downloaded in the following link:
http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,5,2511

You can also use "clrmame.dat" file with ClrMAME Pro utility to get the samples pack.

Note: Downsampling of .wav files is recommended as some of the sample files are very large.


8. ARTWORK
----------
Artwork is used to improve the visualization for some of the oldest games. Download it here:
http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,5,2512


9. ORIGINAL CREDITS
-------------------
- MAME 0.37b5 original version by Nicola Salmoria and the MAME Team (http://www.mame.net).
- Z80 emulator Copyright (c) 1998 Juergen Buchmueller, all rights reserved.
- M6502 emulator Copyright (c) 1998 Juergen Buchmueller, all rights reserved.
- Hu6280 Copyright (c) 1999 Bryan McPhail, mish@tendril.force9.net
- I86 emulator by David Hedley, modified by Fabrice Frances (frances@ensica.fr)
- M6809 emulator by John Butler, based on L.C. Benschop's 6809 Simulator V09.
- M6808 based on L.C. Benschop's 6809 Simulator V09.
- M68000 emulator Copyright 1999 Karl Stenerud.  All rights reserved.
- 80x86 M68000 emulator Copyright 1998, Mike Coates, Darren Olafson.
- 8039 emulator by Mirko Buffoni, based on 8048 emulator by Dan Boris.
- T-11 emulator Copyright (C) Aaron Giles 1998
- TMS34010 emulator by Alex Pasadyn and Zsolt Vasvari.
- TMS9900 emulator by Andy Jones, based on original code by Ton Brouwer.
- Cinematronics CPU emulator by Jeff Mitchell, Zonn Moore, Neil Bradley.
- Atari AVG/DVG emulation based on VECSIM by Hedley Rainnie, Eric Smith and Al Kossow.
- TMS5220 emulator by Frank Palazzolo.
- AY-3-8910 emulation based on various code snippets by Ville Hallik, Michael Cuddy,
  Tatsuyuki Satoh, Fabrice Frances, Nicola Salmoria.
- YM-2203, YM-2151, YM3812 emulation by Tatsuyuki Satoh.
- POKEY emulator by Ron Fries (rfries@aol.com). Many thanks to Eric Smith, Hedley Rainnie and Sean Trowbridge.
- NES sound hardware info by Jeremy Chadwick and Hedley Rainne.
- YM2610 emulation by Hiromitsu Shioya.


10. PORT CREDITS
----------------
- Port to GP2X and WIZ by Franxis (fjmar@hotmail.com) based on source code MAME 0.37b5 (dated on july 2000).

- Reesy (drsms_reesy@yahoo.co.uk) has developed DrZ80 (Z80 ASM ARM core) and has helped
  a lot with core integration into MAME. He has also done several fixes to the Cyclone core.
  You are the best!!!
  
- Notaz (notasas@gmail.com) have fixed some bugs in the Cyclone source code. He has also
  contributed with several useful code to the GP2X scene. Thanks!!!
  http://uosis.mif.vu.lt/~grig2790/Cyclone/
  http://notaz.gp2x.de/

11. DEVELOPMENT
---------------
Developed with:
- Mac OS X. Ultra fast compilations with a Dual Core Duo MacBook.
- devkitARM r26. Great stuff guys. I've added my own profiling (libgcov.a) support!
- GPSDK. Gamepark SDK. Pity the function names are not standard.
- GpBinConv by Aquafish (www.multimania.com/illusionstudio/aquafish/).
- Paint Shop Pro 7. Great image editor. Unfortunately only for Windows.


12. KNOWN PROBLEMS
------------------
- Slow playability in some games.
- Not perfect sound or incomplete in some games.


13. TO BE IMPROVED
------------------
- No-slow down triple-buffering with v-sync algorithm.
- More speed - though I'm thinking that i've reached the GP32's limit.


14. SKINS
---------
The frontend graphic skin used in the emulator is located in next files:
Note: These files MUST exist.

skins\splash.bmp	-> Intro screen for the GP32 (by Slaanesh).
skins\menu.bmp		-> Screen to select games and options (by Danibat).

Bitmaps have to be 320x240 pixels - 256 colors (8 bit). In the game selection screen, the
text is drawn with whatever color is brightest.

Other skins are provided. Just rename them.

15. MAME LICENSE
----------------

http://www.mame.net
http://www.mamedev.com

Copyright  1997-2009, Nicola Salmoria and the MAME team. All rights reserved. 

Redistribution and use of this code or any derivative works are permitted provided
that the following conditions are met: 

* Redistributions may not be sold, nor may they be used in a commercial product or activity. 

* Redistributions that are modified from the original source must include the complete source
code, including the source code for all components used by a binary built from the modified
sources. However, as a special exception, the source code distributed need not include 
anything that is normally distributed (in either source or binary form) with the major 
components (compiler, kernel, and so on) of the operating system on which the executable
runs, unless that component itself accompanies the executable. 

* Redistributions must reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials provided with the distribution. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR 
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
