viewtopic.php?p=34165#p34163
viewtopic.php?p=34165#p34165Sik wrote: ↑Mon Nov 12, 2018 4:06 pmReminds me, apparently the 3-button controller has no protection at all there (it wires the outputs as-is without any way to account for when the pin is configured the wrong way, which is common for TR on games supporting other devices). Does the console provide anything? Because I think Jorge said it doesn't, in which case WTF Sega (・_・)TmEE co.(TM) wrote: ↑Mon Nov 12, 2018 3:24 pmPins on the controller port can be both inputs and outputs and some devices expect the direction to be set different from what a normal controller configuration uses. If two outputs get connected together you will have one or both sides getting damaged sooner or later.
My first thought was to add some sort of escape route (sorta like a pull-down resistor but working backwards, in that it would suck in the current to GND if two outputs happened to collide), but Jorge also scoffed at the idea.
I was also told that, but the problem is that honestly to me this smells about as bad as trying to prevent damage to 3.3V Flash memory using resistors instead of proper level shifters - eventually the damage should accumulate over time, right? Given how much we bash people over not using level shifters now, to me it seems like the same logic should apply here. I suppose I could be overestimating the issue, but I really wouldn't like the idea of telling people to do something that turns out to slowly damage the thing with just normal use.TmEE co.(TM) wrote: ↑Mon Nov 12, 2018 4:26 pmThere are 330ohm series resistors on TH and TL or TR lines which will help in cases using those pins out of the normal way. 330 ohms isn't a huge load to fight.
Also I recall that part of the conversation was that you should immediately switch back the pins to a "safe" configuration (read: only TH as output) if you don't immediately detect a non-controller peripheral in a port. Something that isn't ever mentioned anywhere (neither official docs nor unofficial ones that I've seen). Anybody know what's up with that, how much of a big deal is it? Because I've been trying to make sure to set up the I/O control ports a frame before actually using the peripheral, because some peripherals may misbehave if you tried to access them the wrong way the first time and don't give them time to return back to an idle state (and nobody will notice if it takes a few frames to detect a new peripheral).