Jump to content
IGNORED

Extending the ikonsgr MasterPlay Clone


Danjovic

Recommended Posts

The excellent MasterPlay clone provided by @ikonsgr have 4 spare pins that can be used ti extend its functionality.

Two of such signals can be used to interface to a NES/SNES controller leaving the other two to provide Top and Bottom button presses.  

 

Besides the female NES(or SNES) connector, only 3 components are necessary, as presented on the schematic below:

 

1601213608_Plusdiagram.thumb.png.b9ad942bc8ce315a48e6a535422f7b1d.png

 

I wrote some code that can be compiled using open source tools SDCC and GPUTILS. It preserves the original functionality of the adapter, while adding the support for the NES/SNES controller. In this version only buttons B and Y of the SNES controller are functional (besides the directionals, of course).

 

main.c

 

To compile the code, the following command is necessary:

sdcc  --use-non-free -mpic14 -p16f630 main.c -o "MasterPlayClonePlus"


Presently I don't have a 5200 system, so I'll be grateful if someone could help me on that, but If none shows off nevermind, LOL. I am doing that just for the fun of do it, so I should probably rig some hardware to "emulate" a 5200 game port and validate the code.

 

 

 

 

 

Link to comment
Share on other sites

5 hours ago, ikonsgr said:

If i'm getting this right, you developed an optional code for the 16F630 PIC i'm using on the "masterpaly clone" adapter i designed,  in order to add nes controller support, right?

 

Yes, precisely! Both controllers can be connected, and either one should work. 

Link to comment
Share on other sites

  • 1 month later...

Code now is working, yet it was tested with LEDs on the outputs.

Code can be compiled to either PIC16F630 of 16F688 by changing the processor in makefile. 

Unit can be used with Atari2600 compatible joystick at the same time as with NES/SNES controller. Sega Genesis controller might not work at the same time with NES/SNES, but that will depend on the output characteristic of each controller. That can be corrected using a couple of diodes on the trigger lines, but that will require further modification on Masterplay clone than the required to add support for the NES/SNES controller.

 

 

 

main16F688.hexmain16F630.hexmakefilemain.c

 

testing.jpg

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Danjovic said:

Code now is working, yet it was tested with LEDs on the outputs.

Code can be compiled to either PIC16F630 of 16F688 by changing the processor in makefile. 

Unit can be used with Atari2600 compatible joystick at the same time as with NES/SNES controller. Sega Genesis controller might not work at the same time with NES/SNES, but that will depend on the output characteristic of each controller. That can be corrected using a couple of diodes on the trigger lines, but that will require further modification on Masterplay clone than the required to add support for the NES/SNES controller.

 

 

 

main16F688.hex 2.75 kB · 1 download main16F630.hex 2.23 kB · 1 download makefile 367 B · 1 download main.c 9.37 kB · 1 download

 

 

:!:

Link to comment
Share on other sites

And here you are the full prototype assembled, tested with the Port Emulator.  Using the diodes on fire button lines both controllers can be connected at the same time (not that this might be useful but yet is possible).  Firmware still the same that was attached in post #8.  If someone could test it on PIC16F630 I will be grateful.

 

77388829_FullSetup.thumb.jpg.836e8e5671bd42bcd02e3cba1e3a0379.jpg

 

 

prototype-extended-masterplay.thumb.jpg.ea89f801b72656d98fa6094a2a175002.jpg

 

Testing.thumb.jpg.8a442e128b8bf10c373ec66b53126725.jpg

 

Note: Circuit is being powered by pin 12 and then the Port emulator detects it as a trackball.

Link to comment
Share on other sites

  • 7 months later...

With minor changes, it should be possible to utilize the time precise method to drive the outputs and break free from the internal potentiometer adjustment.

 

image.thumb.png.cd0f88c3e1fd3914898db460476b4a90.png

 

Built-in analog comparator can be used to detect the moment the 5200 releases the capacitors to charge. Processing can be done sequentially (i.e. no interrupts) as long as all the processing occurs in the remaining horizontal lines from the end of timing to the beginning of the next charge, which in numbers is something around 2mili-seconds.

 

image.thumb.png.0dfed5b60c27a92d435de0ba6687a7f5.png

 

 

 

 

Link to comment
Share on other sites

On 10/13/2020 at 7:54 AM, Danjovic said:

With minor changes, it should be possible to utilize the time precise method to drive the outputs and break free from the internal potentiometer adjustment.

 

image.thumb.png.cd0f88c3e1fd3914898db460476b4a90.png

 

Built-in analog comparator can be used to detect the moment the 5200 releases the capacitors to charge. Processing can be done sequentially (i.e. no interrupts) as long as all the processing occurs in the remaining horizontal lines from the end of timing to the beginning of the next charge, which in numbers is something around 2mili-seconds.

 

image.thumb.png.0dfed5b60c27a92d435de0ba6687a7f5.png

 

 

 

 

Hey, Sorry to interrupt. I sent you a PM, but screwed it up, so sent another with a figure as part of the fix and finally got right on the third PM, so just read the third PM from me please and forget first two. Thanks.

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...