Jump to content

Photo

Adapter to allow another console's controllers on Jaguar?


9 replies to this topic

#1 Spider-Dan OFFLINE  

Spider-Dan

    Space Invader

  • 11 posts

Posted Tue Apr 17, 2018 12:21 PM

There are many converters that allow you to use controllers from one console on another.  You can rather easily find adapters to allow you to use a SNES controller on a Genesis, or a PlayStation 2 controller on an Xbox 360.  However, I've never seen an adapter to allow use of a modern console's controller on a Jaguar.  This seems like a particularly ripe area for development, given the high cost of the Pro Controllers on the secondary market.

One explanation might be that modern consoles don't have enough inputs to cover all the keypad buttons, but that's not really true.  As we all know, the Jaguar Pro Controller repurposes keypad input for its new buttons, like so:

L(4)      R(6)
Z(7) Y(8) X(9)
 C    B    A

So if we were to use, say, a PlayStation2 controller (arguably the most popular controller for adapters) as the base, we could map the buttons like so:

L2(4) Select(Option) R2(6)
L1(7) Start(Pause)   R1(9)
     /\(8)
[](C)     O(A)
     X(B)

That leaves keypad 1,2,3,5,0,*,# unmapped.  But we have two analog sticks!

L3(*) R3(#)
right analog left(1)
right analog up(2)
right analog right(3)
right analog down(5)

That only leaves 0 unmapped, which we could throw on a left analog direction.  But as far as I can tell, 0 is only ever used for music toggling.  And my understanding is that there is at least one game out there - Battlesphere? - that supports analog joysticks (that are even more rare than the Pro Controller).  So I think it would be more useful to kill two birds with one stone and map the PS2 left analog to the analog joystick input that Battlesphere supports.

What are the obstacles to such an adapter?  The PlayStation2 controller is very well-documented, and given the insane prices on Pro Controllers, this seems like it would have significant demand.

#2 Stephen Moss OFFLINE  

Stephen Moss

    Stargunner

  • 1,085 posts
  • Location:Cambridge, United Kingdom

Posted Wed Apr 18, 2018 3:39 AM

And my understanding is that there is at least one game out there - Battlesphere? - that supports analog joysticks (that are even more rare than the Pro Controller).  So I think it would be more useful to kill two birds with one stone and map the PS2 left analog to the analog joystick input that Battlesphere supports.


What are the obstacles to such an adapter?  The PlayStation2 controller is very well-documented, and given the insane prices on Pro Controllers, this seems like it would have significant demand.

 

 

Unfortunately, it would appear that the BattleShpere support for Analogue sticks was made using an older version of the Jaguar documentation which referenced using an internal ADC. However, when Atari changed to using Bank Switching controller for more data (to support things like the VR helmet/6axis controller) they changed the system so that the A to D conversion was to be performed within the controller and output as a bank of data, consequently only a few early K series Jaguars actually have the internal ADC's fitted.

I tried that with a home made analogue controller and Battleshpere failed to respond to it because like the majority of Jaguars neither my K or M series had the internal ADC fitted.

 

Consequently, just mapping the one of the PS2 controllers analogue X,Y outputs to the correct Analogue inputs on the Jaguars controller port may not be a easy as you think.

1) It would be an ugly cable hack for analog input direct from the PS2 controller sticks or you have to covert the digitised analogue value read from the PS2 controller back to actual analogue before you can feed it into the Jaguar, assuming it had the internal ADC to read it.

2) You may find the PS2 controller is not as well or accurately documented as you believe.  

 

As far as I know I have the only working PS2 dual shock controller adaptor for the Jaguar, I can even use the Jag to control the rumble motors. It is a Bankswithcing device as per the Jaguar documentation that not only communicates with the PS2 controller but also reads the Jaguar controller outputting data for both between the 3 data bank thereby allowing access to the keypad for those games that require it (all other buttons also mapped to the equivalents on the PS2 controller).

