English Amiga Board


Go Back   English Amiga Board > Support > support.Hardware

 
 
Thread Tools
Old 21 June 2016, 15:55   #1
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 679
Useless fact of the day

There’s an 8 bit shift register in the CD32 controller, and only 7 input pins are used.
The four direction inputs aren’t multiplexed, and wired like a normal joystick.
Connecting a button to bit 0 (the unused one) duplicates the Play/Pause button.
I was hoping it opened the bonus undiscovered secret menu
xArtx is offline  
Old 21 June 2016, 17:56   #2
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,409
Hmmmm... That's an interesting effect. Normally that eighth input is held high so that the presence of a CD32 controller can be detected, but I have no idea if any games that read the pad directly actually do this check. I suspect not.

The bits are normally:
0-6: The buttons, state depends on the button being pressed or not.
7: Always high
8: Always low (since the register is emptied)

Reading bits 7 and 8 will tell you if the connected controller is a CD32 pad since they're always 1 and 0 respectively.

Does the pause thing work in all games? Pause is bit 6, the one before the "spare" input, so I guess some things could be reading it a pulse later. very interesting...
Daedalus is offline  
Old 21 June 2016, 17:58   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 22,022
Some game(s) does use it to detect CD32 pad. I don't remember which ones, it was years and years ago when I implemented CD32 pad emulation.
Toni Wilen is offline  
Old 21 June 2016, 18:12   #4
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 679
Ah, Yes that would work to detect the serial controller.
It’s held high via resistor until a button which doesn’t exist pulls it low like all the others.
It’s bit A on the shift register, which might end up bit 7 in the Amiga.

I suppose you could check any real button, they are held high too.
It would only be wrong if someone held a button while plugging in the controller.

Daedalus, I tried it in the audio CD player. Both the proper Play/Pause button works, and also the extra one.
xArtx is offline  
Old 21 June 2016, 18:38   #5
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,409
Thanks Toni, good to know at least some people did things the "right" way

Well, that's the thing about the other buttons - there's always a chance someone's pressing a button at the critical moment when the game starts, eager to get going (or sitting on the pad). Interesting, I guess it falls out of the bottom of a switch/case style routine, or perhaps isn't fully masked for the pause button check.
Daedalus is offline  
Old 22 June 2016, 07:59   #6
xArtx
Registered User
 
Join Date: Jun 2013
Location: Australia
Posts: 679
I’ll have a look for that in those files. The CD Player source is there.

I reproduced the CD32 game controller to control that with a micro,
where the micro has an IR receiver to look out for Sony IR control codes,
so overall it’s an IR remote receiver for the CD32 audio CD Player.
They keyboard (Aux) port plug is to receive power supply, as the joy port is only 100mA,
and also connected to serial for debugging. It will make it easier to figure out the Sony IR codes.

I’m stuck at the moment, as I don’t have a 3.5mm socket for the Sony remote receiver.
It would have been easier, and only a single chip & plug to use the keyboard interface instead,
but I usually have a keyboard plugged into my SX-1, so this way the IR thing can stay plugged in most of the time.





xArtx is offline  
Old 22 June 2016, 18:58   #7
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,409
Nicely done! And that looks a lot neater than my prototype efforts
Daedalus is offline  
Old 22 June 2016, 19:01   #8
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 47
Posts: 2,643
Doesnt lowlevel lib use that to detect joypad vs joystick?
jotd is offline  
Old 22 June 2016, 19:08   #9
Daedalus
Registered User

Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 3,409
Yep, it does. It's relatively simple to read it directly as well so it wouldn't surprise me if many games read the controller status directly from the chipset without using lowlevel.library.
Daedalus is offline  
Old 22 June 2016, 21:58   #10
jotd
Cat freak
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 47
Posts: 2,643
What would surprise me is that games take the time to check controller type. They just assume CD32 pad and too bad for the ones who plugged a joystick. Not enough buttons
jotd is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Weird little fact about Xenon II CDTV version trydowave support.Games 0 24 October 2013 00:45
wanting to experiment, using Amiga (emulator) as my day to day machine, need advice mmace New to Emulation or Amiga scene 12 17 August 2013 19:16
Not sure CWB 3.9 is installing correctly... (in fact I know it isnt) asm1 project.ClassicWB 2 12 September 2009 20:39
New Year Day = throw CD32 in the dishwasher day Paul_s Hardware mods 16 03 January 2009 20:45
Useless Disks? NytroX86 New to Emulation or Amiga scene 21 20 November 2002 10:45

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 08:04.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.08255 seconds with 13 queries