Since I've been asked by a couple people, I thought I would start a new thread to share my technique for auto switching a JLW type joystick. I use this with the ArcadeSD board and it works wonderfully.
The easiest joystick to mod for this is the JLW. I buy the J-Stiks from Ultimarc which already have the necessary mod for rotating the restriction plate. Andy is a great guy to deal with and he also of course makes the Servo-stik which is another option.
Basically, what I do is drill out four small holes in the restriction plate, and push in threaded inserts. Then you can screw in brass motherboard standoffs to attach a lever to.
Here is a pic:

The levers are custom laser cut from mild steel, but you could easily substitute HDPE plastic or something similar that is easy to work with.
The inserts are manufactured by
EZ-LOK (part# 240-M3-BR).
The standoffs can be easily found in packs of ten on ebay. They are M3x10mm. (search for: Brass Standoff M3 Male x M3 Female - 10mm). The only trick with them is that you need to shave a little bit off the threads or they will protrude out the bottom of the restriction plate. I use an angle grinder, but if you have a bench grinder it would be even easier. Then you just need some M3 screws to attach the lever.
For the servos, I use the PowerHD 1501MG. It's one of the highest torque servos you can buy and so far they've been very reliable. You can get them on eBay for around $15 each.
The control arm is made by Tamiya. I bought mine from Pololu when buying the servo controller. (
http://www.pololu.com/catalog/product/733)
Pololu also sells all the wiring connectors and such you'll need. You can buy the servos from them too, but they're a little bit more expensive than eBay.
Here a pic, fully assembled:

The servo controller is the
Pololu Micro Maestro.
Here is a pic showing the wiring for use with the ArcadeSD board. For MAME, you can control it through USB. I believe DaOld Man's JoyChoose will work for that. For the ArcadeSD, you use the 'coin counter 2' output on your jamma harness as a control signal.

Here is the servo controller script that I use for use with the ArcadeSD. I should disclaim here that I'm not a programmer and there is probably a much more efficient way to write this. That being said, what I came up seems to do the job just fine:
#Detect signal from ArcadeSD
begin
signal_4way if move_4way endif
signal_8way if move_8way endif
repeat
sub signal_4way
0 get_position 512 greater_than
return
sub signal_8way
0 get_position 512 less_than
return
# Move each servo to 4-way position.
sub move_4way
950 # Player 1, 4 way position
4 times 1 servo
950 # Player 2, 4 way position
4 times 2 servo
wait_for_8way
return
# Move each servo to 8-way position.
sub move_8way
2200 # Player 1, 8 way position
4 times 1 servo
2200 # Player 2, 8 way position
4 times 2 servo
wait_for_4way
return
# Wait for state change.
sub wait_for_4way
begin
0 get_position 512 greater_than
if return endif
repeat
sub wait_for_8way
begin
0 get_position 512 less_than
if return endif
repeat
Good luck with your projects!