Building the 7e Arcade HD Prototype MAME Cabinet – Part 1

Half complete MAME Cabinet

The 7e Arcade HD MAME cabinet is my second arcade cabinet build. You can view my Atari 7800 Arcade Cabinet by clicking HERE. This cabinet is a much bigger and more complex arcade cabinet then my first.

Goals

The goals I want to achieve with this MAME cabinet will take some time and money to complete, so this will take several months to build. I want this machine to have the ability to emulate most arcade cabinet games and console games. In addition I will be able to play PC games that function well with the consoles control scheme.

The front end menu system I will use is Hyperspin, which will start after Windows has booted. This gives you an arcade look and sound while choosing your game.

Controls Included

  • 4 arcade quality joysicks with 8 buttons for player 1 & 2 and 6 buttons for players 3 & 4
  • 3 Pinball Buttons – Two for flippers and one for the launcher
  • Trackball
  • 2 Spinners
  • 2 Lightguns
  • 2 USB ports for game controllers and RockSmith guitar cable

Design

MAME Cabinet in Google Sketchup

MAME Cabinet in Google Sketchup

I began with the design stage of my MAME cabinet with some sketches on paper. With the help of my buddy Richard Boots converting it into Google Sketchup we finalized the design, size and features the cabinet would have.

Building the Cabinet

We began the project with two free pieces of 8’x4’x3/4″ MDF that we got from a bankrupt custom cabinet store. Our goal was to make the entire cabinet out of just these boards, but we ended needing an addtional 2’x4′ piece of MDF for the top control board.

3 - Sides

When we got to the point of tracing the cuts for the side panels we began to realize that what looks good in CAD doesn’t always translate well to the real world. The base of the cabinet was too shallow, so we streched it out to give the cabinet a more stable footing. This also caused us to change the angles on the bottom front of the cabinet so that the depth of the control panel would not change.

With all the lines traced we made a stencil and drew the other side on the same board in a ying yang fansion to optimize board useage. Next we made a rough cut on one of the sides so that we could make the final cut for both sides at the same time. This technique made both sides identical.

Half complete MAME Cabinet

Half complete MAME Cabinet

At this point the cabinet has really begun to shape up.

Prototype Control Panel

Mini Prototype Control Panel

Mini Prototype Control Panel

Richard and I created a small prototype control panel to wire up and test on my desktop PC to ensure proper functionality. This allowed us to test out the button layout and joystick placement before implementing the final design to the cabinet.

The final template is on the left.

The final template is on the left.

The final design is on the left shows the button layout I will be using. I will use this as a template to trace and drill out holes on the final control panel.

Planning the Layout

Planning the Layout

Above I am planning the layout. The buttons and Joystick in their final poisition, while the spray paint cap repristents the trackball and the Atari paddles are placeholders for the spinners. The Start, Coin and Function Buttons have changed location in the final layout.

This is as far as I have gotten with my MAME cabinet so far. Check back in a month or so and I will post part 2 with the progress of my cabinet.

Atari 2600/7800 Arcade Cabinet

Finished Atari 7800 Arcade Cabinet
Playing Space Invaders for the Atari 7800. Published by Atari Age

Playing Space Invaders for the Atari 7800. Published by Atari Age

This project began as a cabinet to house an Atari 2600 with a Harmony multi-game cartridge. While searching for a donor Atari 2600 unit I ran across an Atari 7800 to use as the brains and I couldn’t resist. This would allow for a larger library of games, but would make the build slightly more complex.

The Atari 7800 console was an underdog that never really got a fair shake against Nintendo. The 2 year delay of the console may have been the reason that Nintendo was able to get such a good foothold in the console market. This console was capable of graphics similar to the NES, but was lacking in the audio department due to the use of the TIA chip that was also used in the original Atari 2600. This can be overcome by adding a Pokey chip to the game cartridge itself, but this increased the cost of the game cartridge making it uncommon.

Changes

Because I used the Atari 7800 for the brain of the system I was able to include Atari 7800 in the library of games, but building in the paddles became to complex to permenitly wire into the system. In the future I would like to add a DB9 port to allow for the use of all Atari controls with this system.

Hardware Mods