I developed it because somebody wanted an analogue controller for a game they were developing, as development on the game stopped I stopped development on it but it was 95% complete, the only issues being the difference between the A and H versions of the controller, one works perfectly, the other not due to different timing tolerances.

The problem may be resolvable with the advent of faster PICs as I originally developed it about 10 years ago, however as there was no longer a pressing need for it I instead started looking into a USB controller - Jaguar interface as that one unit could support many USB controller types. Unfortunately, I have not had time to work on it for a couple of years, USB is complicated and writing your own USB host and controller drivers is difficult and not really something someone not completely familiar with USB protocols can pick up and put down.

There are plenty of microcontroller examples for USB slave devices (controller) but none for hosts because it is so difficult nobody really tries, plus you really need access to a USB bus analyser (fortunately I do) for testing/debugging as outputting meaningful debug data from the PIC takes so long the USB bus goes into suspend/disconnects. It would be cool to get it working though.



#3 Zerosquare OFFLINE  

Zerosquare

    River Patroller

  • 2,673 posts
  • Location:France

Posted Wed Apr 18, 2018 6:38 AM

There are host controllers that handle all the nitty-gritty stuff by themselves and have a nice/easy interface, like this one for example:
http://www.ftdichip....ts/ICs/VNC2.htm

#4 Spider-Dan OFFLINE  

Spider-Dan

    Space Invader

  • Topic Starter
  • 11 posts

Posted Wed Apr 18, 2018 10:04 PM


Unfortunately, it would appear that the BattleShpere support for Analogue sticks was made using an older version of the Jaguar documentation which referenced using an internal ADC. However, when Atari changed to using Bank Switching controller for more data (to support things like the VR helmet/6axis controller) they changed the system so that the A to D conversion was to be performed within the controller and output as a bank of data, consequently only a few early K series Jaguars actually have the internal ADC's fitted.

I tried that with a home made analogue controller and Battleshpere failed to respond to it because like the majority of Jaguars neither my K or M series had the internal ADC fitted.

 

Consequently, just mapping the one of the PS2 controllers analogue X,Y outputs to the correct Analogue inputs on the Jaguars controller port may not be a easy as you think.

1) It would be an ugly cable hack for analog input direct from the PS2 controller sticks or you have to covert the digitised analogue value read from the PS2 controller back to actual analogue before you can feed it into the Jaguar, assuming it had the internal ADC to read it.

Hmmm, sounds like the Battlesphere analog inputs are more trouble than they are worth.

 

I developed it because somebody wanted an analogue controller for a game they were developing, as development on the game stopped I stopped development on it but it was 95% complete, the only issues being the difference between the A and H versions of the controller, one works perfectly, the other not due to different timing tolerances.

 

Are you talking about A and H versions of the Jaguar controller, or the PS2 controller?  I'm not sure why the Jaguar controller version would matter, as a Jaguar controller shouldn't be part of the process.  I was envisioning a standalone adapter that would connect the PS2 controller directly to the Jaguar, not a Jaguar controller modified for passthrough or anything like that.


Edited by Spider-Dan, Wed Apr 18, 2018 10:04 PM.


#5 Stephen Moss OFFLINE  

Stephen Moss

    Stargunner

  • 1,085 posts
  • Location:Cambridge, United Kingdom

Posted Thu Apr 19, 2018 4:53 AM

There are host controllers that handle all the nitty-gritty stuff by themselves and have a nice/easy interface, like this one for example:
http://www.ftdichip....ts/ICs/VNC2.htm

 

I had looked at the Viniculum before, although perhaps an earlier version but rejected it for some reason, I might take another look at it.

I think one of the reasons for rejecting it was that they do not come programmed, while I may have the technical knowledge and easy of access to the equipment to program them (while in my current employment) that would not be the case for the majority of users. Hopefully, no firmware upgrade would be required however if it were that would make implementing any firmware upgrades inconvenient for everyone as all the units would have to be send back to me, whereas a PIC can easily be reprogrammed with a PICkit programmer for a small investment of around £30 and no technical knowledge.

 

Consequently using a PIC opens up the potential of having several "agents" as it were dotted around who would perform upgrades for a nominal fee which would...

