Obviously from the title of this thread this tutorial is going to be geared towards people that are new to Mame. I am going to keep it short, simple and focused on getting things up and running easily. I will not be getting into updating your romsets either, that is more advanced and often it is just easier to redownload a new full rom set than mess around with updating.
The first and most important and most troublesome part of Mame is the roms. Mame roms are not simply 1 file like cartridge based consoles and because there are so many versions of arcade games based on region and hacks there can be a ton of different versions of a game, Street Fighter II: World Warrior alone has something like 27 different variations of the roms when hacks and clone files are included.
Because of the way the roms are the easiest place to start is by obtaining a complete rom set. Now you do not NEED to have the latest version of the rom set to match whatever version of Mame you are using. So if you are going to use Mame 0.178 you do not need a 0.178 rom set. You can very easily use a 0.151 rom set which is extremely easy to find. I cannot tell you exactly where to find it but using google there is a certain paradise that should prove useful.
EDIT: While you do not have to have a matching rom set and Mame version to have some games work you will want to have your rom set and Mame version matching as closely as possible to ensure maximum compatibility. For example if you tried to use a 0.151 rom set with the 0.221 Mame version your Capcom games that require the qsound.zip bios will not work at all because of changes made. Also the Capcom CPS games will need updated roms that have the key.txt file in them, this is an encryption key the games actually had and got implemented into the emulation.
I am going to cover the basic non ui based version of Mame because the ui I found to be kind of useless after getting used to editing the mame.ini file.
Download the version of Mame you are going to use and run it. It will ask you where you wish to extract it, just put it where you want. For me this is:
H:\Emulation\Emulators\Mame 177
If you wish you can dump your roms right into the \roms\ folder that is in the Mame install folder but you do not have to do that if you do not want to. In fact I recommend you actually keep them separate, this way you can have multiple installs of Mame to try out new versions without having to have duplicate collections of roms eating up drive space. For me this folder is:
H:\Emulation\Roms\Mame 177
The first thing you want to do is to generate a mame.ini file. To do this open your command prompt (dos looking window) and navigate to your Mame folder. Now run the following command:
mame64.exe -cc
You should now have a mame.ini file. If you have no idea how to actually use the command prompt make a shortcut file to your mame64.exe, right click it and then properties. In the Target box you will see a full path and exe just put -cc at the end with a space after the exe or quotes if there is a quotation mark. Run the shortcut and it will generate the mame.ini file. If the ini file did not generate you will need to fix your shortcut path.
If you are unfamiliar with either of the above methods here is a simple batch file that you can drop in the same folder as your Mame64.exe and double click the bat file, it will generate your mame.ini file for you in the same folder as mame64.exe. Use this on a fresh install.
Mame Ini Generator.bat
*****Important: If you let Mame generate a mame.ini file on on it's own it will generate it in the \ini folder and for whatever reason this causes issues when loading a game from Launchbox. You will have to move the mame.ini file out from the \ini folder into the main Mame folder where the main executable is located.*****
Now open your mame.ini file in notepad or notepad++. The first thing you will want to do if your rom files are located somewhere other than the \roms\ folder in your Mame folder is to edit the line:
rompath
Put the full path to where you have your roms located, for example mine looks like this:
rompath "H:\Emulation\Roms\Mame 177\"
You can have multiple locations by separating the paths with a semi-colon.
Now this is all you need to do to have your mame setup and will run as long as your roms and your rom paths have no mistakes. You can do a quick test if you still have your command prompt window open by typing in:
mame64.exe sf2
If your paths and roms are correct this will load up Street Fighter 2: World Warrior.
Setup Mame like any other emulator in Launchbox. Noting should be checked in the emulator details tab of the edit emulator window and in the associated platforms tab make sure you have Arcade for the platform and nothing is needed in the command parameters.
See picture below.
Here are a few extra recommended edits of the ini file:
sleep 0
skip_gameinfo 1
Sleep 0 will make sure your cpu doesn't throttle down when not under load which can cause some stutter when it needs to ramp back up. Skip_gameinfo just hides the info window that shows up when you load a game.
There are other settings you can toy around with like the aspect but I recommend leaving those at default and there is the shader stuff which I have covered here:
To setup your controller when you have a game loaded simply press tab on your keyboard and this will bring up a menu. In here you can set up all your different bindings for controllers and other Mame shortcut functions.
Anyways this is the end of my basic tutorial and it ended up being longer than I expected but it really is a pretty simple emulator to use.
If you need more advanced information don't forget that there is documentation for Mame. Here is the link the website where you can read the web version or the pdf version which you can download for offline reading. http://docs.mamedev.org/
Port Audio:
Port Audio is a new feature that came in with version 0.182 and allows for much lower latency in the audio which means things like sound effects are heard much closer to when you are supposed to hear them. Things like punches, menu selection sounds and rhythm games are the most noticeable places for this. To take advantage of Port Audio you will need to edit your mame.ini file and look for the sections to make the following changes:
# OSD SOUND OPTIONS
#
sound portaudio
audio_latency 1
#
# PORTAUDIO OPTIONS
#
pa_api "Windows WASAPI"
pa_device default
pa_latency 0.003334
WARNING: There is one drawback to this new feature however. Mames sound will take over all audio from your computer so if you like to play music through your system while playing Mame games at the same time you won't be able to do it. Maybe there is a workaround to this.
Romsets: Merged vs Split vs Non-Merged, what's the difference.
In your search for rom sets for Mame you will come across those terms and here is a straight copy paste of the difference from a certain "dome of pleasure".
A non-merged set is one that contains absolutely everything necessary for a given game to run in one ZIP file. This is ordinarily very* space-inefficient, but is a good way to go if you want to have very few sets and want everything self-contained and easy to work with. We do not recommend this for most users.*
A split set is one where the parent set contains all of the normal data it should, and the clone sets contain only what has changed as compared to the parent set. This saves some space, but isn’t quite as efficient as a merged set.
A merged set takes the parent set and one or more clone sets and puts them all inside the parent set’s storage. To use the existing Pac-Man example, combining the Puckman, Midway Pac-Man (USA) sets, along with various bootleg versions– and combining it all into ((PUCKMAN.ZIP**, would be making a merged set. A complete merged set with the parent and all clones is the most common format MAME sets are stored in as it saves the most space.
* obsolete for current standards, as it's based on ancient disk space usage and costs
http://choccyhobnob.com/articles/demystifying-mame-roms/
This image should help explain the difference in a visual way.