Mame32 Troubleshooting [& Tips]

Mame32 is a six year old program; 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 easily, toggling off the Enable version mismatch warning check on the Options • Interface Options menu. 

Mame32 is now an integrated GUI front end which passes user input from the GUI to the Mame[w] engine/core.  Thus, any problems that occur in the Mame[w] engine will be inherited by Mame32.  Prior to reporting problems against Mame32, verify that the issue is not a known, core defect in Mame[w].  The Mametesters.com site is designed to track and report bugs in the baseline Mame[w] 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 or search their message board.  The current list of known Mame32 specific issues and defect tracking is available at Mame32QA

 

ROMs Related Topics

1.       If receiving missing ROM 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.

2.       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.

3.       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.

4.       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 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 the 10 BIOS files in every NeoGeo game’s zip file. DECO cassette, CVS, PGM, and Playchoice are also 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 most 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.

5.       Games that support .chd [compressed hard drive] images [Max Force, Killer Instinct I & II, Area 51, Vicious Circle, and War Gods] have to have their ROMs and .chd files in a specific directory structure. The single large .chd file need to go in a directory named for the game one layer beneath the ROMs, e.g. for Area 51, mame32\ROMs\area51.zip [for the small zipped ROMs], and mame32\ROMs\area51\area51.chd [for the large single freestanding .chd file].  Additionally, to play successfully, a directory called mame32\diff needs to be present [do not put the *.chd file in the \diff directory]. Also, do not zip the .chd file, it remains freestanding.

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

7.       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.

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

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

Crash Related Topics

10.   Delete the .hi, .cfg, or .nv files for the game that's crashing.

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

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

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

14.   The game’s entry in the external database, hiscore.dat, may be causing the crash, remove the entry by editing hiscore.dat with a text editor.

15.   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.

16.   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.

17.   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. \games\mame32.

18.   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 cheapo Playstation, SNES, U64 converters.

19.   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.

20.   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.

21.   Some anti-virus packages will slow down navigation within the Mame32 directory or report spurious messages about Mame32.exe because of its UPX .exe compression method.  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.

22.   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.

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

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

Performance Related Topics [incl. sound scratchiness and stuttering]

25.   Mame32 will start to crackle, scratch, or echo if the game running is too taxing for the processor [Taito F3, Midway Wolf Unit, CPS2 games require a lot of horsepower].  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. The blitter effects [partial scanlines, RGB effects] will impose further strain on the CPU, upwards of 50%.  If upgrading machine components, provide Mame32 with as much hardware as possible; a faster CPU makes the most difference, followed by video card [for new D3D effects], and RAM.  Suggested Mame32 settings are available on the Mame32QA site.

26.   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 Midway games like Cruis’n USA, Cruis’n World, and War Gods.  Eventually PC CPUs will advance to the point they can be run, it is estimated a P4 4Ghz or AMD 3700+ would be able to handle the games.  These games benefit from turning off auto-frame skipping.  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 other emulators do to make these games run faster.

27.   As a general rule, the higher the resolution of the original game, the more CPU power is required to emulate it.  Performance can be increased on these games by ensuring that Mame32 is not using any of the RGB/Scanline effects in Options • Default Game Options • Display.  Set the effects to 'none' and uncheck scanlines.  This will allow Mame32 to run these games at the fastest speed. [additionally, the higher the resolution of the original game, the less likely it is that the RGB/Scanline effects will even be seen, so it's recommended to turn them off.]

28.   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.  256M or 512M is recommended for all current games [.58].

29.   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.

30.   If seeing a severe slowdown in games that previously didn't, toggle the Use RDTSC timing system item in Options • Default Options • Miscellaneous.

31.   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.

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

33.   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.

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

35.   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. 

36.   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, some recent ATI card drivers do not.

37.   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.

38.   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.

Joysticks / Mice / Gamepad / Lightgun Related Topics

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

40.   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.

41.   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#.

42.   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.

Settings Topics

43.   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.

44.   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.

45.   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.

46.   If baseline Mame[w] 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.

47.   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.

48.   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.

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

50.   It is possible to run multiple versions of Mame32 on the same machine, in the event an older version plays a game better than a newer one.  In order to make them co-exist the best method is to launch each in turn and verify that the Enable version mismatch warning option is unchecked in the Options • Interface Options menu.  This must be toggled off in both versions.

51.   Mame32 inherits a limit from baseline Mame[w] 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.

52.   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

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

54.   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.

55.   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.

56.   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.

57.   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.

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

59.   The screenshot area was grayed out in Windows XP because of the inclusion of a preliminary file in Mame32 version .54 called Mame32 manifest.  Remove that file to view the screenshot area artwork again.

60.   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.

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

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

63.   If Stretch using hardware is grayed out in Options • Default Options • Advanced, verify the desktop is set to 16bpp or 32bpp and not 24bpp.  If it is still grayed out, the video card does not support the hardware stretch capabilities Mame32 needs.  Mame32’s Direct3D toggle may be used instead depending on the video hardware and driver.

64.   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.

65.   Vector games like asteroids can look and work better if hardware stretch is disabled.  Increase the vector intensity to 3, and use a set resolution like 1024x768x32 instead of auto.

66.   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. 

67.   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.

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

69.   If when attempting to play a game the monitor displays a message that the signal is out of frequency or the monitor goes into sleep mode or there weird ‘multiple’ images, Mame32 is trying to use an auto video mode that the monitor doesn't support.  Use a set resolution in the Options • Default Options • Display menu, or uncheck the Switch resolution to fit, and uncheck Switch color depths to fit.

11/3/2003 4:27:02 PM / john iv