***************************************************************************** * MAMELOAD - Loader for (M)ultiple (A)rcade (M)achine (E)mulator - FREEWARE * ***************************************************************************** ML (MAMELOAD) TNG Beta 45 - March 12th, 2010 (c) 2006-2010 Scott Stone (tafoid@yahoo.com) Latest version is always available at: http://mameload.mameworld.info M.A.M.E. tm is Copyright © 1997-2010, Nicola Salmoria and the MAME team. All rights reserved. The latest code/binaries and updates as well as information regarding how to use MAME and usage of the MAME name are located at: http://mamedev.org MAME's project coordinator is Aaron Giles: http://www.aarongiles.com PLEASE do not bug any of the 'MAMEDEV' for the latest releases of MAME or ask if or when a game will be playable or added!!! If you have valid bugs to report, please visit and examine MAMETesters: http://www.mametesters.org/main_page.php Introduction ------------ The original MAMELOAD project started out as a PERSONAL APPLICATION many years ago which I made to make playing with MAME much easier. Initially released to the world on February 20th, 1997. Over the next 3+ years, I often updated and refined MAMELOAD with improved features and compatability. Many, many others found it a useful utility for them. Over time though, development stopped due largely to QUICKBASIC's limitations and the changes that brought MAME to WIN32 as the baseline build. Recently, time felt right to resurrect MAMELOAD. Thus, ML TNG was born. ML doesn't at this time have all the features that MAMELOAD had, but it attempts to be functional and fast with low memory usage. This program was always designed to simply be thrown in the MAME folder and executed. Since ML supports most command-line triggers - a MAME.ini is not required. It assumes you have a basic knowledge of MAME including a decent working knowledge of how to adjust your settings via MAME's command-line and .INI file. Main Features ------------- - Quickly determines an 'available' list (only checks to see if a ZIP or folder exists). - Compatability to all MAME Windows versions since it's inception. (MAME 0.37b15 onward) - Have the option of using other command line compatable MAME derivitives and other MAME-based emulators! Tested builds include: MAMEUI, MAMEUI32FX, MisfitMAME, AgeMAME, PinMAME, HAZEMD, MESS, MJOLNIR, M1, Final Burn Alpha and more! - Full Screen and Windowed modes. - Rotating Screen support. The screen can be orientated as normal or rotated 90, 180 or 270 degrees. This functionaity is available to Full Screen and all windowed modes which status can be changed on the fly through in-program input. - Able to view .PNG extra files as well as use .PNG as a background for your display. - Support for up to 50 different ROMPATH directories in MAME.INI folder. - Internal Support for viewing maintained DAT files including: MAMEINFO, HISTORY, MARP, STORY and COMMAND.DAT files. These are all viewable at once. - Ability to delete CFG/INI/NVRAM file in-program for quick testing. - Save any viewed game list or DAT file check to a file for later viewing. - Sort any game list by GAMENAME/SETNAME/PARENT+CLONE/SOURCE. - Type to search for a GAMENAME/SETNAME/SOURCE. - Variable Default Font Sizes (8x8, 16x16). - External .BDF font loading and support. (up to size 20x20) - File Selection for MESS for any media types the system requires. - Extended Joystick and/or Mouse list navigation. - Nearly full Command-line support. - Simple/Flexable interface, small in size and modest in memory usage. - Streaming music and selection sounds while traversing and using ML TNG. Minimum SYSTEM Requirements --------------------------- In order to used ML to the fullest extent, you need: - Any PC that has the ability to run the MAME emulator for Windows. - The Emulator itself. You can use the normal MAME.exe build or any of the variants (provided they all allow for command line interaction). - ROM images for games that you happen to own. In order to get a full list of supported games available in ML, THEY MUST BE IN "SPLIT" FORMAT (this means a folder/zip for each game containing only the unique files not shared with it's parent). Any other set type is not fully supported by ML. - Desire to use!! Files included/required in this archive --------------------------------------- ML.EXE - This can be anywhere on your drive provided is it in the same directory as MAME.EXE (or other supported emulator) MLREADME.TXT - You are reading this! MLLATEST.TXT - Lastest Changes and Developments. RESOURCE.ML - This is a collection of DATA which is required by ML TNG to function properly. It is suggested that you do not edit this file as even one mistake could render ML TNG unusable. Files created by ML ------------------- FAVORITE.ML - This file keeps all important information related to ML's function as well as a list of games which you've marked as "FAVORITE" (F12). It's auto-created when you exit adjust your Favorite Games, or exit ML. Option Description ------ ----------- ambience_audio Filename for Ambient Music ambience_audio_volume [0-255] for Ambient Music background_image A .PNG file you want for a background background_image_intensity [0-255] for background intensity bdf_font A .BDF file you wish to use border_color Hex Value for your desired border color (RRGGBB) command_line_addition Option that ML cannot handle can be placed here executable_name Filename for Executable File to use font_big [0/1] - Size of Internal Font - 1 = ON font_color Hex Value for your desired font color (RRGGBB) font_use [0/1] - Use BDF font - 1 = ON full_screen [0/1] - Full Screen Screen - 1 = ON gamename_chop [0/1] - Chop excess Version/Region/Manufacturer Information from your viewable gamelists - 1 = ON joystick_select [0/1] - Joystick Usage - 1 = ON last_selected_list *** This should not be modified *** last_selected_pngmode *** This should not be modified *** last_selected_set Setname last selected when you last exited ML mouse_select [0/1] - Mouse Usage - 1 = ON orientation_mode [0/3] - Orentation of Screen - 0 = Upright 1 = Right 90, 2 = Upside Down, 3 = Left 90 resolution [640/800/1024/1280] - Width of the screen or window screen_location Window location as [xxxxyyyy] is saved here while_selecting_audio Filename for Selection Audio while_selecting_audio_volume Value [0-255] for Selection Audio Favorite Sets are saved in the following format: Game Name=Set Name|Set Source EG: Mappy (US)=mappy|mappy.c Manual editing can be done to this file, but if you have trouble, it's suggested you restart/delete the file and let ML create a new default template for you. External Required Files ----------------------- ZLIB1.DLL - Used for .PNG/Screen Shot support. Might be a good idea to place this in your path (typically windows/system32 folder) as it is a commonly used library. You might already have it on your system. You can download off my site, or go here: http://www.gzip.org/zlib FMOD.DLL - Allows usage of audio files in numerous formats. Like ZLIB, you can place it anywhere in your PATH or in the same folder as ML.EXE Optional Additions ------------------ - HISTORY.DAT - Maintained by Alexis Bousiges http://www.arcade-history.com - MAMEINFO.DAT - Maintained by M.A.S.H. http://mameinfo.mameworld.info - STORY.DAT - Maintained by MAMESCORE http://www.arcadehits.net/mamescore/home.php?show=files - MARP.DAT - Maintained by Chris Moore http://replay.marpirc.net/marp.dat - COMMAND.DAT - Maintained by Procyon Lotor http://home.comcast.net/~plotor/command.html - SYSINFO.DAT - Maintained by MESS Team Currently only available in MESS releases. - FOLDER INI files - Maintained by s_bastian http://www.progettoemma.net/?catlist - NPlayers32 Files - Maintained by Nomax http://arcadebelgium.be/nplayers - PCB and Artwork Preview packs are available at: http://www.progettoemma.net/dany69 The ML TNG site has a number of .BDF fonts, .PNG backgrounds, .WAV Audio and links to other sites which have much you can add. Font Files (.BDF) ----------------- You can now use .BDF fonts in ML TNG! You can load them while you are in ML by typing (CTRL-B). You will be given a list of .BDF fonts located in your current folder. Select one, then press ENTER will load and display that font for you. This font information, once loaded, is saved in your favorites so you need not have to load this again, ML will take care of this for you! There are limitations however to what size font is allowed. Currently, the top limit is 20 (width or height cannot exceed 20 pixels). Anything larger will not be loaded or used by ML. When converting from other sources, be sure to set your target to 20 or under if you want smaller fonts. Background Images (.PNG) ------------------------ You can now have an Image displayed in the background of ML TNG. If smaller or larger than the screen, the image will scaled to fill up the screen. This might distort the image is the standard image you use does not have a standard resolution. Selection Sound (.WAV) ---------------------- Simply having a file indentified in your favorite.ML will allow you to have a sound issue as you enter keystrokes or scroll through a list. Nearly any .WAV or .MP3 will work, but the shorter the duration of the output is probably better for your selection enjoyment. Background Audio (.MP3) ----------------------- Recently added (in u38), this is in response to a user request to allow you to play audio in the background while traversing the menus and using ML TNG. This was added to facilitate the usage of the "AMBIENCE.MP3"'s which have been made to give you a faux feeling of being in an arcade! In order to use in this in ML - you need "FMOD.DLL". File Information can be edited into favorite.ML. You can use .MP3, .WAV and some .MID file as well! General Notes ------------- - Numerous files are created while ML is running (temporary) so you can currently only run this program from a readable/writable storage device. These are automatically deleted by ML when no longer needed. - A FAVORITE.ML file will be saved if you choose to add or delete any favorite sets or exit ML. It will also contain selection information so when you restart, you can resume using your desired settings. - Command-line triggers will NOT superceed anything in your game's .CFG file. If a certain command is not working for you when you emulate a game, be sure to check what's in your games' .CFG or .INI file. - Rom Detection is at a MINIMUM with ML. It only checks if a certain folder/zip is THERE, not what's in it. I'd highly suggest you use CLRMAME PRO, available at http://www.clrmame.com for all your ROMSET auditing. - After a very short process where ML divines your HAVE list and compares this to a full game list. When running the first time, a screen size will be selected which matches yours as closely as possible based on your current horzontal screen size. Valid resolutions include: 640x480, 800x600 1024x768 and 1280x1024. Using odd resolutions or resolutions which are larger than the current screen size will cut portions of the screen off. You have been warned! - Internally, there is a limit of 9999 different games that ML can handle. This should support everyone's current needs for MAME for the foreseeable future. How To Use ---------- Usage: Double-Click ML.EXE or type "ml" in command-line. Now it's time to select a game and use the interface! ML TNG's Interface Commands --------------------------- PLEASE NOTE: Not all commands are available or will work as intended for all supported emulators. Some supported emulators do not share MAME's stardard file structure or behavior - so these buttons should not respond if the case warrants. -- Use Arrow Keys and PAGE UP/DOWN and HOME/END to scroll through the gamelist and other menus. You can also traverse the list by typing your desired gamename. Execute a game/Toggle an option/Confirm a selection. Bring up File Selection (MESS ONLY). Enter from here will navigate and/or select an image. Right/Left arrows will select your media type. Hitting this again will issue the command to start with all the images you've selected. Used to exit from MAMELOAD TNG as well as leave selection menus. Toggles List View Between AVAILABLE, COMPLETE, MISSING, FAVORITES and FOLDER .INI. Change Sort Parameter (by GAMENAME/SETNAME/PARENT+CLONE/SOURCE) on a game list. If viewing a FOLDER .INI file, this button toggle between available files. Toggle Search Parameter (GAMENAME/SETNAME/SOURCE). This is not valid while viewing FOLDER .INI files. Show all external data for a game. It will display Parent/Clone/Source Info and the following external .DAT file information (MAMEINFO/HISTORY/MARP/STORY /COMMAND) all in one viewable list. Only While viewing External DATA (F3), you can launch a web browser using the following: F5 - MAWS Information Page. F6 - History.DAT Edit Page or MESS Sysinfo Page (depending on emulator). F7 - MANTIS bug report lookup (by gamename) SHift+F7 - MANTIS bug report lookup (by source) F8 - MAME Action Replay High Score Page. Save Selected List or DATA to a text file. Delete selected ROMSET's .CFG file. Delete selected ROMSET's .NV file. Delete selected ROMSET's .INI file. Delete selected ROMSET's SOURCE .INI file. Create backup of current .INI (Save name is: [EMULATOR] + [VERSION] + .ini) and then create a new .INI in current folder. Select BORDER color. Select FONT color. Randomize (Jumps to a randomly selected ROMSET from the list). Toggle ROMSET On/Off as a Favorite. They are saved to your MAME folder as changes are made. Toggle PNG Support between OFF, SNAP, ARTVIEW, TITLES, CPANEL, MARQUEES, CABINETS, FLYERS, PCB. Apply a FOLDERS\.INI to a currently viewed list and create a file based on the output. You can view it as you would normally view INI files. Load a .BDF font from current folder. Available Command List for that emulator version. Save current settings to an .INI based on your current gamedir (setname). Toggle Font size between 8x8 and 16x16 and externally loaded .BDF font. Chop off the Verion/Region/Manufacturer Information from your viewable gamelists. Toggle Joystick Navigation. View MAMELOAD Help Screen. Toggle Mouse Navigation. Rotate Screen Orientation 90 Degrees Right. Save an .INI with your current settings for your current setname's SOURCE. View an .INI file instead of hitting each one at a time. The selected INI will be loaded and viewed immediately. Rotate Resolutions Width between 640, 800, 1024, 1280. Toggle FULL SCREEN and WINDOW display. Other Interface options ----------------------- PLEASE NOTE: Joystick and Mouse Navagation are NOT perfected as yet. It works sufficently well but might sensitive at times. If you've selected to activate Mouse or Joystick, the following applies: Joystick -------- If you have enabled Joystick Selection (CTRL-J), you will have the option to enter nearly all of ML TNG's commands with joystick/button control. These can be listed in-program by using (CTRL-L or Joystick DOWN + Button 3). At this time, the input is hardcoded but I will in the future allow for multiple joystick/button input (instead of just joystick #1) as well as re-assignment of inputs to better suit your cabinet layout. Mouse ----- Left Button will scroll list one item at a time. Right button will scroll one PAGE at a time. The direction of the list movement will depend on mouse location (if pointer is on the top half = scroll up, bottom half = scroll down. Pressing the mouse button 3 (the scroll wheel button on most mice) to execute the selected game. Command Lines (trigger lists) ----------------------------- When using a typical MAME-Based emulator, you will allowed to use several of available options based on the version you are using. You can get information of what each of these triggers do from the file "WINDOWS.TXT" and "CONFIG.TXT" in your DOCS folder. You can open this list up by typing (CTRL-C). You use the keys you normally use to select a game to find a command you wish to toggle ON/OFF. If there is no value needed, ENTER will simply "MARK" the option with an "x". Otherwise, you will be prompted to select with the up/down arrow keys a value to add to this command to allow it to function. Hitting ENTER confirms your selection - ESc exits. When you exit ML normally, all adjusted command lists will be saved as: "Command[version number].ml". For example, MAME 0.117's will be called "Command117.ml" in your folder. These are reloaded the next time you use ML. If you are using a new version, ML will look to the previous version number and pull your settings from that, if needed. When using a command which uses or creates LOGGED data (-record, -playback, -mngwrite, -wavwrite, -aviwrite) - be sure to save any previous recordings to a different folder/filename. ML will use the setname of the selected game as the filename of the log (EG. pacman.inp) and will not care if the file is present or not when issuing the commands. Also, these commands are not saved in your settings. They must be triggered only when you want to use them. If you trigger any text output command, the game will not run but instead run that trigger for you and output the file. "LISTXML.TXT", for instance, will be saved for you when you use the -LISTXML trigger. If you have multiple file output triggers enabled, ML will only use the first one it sees enabled from the list (alphabetical). What types of commands can ML not handle yet? --------------------------------------------- - Some commands which need valid and complete path(s)/filename(s) to be used. (Examples: -rompath, -samplepath, -romident) For anything ML does not handle right now, you can manually edit your INI file to include any special paths you need. Emulator Specific Notes ----------------------- Final Burn Alpha ---------------- - The emulator must be named "fba.exe" in order to be detected. - This emulator lacks the ability to obtain Parent/Clone information and even version information from command line. ML only supports version 0.2.96.81 or later (requiring -listinfowithmd, -listextrainfo commands). - The initial run of a new version of FBA will likely do an automatic rom scan, even if you do not run the built-in GUI. - There is a pop-up that appears when using FBA. This can be changed if desired by editing the szPlaceHolder varible in the CONFIG\FBA.INI file. - There is no feedback letting you know that a ROMSET is incomplete or bad. HazeMD ------ - Based on MAME 0.108 - commands are set to that version. M1 -- - Requires a valid installation of M1 in order to be detected/used (including files: "m1.exe", "m1.dll" and "m1.xml") MAME ---- All versions of MAME that allow command-line interaction will work the same. MESS ---- - You must use ALT+ENTER to select a system or computer if you wish to start the emulation with any image. MetalMame --------- - The core verison used for this is based on MAME 0.82. Commands are set to this version. Mjolnir ------- - Based on MAME 0.100 - commands are set to this version although not all commands or interface options from MAME will work as it's been scaled back. PinMAME ------- - Last Based on MAME 0.76 - commands are set to that version. This covers over 4 years of PINMAME releases. - There is no interaction with Visual Pinball. You can only load play the tables' scoreboard using PinMAME's interface. Possible Future Plans (in no particular order) ---------------------------------------------- - Source viewing option for MAME/related emulators - Integration of native M1.DLL commands rather than parsing to/from m1.exe - Visual Pinball/PINMAME Table selection and launching - Complete MAME Command Support in program (such as rompaths, etc) - Times played/time spent per set - Multiple Language Support - Dynamic reloading of a different Emulator while ML is running - Ability to add alternative gamenames/aliases - Other things I haven't thought about yet.. Having problems? ---------------- Have you tried.. - Making sure your emulator and ML TNG are in the same directory? - Using a freshly created .INI file? Some MAME initalization files can cause errors with previous or future versions. - Double checking to see if the proper ROM files are in their respective directories and still compressed? - Seeing if a romset has not changed from one version to the next? This is a common occurance nowdays and even if you are missing one file - this will cause a found game not to run. Please use a ROM Manager (such as CLRMAME mentioned above to ensure your ROMS are usable for your current version. - Determining that the .ZIPped ROM's you have are not .ZIPped inside another directory inside of the archive or is otherwise incomplete or corrupted? - Deleting your current FAVORITE.ML? In the odd case that this file has been corrupted, ML TNG can malfunction and not work as expected. - Checking MAME's WHATSNEW.TXT and DOCS\WINDOWS.TXT + DOCS\CONFIG.TXT files and have READ THEM through completely, especially if certain game does not work? What Else? ---------- This program has been written in FreeBasic - compiled using Version 0.21.0 and exclusively by me on an ATHLON XP1800 in Windows 2000. I have not tested this program on anything other than Windows 2000, so compatability is not at all guaranteed. I would imagine though ML TNG should work fine on any WINDOWS system Windows 2000 or later. I do hope you find this program as useful for yourself as I've found it to be for myself! This is a spare time project for me and I am not interested at this time in releasing any source code. (This will change soon) If you have encountered any major errors or incompatibility problems (there is always something popping up) with this program, I'll try to help. I encourage any questions, comments or ideas regarding future additions to ML TNG. BUT PLEASE, DO NOT ASK ME WHERE TO FIND ROM IMAGES! IF YOU WERE SMART ENOUGH TO FIND THE EMULATOR AND THE FRONTEND, THE FILES AREN'T TOO FAR AWAY! Credits and Thanks ------------------ Source Code: - PLoad - PNG image loader for use in FreeBASIC programs. Copyright (C) 2006 Matt Netsch (thrawn411@hotmail.net), Matthew Fearnley (counting.pine@virgin.net) PLoad Source: http://mysite.verizon.net/vzepe2fj/ploadlib.zip ImageScale routine by D.J.Peters. ImageScale Source: http://alice-dsl.net/d.j.peters/libs/fbimagescale.zip - Other invaluable help and core routines by: Zippy, MichaelW, notthecheatr, Lashie D. Other Libraries: - FMOD.DLL 3.75.00 FMOD Sound System, copyright © Firelight Technologies Pty, Ltd., 1994-2007. http://fmod.org - ZLIB1.DLL 1.2.3 ZLIB (C) 1995-2005 Jean-loup Gailly and Mark Adler http://zlib.net Thanks: The Entire MAMEDEV team (past, present and future) for creating, maintaining and expanding the emulator we all love. Keep up the preservation spirit! Also to all those who document and/or sacrifice time in an attempt to further the progress of MAME and all other emulators - THANKS! All that I ask is if you use ML TNG and enjoy it - please send me a kind word of thanks. E-mail me at: tafoid@yahoo.com CONDITIONS OF USE/DISCLAIMER: ----------------------------- This product is FREEWARE. You may use it for your own game playing needs and that is it!! I will accept NO RESPONSIBILITY (directly or indirectly) to any damage (temporary or permanent) that this program or any associated programs may do. Also, I ask that you keep this archive together and do not add or delete anything to/from the original archived ZIP file. You may also NOT modify, add or delete (HACK) into ML, as it is protected by copyright. ML is not to be placed in a COMPILATION, PACKAGE, CD, DVD or any other collection without my previously obtained permission. Not responsible for any typographical or spelling errors.