There is a 8 port joystick port approach for Commodore as well which seems to be quite old, too:
http://sleepingelephant.com/ipw-web/bulletin/bb/viewtopic.php?t=5953
From technical aspect this solution is far better than the MultiJoy approach for Atari systems as it requires less address lines to work. If you drop the status led it is straight forward in building.
Nevertheless both designs (commodore and atari multiport) are quite outdated already from technical point of view. It seems the approach was copied over and over again without investing 5 minutes to improve the concept. 7 years ago Raster's approach might fit into time but today you have more possibilities with less efforts.
For example using one big housing for all joystick ports is bad design. Are you sitting with 8 friends and about 1 meter joystick cable around one device? Cabling will be a nightmare as cables are too short! So why following this approach nearly 7 years? Practise from cabling is having parallel connections extending the length by plugin one after the other (see pic 1).
Advantage:
- better cabling and longer distances
- smaller housings (may be better design and look & feel of target system?)
- grew with demand (so able to stack more 4-port ports until you reach the limit on demand) by using single moduls with 4 ports per device.
- simpler building
Another problem is that the multijoy concept requires about 30 cycles per joystick as you must select the joystick address, wait 30 cycles, read value, address next one. Big disadvantage is also that you must remove it if you play normal games (which will be 90% of time I'll guess). As there is no logic within the approach it is a pain doing so. As game development always hit the barrier of different systems with different approaches implementing different method is also a pain. The MultiJoy approach may not fit with other systems so if you try to port your software you are stuck in implementing other methods. So why not using a common approach for all systems and finally use it on all your retro computers?
By adding active components like a MCU you have the advantage:
- intelligent joystick handling
- simulate old multijoy and normal 2-port mode (100% compatibility plus new mode for all systems)
- able to use the extender for different computer systems
- no requirement to address joysticks for reading (so less cycles which are quite rare anyway due to limited frequency of old cpu's)
- allow random mode which links physical joystick in order (e.g. user uses joystick 4 in game as player #1 as he pushed the button first)
- no strict port #7 is player #7 so depending on gaming requirement you are able to sit where you want not limited by length of cabling or location of device.
- allow to use paddles as you are able to easily detect usage
If you play round based games then most likely a multi-port extender is not really requird because it is not a big act to print a "get ready player #" message and handover the joystick. If you play in parallel then of course it is much fun but there is also a limit where it gets crowded. Even if the new concept is able to deal with 32-joysticks a time default users may not get beyond 4 ports anyway. So by using the modular approach of 4 ports per device with stackable connector for additional 4 ports you are able to grew with your demand (if really exists).
The idea behind the "new" mode is having a ringbuffer within the MCU handling joystick status as events. If user #1 pushes it's joystick the MCU adds the status to its ringbuffer. One event after the other is reported to the system by using port #2 for address information and port #1 for status. There are two possiblities to ensure timing: one to set the event on the ports for a defined timeframe the other to allow an acknowledge back from the system. This must be verified.
Due to clever concept you also lower the costs for future business opportunities. Dump costs for example are calculated by weight and size, so why using a big housing and so big PCB? So finally if you connect a MCU to port #2 instead of a 74LS logic component you'll get rid of many limitations and incompatibilities (also across different systems). The price tag would be similar or even cheaper if you only build one device with 4 ports.
Hardware should be built within hours and programming of MCU may contain some pitfalls but for an experience programmer the whole project will be completed within one rainy evening it is not rocket science and not a blinking pause LED for a coleco visionÂ
Parts:
mcu for $1-$2,
some diode and resistors.
4 ports
Housing