Difference between revisions of "MAME Cabinet"

From MidsouthMakers - Memphis Area Hackerpace
Jump to navigation Jump to search
(Uno is not needed anymore)
Line 34: Line 34:
  
 
=== Controls ===
 
=== Controls ===
The Williams Defender cabinet shared the "base cabinet" with many other games like Joust and Sinistar. This fact makes it very easy to make multiple control decks. The control decks dimensions are 23 1/2 inches by 8 inches made of 3/4 plywood.  
+
The Williams Defender cabinet shared the "base cabinet" with many other games like Joust and Sinistar. This fact makes it very easy to make multiple control decks. The control decks dimensions are 23 1/2 inches by 8 inches made of 3/4 particle board.  
  
 
We have a few leftover parts from the last MAME project, also a set ordered [http://www.ebay.com/itm/360450175737] form Ebay seller TwistedQuarter for $29.99 plus $10 shipping as a donation.
 
We have a few leftover parts from the last MAME project, also a set ordered [http://www.ebay.com/itm/360450175737] form Ebay seller TwistedQuarter for $29.99 plus $10 shipping as a donation.
  
<strike>Danny is currently running a custom firmware on an Arduino Uno and checking the results of that.</strike> '''Interface was too laggy'''
+
Danny is currently running a custom firmware on an Arduino Uno and checking the results of that.
 
 
== Custom Electronics for the Controls ==
 
A custom board was fabricated for controlling the buttons and joysticks [http://vusb.wikidot.com/project:mamepanel V-USB MAMEPanel] was ported to work for the Atmel atmega644p micro controller. The hardware currently emulates 2 joysticks with 8 buttons each and a keyboard hid device. MAMEPanel is expandable to 3 joysticks and a mouse input is also possible. Below is the current keymap:
 
 
 
<nowiki>
 
// Atmega32 Shift switch off
 
PROGMEM const unsigned char NormalMapping[NUMBER_OF_INPUTS] =
 
{                      //  Pin Atmega  Board  Function
 
    KEY_5,              //  40  PA0    X6-1    COINTRIGGER
 
    0,                  //  39  PA1    X4-8    none
 
    0,                  //  38  PA2    X4-7    none
 
    KEY_2,              //  37  PA3    X4-6    JOY2START
 
    KEY_1,              //  36  PA4    X4-5    JOY1START
 
    J1_Button8,        //  35  PA5    X4-4    JOY1BUTTON8
 
    J1_Button7,        //  34  PA6    X4-3    JOY1BUTTON7
 
    J1_Button6,        //  33  PA7    X4-2    JOY1BUTTON6
 
    0,                  //  1  PB0    X9-2    SHIFTSWITCH
 
    J2_Button8,        //  2  PB1    X7-1    JOY2BUTTON8
 
    J2_Button7,        //  3  PB2    X7-2    JOY2BUTTON7
 
    J2_Button6,        //  4  PB3    X8-1    JOY2BUTTON6
 
    J2_Button5,        //  5  PB4    X8-2    JOY2BUTTON5
 
    J2_Button4,        //  6  PB5    X5-1    JOY2BUTTON4
 
    J2_Button3,        //  7  PB6    X5-2    JOY2BUTTON3
 
    J2_Button2,        //  8  PB7    X5-3    JOY2BUTTON2
 
    J1_Up,              //  22  PC0    X3-2    JOY1UP
 
    J1_Left,            //  23  PC1    X3-3    JOY1LEFT
 
    J1_Right,          //  24  PC2    X3-4    JOY1RIGHT
 
    J1_Button1,        //  25  PC3    X3-5    JOY1BUTTON1
 
    J1_Button2,        //  26  PC4    X3-6    JOY1BUTTON2
 
    J1_Button3,        //  27  PC5    X3-7    JOY1BUTTON3
 
    J1_Button4,        //  28  PC6    X3-8    JOY1BUTTON4
 
    J1_Button5,        //  29  PC7    X4-1    JOY1BUTTON5
 
    J2_Button1,        //  15  PD1    X5-4    JOY2BUTTON1
 
    J2_Right,          //  17  PD3    X5-5    JOY2RIGHT
 
    J2_Left,            //  18  PD4    X5-6    JOY2LEFT
 
    J2_Up,              //  19  PD5    X5-7    JOY2UP
 
    J2_Down,            //  20  PD6    X5-8    JOY2DOWN
 
    J1_Down            //  21  PD7    X3-1    JOY1DOWN
 
};
 
 
 
// Atmega32 Shift switch on
 
PROGMEM const unsigned char ShiftMapping[NUMBER_OF_INPUTS]=
 
{                      //  Pin Atmega  Board  Function
 
    KEY_5,              //  40  PA0    X6-1    COINTRIGGER
 
    0,                  //  39  PA1    X4-8    none
 
    0,                  //  38  PA2    X4-7    none
 
    AC_Mute,            //  37  PA3    X4-6    JOY2START
 
    KEY_P,              //  36  PA4    X4-5    JOY1START
 
    0,                  //  35  PA5    X4-4    JOY1BUTTON8
 
    0,                  //  34  PA6    X4-3    JOY1BUTTON7
 
    0,                  //  33  PA7    X4-2    JOY1BUTTON6
 
    0,                  //  1  PB0    X9-2    SHIFTSWITCH
 
    0,                  //  2  PB1    X7-1    JOY2BUTTON8
 
    0,                  //  3  PB2    X7-2    JOY2BUTTON7
 
    0,                  //  4  PB3    X8-1    JOY2BUTTON6
 
    0,                  //  5  PB4    X8-2    JOY2BUTTON5
 
    0,                  //  6  PB5    X5-1    JOY2BUTTON4
 
    KM_ALT_F4,          //  7  PB6    X5-2    JOY2BUTTON3
 
    KM_SHIFT_F7,        //  8  PB7    X5-3    JOY2BUTTON2
 
    KEY_UpArrow,        //  22  PC0    X3-2    JOY1UP
 
    KEY_LeftArrow,      //  23  PC1    X3-3    JOY1LEFT
 
    KEY_RightArrow,    //  24  PC2    X3-4    JOY1RIGHT
 
    KEY_Enter,          //  25  PC3    X3-5    JOY1BUTTON1
 
    KEY_Esc,            //  26  PC4    X3-6    JOY1BUTTON2
 
    KEY_Tab,            //  27  PC5    X3-7    JOY1BUTTON3
 
    0,                  //  28  PC6    X3-8    JOY1BUTTON4
 
    0,                  //  29  PC7    X4-1    JOY1BUTTON5
 
    KEY_F7,            //  15  PD1    X5-4    JOY2BUTTON1
 
    AC_VolumeUp,        //  17  PD3    X5-5    JOY2RIGHT
 
    AC_VolumeDown,      //  18  PD4    X5-6    JOY2LEFT
 
    KEY_PageUp,        //  19  PD5    X5-7    JOY2UP
 
    KEY_PageDown,      //  20  PD6    X5-8    JOY2DOWN
 
    KEY_DownArrow      //  21  PD7    X3-1    JOY1DOWN
 
};
 
 
 
</nowiki>
 
  
 
== Bill of Materials ==
 
== Bill of Materials ==
 
*DC7600
 
*DC7600
 
*Samsung 19 inch 930b LCD
 
*Samsung 19 inch 930b LCD
*Arduino Uno
 
 
*Defender Arcade Cabinet
 
*Defender Arcade Cabinet
  

Revision as of 17:33, 14 February 2013

MAME, an acronym that stands for Multiple Arcade Machine Emulator, is an emulator designed to reproduce older arcade system hardware via software on a modern personal computer.

MMMAME
(Midsouth Makers MAME Cabinet)

Sanded cabinet and gutted

Information
Owner Group
Lead critter42 & MemphisArtGuy
Version 2.0
Status In Progress
Started On November 2012
Cost Free


Design

Computer

  • HP Compaq DC7600 Convertible Minitower PC 3.2 GHZ
  • OS Ubuntu 12.04
  • 2 HDD on SATA BUS - Roms Drive - OS Drive
  • WIFI Adapter : ENUWI-G2 802.11 B/G
  • 1Gb DDR2 - Would like to upgrade to 4Gb
  • 19inch 3:4 LCD

Display

  • Samsung 19inch 930B

Audio

  • On Board

Software

Controls

The Williams Defender cabinet shared the "base cabinet" with many other games like Joust and Sinistar. This fact makes it very easy to make multiple control decks. The control decks dimensions are 23 1/2 inches by 8 inches made of 3/4 particle board.

We have a few leftover parts from the last MAME project, also a set ordered [1] form Ebay seller TwistedQuarter for $29.99 plus $10 shipping as a donation.

Danny is currently running a custom firmware on an Arduino Uno and checking the results of that.

Bill of Materials

  • DC7600
  • Samsung 19 inch 930b LCD
  • Defender Arcade Cabinet

Contributors

  • Ben
  • Dan
  • Danny
  • Dru
  • Mark

External Links

Cabrio
Virtual HID Keyboard
Arduino USB Sheild
Teensy HID Keyboard
Arduino Uno HID Keyboard

References