Jump to content
Bomberman94

Wrong auto-detection of controller…

Recommended Posts

Hi,

 

sometimes my Atari detects a Gamepad or QuadTari where none is 🤷‍♂️
 

My set-up:

- Atari 2600 light 6er PAL version

- left controller port: extension cable and original Atari CX40 controller

- right controller port: extension cable and savekey

 

Games that recognizes sometimes „more than there is“:

- Galagon (retail version): savekey is everytime found but once in addition to the savekey a QuadTari was detected 

- Stay Frosty 2 (retail version): sometimes a gamepad was found instead of the joystick - after put in another game (e.g. Thrust+) it detects correctly the joystick

- Super Corbra Arcade (retail version): sometimes a gamepad and sometimes a joystick was detected

 

Finding a gamepad instead a joystick is annoying because in Stay Frosty 2 I can’t throw snowballs with gamepad detected and in Super Corbra Arcade I can’t drop bombs. 
 

Maybe someone has an idea to „force joystick mode“ or why the detection fails?

 

Many thanks

 

Jürgen

Edited by Bomberman94

Share this post


Link to post
Share on other sites

It should help if you plugin the controller later.

  • Like 1

Share this post


Link to post
Share on other sites

First I've heard of this occurring. I don't think I put in an override <checking source>

 

    lda INPT1           ; Bit 7 will be on if genesis controller is plugged in
    and #$80            ; and button C is NOT pressed.  Bit 7 will be off if
    sta MMcontroller    ; standard joystick is plugged in.
    sta DF1WRITE        ; MMcontroller is ZP for 6507 code, DF1WRITE is for C code

 

Nope, no override.  It just checks bit 7 of INPT1. If ON a gamepad was detected, if OFF a joystick.

 

Have you tried it without the extension cords? Perhaps those are throwing something off.

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, SpiceWare said:

First I've heard of this occurring. I don't think I put in an override <checking source>

 

    lda INPT1           ; Bit 7 will be on if genesis controller is plugged in
    and #$80            ; and button C is NOT pressed.  Bit 7 will be off if
    sta MMcontroller    ; standard joystick is plugged in.
    sta DF1WRITE        ; MMcontroller is ZP for 6507 code, DF1WRITE is for C code

 

Nope, no override.  It just checks bit 7 of INPT1. If ON a gamepad was detected, if OFF a joystick.

 

Have you tried it without the extension cords? Perhaps those are throwing something off.

Maybe it is my Atari or „some Bytes left in the system“ but I disconnected everything from the controller ports and then turned my system off and on and then: „Gamepad found“ 😳8C85AA1F-1F49-44D5-BF6E-C763AAE4A060.thumb.jpeg.04fb8830708639f5ed5621acc740af26.jpeg

4CA07ADC-F515-4776-B44C-5DE996A35CCA.jpeg

Share this post


Link to post
Share on other sites

After that i played Thrust+ and after that everything is OK 🤷‍♂️

Thomas‘ Game will heal everything 😂

Edited by Bomberman94
  • Haha 1

Share this post


Link to post
Share on other sites

Thanks for testing, definitely a strange one. Pinging @johnnywc as he may have some additional insight into this issue with our games incorrectly detecting what's plugged into the console.

  • Like 1

Share this post


Link to post
Share on other sites

I cross checked with Stay Frosty 2. Suddenly a Gamepad was detected, I turned off and on and again a Gamepad (everything’s normally connected: left is joystick and right savekey). I played some Thrust+ and after that Stay Frosty 2 again - this time with correct joystick detection! I don’t know what makes my system think there is sometimes a Gamepad…

7DC91776-7FE8-40D4-9893-D6B14FB65F73.jpeg

Edited by Bomberman94

Share this post


Link to post
Share on other sites

And same with Scramble: after playing Thrust+ it detects my joystick correctly!

By the way: Scramble detects my savekey and message appears at the start - if a „Gamepad“ was detected (too) there is no message about the Gamepad, correct? 🤔

Edited by Bomberman94

Share this post


Link to post
Share on other sites

How about using other games than Thrust+ in between? Especially a paddle game.

Share this post


Link to post
Share on other sites
1 hour ago, SpiceWare said:

Thanks for testing, definitely a strange one. Pinging @johnnywc as he may have some additional insight into this issue with our games incorrectly detecting what's plugged into the console.

Hi there!

 

I have seen some weird things re: autodetection of controllers but I'm not exactly sure what causes it.  My guess is that some internal capacitor or something in the Atari is maintaining a charge, but this is more hardware related and a bit out of my league. 😕  

41 minutes ago, Bomberman94 said:

And same with Scramble: after playing Thrust+ it detects my joystick correctly!

By the way: Scramble detects my savekey and message appears at the start - if a „Gamepad“ was detected (too) there is no message about the Gamepad, correct? 🤔

You are correct; the GAMEPAD FOUND message was added to Super Cobra Arcade but it is not in Scramble (this has been added to the download version of Scramble from our site and I plan on sending the updated ROM to Al so subsequent carts will have the message also).  

 

Also, for Scramble and Super Cobra Arcade cart versions, I check bit 7 of INPT1.  However, in later games I check bit 7 of INPT1 and INPT0.  The reason for this is because Genesis gamepads always have these two bits as '1', and the QuadTari has only INPT1 bit 7 as '1'  (this is how we autodetect the difference between a QT and a Genesis gamepad).  The digital download versions of Super Cobra Arcade and Scramble have been modified to check both bits to be consistent with the later games (also so if you have a QT connected, it will not incorrectly detect it as a gamepad).

 

