x64 MAME Cabinet - Rebuild Checklist
Time to rebuild the cab;
- Install Windows 7 x64
- Software
- Install Panda Cloud AV
- Install VNC
- System
- Install missing drivers
- Configure network
- Activate
- UAC off
- Screen Resolution 1024 x 768 x 60hz
- Autologon - netplwiz
- Firewall off
- Power Management - Off
- Set Volume 100%
- Set Sounds to No Sounds
- System Protection - Turn Off
- System - Startup & Recovery - Turn off
- System - Set to maximun performance
- System - Turn of Remote Assistance & Remote Desktop
- Set Desktop background to Black
- Set mouse pointers to Windows Black theme
- Disable Program Compatibility Assistant
- [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\AppCompat]
- "DisablePCA"=dword:00000001
- Disable Last Access Time
- fsutil behavior set disablelastaccess 1
- Disable Hybernation
- powercfg.exe /hibernate off
- Turn off Indexing
- Control Panel > Indexing Options
- Disable Offline Files
- Control Panel - Sync Center
- Programs & Features to Remove
- Tablet PC Components
- Windows DVD Maker
- Windows Media Center
- Windows Media Player
- Windows Gadget Platform
- All Print and Document Services
- Services to disable
- Distributed Link Tracking Client
- Security Center
- Windows Update
- Software to Install
- Resource Hacker
x64 MAME Cabinet - a new project :-D
Please take time to read the site disclaimer before you proceed
Hi, and welcome to my latest pet project....a 64bit M.A.M.E. arcade cabinet pageSince DOSMAME was born, life has moved on and I sold my DOS arcade machine
Now it's time for another machine
So why not simply re-create the tried and tested MS-DOS based arcade machine that was so successful?
A few reasons to go 64bit;
- MS-DOS MAME. source code hasn't been available for some time. This means I'm unable to compile MAME with the latest code. And as my ROM set is up to date, this will cause problems with loading certain games
- 64bit operating systems can utilize much more RAM due to the expanded memory space it can address
- MAME. running on a 64bit operating system should run more modern games quicker
- I like a change/challenge :-D
- A bulky operating system is required (compared with MS-DOS)
- Slower initial boot times from cold(compared with MS-DOS)
- Cost - depending on with operating system you choose
- Driver availability (XP x64)
- Linux - complicated to use for the inexperienced user, but free (being a Yorkshireman, I like free)
- Windows - easier to setup for the novice, but expensive
My preferred choice is Linux. But I'll be starting with Windows XP 64bit, purely because I have the license. I also have no experience with connecting a 15khz standard resolution arcade monitor with J-PAC with Linux.
Once the cabinet hardware is tested and up and running, I plan to tear it all down and convert it to Crunchbang Linux x64
The Final Configuration
OK, after much testing of Windows XP, Windows 7, Ubuntu x86_64 and Fedora 14 x86_64, my final configuration choice is a compromize between functionality, ease of configuration and maintenance because;
- XP is super easy to configure and troubleshoot
- It's reasonably quick to boot - how I'm going to quantify this I don't know
- It runs the display resolutions I need for MAME on a fixed frequency arcade monitor
- I can get MameWah! to run as the desktop shell
- I can hide the boot image, mouse cursor and desktop
- Remote desktop and file sharing works well
- I can run all the great MAME tools out there right on the cabinet VIA RDP, like the mame res tool, clrmame pro etc.
- Windows XP services can be stripped out with minimal services running
- MAME runs very well with no tearing or sound issues on my arcade monitor with CabMAME64
- Vertical games display ok with a slight tweek with the vertical size pot
Motherboard - ASUS P5W
- Intel® Quad-core CPU Ready
- LGA775 socket for Intel Core2 Duo, Core2 Extreme
- Intel 975X +Intel ICH7R 1333/1066/800MHz
- Dual-channel DDR2 800/667/ 533 max 8GB
- 2 x PCI-E x 16 / 2 x PCI-E x 1/ 3 x PCI
- Support ATI CrossFire graphics cards
- Intel Matrix Storage technology
- Dual Gigabit LAN
- Dolby Master Studio technology
- ASUS EZ-Backup
CPU - Intel Q6700 Quad Core
- Launch Date Q3'07
- Processor Number Q6700
- 4 Cores
- 4 Threads
- 2.66 GHz Clock Speed
- 8 MB L2 Cache
- Bus/Core Ratio 10
- FSB Speed 1066 MHz
- FSB Parity No
- Instruction Set 64-bit
- Embedded Options Available No
- Supplemental SKU No
- Lithography 65 nm
- Max TDP 105 W
- VID Voltage Range 0.8500V-1.5V
Video Card - Saphire ATI HD4350 512Mb PCI-e
- 512MB of DDR2 memory
- DirectX® 10.1 & PCI Express® 2.0 support
- 80 stream processing units
- 12x custom filter anti-aliasing (CFAA) and high performance anisotropic filtering
- Dual mode ATI CrossFireX™ technology multi-GPU support for highly scalable performance
- ATI Avivo™ HD video and display technology
- Unified Video Decoder 2 (UVD 2) for Blu-ray™ and HD Video
- DVD Upscaling & ? Dynamic power management with ATI PowerPlay™ technology
- Built-in HDMI with 7.1 surround sound support
Donor Arcade Cabinet
- 1989 Capcom Final Fight
- 4 extra buttons per player
- Standard JAMMA interface
Arcade Monitor - Wells Gardner 19W7602 (K7000)
Mainboard | P447 |
CRT | 19 inch diagonal size 400 pixels x 240 lines resolution |
Input | RGB Analog, 1v to 5v 4.7kohm peak-to-peak |
Video Charaterisitcs |
Bandwidth (-3db): 12MHz typical Rise Time: <50 nano seconds |
Vertical Scan |
Frequency 47 Hz to 63 Hz +/-5% |
Horizontal Scan | Width - 40 usec to 50 usec Frequency - 15.1 khz to 16.8 khz +/-5% |
Power | 120VAC 50-60Hz, 85W max |
PC to Arcade Cabinet Interface
- Ultimarc J-PAC - this inteface performs 3 essentinal tasks;
- Prevents the PC graphics card from damaging the arcade monitor with high refresh frequencies normally used on a PC monitor
- Amplifies the standard VGA graphics card output to a voltage the arcade monitor can use
- Interfaces the joysticks, buttons, coin doors and audio circuits to the PC
Audio
- Realistic Model 300 amplifier (thanks Freecycle)
Hard Disk
- 500Gb SATA disk partitioned as 20Gb Primary C: + 480Gb Primary M:
- M:\ shared as \\arcade-machine\Mame
OS
- Windows XP 64 Bit
- XP x64 SP2
- Catalyst 10.11 Radeon drivers
- ASUS motherboard drivers
Software
- Instant Sheller - used to modify the shell, boot screen and mouse - http://www.gameex.net/Community/InstantSheller/tabid/73/Default.aspx
- Soft15Khz - used to modify the video timings to display windows on my 15Khz arcade monitor - http://community.arcadeinfo.de/showthread.php?t=9366
- Quckres - allows windows to display sizes not allowed in the usual 'Display Settings' panel - http://www.dougknox.com/xp/utils/xp_quickres.htm
- MameWah! - MAME game menu - http://mamewah.mameworld.info/
- Cabmame64 - a version of MAME which has some arcade monitor tweeks - http://community.arcadeinfo.de/showthread.php?t=9555
- MAME Compile tools - MAME compilation tools - http://mamedev.org/tools/
Software tweeks and settings
If you plan to kill the power to your arcade machine with a power switch, you must disable the disk policy 'Enable write caching on the disk' to prevent any disk writes getting corrupt
- Windows XP shell set to MameWah!
- Mouse set to a 1px cursor
- No boot gui
- No desktop background and set to black
- No system sounds
- No wireless for security reasons since I'll be disabling the firewall and not installing any AV
- No printing
- No themes
- Share files so I can update it
- Remote desktop for troubleshooting
- Ethernet with static IP & NO default gateway
- No internet
- No anti-virus
- No windows updates
After a default install and sorting out all the drivers
Add/remove programs, remove 'Windows Components'
- Accesories
- Internet Explorer
- MSN Explorer
- Networking Services
- 'Internet Gateway Device Discovery and Control Client'
- Outlook Express
- Windows Media Player
- Windows Messenger
Power manager
- Turn off screen saver
- Disable power management
System properties
- Adjust for best performance
- Turn off system restore
- Disable Automatic Updates
Startup and recovery
- Uncheck all items
Remote
- Uncheck allow remote assistance invitations to be sent from this computer
- Check allow users to connect remotely to this computer
- Add user
- GREEN is set to MANUAL
- RED is DISABLE
X | Application Experience Lookup Service | sc config "AeLookupSvc" start= disabled | |
X | Application Layer Gateway Service | sc config "ALG" start= disabled | |
X | Automatic Updates | sc config "wuauserv" start= disabled | |
M | Computer Browser | sc config "Browser" start= demand | |
M | DHCP Client | sc config "Dhcp" start= demand | I use a static IP configuration |
M | Distributed Link Tracking Client | sc config "TrkWks" start= demand | |
M | DNS Client | sc config "Dnscache" start= demand | No DNS lookups required |
X | Error Reporting Service | sc config "ErSvc" start= disabled | Disable once your system is up and running |
X | Event Log | sc config "Eventlog" start= disabled | Disable once your system is up and running |
X | Help and Support | sc config "Helpsvc" start= disabled | |
X | Network Location Awareness (NLA) | sc config "Nla" start= disabled | |
X | Performance Logs and Alerts | sc config "SysmonLog" start= disabled | |
X | Print Spooler | sc config "Spooler" start= disabled | |
M | Protected Storage | sc config "ProtectedStorage" start= demand | |
X | Remote Registry | sc config "RemoteRegistry" start= disabled | |
M | Secondary Logon | sc config "seclogon" start= demand | |
X | Security Center | sc config "wscsvc" start= disabled | MAKE SURE YOU HAVE NO INTERNET ACCESS |
X | SSDP Discovery Service | sc config "SSDPSRV" start= disabled | |
X | System Restore Service | sc config "srservice" start= disabled | |
M | Task Scheduler | sc config "Schedule" start= demand | |
M | TCP/IP NetBIOS Helper | sc config "LmHosts" start= demand | |
X | Themes | sc config "Themes" start= disabled | |
X | Universal Plug and Play Device Host | sc config "upnphost" start= disabled | |
M | WebClient | sc config "WebClient" start= demand | |
X | Windows Firewall/Internet Connection Sharing (ICS) | sc config "SharedAccess" start= disabled | MAKE SURE YOU HAVE NO INTERNET ACCESS |
X | Windows Image Acquisition (WIA) | sc config "stisvc" start= disabled | |
M | Windows Management Instrumentation | sc config "Winmgmt" start= demand | |
X | Windows Time | sc config "W32Time" start= disabled | |
X | Wireless Configuration | sc config "WZCSVC" start= disabled | I have no wireless card installed |
MAME
Compiling MAME to match your specific CPU type can provide with some performance increases by optimizing the MAME binary, BUT it can introduce bugs too!
To compile MAME with an optimization, simply add the coresponding switch to the make command
make <CPU core option> <Advanced Processor Optimization Options>
<CPU core option> | If you have a dual-core or quad-core processor, you can use the option -j3 or -j5, respectively, to significantly decrease your compiling time. |
Advanced Processor Optimization Options
As of MAME 0.121u2, architecture flags for each CPU are no longer included in the stock makefile. You can specify them in an environment variable or command-line option to make called ARCHOPTS. Here are some useful options for a variety of IBM, Motorola and Intel CPUs. If you can think of any other options that would be useful to publish, post them in a reply to this thread.
There are two classes of options: "Maximum Tune" and "Just the Features".
"Maximum Tune" will tell the compiler about the features of the CPU, and also cause it to try to schedule instructions in such a way that the CPU pipelines are kept full. The CPUs that benefit most from this are the Intel Pentium 4, Motorola G4 7450 and IBM Cell (I know, there's no "Maximum Tune" option for this CPU yet). However, using "Maximum Tune" optimisation for x86 and x64 chips tends to bring out the bugs in GCC, so it isn't recommended for newer Intel CPUs. (Using "Maximum Tune" for PowerPC CPUs doesn't bring out the bugs - IBM and Apple have done a lot of work in this area.)
"Just the Features" will tell the compiler about optional features the CPU may have (additional FPU capabilities, vector unit, 64-bit, etc.) but won't tell it to perform scheduling optimisation. This may not be quite as fast, but it tends to be more reliable. These options are recommended for confirming bugs.
"Maximum Tune" options (i.e. architecture-specific optimisation and instruction scheduling tuning):
IBM G3 (750):
ARCHOPTS=-mcpu=G3
Motorola G4 (earlier - 7400, 7410, 7447, etc.):
ARCHOPTS=-mcpu=7400
Motorola G4 (later - 7450, etc.)
ARCHOPTS=-mcpu=7450
IBM G5 (970):
ARCHOPTS=-mcpu=G5
Intel Pentium 4 (earlier, no SSE3):
ARCHOPTS=-march=pentium4
Intel Pentium 4 (later, with SSE3):
ARCHOPTS=-march=prescott
Intel Pentium 4 (later, with 64-bit capability):
ARCHOPTS=-march=nocona
Intel Pentium M, Intel Core:
ARCHOPTS=-march=pentium-m
Intel Core 2:
ARCHOPTS="-march=pentium-m -msse3"
"Just the Features" options (take advantage of CPU features, but don't do fancy scheduling tricks):
IBM G3 (750):
ARCHOPTS="-mpowerpc -mpowerpc-gfxopt"
Motorola G4 (7400, 7410, 7447, 7450, etc.):
ARCHOPTS="-mpowerpc -mpowerpc-gfxopt -maltivec"
IBM G5 (970), IBM Cell (PlayStation 3), IBM POWER5:
ARCHOPTS="-mpowerpc64 -mpowerpc-gfxopt -mpowerpc-gpopt -maltivec"
Intel Pentium 4 (earlier, no SSE3), Intel Pentium M, Intel Core:
ARCHOPTS=-msse2
Intel Pentium 4 (later, with SSE3), Intel Core 2:
ARCHOPTS=-msse3