Jump to content
IGNORED

MegaPlay: Sega Genesis/Megadrive controller adapter with keypad emulation


Danjovic

Recommended Posts

Very interesting...

 

My only suggestion for now is that the Pause be the primary for the Start button as that is most likely to be needed during games play for quick access. I would rather have to press the Mode button plus start to start the game than press it and the start button to pause.

 

But maybe I'm the only weird guy thinking that way?

 

Link to comment
Share on other sites

2 hours ago, -^CrossBow^- said:

Very interesting...

 

My only suggestion for now is that the Pause be the primary for the Start button as that is most likely to be needed during games play for quick access. I would rather have to press the Mode button plus start to start the game than press it and the start button to pause.

 

But maybe I'm the only weird guy thinking that way?

 

Thanks for the suggestion. The source code will be available, though, to ease any modification. 

Link to comment
Share on other sites

3 hours ago, 0078265317 said:

No you are not.  I agree with what you said.

Glad I'm not alone on this.

 

Here is my issue with the plain start button acting as just start. More often than not, I would likely press the button wanting to pause, or might not have the Mode button pressed down enough and then press the Start button. And we all know what happens when you press the start button on 5200 games in the middle of playing said game? 

 

Yeah... I wouldn't be happy if I'm doing well on a game and then trying to pause it only to get a brain fart and forget to press mode first and now my entire game literally restarts from the beginning again. So yeah, I would much rather it take a little more effort to Start the game as opposed to pausing it. At least that way, if the mode button is flaky or I didn't press it properly, the worst that happens at the end of my game is the system is paused. 

 

That's really my only thought on why it should be reversed. 

 

But I also can see why you did it this way, since the Start button is labeled as such, it would make sense for it to always start the game. 

Link to comment
Share on other sites

1 hour ago, bohoki said:

i was referring to the cheap $3 ones like here their cord is like 2 foot long but they generally work

 

https://www.ebay.com/itm/Wired-6-Button-Pad-Gamepad-Controller-For-Mega-Drive-Megadrive-Sega-MD-Genesis/111834519151

Oh, indeed, I have a couple of those cheap controllers but never seen any without the Mode button ;).

Besides the hardware workaround it is possible to detect the button "start" at power up then use it to access the alternate functions.

Same apply to 3 button controller. Start key could be used to access 7 more buttons.

Link to comment
Share on other sites

5 minutes ago, -^CrossBow^- said:

But I also can see why you did it this way, since the Start button is labeled as such, it would make sense for it to always start the game

Indeed, that was the reason. Again, thank you for the suggestion, I will definitely exchange Pause and Start functionality.

Link to comment
Share on other sites

Again, I really like this idea and support it! I've got a small army of 6-button sega controllers that I could use for this and would!

 

So yeah, I think it is a great idea and project. Just make the Start button act as pause and then with mode held down, it would start the game. And on most modern stuff today, the Start and Pause are usually the same button so it makes sense still in that regard.

 

 

Link to comment
Share on other sites

Updated button mapping:

MegaPlay.thumb.png.df90a12793f07e022c3acdb6eb802215.png

 

