** 1 page regular / 839 words ** Teaming With Ideas Xav finally puts the Team Tap to bed - and there's news all Jaguar owners should read... ** TEAMTAP.JPG hereabouts ** Following last issue's oversized article I'm hoping a few of you have built your own Team Tap clones, or are about to. It's also worth remembering that there are still official Team Taps available from Jaguar stockists such as The Console Centre and 16/32 - but you'll also get a copy of White Men Can't Jump, whether you like it or not (and most people don't). Even if you don't own a Team Tap of your own, it's so simple to adapt existing code to use them that I would urge any programmer to include the necessary support - even if the game only needs one or two joypads. At least then the user won't be forced to needlessly swap cables around. It's slightly more work, but with careful design it's possible to create reusable code which can be included in every subsequent program. ** On Reader Disk logo here ** So down to the nitty gritty. Well, actually it's already been covered in AC#5 and the relevant code is included on the Reader Disk/renegade CD-ROM. This issue dealt with reading joypads, and the only major change needed is an updated MASKS.H file containing the individual bitmasks for each of the eight potential Team Tap sockets which is included on this issue's Reader Disk/renegade CD-ROM. The other files from AC#5 were just simple examples, and it's trivial to extrapolate from these into a full set of Team Tap functions. A little detective work One of the biggest problems with the Team Tap is actually knowing whether it's there or not! I've mentioned this before, but it's worth reiterating. Because the Team Tap was designed to be transparent to the programmer, it's actually quite difficult to tell whether or not your program should activate the extra Team Tap features. The best advice I can offer here is to rely on timing tricks: First you need to display a title screen, and request that a player presses a button on the first joypad (for example "Press B on the first joypad to continue"). This will involve sending a mask with bit 1 cleared (fire button B is in group 3), for port A. As soon as you register the keypress for button B, test for another combination that has bit 1 cleared. For example, you could write a mask of 0xFFF8, which has bits 0, 1 and 2 cleared. If there is just a normal joypad attached, this will be decoded as an OR function. The result is that you should still be registering button B as being pressed, since it will register if button A OR B OR C is pressed. If you do not register button B as still being pressed, then either they let go of it very quickly, or they have a Team Tap, in which case the mask will have been decoded to check another joypad. It is possible that the other joypad will also have B depressed, but if your code works rapidly enough, you should be able to check several combinations of masks with bit 1 cleared, before the B button is released. Try checking them in reverse order, as the higher sockets are less likely to be in use. This procedure will unfortunately have to be repeated for both ports if your program allows a Team Tap in either. Of course you could always just ask the user whether or not they have a Team Tap fitted and hope they don't lie, but where's the fun in that? Any port... Perhaps the most intriguing question of all is where exactly to plug the Team Tap in? Suppose you are writing a game which requires four players - the most obvious solution is to have a Team Tap in port A, with each player plugged into it. But suppose the user decides to play an older game that isn't Team Tap aware. For two player mode it expects one joypad in port A - no problem there, the Team Tap is transparent - but it also expects one in port B. The user, therefore, has to unplug one of the joypads and plug it into port B. The solution to this problem - as used in White Men Can't Jump - is to put the Team Tap into port B. The first player uses a single joypad in port A, the second uses the first one in the Team Tap, and so on. Should they decide to play an old game, player 2 can still use the joypad in the Team Tap without any unplugging. ...in a storm? In the next issue we'll begin looking at the one EJP device all Jaguar owners have been waiting for - a Tempest 2000 compatible rotary controller. Once again this is a modification of normal Joypad technology, so even if you aren't interested in the Team Tap, digging out that copy of AC#5 will serve you well.