Hope that helps!

Share this post


Link to post
Share on other sites
46 minutes ago, Thomas Jentzsch said:

How about using other games than Thrust+ in between? Especially a paddle game.

Not yet - Thrust+ comes at first in my mind as this is one of my favorite games and was „just in my view“. 
 

Regarding paddle game: what should I try - as I have a Harmony cartridge it should be in the list?!

Share this post


Link to post
Share on other sites

Any paddle game should do. 

 

@johnnywc Are you dumping the ports before checking INPT0/1? The SF2 code looks like you are checking directly without dumping and waiting before.

Share this post


Link to post
Share on other sites
3 minutes ago, Thomas Jentzsch said:

 

@johnnywc Are you dumping the ports before checking INPT0/1? The SF2 code looks like you are checking directly without dumping and waiting before.

No, I do not dump the paddles first.  Sounds like a good idea though! :idea:  ;)  Is this what you do in Thrust+?

Share this post


Link to post
Share on other sites

Yes, because Thrust+ supports the Booster Grip (and Sega Genesis). So it dumps the ports each frame and when you change carts, there is a good chance that they are still low (or high?).

Edited by Thomas Jentzsch

Share this post


Link to post
Share on other sites
23 minutes ago, Thomas Jentzsch said:

Yes, because Thrust+ supports the Booster Grip (and Sega Genesis). So it dumps the ports each frame and when you change carts, there is a good chance that they are still low (or high?).

Makes sense.  So should I be dumping the ports on startup and waiting a bit before detecting the gamepad/Quadtari?

 

 

 

Share this post


Link to post
Share on other sites

Yup. This is the auto detect code from VROOM!, executed directly after the ZP clean loop:

    lda     #0
    tax
    ...
;---------------------------------------------------------------
; Detect QuadTari in left and right port
; Check if INPT0/2 get low after ~3 frames
    ldy     #$82
    sty     VBLANK      ; enable bit 7, dump ports
    sta     WSYNC
;---------------------------------------
.loopWaitQ
    sta     WSYNC
;---------------------------------------
    sta     VBLANK      ; disable bit 7, A = 0!
    dex
    bne     .loopWaitQ
    dey
    bmi     .loopWaitQ
; total: 3x256 = 768 scanlines = ~2.9 NTSC frames

; Right port
; - INPT2 = 1 && INPT3 = 1 -> Paddles
; - INPT2 = 0 && INPT3 = 1 -> QuadTari
; - INPT2 = 0 && INPT3 = 0 -> SaveKey
;---------------------------------------------------------------
    lda     INPT0           ; 3
    asl                     ; 2
    lda     INPT2           ; 3
    eor     INPT3           ; 3
    ror                     ; 2
    sta     quadTari        ; 3 = 16    bit 7==0: left quadtari; ; bit 6==1: right quadtari

 

Edited by Thomas Jentzsch
  • Like 2

Share this post


Link to post
Share on other sites

In the next 2 weeks I have time to connect my „Backup“-Atari 2600 to my TV (also light 6switch PAL version). 
 

Will try everything with the following setup:

- left controller: joystick (directly connected)

- right controller: savekey (directly connected)

 

 

  • Like 2

Share this post


Link to post
Share on other sites
On 10/13/2021 at 3:51 AM, Bomberman94 said:

In the next 2 weeks I have time to connect my „Backup“-Atari 2600 to my TV (also light 6switch PAL version). 
 

Will try everything with the following setup:

- left controller: joystick (directly connected)

- right controller: savekey (directly connected)

 

 

Today I tested it with my Backup-Atari and played some hours without any problems (everything’s correctly detected!). So problem seems to be the extension cable or the Atari itself…

 

In the next days I will finally test my Backup-Atari with 

- Controller Port left: extension cable + Joystick

- Controller Port right: extension cable + Savekey

 

If this also works and detection is reliable my Backup Atari will get my Main-Atari (just discovered today that it has a „better“ TIA chip as there are no stray dots in Pesco and Pitkat will run without problems). 

 

  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, Bomberman94 said:

Today I tested it with my Backup-Atari and played some hours without any problems (everything’s correctly detected!). So problem seems to be the extension cable or the Atari itself…

 

In the next days I will finally test my Backup-Atari with 

- Controller Port left: extension cable + Joystick

- Controller Port right: extension cable + Savekey

 

If this also works and detection is reliable my Backup Atari will get my Main-Atari (just discovered today that it has a „better“ TIA chip as there are no stray dots in Pesco and Pitkat will run without problems). 

 

OK, after playing some hours with my Backup Atari I can say: everything’s OK with the detection - my first Atari causes the strange and wrong detection of other hardware than the joystick (sometimes a Gamepad or QuadTari 🥴). I also swapped the joysticks - maybe it could be something with it but it is not. 

  • Thanks 1

Share this post


Link to post
Share on other sites
24 minutes ago, Bomberman94 said:

OK, after playing some hours with my Backup Atari I can say: everything’s OK with the detection - my first Atari causes the strange and wrong detection of other hardware than the joystick (sometimes a Gamepad or QuadTari 🥴). I also swapped the joysticks - maybe it could be something with it but it is not. 

It never was a fault of your Atari. The state of the registers checked is undefined when the console is switched on. If a game doesn't set them to a defined state, then the results maybe vary between consoles.

  • Like 1

Share this post


Link to post
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...