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 page

Since DOSMAME was born, life has moved on and I sold my DOS arcade machine

 

Now it's time for another machine smiley

 

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
There are however couple of disadvantages to running 64 bit;
  • 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)
Since MAME is open source, we have a choice of operating systems
  • 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

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
Services
  • 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

Block Diagram

Last updated on 09/23/2013, 19:00:13.

Blog

DOS MAME Retired
9/23/2013

Today I'm officially retiring my DOS MAME pages. As of writing, MAME is at version ... Read More

x64MAME - Windows 7 Config
12/7/2012

Windows 7 Config (WIP) Set a static IP address with NO gateway or DNS to prevent ... Read More

x64MAME - All Change
12/7/2012

I've been having some reliability issues with Windows XP x64 - lock outs & ... Read More

More Blog Entries