# Mame32 Troubleshooting [& Tips]

Mame32 has been in development since 1997. It is mature, complex, and robust. However, since the Mame project itself is a documentation effort, and development is continuous, there will be times when changes to the core program effect Mame32. When problems do occur with a specific game in a specific version of Mame32, a previous version of Mame32 may be used.

Mame32 is now an integrated GUI front end which passes user input from the GUI to the Mame engine/core. Thus, any problems that occur in the Mame engine will be inherited by Mame32. Prior to reporting problems against Mame32, verify that the issue is not a known, core defect in Mame. The Mametesters.org site is designed to track and report bugs in the baseline Mame version. To find if a problem plagues the game in question, do an alt-enter on the game and note its driver/source name at the bottom of the general properties tab; then search the Mametesters’ bug database and search their message board. The current list of known Mame32 specific issues and defect tracking is available at Mame32QA.

ROMs and CHDs Related Topics

· Utilization of an external ROMs management utility like Clrmame is recommended for repair and identification of damaged sets.

· If receiving missing ROMs error messages when attempting to run a game, secondary click on the game in the list and choose properties, do an audit on that game [or use Alt-A]. The audit will determine which files are missing from the ROMset currently being played. Mame32 will not run a game which fails its internal audit.

· Mame is an ongoing documentation project. Sometimes old ROM sets are found to have miss-dumped, missing, or damaged ROMs, which need to be replaced. As new versions of Mame are released, the Mame developers add support for these new iterations of ROMs, supplanting or renaming the old supported versions. Thus, often, older versions of ROMs which did work in older versions of Mame32, will not work with newer versions of Mame32 because they are now read as incomplete or wrong. Mame32 will not play the game in question until the updated ROMs are utilized.

· Mame32 utilizes the idea of a parent / clone relationship for its games. If trying to play a clone or a bootleg of a game, Mame32 will need the ROMs for the clone game, and the parent set. Mame32 indicates the parent set of a clone at the bottom of the game’s properties tab, or more easily in grouped view, View \ Grouped.

· Mame32 utilizes the idea of having single zip files to house the BIOS files for a large number of similar games. The NeoGeo games for example, share upwards of ten BIOS files in every game. Mame will look to neogeo.zip as the BIOS zip, if this file is freestanding along with the other NeoGeo games, it will use it. Otherwise, Mame32 expects all the BIOS files in every NeoGeo game’s zip file. DECO cassette, PGM, and Playchoice are some examples of other BIOS games. An error message will occur if the BIOS files are not present and those games are run. Occasionally, new ROMs will need to be added to the BIOS packages themselves, this occurred recently with the ‘ng-lo.rom’ and then 6 new regional BIOSes in the neogeo.zip. Mame32 will not audit a game as correct without all the BIOS files with the correct CRC, while it may however be possible to play the game after an error message.

· Games that support .CHD [compressed hunks of data] images [Max Force, Killer Instinct I & II, Area 51, Vicious Circle, War Gods, beatmania games, and items in the CHD folder view on the left pane] have to have their ROMs and .CHD files in a very specific directory structure. The single large .CHD file needs to go in the \ROMs\gamename\ directory, and have the *.CHD extension, e.g. \ROMs\area51\area51.chd. These games also have ROMs, these go one level up in the \ROMs folder proper like any other game. So in the end two files should exist for these games one *.zip in the \ROMs folder and the *.chd in a sub-directory named for the game.

· F5 / View • Refresh in the GUI. (Do this anytime ROMs are altered, renaming, etc.)

· If games are not displaying in the game list, ensure the appropriate folder view on the far left is toggled, i.e. 'all games' and it doesn't have filtering on it to stop the display of the game being searched for.

· Use the Options • Reset to default menu choice and check all of the items, restart Mame32.

· Final option, manually delete the Mame32ui.ini and the Mame32.ini file in the \ini directory.

Crash Related Topics

· Delete the \hi\*.HI, \cfg\*.CFG, \diff\*.DIF, \ini\*.INI, or \nv\*.NV files for the game that's crashing.

· Check to see that the zip file is valid and that it's not corrupt or read-only.

· Verify the presence of the \ini directory under Mame32.exe’s location.

