Home | Forums | What's new | Resources | |
Trying to make a Home Made SS 6P Multitap |
SaturnAR - May 24, 2006 |
SaturnAR | May 24, 2006 | |||
Hello forum, im working trying to make a SS 6P multitap. I'm using a Microchip PIC microcontroller model: 16F873A to simulate the MT & process info that'll be sended to SS. The comunication between SS and my PIC(MT simulator) seems to be working fine. Aprox. 40 refresh per second(this speed really surprise me, because its really to slow for the PIC, but...40 is a respectable number) Im simulating as if the PIC is the MT and haves a Digital SS pad connected on channel 1 ,all other 5 channels i'm sending them as UNNCONECTED TAP. When i plug my electronic circuit on the SS, games recognize the simulation and shows one digital pad connected on game screen(the one i say is connected to channel 1) but when i press a button in the pad, the SS console doesn't do it. So...it all works fine, but...SS isn't detecting the buttons im pressing on the pad. The protocol and the data im sending: Multitap Protocol... Of course, i've connected a trigger on PORTA,0 of the microchip PIC microcontroller, so that if i press the button, it sends the Right arrow of the pad as pressed.This isn't shown in the tables. Tech Definitions & structure im using: *I'm comunicating with SS in SH-2 direct mode. *Method of comunication: 3 line hand-shake method (between TH,TR & TL pins) Each connected peripheric on each channel of the MT haves their own Saturn ID and must be sended one by one. Info: The Saturn ID(the size is 1 byte) have this struture: High nibble(four bits) indicate the "Saturn peripheric Standard Format"(there are 4 avaiable): Digital device(0 hex); Analog device(1 hex); Pointing device(2 hex); and keyboard device(3 hex). Low nibble(the other 4 bits) of Saturn ID indicates data size of connected peripheric: for digital device, data size is 2 bytes; for analog device, data size is 5 bytes; for pointing device,data size is 3 bytes; for keyboard device,data size is 4 bytes. *So, Im sending 0 Hexadecimal to indicate Digital Device connected on channel 1. * DATASIZE im sending for pad connected is 2 hexadecimal, this also taken of : "SATURN Digital Device Standard Format" *For the channels im sending as unconnected tap: i use F hexadecimal as ID and F hexadecimal as data size. Why? The document(PDF file) says that when a channel of the Multitap have no peripheric connected to it, FF hexadecimal must be sended as Saturn ID. Any help or sugestion will be really usefull. Regards. |
SaturnAR | May 25, 2006 | |||
Hi ExCyber, thanks for the response. Nice question... Well as you would all be able to see on the protocol in the link i've posted, the oficial document refeers as M6ID3,M6ID2,M6ID1,M6ID0. Last number seems to be(must be) the bit hierarchy in the high nibble of the ID byte. "M6ID" part is the problem! is the only part in the entire documents in witch this word appears So..i've readed & readed over & over again, and seems like M6ID+DataSize is in fact, Saturn ID byte. All the info i have to make this you can see it here: SMPC Document... On page 86(Acrobat counter) you can see the section specifiying the 4 types of "Sega Peripheral Standard Formats". So i think this is the ID i should respect & send. I'll try sending the Mega Drive ID(B Hex) and not Saturn ID, I've already done this, but i forgotten what happened( obviously nothing great!). But...Perhaps something is wrong, some byte i'm not sending..don't know! I really need some help, as soon as i'm able to make the Multitap Works,i will post all the info and files. For those who know asm lenguage, Microchip PIC Microcontroller use a "similar" asm, but with a smaller instruction set & sometimes pretty different instructions. Here's the file i've made and that i'm actually trying(my original program was larger(complex), but im now trying to make work this basic thing... I've attached the asm file so all of you could see it and, why no?, analize & critic it. Thanks for reading me.(yes, my english sucks, i know...sorry..im trying my best) Good luck! |