SetDMD is a tool, mainly for virtual pinball cabinet owners, that allows you to easily set your DMD position as well as some other parameters in the DMD for all installed ROMs in the system at once. I found setting up a table design was somewhat of a tedious process having to load each ROM in vpmame "once" to agree you own it, setting up the DMD location, etc. I wrote a utility that does all this for you. It will:
1) Allow you to set a DMD screen location and save it to all tables - at any time.
2) Scan a directory of ROMs and create all the necessary registry entries so the DMD will be in the location you have set up and they will appear "played once" so you don't have to get prompted the first time
3) Gives you other options like changing dmd color, antialiasing etc.
If you change your monitor resolutions, you have to reconfigure your DMD location. This helps you do that quickly. If you reinstall your set up, obviously it helps with that, too.
Recent Changes
v1.0.5 just released 5/5/2014. Fixed bug where blue0 was being ignored on import and export.
v1.0.4 just released 5/3/2014. This adds import colors and export colors. Import colors lets you import *.dmc files which contain DMD color information to colorize your rom files. Export will create .dmc files for all the colorized roms you have created so you can share them with your friends.
v1.0.2 just released 4/24/2014. This adds ability to set ddraw and d3d on or off and also allows for a size-only change in case you're refreshing your monitor layout and don't want to lose any custom color changes.
Download v1.0.5 here.
Usage:
Most the options are obvious. If you don't know what the values do, then read the pinmame docs. These are all values stored in the registry:
General options:
- Anti Alias - Sort of sets the sharpness / blur of the DMD. Default is 50%. I like lower.
- Border - puts a border on the DMD. No idea why you'd want it.
- Title - puts a title on the DMD window. No idea why you'd want it.
- Scanlines - puts CRT style scanlines on the DMD. Probalby also best off. DMD's were plasma and had no scanlines.
- DMD Only - this is a default setting. Without it, the pinmame window pops up. Probably want this checked.
- Intensity - The DMDs work on 3 levels of on and off for each pixel. This sets the intensity value for each. Sorry, but my preview cannot handle changing these values. You would have to change them and run a game.
- Rotation - For cabinets you probably want none. This is the window rotation. Note that this is a registry setting but many table scripts have this hard coded. You would have to also edit those tables and search for the ror or rol = 1 settings and remove them for this tool to have impact on those tables.
- X pos, Y pos, Width, Height - This is the DMD window location and size.
- Change color - If you check this, all the tables will be updated to the color you have selected. This is useful if you want all your tables to be a standard color. For some reason many tables are often in different color DMDs. While these looked neat, they were not authentic, so hence this switch. The checkbox is present so that if you do not want your DMD colors changed you can uncheck this and it will not be impacted.
- Set Default - This will load the default PinMAME color.
- Click to change - you can set the color you want, can be any RGB (red, green, blue) value.
Some of the other buttons at the bottom::
- Load MAME Defaults - Loads into the form from what I can tell were the defaults pinMAME uses.
- Load First MAME ROM Values - If you have already configured your tables, or you just want to first manually configure one table and then use this tool to apply to the rest, then this button is for you. You can click this and it will load the first configured MAME ROM value from the registry into the form. The ROMs are stored in the registry in alphabetical order. You can open the registry if you want and find the first ROM or maybe look in the ROMs directory on your disk.
- Save As Default - Should save the current values in the form as a default that is loaded next time you load the app.
- Install ROMS and Update - This will scan for ROM files in your ROM path that you specify (in the next box that pops up) and will add a registry entry for each of these. It will set the default values you have in the form to each of these added ROMs. It will also mark each game as "Played" so you do not get that super annoying box asking if you legally have the right to run the ROM. I assume that if you load this tool, you have that legal right to run the ROM. This will not update all other ROMs with current settings. Only new ones that it scans and finds.
- Update All Installed ROMs - You should use this each time you want to make a change across all your ROMs. This is sort of the "save all" button.
Usage Examples:
I just added 3 new tables. My cabinet was already configured. I put the ROMs in the ROM path already. Steps: Load the tool, click "install roms and update", close the tool.
I have a new table I need to configure my ROMs. Steps: Load the tool and click "install ROMS and update". This installs all the ROMs. Now set the settings on how you want them to look and be sized etc. Then click "update all installed roms". Close the tool and play.
Possible issues:
- This tool does change your registry. You may want to back up (export) your registry first by loading regedit, navigating to HKCU/Software/FreeWare and exporting that key to a file. If anything goes wrong, you can always restore that key and be back to where you were.
- There may be slight issues with the DMD positioning when compared to the preview window. If this occurs for you, then you should set up your first ROM the way you normally would using pinMAME. Then load first MAME ROM values and save that as default. Then you can use that for the future.
- My preview window only shows a box. It doesn't truely rotate. I don't use rotation. I haven't tested if the rotate left and rotate right are actually the correct X and Y coordinates. You may need to follow the hint above and set up the first MAME ROM first.
- This tool changes your DMD settings in the registry. Some virtual pinball table scripts hard code rotation, position, or size in the script. There aren't that many tables that do this, but a lot of JPSALAS tables, for example, do hard code rotate left. You will need to edit those scripts and remove those lines before running this tool. If you don't the script will overwrite the settings for that table. You could always relaunch and run the tool after fixing the script, however.
If you need support, you may contact me here. Make sure your subject starts with "SetDMD:" otherwise my mail filter may filter your message out. Due to my high volume iPhone site, I get a lot of emails.