· If versions of Mame32 prior to .66 had been installed on the system, verify that the old registry key has been deleted with regedit.exe. HKEY_CURRENT_USER/Software/Freeware/Mame32

· If crashing during an audit or an [F5] refresh, it could be a corrupt .zip file. Extract it and re-zip. Pkunzip -t *.zip. Note the file that dies during the audit and concentrate on that one. Also verify that if zip files are not used, that the folder is not empty, or contains partial or damaged ROMs. Utilization of an external ROMs management utility like Clrmame is recommended for repair and identification of damaged sets.

· If seeing crashes or weird screen coloration, try disabling running background apps [in Win98, use msconfig.exe], Norton Crashguard, PnP programs like Kaaza, eDonkey, LimeWire, popup killers, viruscans, MS Office Fast Find, the Microsoft Office Bar, Intellimouse, even IE subscription updates, etc. Try moving Mame32 away from compressed [DriveSpace, DoubleSpace, stacker] drives. IntelliMouse and Office Toolbars have been known to cause conflicts. Also disable items in the system tray, like the CD player, etc. It may also be necessary to download and install the latest version of DirectX from Microsoft to prevent some errors.

· If Mame32 crashes with an access violation it may be the DEP (Data Execution Prevention) setting on that machine. Add Mame32 to the exception list in Control Panel / System / Advanced / DEP.

· In some instances games may fail to start if the installed directory path contains a large number of characters and spaces, to alleviate this, install Mame32 and its support directory structure into a shorter path name, i.e. c:\mame32\.

· Mame32 may fail to launch its games in situations where an errant, non-DX compliant, or badly written gamepad USB adapter driver/software is used. This includes some cheap Playstation, SNES, U64 converters.

· Games may fail to start if a video cards DirectX driver is flakey, utilise an earlier one to test or re-install DirectX.

· Some recent viruses which attach to .exes will cause page faults and access violations in Mame32 when it's run. Use an anti-virus check and verify Mame32 is not infected.

· Odd behaviour may be exhibited in NT based systems if attempting to run games while security/permissions settings do not allow it or the user is not an administrator or member of the administrator’s group.

· Some anti-virus packages may slow down navigation within the Mame32 directory. These are false positives and the anti-virus vendors should update their virus dat signatures. It may also be possible to exclude the mame32.exe from real-time scanning as a workaround.

· In the event of Mame32 not launching a game and just sitting there, try placing the entire Mame32 directory and its sub-directories including \ROMs into a more simple path, like c:\Mame32 instead of c:\Games for Fun\Mame32 Goes Here. Simplify the path.

· On rare occasions malformed or damaged *.dat files [history.dat, mameinfo.dat, cheat.dat] can cause Mame32 to error on startup when it tries to read them. Remove those files individually to check for the one causing the crash.

· With the move to XML based Controller *.cfg files in the .8x era it is necessary to remove the old \Ctrlr\*.ini files and use their new *.cfg counterparts, otherwise Mame32 may launch games then immediately return to the GUI.

· Use the Options • Reset to default menu choice and check all of the items, restart Mame32.

· Final option, manually delete the Mame32ui.ini and the Mame32.ini file in the \ini directory.

Performance Related Topics [incl. sound scratchiness and stuttering]

· Mame32 will start to crackle, scratch, or echo if the game running is too taxing for the processor in use. This can be visually confirmed by turning on FPS display with [F11], and frame skip to auto with [F8]. If the FPS dips anywhere or frame skipping rises anywhere during the game play, the game is maxing out the CPU and sound breakup could occur. If upgrading machine components, provide Mame32 with as much hardware as possible; a faster CPU makes the most difference, followed by video card, and RAM. Suggested Mame32 settings are available in another section of the help file.