1) Allow the possibility for someone to drop off the unit and either have it upgraded while they wait or collect in a couple of days.

2) Allow someone attending a show where an agent is present to have the upgrade done while there.

3) Allow for a cheaper and quicker service by mail if there was an agent nearer than myself. 

 

and thus more convenient than sending it back to me.

OK, the agent thing may be a flight of fancy, but nonetheless a good developer has to consider the possibility of things such as how post release repair & firmware upgrades may be implemented. 

 

Hmmm, sounds like the Battlesphere analog inputs are more trouble than they are worth.

 

Are you talking about A and H versions of the Jaguar controller, or the PS2 controller?  I'm not sure why the Jaguar controller version would matter, as a Jaguar controller shouldn't be part of the process.  I was envisioning a standalone adapter that would connect the PS2 controller directly to the Jaguar, not a Jaguar controller modified for passthrough or anything like that.

 

I was referring to the A and H version of the DualShock controller, apparently they are made in different factories and for some reason that has created a difference between them that even Sony had to issue a patch for, although why that difference would occur is not obvious.

 

The PS2 controller has 12 buttons (excluding the D pad), other controllers may have less, if someone created a game like Iron Soldier that requires 13 buttons in addition to the d-pad that would be a problem.

Consequently not making a controller adaptor (or new custom controller) into which the standard Jaguar controller can also be connected thereby giving access to more buttons (if required) and feeding the whole lot back to the Jag as Bank Switched data could be a somewhat restrictive and shortsighted approach particularly as a switch could then be implemented to select between standard jaguar controller and advanced controller without having to unplug the controllers or adaptor thus saving ware and tear on the controller ports.



#6 Welshworrier ONLINE  

Welshworrier

    Chopper Commander

  • 249 posts

Posted Thu Apr 19, 2018 5:15 AM

Something I looked at last year was interfacing an Xbox controller to the Jaguar.

I wrote the code for an arduino with the USB host adaptor shield.

Problem was the arduino to jag interface for me, code worked and allowed spinner simulation on trigger buttons and mouse on analogue etc. I could either go FPGA or discrete outputs (but arduino doesn't have enough io pins so would have to multiplex).

Tried the due version but USB host support wasn't that good - bits are in garage somewhere.

#7 Zerosquare OFFLINE  

Zerosquare

    River Patroller

  • 2,673 posts
  • Location:France

Posted Thu Apr 19, 2018 11:03 AM

I think one of the reasons for rejecting it was that they do not come programmed, while I may have the technical knowledge and easy of access to the equipment to program them (while in my current employment) that would not be the case for the majority of users.

IIRC, the Vinculum chip supports firmware updates simply by connecting a USB key with a specially named file on it (but I may be wrong, last time I read the docs was several years ago).

#8 LinkoVitch OFFLINE  

LinkoVitch

    River Patroller

  • 2,544 posts
  • Location:Manchester UK

Posted Fri Apr 20, 2018 7:26 AM

Looks like I need to get my finger out with some of my projects! ;) :D



#9 Spider-Dan OFFLINE  

Spider-Dan

    Space Invader

  • Topic Starter
  • 11 posts

Posted Fri Apr 20, 2018 10:21 PM

The PS2 controller has 12 buttons (excluding the D pad), other controllers may have less, if someone created a game like Iron Soldier that requires 13 buttons in addition to the d-pad that would be a problem.

Consequently not making a controller adaptor (or new custom controller) into which the standard Jaguar controller can also be connected thereby giving access to more buttons (if required) and feeding the whole lot back to the Jag as Bank Switched data could be a somewhat restrictive and shortsighted approach particularly as a switch could then be implemented to select between standard jaguar controller and advanced controller without having to unplug the controllers or adaptor thus saving ware and tear on the controller ports.

