Closed ale-79 closed 6 years ago
How should the test program behave correctly? PaddleTest.zip (red = paddle auto-detected, blue = joystick auto-detected, green = joystick forced)
The bar corresponding to a port (left/right) where a genesis pad is plugged in should be red
Is there some e.g. button connected to pin 9? If not, why is the controller doing that?
There's no button connected to that pin, as, on a Genesis/Mega Drive console, that's the power (+5V) pin. https://gamesx.com/wiki/doku.php?id=controls:megadrive_genesis_controller_3
Hmm... Can this be used to auto detect a Genesis?
I just committed a fix, which works for the test program.
Do you know anything I can use as regression test?
Hmm, if there's no connection, wouldn't that imply max resistance (ie, an open circuit)??
Well, the test program only works with minimum resistance.
The pin is connected to pin 16 of the multiplexer IC inside the controller and to the resitor array. It's not completely clear to me why the controller still works on the 2600 even if power is applied to the wrong pin. I guess pin 1 of the 74157 IC (which is connected to pin 7 of the controller port, which in turn is power on the Atari) has an internal pullup resistor which allows the controller to be powered from that. I don't think the pad can be distinguished from a set of paddles by an autodetection routine just by testing the paddle lines.
Do you know anything I can use as regression test?
I tried Scramble and Stay Frosty 2 (see issue #206): both show no regression and correctly detect the genesis pad. Also the "Testcart" now correctly shows both paddle lines with minimum resistance (as on real hardware).
Thanks for testing.
@ale-79, can you point me to the specific Scamble and Stay Frosty 2 ROMs you used for testing? I want to have them locally to test this functionality in the future, in case something breaks again :smiling_imp:
The test roms in this thread on AA behave differently than real hardware. The genesis pad should be detected as paddle but it isn't in Stella because only the paddle line on pin 9 (INPT1/INPT3 depending on the port) is pulled high, while on real hardware both paddle lines (pins 5 and 9) are.