· With the advent of Mame32 .62 there are games supported that are not playable at 100% speeds on any commercially available PC. These will run at half speed or lower, they include the Namco System22 3D games like Propcycle and the Seattle.c games like NFL Blitz, SF Rush, etc. These games benefit from turning off auto-frame skipping (Namcos22.c games can have auto-frame skipping on). Benchmarks of some current systems are available at the Mame32QA Benchmark page. Because Mame as an emulator strives for perfect emulation, it does not take the shortcuts or hacks that some other emulators do to make these games run faster. Mame32 contains a folder view (left pane, Custom/AMD64 3700+) that details games that are not currently playable on an AMD64 3700+, there are currently (v.103u3) 160 games out of 6000 that can’t be played at that level. As newer games are added to Mame32 that number will likely increase as raw single CPU power has stalled in the PC industry (Mame32 does not benefit from multi-CPU architectures). The arrival of the Intel Core 2 Duo chips code named Conroe (7/2006) provide the biggest performance jump for Mame in the last five years or so.

· Some of the largest games supported by Mame32 [NeoGeo mainly] can run into the hundreds of megabyte range when they are uncompressed into memory, this combined with Mame32 in memory, plus OS overhead can lead to very slow performance as Windows swaps the information out to disk if there is not enough physical memory. 512M to 1G of memory is recommended for all current games [.107].

· As Mame has continued development, infrastructure and accuracy has improved. As such, the optimization point of the games has shifted so that older games may be slower unthrottled overall than when run on earlier versions. For example, in version .36 Donkey Kong may have run unthrottled at 1900 FPS, but in .77 it runs 1500 FPS. Regardless, modern machines should have no problem running these earlier games at their intended 60 FPS rate.

· Periodically, speed-up hacks in the core code will be removed to provide more accurate emulation of the games. This can result in a drop in FPS for that particular family of games, but can be offset by upgrading the machine Mame is used on.

· AMD’s Cool ‘n Quiet technology on certain setups has been known to cause slowdowns and lags while working in the Mame32 GUI as well as causing some in-game sound and graphic stuttering. Disable the feature in the BIOS to verify.

· On certain system setups (older), DirectDraw may be a faster option than the D3D settings. Choose Ddraw as the video mode in Default Options • Display.

· If seeing a severe slowdown in games that previously didn't, toggle the Use less CPU time if possible menu item in Options • Default Options • Miscellaneous. This happens to laptop users particularly.

· If seeing a severe slowdown or sound desyncs/scratchiness in games that previously didn't, toggle the Use RDTSC timing system item in Options • Default Options • Miscellaneous.

· The Midway games from the mid 1990's like MK2, MK3, NBA Hangtime, etc. will sometimes have their sound ‘desync’ and become scratchy. To help alleviate this, move the auto latency slider to the right to 2/5 or 3/5 in the Options • Default Game Options • Sound tab.

· Certain games in Mame32 perform better on machines that cannot handle them 100% if auto-frame skipping is turned off.

· Certain games if run with D3D settings will perform better if Triplebuffering is set to off. D3D will double buffer if triple is turned off.

· There may be certain sound anomalies in games if the *.cfg files have become damaged, delete all the files in \cfg to remedy.

· If games are running too fast, verify in the Options • Default Game Options menu that the throttle option is turned on, that sync to monitor refresh is turned off and Wait for Vertical Sync is turned off in the Options • Default Game Options • Advanced menu. See Suggested Mame32 settings in the help file.

· Mame32 video performance can be greatly enhanced if running in 32bpp mode by ensuring AGP Fast Writes are toggled on in the motherboard BIOS. The videocard drivers also need to support this setting, the switch for this may be in the advanced tab of the Windows display control panel applet.

· There are some soundcards like early PCI Soundblasters 128 that will cause scratchiness if their hardware acceleration is turned up too high. Move the slider down various steps to troubleshoot in Control Panel • Sound • Advanced Audio.

· There are some video card/video driver combinations that can do hardware stretching, but are slower than running with hardware stretch off. If games are too sluggish with the hw stretch on, toggle it off if possible. Some PCI graphic cards have been seen to have this problem.

· If a large number of icons are being used in the GUI, it is typically quicker to unzip them into the \icons folder instead of leaving them zipped as icons.zip.

Joysticks / Mice / Gamepad / Lightgun Related Topics

· Gamepads and mouse are disabled by default on first Mame32 launch, enable them by toggling their check boxes on in Options • Default Options • Controllers.

· Mame32 relies on DirectX’s DirectInput for joystick support, ensure the game pad is seen as present and active in the game controller control panel: start menu • settings • control panel • game controllers.

