retrospy / RetroSpy

Live controller viewer for Nintendo consoles as well as many other retro consoles and computers. Includes viewer application for Windows, and Arduino sketch for hardware interface.
https://retro-spy.com
GNU General Public License v3.0
145 stars 22 forks source link

SG-1000/SC-3000 controller support #202

Closed Shentokk closed 2 years ago

Shentokk commented 3 years ago

It seems that the SMS protocol doesn't work for SG-1000 controllers though the pinout seems the same from research I've done.

zoggins commented 3 years ago

Really? The SMS protocol is super simple, so this surprises me. I will see what I can find.

From: Shentokk @.> Sent: Sunday, November 7, 2021 10:37 To: retrospy/RetroSpy @.> Cc: Subscribed @.***> Subject: [retrospy/RetroSpy] SG-1000/SC-3000 controller support (Issue #202)

It seems that the SMS protocol doesn't work for SG-1000 controllers though the pinout seems the same from research I've done.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/retrospy/RetroSpy/issues/202, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE2CEVVJJBKCL3OO53CSJBTUK3BLBANCNFSM5HRDGD2Q.

Shentokk commented 3 years ago

I do wonder if it's something on my end then. The TX light on the Uno is permanently lit instead of blinking like with other profiles. I'm using the newest firmware and the other modes don't have this issue. I will note that I am using SMSOnGenesisSpy. Neither my SMS or SG-1000 controllers are being picked up on the Viewer.

Edit: As a mistake on my part, I forgot to include SMSSpy::OUTPUT_GENESIS in the setup and it works fine on my Genesis in SMS mode. It doesn't work on the SC-3000 though.

zoggins commented 3 years ago

TX light on implies the Arduino is sending data to the PC, but that is normal for the DB9 protocol. Their isn’t really even a protocol for SMS, each wire represents a button/direction. So I am wondering why the Arduino isn’t getting the signals. When you load the viewer there is just no activity at all?

From: Shentokk @.> Sent: Sunday, November 7, 2021 10:58 To: retrospy/RetroSpy @.> Cc: Christopher Mallery @.>; Comment @.> Subject: Re: [retrospy/RetroSpy] SG-1000/SC-3000 controller support (Issue #202)

I do wonder if it's something on my end then. The TX light on the Uno is permanently lit instead of blinking like with other profiles. I'm using the newest firmware and the other modes don't have this issue.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/retrospy/RetroSpy/issues/202#issuecomment-962662873, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE2CEVVUQJSHV7KBKHCGKWTUK3D3LANCNFSM5HRDGD2Q.

Shentokk commented 3 years ago

That's correct. There's absolutely no activity when connected to the SC-3000.

zoggins commented 3 years ago

What controller are you using?

From: Shentokk @.> Sent: Sunday, November 7, 2021 11:41 To: retrospy/RetroSpy @.> Cc: Christopher Mallery @.>; Comment @.> Subject: Re: [retrospy/RetroSpy] SG-1000/SC-3000 controller support (Issue #202)

That's correct. There's absolutely no activity when connected to the SC-3000.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/retrospy/RetroSpy/issues/202#issuecomment-962668814, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE2CEVTHKD6TCYG6VRSFK23UK3I6JANCNFSM5HRDGD2Q.

Shentokk commented 3 years ago

I am using a Sega SJ-150 controller. I've also tried my SJ-152 Mark III controller.

https://segaretro.org/Joypad_(SJ-150)

zoggins commented 3 years ago

I should ask, what console/computer is the problem?

From: Shentokk @.> Sent: Sunday, November 7, 2021 11:46 To: retrospy/RetroSpy @.> Cc: Christopher Mallery @.>; Comment @.> Subject: Re: [retrospy/RetroSpy] SG-1000/SC-3000 controller support (Issue #202)

I am using a Sega SJ-150 controller. I've also tried my SJ-152 Mark III controller.

https://segaretro.org/Joypad_(SJ-150)

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/retrospy/RetroSpy/issues/202#issuecomment-962669439, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AE2CEVUIZROM7YOEPZ4HPDDUK3JQ5ANCNFSM5HRDGD2Q.

Shentokk commented 3 years ago

I am using a Sega SC-3000 computer.

zoggins commented 2 years ago

So the controller works fine an on SMS just not the SC-3000? Or does the controller not work on anything?

Shentokk commented 2 years ago

The controller works fine when used on a SMS.

zoggins commented 2 years ago

Wait what viewer are you using in the UI? If you are using MODE_SMS_ON_GENESIS you need to select Genesis the UI even if you are on a Master System

Shentokk commented 2 years ago
<?xml version="1.0" encoding="UTF-8"?>
<skin name="SMS" author="Shentok" type="genesis">

    <background name="SMS" image="gamegear.png" />

    <button name="1" image="button.png" x="311" y="192" width="79" height="79" />
        <button name="red" image="button.png" x="311" y="192" width="79" height="79" />
            <button name="a" image="button.png" x="311" y="192" width="79" height="79" />
    <button name="2" image="button.png" x="408" y="117" width="79" height="79" />
        <button name="blue" image="button.png" x="408" y="117" width="79" height="79" />
            <button name="start" image="button.png" x="408" y="117" width="79" height="79" />

    <button name="up" image="up.png" x="71" y="68" width="56" height="78" />
    <button name="down" image="down.png" x="71" y="151" width="56" height="78" />
    <button name="left" image="left.png" x="20" y="122" width="76" height="53" />
    <button name="right" image="right.png" x="102" y="122" width="79" height="53" />

</skin>

I am using it in the genesis section.

Interestingly enough when I press right on the SC-3000 keyboard, button 2 gets triggered in RetroSpy.

When in port 1:

7=up
U=down
J=left
M=right
Right=2

When in port 2:

up=up
break=left
graph=right
ctrl=1
shift=2
zoggins commented 2 years ago

So my setup is: SC-3000 playing Star Jacker Arduino UNO programmed with MODE_SMS_ON_GENESIS Sega Genesis -> SMS Controller skin SJ-150 controller Pinout: Genesis Pin 1 -> Uno pin D2 Genesis Pin 2 -> Uno pin D3 Genesis Pin 3 -> Uno pin D4 Genesis Pin 4 -> Uno pin D5 Genesis Pin 5 -> Not Connected Genesis Pin 6 -> Uno pin D6 Genesis Pin 7 -> Uno pin D8 Genesis Pin 8 -> Uno GND Genesis Pin 9 -> Uno pin D7

and it works, so something strange is going on. Is this your setup also?

Shentokk commented 2 years ago

So it turns out that it was because I didn't have ground connected. It had gotten loose on the breakout board and it looked like it was still attached, but it wasn't on closer inspection. Fixing that did the trick. Sorry for all the trouble on something so simple.

zoggins commented 2 years ago

No worres, glad its working now