MAME and Console Controllers
Console Controllers and MAME
From DOS Mame v.36b1 onwards, the latest Allegro WIP releases are used. This means that the PSX and N64 controller drivers are now included. This page is here to help people figure out how to use their console controllers with Mame.
Due to previous limitations with MAME, only the first stick device and 10 buttons could be used with each joystick. Also steering wheels (the neGcon) and dials (the Jogcon) were not properly supported, MAME assumed them to be standard analog joysticks.
Improved support for analog controllers is slowly being added. However, Robert J. Ragno has released a version of Mame called MameJoy with even better support for multiple analog controls. This is available from MAME World.
In the future I hope to add aupport in Allegro for Saturn, Jaguar and old Atari controllers. Hopefully I'll be able to get those really cool old VCS 2600 Trak Balls working as well ;) At the moment I am still working on improving the Playstation controllers.
This driver is for the DirectPad Pro and MegaTap parallel port interfaces. See DirectPad Pro and Simon Nield's site for wiring schematics. I recommend using a power supply similar to Simon's which supplies +3.5V DC, and NOT +5.0V DC as in the DirectPad Pro schematics.
If you want to use a parallel port interface, I recommend that you buy a PSX controller extension lead and a Multi tap. The allows you to use the extension lead to build port one of the DirectPad Pro interface, and use the Multi tap to give you four ports. You can also read Memory Cards through the Multi tap as a bonus ;-) Unfortunately DirectPad Pro does not yet support Multi taps, although I have passed the info onto Earle.
To enable your PSX controller(s) in Mame, use -joy psxlpt1 on the command line, or add 'joy = psxlpt1' to the mame.cfg file. You may have to change psxlpt1 to psxlpt2 or psxlpt3 depending on your parallel port.
The type and amount of controllers connected is autodetected. Upto 7 controller ports, and therefore 28 controllers, can be connected (using Multi taps), although the driver allows a maximum of 8 controllers (using the first 8 it finds, from ports 1 to 7, taps A to D). The amount of processor time consumed with more than 8 controllers would probably be intrusive.
See PSX Controller Tools for a PSX Controller test program, in case you have any problems.
The G-con45 needs to be connected to (and pointed at) a TV type monitor connected to your computer. The composite video out on my video card works fine for this (a Hercules Stingray 128/3D 8Mb). Mame's PAL and NTSC video modes should also work, although they are flickery on my old TV.
The timing of controller port scanning has been improved since the initial release, but some people may experience twitchy controls (this depends on the controllers more than anything else). I will be updating the Allegro driver based on the latest version of the Playstation Peripheal Bus Library, which should solve any remaining problems.
The Sony Dual Shock or Namco Jogcon will reset themselves (to digital mode) after not being polled for 5 seconds. This is normal, the same thing happens on a Playstation, it's designed to stop any vibration in case the host machine crashes. However, if this happens to a Jogcon controller the mode button is disabled. To reenable the mode button on the Jogcon hold down the Start and Select buttons at the same time. Other mode switching controllers may have similar quirks.
Ideally code to calibrate the centre position and velocity of the G-con45 and the analog sticks of the Dual Shock controller should be added. The Jogcon calibrates itself when switched to analog mode.
This driver is for the n64 pad to parallel port interface developed by
Stephan Hans and Simon Nield, supported by DirectPad Pro 4.9 and above.
See Stephan Hans' site
for interface information.
To enable your N64 controller(s) in Mame, use -joy n64lpt1 on the command line, or add 'joy = n64lpt1' to the mame.cfg file. You may have to change n64lpt1 to n64lpt2 or n64lpt3 depending on your parallel port.
Upto 4 controllers can be connected.
The analog stick calibrates itself when the controller is powered up (in hardware).
Made With Notepad
Richard Davies 2003
Graphics Copyright Weebl 2003
Best Viewed With Any Browser