As I mentioned in my original post, there are enough inputs on the PS2 controller to handle all the keypad buttons.  After the Pro Controller mappings are taken care of, you're missing 1,2,3,5,*,0,#; my first thought (above) was to map 1-2-3-5 to right analog stick left-up-right-down (respectively), with * and # being respectively mapped to L3 and R3 - this also makes soft reset super easy!  As far as I can tell, across all games 0 is only ever used for music toggle, and can be left off the controller with little fanfare (though for completionist's sake, you could map it to any direction on left analog since we are no longer using that for Battlesphere joystick input).

 

But upon further reflection, given the potential shenanigans with mapping analog directions to buttons, there's a simpler solution: use L3 as a button modifier.  In other words, while holding L3:

L2(*)  R2(#)

     /\(2)
[](1)     O(3)
     X(5)

And R3 would be 0.


Edited by Spider-Dan, Fri Apr 20, 2018 10:27 PM.


#10 Spider-Dan OFFLINE  

Spider-Dan

    Space Invader

  • Topic Starter
  • 11 posts

Posted Mon Apr 23, 2018 10:02 PM

One more thing:

 

 

Consequently not making a controller adaptor (or new custom controller) into which the standard Jaguar controller can also be connected thereby giving access to more buttons (if required) and feeding the whole lot back to the Jag as Bank Switched data could be a somewhat restrictive and shortsighted approach particularly as a switch could then be implemented to select between standard jaguar controller and advanced controller without having to unplug the controllers or adaptor thus saving ware and tear on the controller ports.

This is actually a really good idea, even for an adapter that does not require an original controller in-line.

One of the issues I was struggling with was a way to map buttons that is conducive to everyday Jaguar games (that rely heavily on CBA as primary buttons, with intermittent use of keypad) and ProController games, particularly the fighting games like Primal Rage and Double Dragon V (which rely heavily on all six ProController face buttons).

 

I've pretty much settled on this as my preferred PS2 converter layout:

L2(4) Select(Option) R2(6)
L1(7) Start(Pause)   R1(9)
     /\(8)
[](C)     O(A)
     X(B)

L3 (modifier) R3(0)

while holding L3:
L2(*)  R2(#)
     /\(2)
[](1)     O(3)
     X(5)

This works great for most games, including games like Atari Karts where the ProController shoulder buttons are used. C/B/A are all easily accessible face buttons, and the button layout is about as intuitive as you can get given the limitations.

However, when it comes to fighting games, this mapping just doesn't work.  Fightsticks are popular input methods for fighting games (yet regrettably absent from Jaguar peripheral options), and for the PS2, the most common fightstick button layout is:
 

[](LP) /\(MP) R1(HP) L1(none)
 X(LK)  O(MK) R2(HK) L2(none)

(where LP/MP/HP are light/medium/heavy punch, and LK/MK/HK are light/medium/heavy kick)

But if we have a PS2 fightstick with that layout, and we connect it to our new adapter, here's how the mapping shakes out:

C(LK) 8(MP) 9(HP) 7(LP)
B(MK) A(HK) R(none) L(none)

It's broken and unusable.  And unlike newer fighting games, Jaguar fighting games don't always have the option of manual button reassignment; for example, Primal Rage simply allows you to pick from a dozen or so preset button configurations (none of which solve this problem).

So instead, I propose the same kind of switch that you mentioned above.  That switch would toggle between a general layout (the first one I listed):

L2(4) Select(Option) R2(6)
L1(7) Start(Pause)   R1(9)
     /\(8)
[](C)     O(A)
     X(B)

L3 (modifier) R3(0)

while holding L3:
L2(*)  R2(#)
     /\(2)
[](1)     O(3)
     X(5)

and a joystick/fightstick layout:

Select(Option) Start(Pause)
[](7) /\(8) R1(9) L1(4)
 X(C)  O(B) R2(A) L2(6)

L3 (modifier) R3(0)

While holding L3:
[](1) /\(2) R1(3) L1(none)
 X(*)  O(5) R2(#) L2(none)

I think this would cover all the bases and be the most future-proof solution, especially when you consider that converters that allow you to use PS4 controllers on PS2 are still being made today.


Edited by Spider-Dan, Mon Apr 23, 2018 10:06 PM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users