Skip to content


Repository files navigation


v3.0 Licensed under The MIT License

Build status Build Status Downloads Gitter


Mamesaver is a Windows screen saver that runs MAME with a random game for specified intervals of time.


  • Microsoft .NET 4.6
  • A working installation of MAME. I used 0.200 but older ones will probably work too.
  • Some working ROMS which can run in MAME successfully.
  • Each ROM that is installed should have been run at least once to remove the initial disclaimer screen as this is the last thing you want to see when the screen saver is running.


Install using the msi installer, or just copy the Mamesaver.scr file to your WINDOWS\SYSTEM32 or WINNT\SYSTEM32 directory.


Right-click on your desktop and choose Properties. Once the Display Properties dialog has opened navigate to the Screen Saver tab. There you need to choose Mamesaver as your screen saver.


The first time you choose Mamesaver as your screen saver, you will need to configure it to tell it the right path to MAME and to rebuild your game list. To do this, you need to click on the Settings button on the screen saver dialog (Display Properties dialog) as mentioned in USAGE.

You have a couple of choices for settings on Mamesaver. The most important setting in the beginning is the MAME Path on the General tab. Once this is set you can navigate to the Game List tab and click on Rebuild List. Once this has been run, please select which games you want Mamesaver to run. When you have finished, you may click the OK button.

Other than those main settings, you can also:

  • Set the interval at which the game is changed for another; minimum 2 minutes, maximum 1440 minutes (24 hours)
  • Set the command line options which are sent to MAME. I recommend leaving the -skip_gameinfo option.
  • Enable and configure the splash screen with game information
  • Enable and configure in-game game information
  • Choose which display to start MAME on
  • Enable streaming of MAME to other displays. For optimal streaming quality, MAME should start on the highest resolution monitor
  • Include games with imperfect emulation
  • Enable in-game hotkeys


Once the game list has been built, it can be filtered by year, manufacturer, category, subcategory and rotation. The purpose of filtering is to increase manageability of game selection, particularly for large collections. Filters are applied in an additive fashion, similar to Excel.

Once filtering has been applied, the select all and select none controls via the game list header are applied to the filtered set only. At any stage, the filtered game list view can be toggled between displaying all games and selected games.


When enabled, the following hotkeys are enabled in-game:

  • show previous game
  • show next game
  • enter exit screensaver and play game
  • del deselect game


  • Including games with imperfect emulation should only be enabled for custom builds of MAME. Unless this is enabled, the game list will only contain games which have passed the MAME ROM audit and have drivers with a status of good. This means that games, which might be partially working but maybe have no sound or some other part of the driver is not working, will not be displayed in this list. The main reason for this is that MAME shows a dialog which expects user input at the beginning of the game, which is the exact opposite of what you would want a screen saver to do.


If enabled, debug logging is written to %TEMP%\MameSaver\Logs. This can be useful to diagnose why Mamesaver may not be running as it should.


Mladen Mihajlović

Matt Painter

Andy van Stokkum


The source code if provided as-is under the MIT Licence. If you have any suggestions and comments, please feel free to create issues here on github.


Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!








No packages published

Contributors 4