I modified the Atari 7800 in several ways to make it feel at home in the arcade cabinet. I added an aftermarket component/s-video mod to remove the interferance that you typically get with the RF output. I also hardwired the Power, Pause, Reset and Select buttons to Arcade Quality buttons mounted just under the display. The front mounted power button allows for power cycling of the console to select a new game from the multi games cartridge.

Construction

This cabinet is my first real attempt at working with wood, so fortunatly I still have all my fingers. Since the completion of the project I have learned many skills, fixed old mistakes and I will be much more confident with my future wood working projects. *cough* MAME Cabinet *cough*

The primary building material in this cabinet is 3/4″ MDF, of which I have used two 8’x4’x3/4″ and a single 8’x4’x1/2″ boards. In addition I used 2×1 for screw strips  and 1/4″ piece of plexiglass.

Paint

4 - Painted

I have learned a lesson on the paint step of this project. Don’t use Latex Paint. It peels far to easy.  Otherwise the Onyx Black paintjob makes this cabinet look like the real thing. A temporary black mask has been added to the screen until the printed graphics show up.

Nearly Finished

Nearly Finished. Updates will include T-Molding, Decals and the addition of paddles or DB-9 ports.

Nearly Finished. Updates will include T-Molding, Decals and the addition of paddles or DB9 ports.

The Atari Arcade Cabinet is nearly finished. I plan on adding a few cosmetic updates to the cabinet. The first update I will make will be T-Molding, possibly black or Red. In addition I’m think about adding brushed aluminum with decals symilar to the orignal console system decals to the sides of the arcade.

Additional functionallity I would like to add would be built in paddles or DB9 ports that could accomadate additional controllers such as paddles, drive control or light guns. Finally I would like to add a coin slot that will function as the reset button. When these are added I will post an update.

Planned updates to the Atari 7800 hardware are planned as well. I have pre-ordered the Atari 7800 XM expansion module, which adds the ablility to save high scores, adds additional RAM and a Pokey sound chip. Also, I would like to add the Harmony 2 multigame cart to the system when it’s released.

The addition of the Harmony 2 cart will allow the cabinet to be used as originally designed, without having to swap out game carts for the 7800 games. Currently you can play all the Atari 2600 games from a single Harmony multi-game cartridge, but playing Atari 7800 games requires you to change cartridges. Because of this I have just left the back panel off. When the Harmony 2 is released this will become just a service panel.

Conclusion

This arcade Cabinet is capable of playing hundreds of classic Atari games. In the above gallery I have included pictures of the cabinet playing Classics such as Asteroids, Combat, Joust and Space Invaders. It will continue to hold a place in the family room for years to come.

Setup of Samba4 4.10 on Ubuntu Server 12.04 LTS and 13.10

Ubuntu Logo

ubuntu-logo14

An Active Directory Domain Controller is a vital tool for business network administrators. It allows the centralized management of all the computers in a business network, whether it’s local, nation or worldwide. You can add a user to the network with all there information, set their limits to features on a computer and they will be able to login to any computer on the business network.

Active Directory Domain Controllers used to be a costly feature exculsive to Microsoft Windows Servers, but with the recent open source release of Samba 4.0 stable all of these features are now avaliable for free. This will allow small businesses and home users to utilize this Active Directory Domain Controllers on a limited budget. Today we will walk you through the steps to setup your own Samba4 Active Directory Domain Controller on Ubuntu

Tips Before we Begin

  • Before setting up your Samba4 domain controller you will want to remove any older versions of Samba 3.x to prevent interference with Samba4, unless you plan on migrating an old NT style Samba3 domain controller to Samba4. ***If this is the case, this tutorial is not for you***
  • If you are starting with a fresh install make sure to enable xattr on any partition that Samba will be running on or accessing. This will be addressed later if you have a currently running install.
  • Resolv.conf is often a source if issues as it typically gets overwritten automatically. If you run into issues down the road make sure that this file hasn’t changed.
  • If you are new to Linux tutorials commands that are typed into the command prompt “aka Bash” will appear in a grey box and will start with “$ “. You can omit the “$” sign and just type that command. See the example below:

$ echo “This is an example of a command to type at the Bash prompt”

  • If the grey box doesn’t contain the “$ ” then apply the contents as described in that step of the process.

Installing Dependancies

