| Main > Main Forum |
| Building A Clean Emulation Cabinet Interface |
| (1/7) > >> |
| siddhartha:
BUILDING A CLEAN EMULATION CABINET INTERFACE I am a purist. When I see keyboards, mice, and pullout trays built into a cabinet for either machine maintenance or interface operation, I am a bit unnerved. Power buttons are also disappointing, or worse, opening up the cabinet to start the computer. All of these are unnecessary. Using free utilities and minimal hardware purchases, you can have a seamless arcade interface – your friends will not even know there is a computer in there. This article is divided into the following sections: I – POWERING UP AND HARDWARE II – WINDOWS XP SYSTEM CHANGES III – REMOTE CONNECTIVITY IV – THE EMULATOR V – THE LOADER/FRONTEND For each section, there is a list of mentioned hardware purchases and software downloads. I – POWERING UP AND HARDWARE Recommendations: * Motherboard with power-on by keyboard feature [< $120] * Smart Strip [$30] * I-PAC or equivalent [$40] When I was looking at cabinets for an emulator conversion, an arcade repair techie showed me a beast of a machine. He was quick to point out that the front kickboard swung out. “What would I need that for?” was my confused response. “Well,” he replied, “how else are you going to turn on the computer?” Coming from a techie, I expected a bit more. Even a button on the side of the cabinet would be better than diving into the guts each time you wanted to play Street Fighter. The solution: a good BIOS. My motherboard is a modest ASUS A8V-MX. Although unassuming, its BIOS has a very useful function: Power-On by Password (actually inappropriately defined in the manual as Wake-Up Key). When the computer is powered off by software (S5), entry of a specified sequence of keystrokes will turn on the computer. Note: Your power supply (and all modern ones do) needs to supply at least 1A on the +5VSB lead. You may also need to set a jumper on your motherboard (e.g. KBPWR for the A8V-MX). Check the motherboard manual before purchase for these considerations. With an I-PAC or similar interface controller, your pushbutton presses are converted into keystrokes. If you set your BIOS power-on password to a combination of pushbutton strokes, you need only your control panel to power on the computer! My power-on sequence is as follows (Street Fighter button configuration): P2-Strong Kick, P2-Strong Punch, P1-Start. A Smart Strip from BITS Ltd. combined with this is very cool. Not only will a pushbutton combination start your computer, if your computer is the ‘control’ device on the Smart Strip power bar, it will also power on your monitor, speakers, lights, etc. Getting a motherboard with a simple power-on key/password and a $30 Smart Strip will save you from having to wire up a power button, and is also the cleanest possible way to startup your cabinet. II – WINDOWS XP SYSTEM CHANGES Recommendations: * TweakUI [FREE] There has been a lot of experimentation with MAMEd Windows loading screens. I find the transitional resolution switches annoying, as is the lack of anything above 16-bit colour. I would rather disable the loading screen altogether. This can be accomplished by going to Start > Run > msconfig.exe. Under the BOOT.INI tab, check the /NOGUIBOOT option. You will now have a black screen while Windows loads – much cleaner. To increase performance, go to Start > Settings > Control Panel > System. Under the Advanced tab, click Settings under Performance and then click Adjust for best performance. This will remove all the Windows theme stuff and free up some RAM. Using TweakUI, I also hide all the icons on the desktop and set an Autologon for an account. You can also disable the Welcome screen under Start > Settings > Control Panel > User Accounts > Change the way users log on or off. I also auto-hide the taskbar. To do this, right-click the taskbar and go to Properties and click Auto-hide the taskbar. Be sure to place a shortcut to your frontend/loader in Start > Programs > Startup. You now have a startup procedure that goes from the BIOS screen, to a black screen, then directly to a completely clean Windows desktop with no icons, themes, or taskbar – wide open for any cool wallpaper of your choice to be displayed just before your frontend loads. III – REMOTE CONNECTIVITY Recommendations: * (Wireless) network card [< $60] * RealVNC [FREE] * FileZilla [FREE] This section should be front and center, but for flow, I have placed it here. Simply put, throw away that keyboard and say hello to RealVNC. RealVNC is a cross-platform, free utility that allows you to control a remote computer. You can move the mouse cursor and type on the keyboard of your emulation cabinet over a network connection. You can even control your Windows XP environment from your Mac. All you need is a network card in your cabinet PC. Personally, I prefer wireless. Install RealVNC Server on the cabinet PC and the RealVNC Client on any other computer you have in your house (you can actually use a web-based client as well, but I have had little experience with this). Call up the Client on your ‘desktop’ computer, type in the IP address of the cabinet PC, and you can control your cabinet as if you were right in front of it. One thing that RealVNC cannot do is any sort of file transfer to and from computers. What I do is use FileZilla FTP. The server can be installed on the cabinet PC, but to save resources, I run only the client on the cabinet PC and FileZilla FTP Server runs on my desktop. Using RealVNC to connect to the cabinet, I call up the FileZilla Client, and connect to my desktop’s FileZilla FTP server. It is an extra step to go through RealVNC (instead of using the FileZilla client directly from the desktop), but it is one less service that needs to run on the cabinet. Besides, how often does one perform any maintenance on a cabinet? IV – THE EMULATOR Recommendations: * MAME Plus! [FREE] In keeping with saving all of your machine’s resources for the emulation itself, do not use any GUI frontends to emulators that have command line versions. For example, do not use MAME32 when better alternatives are out there. I prefer MAME Plus! as it has one key feature missing from MAME: confirmation upon exiting a game. If you have ever accidentally hit P1-Start and P2-Start at the same time in a game only to have it quit on you, you will be very impressed. V – THE LOADER/FRONTEND Recommendations: * AdvanceMENU [FREE] The loader is by far the most important piece of software on your rig next to the emulator itself. AdvanceMENU is my current favourite as it offers complete customization and leaves a very small footprint. Here are some screenshots of my configuration: MAME games (MAME Plus!) SNES games (zsnes) Laserdisc games (Daphne) Attached is my customization of advmenu.rc. Many additional emulators are setup here and I have changed the button configurations to match those of my control panel. --- Code: ---emulator "MAME" mame "c:\mame\mamep.exe" emulator "zsnes" generic "-c:\zsnesw\zsnesw.exe" "-e -m roms\%f" emulator_roms "zsnes" "c:\zsnesw\roms" emulator_altss "zsnes" "c:\zsnesw\snapshots" emulator_roms_filter "zsnes" "*.zip" emulator "gens" generic "-c:\gens\gens.exe" "roms\%f" emulator_roms "gens" "c:\gens\roms" emulator_altss "gens" "c:\gens\snap" emulator_roms_filter "gens" "*.zip;*.iso;*.bin" emulator "daphne" generic "-c:\daphne\daphne.exe" "%s vldp -framefile %s.txt -fullscreen -x 640 -y 480 -noserversend" emulator_roms "daphne" "c:\daphne\roms" emulator_altss "daphne" "c:\daphne\snap" emulator_roms_filter "daphne" "*.zip" emulator "epsxe" generic "-c:\epsxe\epsxe.exe" "-nogui -loadiso roms\%f" emulator_roms "epsxe" "c:\epsxe\roms" emulator_altss "epsxe" "c:\epsxe\snap" emulator_roms_filter "epsxe" "*.iso;*.bin;*.img" emulator "stella" generic "-c:\stella\stella.exe" "roms\%f" emulator_roms "stella" "c:\stella\roms" emulator_altss "stella" "c:\stella\snap" emulator_roms_filter "stella" "*.bin;*.a26" config save_at_exit device_color_bgr15 yes device_color_bgr16 yes device_color_bgr24 yes device_color_bgr32 yes device_color_bgr8 yes device_color_palette8 yes device_color_yuy2 yes device_joystick auto device_keyboard auto device_lgrawinput_calibration auto device_mouse none device_sdl_samples 2048 device_sound auto device_svgawin_divideclock no device_svgawin_skipboard 0 device_svgawin_stub fullscreen device_video auto device_video_cursor off device_video_doublescan yes device_video_fastchange no device_video_interlace yes device_video_output fullscreen device_video_overlaysize 1024 device_video_singlescan yes device_video_clock 5-100 / 15.75 / 60 ; 5-100 / 25 / 60 ; 5-100 / 31.1 / 60 difficulty none display_brightness 1 display_gamma 1 display_orientation display_restoreatexit yes display_restoreatgame yes display_size 1024 event_alpha no event_assign up up or 8_pad event_assign down down or 2_pad event_assign left left or 4_pad event_assign right right or 6_pad event_assign enter enter or enter_pad or a or 1 event_assign esc f12 event_assign space space event_assign home home or o event_assign end end or l event_assign pgup pgup or t event_assign pgdn pgdn or g event_assign del del event_assign ins insert event_assign shutdown 5 event_assign help f1 event_assign group f2 event_assign type f3 event_assign exclude f4 event_assign sort f5 event_assign setgroup f9 event_assign settype f10 event_assign runclone s event_assign command f8 event_assign menu backquote or backslash event_assign emulator f6 or d event_assign rotate 0_pad event_assign lock scrlock event_assign preview p event_assign mute period_pad event_mode fast event_repeat 500 50 icon_space 43 idle_screensaver 0 0 idle_screensaver_preview snap idle_start 0 0 include input_hotkey no lock no menu_base 115 menu_rel 8 merge differential misc_exit all misc_quiet yes mode list mode_skip full full_mixed list list_mixed tile_small tile_big tile_enormous tile_giant tile_icon tile_marquee mouse_delta 100 preview snap preview_default none preview_default_cabinet none preview_default_flyer none preview_default_icon none preview_default_marquee none preview_default_snap none preview_default_title none preview_expand 1.15 sort parent sound_background_begin none sound_background_end none sound_background_loop "sonic-starlight-zone.mp3" sound_background_loop_dir "mp3" sound_background_start none sound_background_stop none sound_buffer 0.1 sound_foreground_begin none sound_foreground_end none sound_foreground_key "wav\Click16a.wav" sound_foreground_start "wav\SFXCA.wav" sound_foreground_stop none sound_latency 0.1 sound_samplerate 44100 sound_volume -3 ui_background "background\wallpaper_invader1024x768.png" ui_bottombar no ui_clip single ui_color help ffffff 000000 ui_color help_tag ffffff 000000 ui_color submenu_bar ffffff 000000 ui_color submenu_item ffffff 000000 ui_color submenu_item_select ffffff 247ef0 ui_color submenu_hidden ffffff 000000 ui_color submenu_hidden_select ffffff 000000 ui_color menu_item ffffff 000000 ui_color menu_hidden 808080 ffffff ui_color menu_tag ffffff 000000 ui_color menu_item_select ffffff 247ef0 ui_color menu_hidden_select ffffff 247ef0 ui_color menu_tag_select ffffff 247ef0 ui_color bar fff300 000000 ui_color bar_tag fff300 000000 ui_color bar_hidden fff300 000000 ui_color grid 000000 000000 ui_color backdrop 000000 000000 ui_color icon ffffff ffffff ui_color cursor fff300 ffffff ui_command_error Error running the command ui_command_menu Command... ui_console no ui_exit none ui_font "contrib\ttffonts\vrinda.ttf" ui_fontsize auto ui_game snap ui_gamemsg "Loading..." ui_help none ui_menukey no ui_skipbottom 0 ui_skipleft 0 ui_skipright 0 ui_skiptop 0 ui_startup none ui_topbar no ui_translucency 0.6 mame/mode tile_normal mame/preview snap zsnes/mode tile_normal zsnes/preview snap daphne/mode tile_normal gens/mode tile_normal epsxe/mode tile_normal stella/mode tile_normal mame/sort parent group_include "<undefined>" type_include "<undefined>" mame/group_include "Good" mame/type_include "<undefined>" emulator_include "MAME" group "<undefined>" group "Good" type "<undefined>" --- End code --- Note that ‘5’ is set to shutdown the computer. It is always fun to watch my friends’ faces when I put in a quarter and the Mario ‘death’ music plays as the whole arcade machine powers off. VI – CONCLUSION I hope this article has been helpful. You can save yourself considerable headache in your design if you use remote connection software and have a software power-on procedure. Front ends are getting flashier by the release, but have something fast, customizable, and most important: clean. Oh, and for those interested, you can see my project here. UPDATE I've posted a video on YouTube of the startup process for my cab using all of the suggestions listed here. You can view it at |
| tetsu96:
Good article, and very user friendly (either that or I'm reading these boards too often). I like your cabinet too - very classy and well done. Hope your friend is doing better now. The pushbutton sequence for automatically starting is an interesting take. When you start playing the cab less, it's not such a big deal to open the coin door to turn on the PC and I have mine set up so that I power on the PC and plug a USB cable in to power the rest of the system up (heck, my monitors had power switches on the inside as well). A little more hassle that way and maybe that's why I don't play on them every weekend, but I'm used to it. As an alternative to the /noguiboot, look for the stardock utility that lets you change your bootup screen. Why have a black screen when you can put a MAME (or your own) logo there instead? If it matches your desktop paper, even better. http://tvmame32.mameworld.net/mamecabs/DSCN0159.JPG (btw - the PC in the picture feeds a monitor to the left of the cabs, these 2 are self contained). I'd also dump the remote tools - not only are the awkward for some, they use memory and CPU. If you're taking the time to remove themes and the like, then keeping these off should also be a no-brainer. Keep the keyboard and mouse inside the cab unless you're updating roms or performing system maintenance. They're there if you need them, but you shouldn't normally. Just suggestions of course. The perfect cab is one that you're perfectly happy with, and in that regard, there's lots of perfect cabs out there. |
| siddhartha:
--- Quote from: tetsu96 on June 13, 2007, 01:19:04 am ---Hope your friend is doing better now. --- End quote --- Thanks for your comments :) Incidentally, he is. |
| NoOne=NBA=:
I prefer a wireless keyboard/mouse combo to remote access. You are going to need to use a keyboard and mouse to do it anyway, it may as well be on the computer you are trying to fix. The only other suggestion I would make is to change your exit key combo from (P1-Start/P2Start) to P1Start and one of your P1 Action buttons. It's pretty hard to hit P1-Start and P1-B3 accidentally. You can still use MAME Plus! to get the confirmation screen, but not having the key combo hit in the first place is better. |
| Joystick Jerk:
Do the various Power On By Keyboard functions work with the IPAC when connected via USB? I haven't built my CP yet, so I cant test it, but I have a USB keyboard that can't power on the computer. A keyboard hooked up via PS2 powers it on fine though. I'm wondering if it's USB that's the culprit, or perhaps just this specific USB keyboard I'm trying it with. |
| Navigation |
| Message Index |
| Next page |