I've got a grasp on the optimal way of setting this up now, so will put together some instructions below (prior to wikifying it). Note - I'll just be following the recommended setup (for which the documentation is pretty tough to put together) with Windows as a base. The GroovyArcade project is self contained and has it's own support forum.
This is for using Groovy stuff on a real CRT. For an LCD, you need to be looking at HLSL settings.
Hardware requirements
- A decent PC.
- An ATI card supported by CRT_Emudriver - suggest picking up one of the recommended chipsets from that link. Older cards with VGA only rather than DVI are preferred.
- A method of interfacing your controls/sound/monitor to the PC. If using a JAMMA cab, I prefer the JammASD as there's no messing around with wiring up an amplifier in the cab, but it does mean your PC has to have a PS/2 connector available.
- A monitor capable of 31KHz (VGA) input. LCD or CRT, doesn't matter - you can't set up Windows blind.
- Keyboard and mouse with the correct connections for the PC.
- Windows XP. Prefer 64bit if your PC can handle it, but regular is fine.
- MAME or UME. We want the baseline installation as contains all the support files.
- GroovyMAME or GroovyUME.
- 7-Zip. You'll need this to decompress Groovy. Other decompressors are available, but this one is my preference.
- HISCORE.DAT. Not essential, but nice to have since Groovy has the patch to support it built in.
- Cheats. Also not essential, but supported so we'll have them please. Get the latest XML Cheat Collection file. Handily includes rapid fire hacks for many games, which is nice.
- ROMs. Wherever you get them from you'll want to make sure they're valid, so grab clrmamepro to do this with.
- This guide assumes a MAME installation. For a UME installation, substitute anything that says MAME with UME.
- Read the manual for whatever cab/monitor interface you choose to use! The decent bits of kit all have protection circuits built in to stop you sending signals to the monitor that it may not like.
- Despite the protection circuits, things may go wrong. It's incredibly unlikely that anything will go awry if you don't deviate from the instructions, but the chance is always there - this isn't my responsibility nor any of the software authors!
- Set up the PC connected to the monitor, keyboard and mouse on your desk/floor/shelf/bed/sofa/kitchen unit/pile of other PCs/washing basket/turntable cover (delete as appropriate, I've used all these in the past).
- Install Windows XP. Plenty of guides around on the web if you're not familiar with the process. This one is pretty good. Whether you choose to partition a whole drive, multiple partitions, or install multiple drives is your choice - we'll just assume you end up having Windows on C: and C: is where everything else will go as well.
- Enable file extensions. Not essential, but worth doing if you're not sure what they are in general. Knowledge is power and it'll stop you making mistakes later on. You do this by opening Windows Explorer, opening the Tools menu and clicking on Folder Options. Click on the View tab and look for Hide extensions for known file types. Untick this, and click OK out. Close Explorer.
- Let Windows go through all its automatic updates. This may take quite some time and many reboots, depending on what patch level the initial installation media was at. You can probably skip this step if you really want to, however I recommend you do as sometimes it's required for the next step. If you don't do this, you must install DirectX manually!
- Using Windows Update, run a custom install and install drivers found for any hardware except the graphics card.
- Install 7-Zip. This is just a matter of double clicking on the EXE or MSI file and clicking next for everything. Once it's installed, run 7-Zip File Manager from the start menu and click on the Tools menu. It'll show the System tab. Click Select All, then OK and close the program.
- Install drivers for all the hardware not directly supported by Windows or the Updates installed earlier, but still avoid installing anything for the graphics card.
- Extract MAME into the folder C:\MAME. You can do this by double clicking on the MAME downloaded EXE and entering the folder name, or with 7-Zip. The end result should have a C:\MAME folder with folders inside called ARTWORK, CFG, ROMS, SAMPLES amongst others, and an executable with the MAME logo.
- Extract GroovyMAME into C:\MAME. It'll have a fairly long name - not just GROOVYMAME.EXE. This is okay, but I suggest renaming it to simply GROOVYMAME.EXE or GROOVYMAME64.EXE depending on your installation.
- Extract the HISCORE.DAT file from its archive into C:\MAME\HI. If C:\MAME\HI doesn't exist, make the folder.
- Extract the CHEAT.7Z file from its archive into C:\MAME.
- Install clrmamepro. Accept all the defaults during installation.
- CRT_Emudriver
- Extract CRT_Emudriver into C:\VMMAKER. Extract any VMMaker updates into the same folder, overwriting existing files. Run C:\VMMAKER\DRIVER\SETUP.EXE, click Next to everything, Finish. Do not reboot!
- Open C:\VMMAKER\VMMAKER.INI with Notepad.
- Where MameExe is specified, change "\emu\mame\mame.exe" to read "C:\MAME\GROOVYMAME64.EXE".
- Change "MonitorHorizontal" from 1 to 0 if your monitor is vertical.
- Look for Monitortype. Change "CUSTOM" to one of the following:
- "GENERIC" if you have a 15KHz monitor.
- "EGA" if you have a 24KHz monitor.
- Leave it on "CUSTOM" if you have a 31KHz monitor and make a few more changes:
- monitor_specs0 31400-31500, 49.50-65.00, 0.940, 3.770, 1.890, 0.349, 0.064, 1.017, 0, 0, 512, 800
- XresMin_XML = 512
- YresMin_XML = 400
- Save and close the INI file.
- Run C:\VMMAKER\VMMAKER.EXE.
- Reboot.
clrmamepro, AKA getting your ROMs into shape.
Note: I will describe the simplest possible setup for MAME, and explain how UME works in its most basic way. This topic can get really deep and a lot of it is personal preference. There are plenty of guides for clrmamepro available, so do some more reading if you want any detail on anything not covered here.
- Run clrmamepro. The first time it runs it'll bring up a blank Profiler window. Click Create....
- Use the ... button to select the GROOVYMAME executable you extracted earlier. The filename will be something like C:\MAME\GROOVYMAME64.EXE. Set the description to MAME and the emulator to MAME (the emulator must be MAME even if you're using UME). Click Create Profile, then OK.
- Select the MAME profile and click Load / Update. clrmamepro will ask you to update it's database. Click OK. You never need to create another profile - any time you update the GROOVYMAME executable clrmamepro will recognise that it's changed and ask you to update automatically. You'll be asked about Software Lists - only import them if you are using UME, they are worthless for MAME. Click OK TO ALL or Yes To All on any subsequent prompts.
- Click Settings, then Add... and choose the C:\MAME\ROMS folder. Click OK to get back to the main menu.
- Click Rebuilder. Click the ... button next to the Source field, and select the folder that contains the ROMS carefully dumped from your own PCBs. The Destination should be set to the C:\MAME\ROMS folder automatically. Click Rebuild.... Once it's finished click OK on the statistics window and close clrmamepro.
- Click Start, then Run, then type "C:\MAME\GROOVYMAME64.EXE -cc". This creates C:\MAME\MAME.INI, the central configuration file for MAME. For UME, it creates UME.INI.
- Open this INI file with Notepad.
- Find the line stating monitor generic_15. Change it to:
- monitor arcade_15 if you're using a 15KHz monitor.
- monitor arcade_25 for a 24KHz monitor.
- monitor arcade_31 and effect scanlines.png for a 31KHz monitor.
- If your monitor is rotated, find the line orientation horizontal and change it to orientation vertical
- frame_delay 1 drops input lag to a safe minimum on Direct3D.
- Make the following settings for elegant behaviour:
- skip_gameinfo 1. Bypasses the game information a.k.a move the joystick left and right screen.
- disable_nagscreen_patch 0. More screen skipping.
- disable_loading_patch 0. Another screen skip.
- cheat 1. If you want to enable use of the cheat file.
- gamma 0.7. Standard MAME gamma setting is too high.
- Save and close the INI file.
- Switch on your cabinet/monitor. Wait 15-30 minutes for the monitor to warm up. Play some games or something.
- Run C:\VMMAKER\ARCADEOSD.EXE
- Enter the Video modes menu.
- Scroll down the list of modes until you get to the bottom. Highlight the last (tallest and widest) mode that has a type custom, and a Vfrq refresh rate ending in p (progressive rather than interlace) and hit enter to switch to it.
- Adjust the horizontal and vertical size and position of the image using the monitor's controls. Don't overscan it at all, keep the whole image displayed.
- When happy, escape back to the modes list and try some other custom ones. They should all display at a good size and be centred.
- Test the "standard" mode(s) for your monitor - 320x240 / 512x384 / 640x480. They may need some minor tweaks to the size and positioning. When adjusting, switch back to the largest mode and make sure it displays fine as well.
- Custom modes that aren't 60p might display too large on the vertical. There's nothing you can do about it short of adjusting the monitor vertical size every time.
- Once happy with the standard and largest modes, epoxy the hsize, hpos, and vpos pots on your monitor.