· Verify the joystick is seen as ID #1 in the game controllers control panel rather than being assigned a higher number. If using multiple gamepads, ensure each one has its own ID#.

· If seeing keys ‘stick’ while playing, verify that the operating systems’ accessibility options and their shortcut keys are turned off, things like ‘sticky keys’, and verify that Popup killers or other resident programs are not mapped to the sticking key. Also keys can stick on some KVM switch boxes if their hotkey switches are set to [Ctrl] etc.

· Daisy chained gameport Microsoft Sidewinders [original] in Win2k or XP do not work very well. Use USB gamepads instead. Single Sidewinders may also cause odd behavior like ghost button presses.

· Lightguns and mice are treated like mappable joysticks in current versions of Mame. If multiple mice are in use it is necessary to enter the in-game [TAB] menu and map their axes in the ‘Input General’ section.

Settings Topics

· With the advent of version 0.66 Mame32 no longer stores its configuration information in the Windows registry, it stores it in \mame32ui.ini and \ini\mame32.ini. To remove vestiges of the old versions, run regedit.exe and delete the following key: HKEY_CURRENT_USER\Software\Freeware\MAME32.

· If having trouble saving keyboard mappings and configuration, verify that the *.cfg files are not read-only and that a \mame32\cfg directory is present.

· If GUI settings and/or audit results aren’t being maintained, verify the existence of a writeable mame32ui.ini and that the \ini directory is present and writeable [not read only] under the Mame32.exe location.

· If baseline Mame settings like directories and game options are not being maintained, verify the existence of a writeable mame32.ini [not read-only] in the \ini directory and that the \ini directory itself is writeable.

· If experiencing odd behavior with Mame32 saving files or not appearing to clear its settings, verify that there are not multiple shortcuts pointing to different versions, that an .exe is not being used by itself instead of a shortcut to the .exe, or a shortcut pointing to an old version of the .exe. Also verify that there are not multiple versions of Mame32 running in memory as the last one out will save the settings.

· If seeing Mame32 folders being created on the desktop, verify that the .exe itself is not sitting on the desktop and being launched which is not correct. Verify that a short-cut to the original is being properly utilised. This means setting the properties on the shortcut to ‘start in’ the appropriate directory that the original .exe resides in.

· If the in-game [TAB] menu is no longer working or can’t be accessed, it has been mapped to another key; delete the default.cfg file in the \mame32\cfg directory.

· If in-game [TAB] settings need to be completely reset due to bad mappings, delete the default.cfg file in the \mame32\cfg directory.

· To remove the mappings on an individual game from the [TAB] menu, delete its *.cfg file in the \mame32\cfg directory, i.e. dkong.cfg, asteroid.cfg.

· If having trouble mapping keys with the [TAB] menu, verify the game is not paused while mapping.

· If having trouble mapping mouse keys with the [TAB] menu, verify that the lightgun setting is off.

· Mame32 inherits a limit from baseline Mame on the amount of characters that can be used for the ROM paths. If directory settings are not being maintained, pare down the number and names of the directories being added or simply use a single \ROMs directory which Mame32 expects.

· If having trouble getting games to display in the proper orientation [they will not rotate] verify that rotation is set to default, and that there are no video-card specific hot-keys set in Windows’ advanced display settings tab that could impact rotation, ATI and NVIDIA both now include the ability to rotate the Windows screen to portrait orientation.

· If games are appearing sideways regardless of rotation settings, an onboard Intel graphic chipset or similar may be in use. Disable the auto rotation capabilities of the Intel graphic chip.

· Mame32 now supports the core’s –mt switch. This allows multi-threading of the final video blit during games. Dual core chips [X2, C2D, etc.] can take advantage of this feature to offload the work to the second thread and make Mame32 more efficient. Speed gains are seen on the unthrottled GPU bound games like dkong, invaders, etc.

· Mame32 now stores its settings in external *.ini files instead of the registry. If it is necessary to return Mame32 to baseline, simply delete the Mame32ui.ini file and the Mame32.ini file in the \ini directory. The next time Mame32 runs it will recreate those files with the default settings.

