Activator support

Issue #157 resolved
Former user created an issue

Original [issue 157](https://code.google.com/p/genplus-gx/issues/detail?id=157) created by Rodrigo.Borges.Freitas on 2011-03-09T22:33:32.000Z:

Although joysticks with two analogs are almost standard, no one thought in adding support for the obscure acessory called activator, only a few games support it but I think it would be interesting to see how this could be implemented.

I imagine that a good way would be to use a classic controller (two analogs) with each analog representing a plane: Upper and Lower, respectively controls activated with the arms and controls activated with the legs in the original hardware with some mod to be the equivalent of the start button or both analog for the same plane with a button to switch between upper and lower.

Too much trouble? maybe, but for a complete emulation of the original hardware, I think the emulators authors should at least try to implement this.

Comments (13)

  1. Former user Account Deleted
    • changed status to open

    Comment # 1 originally posted by ekeeke31 on 2011-03-09T23:29:23.000Z:

    Why not... I have doubt this would be more enjoyable (if even playable) this than using the default control pad scheme but yes, it would be interesting for the sake of completeness.

    That's said, the most difficult is not to think about how to map activator actions to Wii controller keys or directions but actually to find out how the Activator internally worked. There is basically no (technical I mean) informations about how it worked and how game programs interfaced with it. Disassembling games is possible but I suspect every game might have used different implementations. This is probably one of the reasons (beside the fact that emulating Activator with a keyboard or a joystick is not very playable) nobody has seriously looked into it.

  2. Former user Account Deleted
    • changed status to open

    Comment # 3 originally posted by ekeeke31 on 2011-03-14T13:10:45.000Z:

    Protocol figured by analysing Eternal Champions code:

    Activator can apparently be used in both ports and for each port, TH and D0 are set as outputs and are used to control acquisition sequences.

    It is almost identical to Sega Mouse handshake protocol, using D0 instead of TR.

    TH TR TL D3 D2 D1 D0 --------------------- 0 x x x x x 0 (write) start acquisition sequence

    x x x 0 1 0 0 (read) ID code (comment 4\.)

    0 x x x x x 1 (write) acquisition cycle comment 1\. x x x x x 1 x (read) wait acquisition ready (D1=D0) x a1 a2 a3 a4 1 x (read) captor 0-3 input

    0 x x x x x 0 (write) acquisition cycle comment 2\. x x x x x 0 x (read) wait acquisition ready (D1=D0) x b1 b2 b3 b4 0 x (read) captor 4-7 input

    0 x x x x x 1 (write) acquisition cycle comment 3\. x x x x x 1 x (read) wait acquisition ready (D1=D0) x c1 c2 c3 c4 1 x (read) captor 8-11 input

    0 x x x x x 0 (write) acquisition cycle comment 4\. x x x x x 0 x (read) wait acquisition ready (D1=D0) x d1 d2 d3 d4 0 x (read) captor 12-15 input

    1 x x x x x 0 (write) end acquisition sequence

    Still need to figure which captor corresponds to each 16 inputs but this should be easier to emulate than XE-1AP.

  3. Former user Account Deleted

    Comment # 4 originally posted by Rodrigo.Borges.Freitas on 2011-03-14T13:16:32.000Z:

    You could take a look at Mortal Kombat 2, it has the Activator as a control option in the menu and in Eternal Champiosn as it was bundled with it and I have a magazine that says that it unlocks a handicap mode for this game when connected.

  4. Former user Account Deleted

    Comment # 6 originally posted by Rodrigo.Borges.Freitas on 2011-03-15T01:23:27.000Z:

    There were some games promoted but I don't know if they actually had anything different in their code. Those are the one I remember: Super Street Fighter II, Greatest Heavyweights, Streets of Rage III and some karate/Tae kwon do game that I can't remember the name.

    If it help, I can post here some of images of the default controls used by eternal champions.

  5. Former user Account Deleted

    Comment # 7 originally posted by ekeeke31 on 2011-03-15T08:43:19.000Z:

    I didn't find any code to handle Activator in Street of Rage II or III. I suspect Eternal Champions was the ONLY game that really used the Activator full range of IR sensors, all other games probably only used the Activator like a normal 3-Button or 6-Button Control Pad with 4 sensors used for directions.

    This peripheral probably had a switch to make it responds like one of these controller, which from an emulation point of view, is the same as emulating a normal control pad.

  6. Former user Account Deleted

    Comment # 8 originally posted by ekeeke31 on 2011-03-15T09:02:56.000Z:

    Hum, seems like I was wrong, Mortal Kombat 2 has definitively some code (but different than Eternal Champions) to detect Activator. Must be connected on port 2 though.

  7. Former user Account Deleted

    Comment # 9 originally posted by ekeeke31 on 2011-03-15T13:40:33.000Z:

    Actually, after reading the game user manual I found here http://imageevent.com/gamescans/segagenesismanuals?n=261&z=9&w=0&x=1&c=5&m=20&p=260 , it seems activator and 3-buttons pad are handled the same way, this means the game does not do anything special and activator must be switched to 3-button mode.

    I guess "Activator" option in extra control menu is only there to differentiate from "6-Buttons" but it actually means "3-Buttons", so much for teasing...

  8. Former user Account Deleted

    Comment # 10 originally posted by Rodrigo.Borges.Freitas on 2011-03-15T13:48:28.000Z:

    "I suspect Eternal Champions was the ONLY game that really used the Activator full range of IR sensors" maybe you're right about this, looking at the game guide below, eternal champions and best of the best championship karate and greatest heavy weights are the only with seemingly logical control.

    Activator Instruction Manual http://www.segakore.fr/download.php?file=activator\_instruction\_guide\_u.pdf

    Activator Game Guide http://www.segakore.fr/download.php?file=activator\_game\_guide\_u.pdf

  9. Former user Account Deleted

    Comment # 11 originally posted by ekeeke31 on 2011-03-15T17:45:59.000Z:

    Thanks a lot for this, i was actually looking for it. Yes, I have found Greatest Heavyweight manual and it clearly mentions a special control scheme for activator, with all 16 inputs being used. I will look at Best of the Best.

  10. Former user Account Deleted

    Comment # 12 originally posted by ekeeke31 on 2011-03-16T17:31:11.000Z:

    Here is complete protocol. The peripheral apparently detects automatically the mode depending on the status of D0 line: if D0 is set as an output and state chanegs to zero, data si erturned in ACtivator mode, otherwise, the device acts as a traditionnal 3-buttons controller.

    Sensor configuration:

    (Facing TV)

    1 8 2

    7 3

    6 4 5

    Each sensor can detect 2 levels (high and low).

    Signals are active-low (0 means respective beam has been broken)

    Activator Mode (CTRL port = $41): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    TH TR TL D3 D2 D1 D0 --------------------- 0 x x x x x 0 (write) start acquisition sequence

    x x x 0 1 0 0 (read) peripheral ID code = 4

    0 x x x x x 1 (write) acquisition cycle comment 1\. x x x x x 1 x (read) wait acquisition ready (D1=D0) x 2U 2L 1U 1L 1 x (read) sensors 1-2

    0 x x x x x 0 (write) acquisition cycle comment 2\. x x x x x 0 x (read) wait acquisition ready (D1=D0) x 4U 4L 3U 3L 0 x (read) sensors 3-4

    0 x x x x x 1 (write) acquisition cycle comment 3\. x x x x x 1 x (read) wait acquisition ready (D1=D0) x 6U 6L 5U 5L 1 x (read) sensors 5-6

    0 x x x x x 0 (write) acquisition cycle comment 4\. x x x x x 0 x (read) wait acquisition ready (D1=D0) x 8U 8L 7U 7L 0 x (read) sensors 7-8

    1 x x x x x 0 (write) end acquisition sequence

    3-Buttons Mode (CTRL port = $40): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    TH TR TL D3 D2 D1 D0 --------------------- 1 x x x x x x (write) TH = 1 x C B R L D U (read) B/C buttons + Up/Down/Left/Right D-PAD

    0 x x x x x x (write) TH = 0 x S A 0 0 D U (read) A/START buttons + Up/Down D-PAD

    with:

    U = 0 if (1L==0) or (1U==0) D = 0 if (5L==0) or (5U==0) L = 0 if (7L==0) or (7U==0) R = 0 if (3L==0) or (3U==0) A = 0 if (4L==0) or (4U==0) or (6L==0) or (6U==0) B = 0 if (2L==0) or (2U==0) or (3L==0) or (7L==0) C = 0 if (8L==0) or (8U==0) S = 0 if ((4L==0) or (4U==0)) and ((6L==0) or (6U==0))

  11. Former user Account Deleted

    Comment # 13 originally posted by ekeeke31 on 2011-03-31T22:44:16.000Z:

    Implemented in 1.5.0

  12. Log in to comment