SINGLE TOOTH Posted June 11, 2007 Share Posted June 11, 2007 Been scouring the internets for a pinout for a 3do controller. Cant seem to find anything useful. Surly one of you gentlemen have the answer. Quote Link to comment Share on other sites More sharing options...
Prodos8 Posted June 12, 2007 Share Posted June 12, 2007 I couldn't locate a pin-out either online. But, from what I did find and read it seems to work much like the NES/SNES controllers by sending a stream of data (serially) to the console as to the state of the controller. That means it doesn't have a wire dedicated to each button/direction like 2600/Genesis controllers do. Maybe someone else might know more about them. Quote Link to comment Share on other sites More sharing options...
Zerosquare Posted June 12, 2007 Share Posted June 12, 2007 Check this out : http://web.archive.org/web/20031210153930/...ames/3do_tr.pdf Quote Link to comment Share on other sites More sharing options...
candle Posted April 19, 2011 Share Posted April 19, 2011 possibly there is no intrest in resurecting such old thread, but since i've already put 3 days of my time into this, maybe it would be good for someone somewhere if i shared the results i've developed simple SNES to 3DO adaptor, currently supporting only one controller - its not that its complicated when you've basics covered, but i would like to get some feedback or buttons mappings first so here we go schematics - (warining - do not mount R1 and R2, add crystal to pins #4 and #5 of MCU) board layout - easy enough to do at home with modest setup assembly drawings HEX file for programming AVR - please set CLKDIV8 to disabled and CLKSEL so it would use crystal over 8mhz (1110 it was) thing in action closeup of the board this board was designed to fit inside KM-100B case by maszczyk pins for SNES ports were taken from split DB25 male plug as i couldn't find any supplier for these sockets locally Sebastian Quote Link to comment Share on other sites More sharing options...
jasonbar Posted July 17, 2011 Share Posted July 17, 2011 Howdy- Slightly off-topic, but I think you guys might be able to help. I got an ALG Light Gun for my 3DO, but as soon as I plug it into my FZ-1, the FZ-1 starts resetting repeatedly over & over till I unplug it. I gather that the gun is shorting the ground & power pins on the controller port...? Thanks, -Jason Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted January 7, 2013 Share Posted January 7, 2013 possibly there is no intrest in resurecting such old thread, but since i've already put 3 days of my time into this, maybe it would be good for someone somewhere if i shared the results i've developed simple SNES to 3DO adaptor, currently supporting only one controller - its not that its complicated when you've basics covered, but i would like to get some feedback or buttons mappings first Sebastian Hi Sebastian, I have a couple of questions. I need a 3DO pad, but where I'm livin it's already impossible to buy one. So ¿why they can't adapt the snes pad directly to the 3DO? ¿What's the difference between both pads? I'm asking because both pads looks almost identical. ZZT Quote Link to comment Share on other sites More sharing options...
Rex Dart Posted January 7, 2013 Share Posted January 7, 2013 Hi Sebastian, I have a couple of questions. I need a 3DO pad, but where I'm livin it's already impossible to buy one. So ¿why they can't adapt the snes pad directly to the 3DO? ¿What's the difference between both pads? I'm asking because both pads looks almost identical. ZZT The two controllers send different data. Similar to the way you can't play a dreamcast disc on a playstation. It's just not going to send what the system is expecting to see. Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted January 8, 2013 Share Posted January 8, 2013 The two controllers send different data. Similar to the way you can't play a dreamcast disc on a playstation. It's just not going to send what the system is expecting to see. Thanks for your answer, if I understood well the difference is only the data. ¿right? Quote Link to comment Share on other sites More sharing options...
airs Posted July 18, 2014 Share Posted July 18, 2014 Sorry to resurrect an ancient thread but I'm trying to put together a two player SNES to 3DO adapter based on candle's design and for some reason he's unable to receive PMs. Candle - did you get two player functionality to work? Do you have any other images/documents/information about your progress with the project? Perhaps a parts list? Thanks very much! Quote Link to comment Share on other sites More sharing options...
airs Posted July 19, 2014 Share Posted July 19, 2014 Well, somehow I got it to work. Haven't tested second player functionality yet but 1P works great with stock SNES pad. Quote Link to comment Share on other sites More sharing options...
tripletopper Posted September 18, 2019 Share Posted September 18, 2019 I got s UFO 3DZero SNES->3DO adapter, and it has a daisy chain port to allow as many players ad the 3DO can allow (8? 10?) I found one flaw with a 3DZero... A game called Pataaank. If that's the only multiplayrr game that does work. No big deal when players 1 and 2 are alternating like in Pataaank. But if a 2 or more players simultanious game doesn't, that'd be awful. And red flagged games other than Pataaank? Quote Link to comment Share on other sites More sharing options...
david sos Posted August 22, 2020 Share Posted August 22, 2020 need to know the wire connection for the 9 pin light gun wire colors for pin numbers thank you david Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted December 30, 2020 Share Posted December 30, 2020 @airs hey buddy, you wouldn't happen to still have information on your build? Any designs you could share? Quote Link to comment Share on other sites More sharing options...
candle Posted December 30, 2020 Share Posted December 30, 2020 here is code i've wrote back then perhaps it will be any good for someone .include "tn2313def.inc" .def zero = r10 .def one = r11 .def two = r12 ;-------------------------------------------------------------------------------; ; Data Segment ; ;-------------------------------------------------------------------------------; .dseg .org SRAM_Start PadA: .byte 2 PadB: .byte 2 Pad3A: .byte 2 Pad3B: .byte 2 ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; General ;-------------------------------------------------------------------------------; ; Code Segment ; ;-------------------------------------------------------------------------------; .cseg .overlap .org 0 rjmp start .org INT0Addr .macro wait ldi @0,@1 ll: dec @0 brne ll .endmacro start: cli ; Disable Interrupts ldi r16,low(RAMEND) out SPL,r16 rcall MCU_Setup ; Setup ports sbi PORTD,4 main_l1: sbis PIND,3 rjmp main_strobe_low main_strobe_high: sbi PORTD,4 sbi PORTD,0 rcall SNES_Receive rcall SNES23DO sbi PORTD,4 cbi PORTD,0 main_strobe_high_s1: sbic PIND,3 rjmp main_strobe_high_s1 rjmp main_l1 main_strobe_low: rcall TDO_Send sbi PORTD,4 main_strobe_low_s1: sbis PIND,3 rjmp main_strobe_low_s1 rjmp main_strobe_high ;------------------------------------------------------------------------------- SNES23DO: lds r16,PadA ldi zl,Low(Translation*2) ;r30 ldi zh,High(Translation*2) ;r31 clr r20 clr r21 ldi r17,8 SNES23DO_l1: lpm r18,z+ lpm r19,z+ lsl r16 brcs SNES23DO_s1 or r20,r18 or r21,r19 SNES23DO_s1: dec r17 brne SNES23DO_l1 lds r16,PadA+1 ldi r17,8 SNES23DO_l2: lpm r18,z+ lpm r19,z+ lsl r16 brcs SNES23DO_s2 or r20,r18 or r21,r19 SNES23DO_s2: dec r17 brne SNES23DO_l2 sts Pad3A,r21 sts Pad3A+1,r20 ret ;------------------------------------------------------------------------------- ; SNES: YGSSUDLR RBLR---- ; ltpntt ; 3DO: 00DURLAB CPXRL001 ; Yellow (15) -> A ( 9) ; Green (14) -> B ( ; Select (13) -> X ( 5) ; Start (12) -> P ( 6) ; Up (11) -> Up (12) ; Down (10) -> Down (13) ; Left ( 9) -> Left ( 7) ; Right ( -> Right (13) ; Red ( 7) -> C ( 7) ; Blue ( 6) -> P ( 6) ; L ( 5) -> L ( 3) ; R ( 4) -> R ( 4) Translation: .dw 0b0000000100000000 ; Yellow (15) -> A ( 9) .dw 0b0000001000000000 ; Green (14) -> B ( .dw 0b0000000000010000 ; Select (13) -> X ( 5) .dw 0b0000000000100000 ; Start (12) -> P ( 6) .dw 0b0001000000000000 ; Up (11) -> Up (12) .dw 0b0010000000000000 ; Down (10) -> Down (13) .dw 0b0000010000000000 ; Left ( 9) -> Left (10) .dw 0b0000100000000000 ; Right ( -> Right (11) .dw 0b0000000010000000 ; Red ( 7) -> C ( 7) .dw 0b0000000000100000 ; Blue ( 6) -> P ( 6) .dw 0b0000000000001000 ; L ( 5) -> L ( 3) .dw 0b0000000000010000 ; R ( 4) -> R ( 4) .dw 0b0000000000000000 ; - .dw 0b0000000000000000 ; - .dw 0b0000000000000000 ; - .dw 0 ;------------------------------------------------------------------------------- TDO_Send: lds r18,Pad3A lds r19,Pad3A+1 lds r20,PadB lds r21,PadB+1 ldi r16,8 ldi r17,128 ldi r24,16 sbi PORTD,4 TDO_Send_l1: sbic PIND,2 rjmp TDO_Send_l1 ; wait for clock line going high mov r22,r18 and r22,r17 clr r23 cpse r22,zero mov r23,r24 out PORTD,r23 TDO_Send_s1: sbis PIND,2 ; wait for clock line going low rjmp TDO_Send_s1 lsr r17 dec r16 brne TDO_Send_l1 ldi r16,8 ldi r17,128 TDO_Send_l2: sbic PIND,2 rjmp TDO_Send_l2 mov r22,r19 and r22,r17 clr r23 cpse r22,zero mov r23,r24 out PORTD,r23 TDO_Send_s2: sbis PIND,2 rjmp TDO_Send_s2 lsr r17 dec r16 brne TDO_Send_l2 sbi PORTD,4 ret ;------------------------------------------------------------------------------- SNES_Pulse: sbi PORTB,1 wait r22,10 cbi PORTB,1 ret ;------------------------------------------------------------------------------- SNES_Strobe: sbi PORTB,2 wait r22,20 rcall SNES_Pulse wait r22,20 cbi PORTB,2 ret ;------------------------------------------------------------------------------- SNES_Receive: rcall SNES_Strobe clr r18 clr r19 clr r20 clr r21 ldi r16,8 ldi r17,128 SNES_Receive_l1: sbic PINB,3 or r18,r17 sbic PINB,4 or r20,r17 rcall SNES_Pulse lsr r17 dec r16 brne SNES_Receive_l1 ldi r16,8 ldi r17,128 SNES_Receive_l2: cbi PORTB,1 sbic PINB,3 or r19,r17 sbic PINB,4 or r21,r17 rcall SNES_Pulse lsr r17 dec r16 brne SNES_Receive_l2 sts PadA,r18 sts PadA+1,r19 sts PadB,r20 sts PadB+1,r21 ret ;------------------------------------------------------------------------------- Dec_digit: ldi r17,255 Dec_digit_l1: inc r17 subi r16,10 brcc Dec_digit_l1 subi r16,-10 mov zl,r16 mov r16,r17 ldi r17,255 Dec_digit_l2: inc r17 subi r16,10 brcc Dec_digit_l2 subi r16,-10 push r17 mov r17,r16 pop r16 ret Hex_digit: andi r16,0x0f subi r16,-48 cpi r16,58 brlo Hex_digit_ok subi r16,-7 Hex_digit_ok: ret ;------------------------------------------------------------------------------- ; Initial setup of microcontroller MCU_Setup: ldi r16,0b11100110 out DDRB,r16 ; set PORT B as output ldi r16,0b00011001 out PORTD,r16 ldi r16,0b00010001 out DDRD,r16 ; set PORT D as input ldi r16,0b00001000 out PORTD,r16 clr r16 mov zero,r16 inc r16 mov one,r16 inc r16 mov two,r16 ldi r17,255 MCU_Setup_l1: wait r16,255 dec r17 brne MCU_Setup_l1 ldi r16,0xFF sts PadA,r16 sts PadB,r16 ldi r16,0xFF sts PadA+1,r16 sts PadB+1,r16 ret ;------------------------------------------------------------------------------- oh, it's in assembler 1 Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted December 30, 2020 Share Posted December 30, 2020 @candle This is so awesome! Thanks for sharing the code. You wouldn't happen to have any copies of those PDFs you previously posted? I really want to learn how to build this. ? Quote Link to comment Share on other sites More sharing options...
candle Posted December 30, 2020 Share Posted December 30, 2020 this is what i have on a local backup SNES-to-3DO-sch.pdf SNES-to-3DO-prn.pdf SNES-to-3DO-pcb.pdf SNES-to-3DO.hex 1 Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted February 2, 2021 Share Posted February 2, 2021 @candle I got all the components and assembled on a breadboard over the weekend. Having some trouble though getting it to work. I flashed the chip with your hex file, I didn't connect the zero-resistors on clock/ps lines, and added a 8mhz crystal between pins 4/5 and setup CKSEL to 1110. I am suspecting it may be a fuse configuration issue. Do you happen to remember or know how to calculate correct fuse config? I used engbedded.com/fusecalc to generate: avrdude -c usbtiny -p attiny2313 -v -U lfuse:w:0x3e:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m Thanks again for sharing your assets to allow me to rebuild this. ? Quote Link to comment Share on other sites More sharing options...
candle Posted February 2, 2021 Share Posted February 2, 2021 you don't need external crystal for this, so i would leave that as it were right from factory the only thing i suspect you must change is clockdiv/8 bit changing default cpu speed to 8mhz (factory sets this to 1mhz instead) Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted February 2, 2021 Share Posted February 2, 2021 46 minutes ago, candle said: you don't need external crystal for this, so i would leave that as it were right from factory the only thing i suspect you must change is clockdiv/8 bit changing default cpu speed to 8mhz (factory sets this to 1mhz instead) I reset to defaults except for CKDIV8 not enabled. Still nothing, but I did notice if I enable CKOUT I get random directional controller input (without actually pressing buttons). I'm going to double check my wiring but I'm pretty sure I got everything connected correctly. Does CKOUT need to be enabled? Quote Link to comment Share on other sites More sharing options...
candle Posted February 3, 2021 Share Posted February 3, 2021 certainly not but if you take a look on the pictures, you'll find that 0R resistors are not populated on the board Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted February 3, 2021 Share Posted February 3, 2021 5 hours ago, candle said: certainly not but if you take a look on the pictures, you'll find that 0R resistors are not populated on the board Here is how I have my prototype wired up. I made sure to take the 0R resistors and the crystal out. I have tried numerous different fuse configurations but just can't seem to get this working this evening. Quote Link to comment Share on other sites More sharing options...
candle Posted February 5, 2021 Share Posted February 5, 2021 perhaps this will help someone building it there is a crystal soldered underneath of my original board - 20mhz one with some 22pF caps parallel to it so i guess you need to set up fuses to use it after all anyways, here are the pics Quote Link to comment Share on other sites More sharing options...
RobertDaleSmith Posted February 5, 2021 Share Posted February 5, 2021 6 hours ago, candle said: perhaps this will help someone building it there is a crystal soldered underneath of my original board - 20mhz one with some 22pF caps parallel to it so i guess you need to set up fuses to use it after all Nice! I got mine working! I didn't see an option for 20mhz on the AVR fuse calculator website. I went with Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time: 14 CK + 0 ms; [CKSEL=1110 SUT=10]. Just out of curiosity I went back to the 8mhz crystal and it also works. While testing I found a few bugs I will need to debug. - MNEMO's USB Host mod only receives single axis directional inputs. - 8BitDo Wireless Receiver incorrectly maps buttons start/pause action on several. @candle you mentioned some 22pF caps parallel to the crystal.. Are these in these recent photos you posted? I'm not sure how to place these caps in "parallel". (sorry im a newb) Also are these BOJACK 0.1uF caps suitable for the C1 in the schematic? Now my next steps are to figure out how to compile this assembly code myself so that I can start debugging and updating it. ?? Quote Link to comment Share on other sites More sharing options...
candle Posted February 5, 2021 Share Posted February 5, 2021 Quote Link to comment Share on other sites More sharing options...
candle Posted February 5, 2021 Share Posted February 5, 2021 in case anyone would need this 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.