1) Install Samba4 dependencies and utilities required for this tutorial with the following command.

$ sudo apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl

2) The krb5-user package will ask for the following questions, highlighted in bold text. We have included the proper responses in the example below.

Default Realm: test.lan
Default Realm: 127.0.0.1
Administrative Server: 127.0.0.1

FSTAB File Setup

Now that all dependencies for Samba4 are installed we will now configure the /etc/fstab file.
Warning: If you are not farmiliar with the contents of this file read your distrobutions manual. Edit at your own risk!!!

1) Open the /etc/fstab file in your preferred text editor. For this example we will use nano.

$ nano /etc/fstab

2) Within the fstab file you will find your hard drive partition configuration. Add the following parameters if they aren’t present, and you are using ext3/ext4: user_xattr, acl and barrier=1.  If you are using another file system like btrfs then you don’t need to make any changes to your fstab file. View the example below.

UUID=db6f8346-60ca-47b4-8ab2-046337abd834 / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1

NOTE: If you are using the btrfs file system no changes need to be made to your fstab file.

3) You must apply these setting to all partitions that Samba4 will access and remount your partition with the following command.

$ mount -a

Download Samba4

We will download the latest version of Samba4 via a program called git. The following command will download the latest stable version.

$ git clone git://git.samba.org/samba.git samba-master

Compile and Install Samba4

Compile and install Samba4 with the following commands.

$ cd samba-master
$ sudo ./configure
$ sudo make
$ sudo make install

Provision Samba4

1) Provisioning the Samba4 Domain Controller creates the configuration files and the Active Directory database. Use the following command to start the process.

$ sudo /usr/local/samba/bin/samba-tool domain provision –use-rfc2307 –interactive

2) The provision command will ask you for some information about your network. Use the following example as a guideline, but modify the info as needed for your network.

Realm [test.local]: TEST.LAN
Domain [S4]: TEST
Server Role (dc, member, standalone) [dc]: dc
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
DNS forwarder IP address (write ‘none’ to disable forwarding) [192.168.2.1]: 8.8.8.8
Administrator password: Ex@mpleP@$$word
Retype password: Ex@mpleP@$$word

You should see output similar to the following example:

Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: LinuxServer
NetBIOS Domain: TEST
DNS Domain: TEST.LAN
DOMAIN SID: S-1-5-21-1811932520-1978264231-2890610938

Modify resolv.conf and hosts File

1) Edit your resolv.conf file in nano

$ nano /etc/resolv.conf

2) The following info should be sufficient as long as this system is running only Samba4.

domain test.local
nameserver 192.168.1.2

3) Ubuntu by default will overwrite the /etc/resolv.conf file with updated DHCP and other network services. To prevent this we make the resolv.conf file read only.

$ chattr +i /etc/resolv.conf

Note: This is not the most elegant solution, especially if you are running other services. Other solutions to this issue are out of the scope of this tutorial.

Mangage Kerberos

1) Samba4 has created a krb5.conf for you to use as a replacement for the existing configuration file. Use the following commands to backup the old file and copy the new configuration file.

$ mv /etc/krb5.conf /etc/krb5.conf.bak
$ cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

2) Now you must edit the new krb5.conf file to include your domain realm info.

$ nano /etc/krb5.conf

3) Modify the “default_realm = SAMDOM.EXAMPLE.COM” line to contain your domain info. In our tutorial it is “TEST.LAN”

NOTE: The domain realm MUST be typed in uppercase!

Start Samba

You should now have a functioning Samba4 Domain Controller. Start Your Domain Controller by using the following command. You should now be able to connect your Windows and other device to your Active Directory Domain Controller.

$ sudo ./usr/local/samba/sbin/samba

Add Samba Directories to PATH Variable (optional):

1) Edit your enviromental variables with nano.

$ sudo nano ~/.bashrc

2) Add the following to your .bashrc config file

PATH=$PATH:/usr/local/samba/sbin

PATH=$PATH:/usr/local/samba/bin

Post Setup Tips:

  • Any devices that you will connect to your domain should have the primary DNS of your Samba4 server. (ie:192.168.1.2)
  • If your windows machine doesn’t seem to be connecting to the Samba4 DNS server, try the following command at the Windows command prompt.

ipconfig /flushdns