GUI Related Topics & Miscellaneous Tips

· Mame32 will read freestanding icons in the \icons directory first, then icons in the icons.zip file.

· If seeing icon palette corruption in the GUI when returning from a full screen game, try increasing the desktop color depth to 24bpp or 32bpp.

· Sometimes icons in large icon view may appear to be missing their white color or have portions transparent, this is the result of having white chosen as the windows desktop window setting in Control Panel / Display. Change the window setting to slightly off-white or another color to return the icons to their appropriate look.

· To toggle the Mame32 UI fullscreen [no Windows titlebar and potentially no toolbar or status bar] and back use the [F11] key.

· The GUI text may disappear from the folder view if the GUI font color chosen is very close to the Windows system background color scheme or if it is a large enough font [or bold] to anti-alias.

· Mame32 no longer supports *.bmp format and may show a blank or empty background if a *.bmp is erroneously renamed and used for bkground.png, or if the bkground directory is marked as read only and Mame32 cannot create the bkground.png file when run.

· To return to a blank gray background in the GUI, delete the bkground.png file in the \mame32\bkground directory.

· Quickly navigate through games in the details view by simply typing the first few letters in the name of the game, the highlight will jump to that game and become more granular as the name is typed out.

· Select a random game with [Ctrl-R].

· Audit an individual game with [Alt-A].

· Various arcade game controller companies produce custom made configuration files for their setups; these *.cfg files need to go in the \mame32\ctrlr folder to be recognized in the Mame32 controllers tab. These files are the responsibility of the controller companies themselves and are not included or endorsed by Mame32, they can typically be found at the companies’ web sites.

· To alleviate screen tearing in some [vertical] scrolling games, it may be necessary to check ‘use triple buffering’ and ‘match game refresh rate’, while setting refresh to ‘auto’. This will set the output monitor’s refresh rate down to 60Hz or the closest the monitor can do to the game’s refresh rate. Some video hardware and driver combos can get this effect by only enabling triple buffering.

· In grouped view, clones are indented regardless of whether their parents are visible; in a non-All Games folder this means that there is not a direct relationship of a clone to the game item above it if that games’ parent is not shown. This behaviour can be changed by the setting Interface Options • No offset for clones missing parent in view.

· The included custom \folders\*.ini files are set to read-only to prevent accidental dragging and dropping of files into them, and will produce and error message if that is attempted. If desired, change the read-only attribute at the OS level.

· Certain items in the GUI may be missing if Mame32 is run on a Win2K/XP box and the user is not an admin or member of the admin group.

· The unavailable folder and the available filter are disabled in Mame32 due to a direct request from Nicola.

· If running AMD’s Cool & Quiet technology or power stepping notebooks, it is recommended that Options • Default Game Options • Misc Use RDTSC timing system be toggled off. This can also be toggled if hearing sound desyncs.

Keyboard Shortcuts

· Type letters of game name to jump directly to its first instance. Alt-1 through Alt-7: Toggle art views. Alt-A: Audit selected game. Alt-B: Toggle art tabs. Alt-D: Toggle folder pane. Alt-P: Toggle screenshot area. Alt-S: Toggle status bar. Alt-T: Toggle toolbar. Alt-U: Audit selected folder. Alt-Enter: Show games’ properties. Ctrl-F: Text filter. Ctrl-R: Choose random game from GUI. Ctrl-Page Up: Scroll up in history.dat text window. Ctrl-Page Down: Scroll down in history.dat text window. F11: Fullscreen mode toggle.

Refresh Restart Instructions

· a. Re-download the binary dist package from Mame32QA. b. Disable running anti-virus packages before extracting the files. c. Double-click the self-extracting archive. d. When prompted, enter “c:\” [no quotes] as the destination folder. e. Launch Mame32 by double-clicking its .exe, allow the audit/refresh to finish, it should go quick as there are no ROMs. f. Put a couple of zipped ROMs from mame.net in the c:\mame32\ROMs directory. g. Launch Mame32, audit the two games individually with [Alt-A]. h. Launch Robby or Gridlee. i. Quit the game, then quit Mame32. j. Add more ROMs and try again.

11/9/2006 11:57:34 PM / john iv