¿Cómo detecta la Nintendo 64 que hay un controlador conectado?

Para dar un poco de contexto, estoy tratando de emular la entrada del controlador al N64 a través de un pin GPIO en la Raspberry PI.

En un intento de lograr esto, tengo uno de los GPIO de PI en una configuración pull-up conectado a la línea de datos de la entrada del controlador N64 en la parte frontal del sistema. Esto es lo que parece:

ningún controlador conectado

En esta configuración, veo que el sistema N64 eleva la línea cuando está encendido, pero no hay solicitud de datos ni cambios adicionales.

Sin embargo, cuando adicionalmente conecto un controlador a las tres entradas (datos, tierra, vcc) así:

controlador conectado

Puedo monitorear los datos que fluyen entre el sistema y el controlador con el PI.

Entonces, finalmente, la pregunta: ¿cómo detecta el N64 que el controlador está conectado y cómo podría emularlo? ¿Es la resistencia entre la línea 3.3v y GND? ¿Algo completamente diferente?

Esta es mi primera publicación, así que avíseme si he traicionado alguna política de intercambio de pilas o si necesita información adicional.

¡Gracias por tu ayuda!

Probablemente a través de la participación real en el protocolo de señalización. Esto es probablemente demasiado amplio para abordarlo en una respuesta aquí, pero hay muchos recursos en línea y se encuentran fácilmente con una búsqueda en la web, por ejemplo , developer.mbed.org/users/fomartin/notebook/… Tenga en cuenta que las políticas aquí no permiten respuestas que simplemente se vinculan a sitios externos, una respuesta tendría que incluir suficientes detalles para ser independiente, lo que puede ser excesivo en este caso.
Hola Cris, gracias por responder! He buscado en muchos sitios, incluido ese, pero todos describen la comunicación del controlador <-> pi, que no incluye nada sobre la detección del controlador n64 ->. El controlador siempre responderá a 0x00 y otros comandos de sondeo correctamente desde esa configuración. Por lo que he leído, el sistema n64 debería bajar la línea para enviar el comando 0x00 "obtener estado del controlador", pero no veo eso. Mi teoría es que el n64 no hablará con el controlador sin algún tipo de detección eléctrica primero. ¿Tiene sentido?
Es posible que desee utilizar un alcance de almacenamiento o un analizador lógico basado en USB barato. Personalmente, sospecho que solo intentaría sondear cada pocos segundos, ya que sería el esquema más barato de implementar. Pero podría ser algo con resistencias de extracción, consumo de energía, mensajes no solicitados o pulsos más largos de "hey, estoy aquí" del controlador.
Tenía la esperanza de evitar el costo del analizador lógico, pero tal vez sea hora de invertir. Intentaré grabar la comunicación durante el arranque entre el controlador y N64 con el PI. Con suerte, eso me dará suficientes detalles para averiguar si hay algo interesante que me perdí. ¡Gracias!
Puede agregar un fragmento de texto a su pregunta que explique qué es un controlador N64 . Un enlace a la hoja de datos es un requisito para la pregunta.
@Transistor ¿Existe una hoja de datos disponible públicamente para un controlador N64?
@Transistor N64 = Nintendo 64 . No hay ninguna hoja de datos disponible públicamente.
Sí, Nintendo es peor que Broadcom en la publicación de hojas de datos para su equipo @Transistor

Respuestas (1)

Resulta que no estaba probando el GPIO el tiempo suficiente. Escribí un pequeño módulo kernel de Raspberry PI para probar el GPIO lo más rápido posible durante 3 segundos y registrar un seguimiento semipreciso. Esto es lo que apareció en el cable después de un segundo:

seguimiento de GPIO

En resumen, el N64 espera un segundo después del arranque para pedir a los controladores que se identifiquen con 0x00 seguido de un bit de parada.

¡Gracias Chris Stratton por tu ayuda!

¿Tu código para esto está disponible en alguna parte?