//...
 
    } else { // Mode button released
      switch(combinedButtons) {
        case buttonX:     // keypad * 
           setKeypad (_keyAsterisk);
           break;    
        case buttonY:     // keypad 0
           setKeypad (_key0);
           break;    
        case buttonZ:     // keypad #
           setKeypad (_keyHash);
           break;
        case buttonStart: // Pause
           setKeypad (_keyPause);
           break;
        default:       // None or multiple
           setKeypad (_keyNone);
      }
//...    

Schematic/PCB

 

MegaPlaySchematics.png

MegaPlayBoard.png

Edited by Danjovic
added more images
  • Like 1
Link to comment
Share on other sites

On 1/24/2020 at 6:19 PM, bohoki said:

i was referring to the cheap $3 ones like here their cord is like 2 foot long but they generally work

 

https://www.ebay.com/itm/Wired-6-Button-Pad-Gamepad-Controller-For-Mega-Drive-Megadrive-Sega-MD-Genesis/111834519151

A possible button mapping for controllers without MODE button might be done as below:

+--------+--------------+--------------+---------------------+
|        |     6 button controller     |                     |
+--------+--------------+--------------+ 3 button controller |
| Keypad | w/ mode key  | w/o mode key |                     |
+--------+--------------+--------------+---------------------+
|   1    | mode + X     |    C + X     |       C + LEFT      |
|   2    | mode + Y     |    C + Y     |       C + UP        |
|   3    | mode + Z     |    C + Z     |       C + RIGHT     |
|   4    | mode + A     |    C + A     |                     |
|   5    | mode + B     |    C + B     |                     |
|   6    | mode + C     |    C + DOWN  |                     |
|   7    | mode + LEFT  |    C + LEFT  |                     |
|   8    | mode + UP    |    C + UP    |                     |
|   9    | mode + RIGHT |    C + RIGHT |                     |
|   0    |      Y       |      Y       |       C + DOWN      |
|   *    |      X       |      X       |       C + A         |
|   #    |      Z       |      Z       |       C + B         |
| START  | mode + START |    C + START |       C + START     |
| PAUSE  | START        |    START     |       START         |
| RESET  | mode + DOWN  | C+START+DOWN |     C + B + START   |
+--------+--------------+--------------+---------------------+

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

So far, so good... Keypad emulation is working great, either with 3 button or 6 button genesis controller.

1170601583046525974.png

LEDs are mounted on protoboard to monitor the state of the lines driving the multiplexers.

5016451583046625562.png

Verified interrupt mechanism to cut the directional outputs when voltage CAV drops down to zero and keep like that until the next rise. This should deal with ATARI 5200 trackball/joystick detection.

Activation of trigger buttons and axes was tested with leds on outputs. Need to finish the wire on protoboard and test on port emulator but I consider that the firmware reached a beta stage.

Edited by Danjovic
Update on status
Link to comment
Share on other sites

Have just finished to assemble the circuit and performed some tests.. As everything worked fine I can call it a release!

2955951583094400949.png

5628711583094437575.png

When no directional is being pushed the pot reading is on middle of the scale. When either direction is pressed the Pot values changes to 0 and 227 accordingly.

979571583094473178.d6e2dff4ac36cd57dd6cf
Link to comment
Share on other sites

On 1/24/2020 at 1:35 PM, Danjovic said:

I am working on another design of a controller adapter for the 5200. It shall be used together with a 3 or 6 button Megadrive/Genesis controller to provide full keypad functionality.

 

56541579841011962.png

 2139277733_3Buttonmapping.thumb.jpg.3052f9c045521409fdb2869660973953.jpg

 

Ready (updated 01-March-2020):

- Schematics;

- PCB design (can be ordered at OSHPark);

- Code;

- Testing;

- Documentation.

 

Todo:

 

- Unified 3/6 button mapping for those controllers that do not have a MODE switch.

- Assemble on PCB

 

 

 

Edited by Danjovic
Added PCB manufacturing link
Link to comment
Share on other sites

Added support for 6 button controllers that do not have a MODE button on the shoulder.

5326281583114562428.9e79489f8c27642b376622fbc0ef1535

At the very beginning of the code there is one directive:

#define NOMODEKEY

if the line with such directive is not commented the code generated will allow the 6 button controller to use the button C as a modifier, behaving exactly like the 3 button controller. In that case the keys X,Y,Z will still be mapped to '*', '0', and '#' respectively.

 

Now Megaplay will surely work with 8bitdo adapters! :rolling:

 

Link to comment
Share on other sites

  • 3 months later...
2 hours ago, Lectronimo said:

This would be very useful. Are you still testing it?

I have finished the development of the hardware and the firmware using a breadboard prototype. It worked like a charm with my 5200 port emulator that is the closest thing that I have to a real 5200.

The whole project including sources is availabe at Github.

 

You may like as well to check another controller adapter that I have developed: The Stingray.

 

Link to comment
Share on other sites

29 minutes ago, Danjovic said:

I have finished the development of the hardware and the firmware using a breadboard prototype. It worked like a charm with my 5200 port emulator that is the closest thing that I have to a real 5200.

The whole project including sources is availabe at Github.

 

You may like as well to check another controller adapter that I have developed: The Stingray.

 

You dont have a 5200?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...