pueto 45 del cartucho de family (Audio from 2A03)

NES development discussion in English, Español, Français, Português, русский язык, or any language.

Moderator: Moderators

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Wed Jul 11, 2018 6:52 pm

veo que este puerto es una entrada para el 2A03 de audio saben como puedo enviarle datos? manejo arduino

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Wed Jul 11, 2018 10:11 pm

Como en el 163 de Namco, el audio viene del 2A03 en puerto 45, va por un resistor de 4-30 KΩ, y el audio del 163 entra al mismo tiempo. De allí, entra la consola en puerto 46.

En contraste, el audio del MMC5 o del Sunsoft 5B se combina con una resistencia de cada fuente, y luego pasa a través de un amplificador en el CI del mapeador.

vea https://wiki.nesdev.com/w/index.php/File:MMC5_audio.png

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Thu Jul 12, 2018 7:22 am

o sea, el cartucho envia sonido directamente la consola que sale por la salida de audio?

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Thu Jul 12, 2018 10:32 am

Verdad.
El audio analógico proviene del 2A03 en la salida 45.
Luego se mezcla o pasa a través del cartucho.
Finalmente regresa a la consola en la salida 46, el cual lo envía al modulador RF o a un conector RCA.

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Thu Jul 12, 2018 7:01 pm

y para enviar mensajes al 2A03 para hacer sonido existe algo?

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Thu Jul 12, 2018 10:55 pm

No hay ninguna manera preexistente de enviar mensajes al 2A03.

Tendría que escribir un programa ejecutado por el 2A03 que recibiría comandos para generar sonidos.

Sólo entonces podría usar un arduino para enviarle mensajes.

Aquí hay algunos enlaces a personas anteriores que han intentado hacer lo mismo (en inglés):
https://forums.nesdev.com/viewtopic.php?t=17425
https://forums.nesdev.com/viewtopic.php?t=11002
https://forums.nesdev.com/viewtopic.php?t=10806

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Fri Jul 13, 2018 9:37 am

lo que yo pienso es que es similar a 6502 y que se puede hacer una conexión directa similar :
http://www.plingboot.com/2015/10/homebrew-6502-part-2/


lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Fri Jul 13, 2018 4:24 pm

Hay grandes diferencias entre la Nintendo y esos ejemplos.

1- Que utiliza un CMOS 65C02 desnudo, que puede funcionar a cualquier velocidad, incluso parado. El NMOS 6502 no puede funcionar a menos de 10kHz, por lo que el NMOS 2A03 no puede funcionar a menos de 120kHz.
2- El sonido dentro del 2A03 es explícitamente una función del reloj externo suministrado. Si lo ralentizas lo suficiente para poder proporcionar datos a la CPU usando un Arduino, los sonidos serán tremendamente más bajos.
3- La PPU dentro de la NES usa el mismo reloj para dibujar la pantalla, si ralentiza el reloj usado por la PPU, ya no dibujará una imagen válida.

Para el otro ejemplo, el SID es un dispositivo que está explícitamente destinado a ser controlado por una CPU externa. Se puede utilizar con cualquier CPU. Hay muchos ICs como este, por ejemplo SN76494, AY-3-8910, YM2413. Por el contrario, el audio del 2A03 está físicamente conectado a su propia CPU, y hay que utilizar el código ejecutado por el 2A03 para controlar sus registros de audio.

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Sat Jul 14, 2018 1:23 pm

mi idea es comenzar usando el sonido con el reloj de family colocado en una consola por ahora solo lo emulo con un sintetizador y lo meto por RF. La idea era usar los mensajes de procesador.
El sincronismo por lo que veo sale por el cartucho, puedo tomarlo de ahí.

Para los gráficos despues iba a ver como hacia.

Mi idea seria usar las memorias como en el ejemplo más complejo y saber como se escribe audio en 2A03 no creo que sea idéntico al SID

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Sat Jul 14, 2018 2:28 pm

Entiendo lo que quieres hacer. Estoy diciendo que esta cosa es muy difícil y hay una razón por la que no has encontrado explicaciones preexistentes de cómo hacer esto.

Será tremendamente más difícil usar el 2A03 como generador de sonido que usar un CI de sonido dedicado (como el SID).

Por favor, lee los temas a los que he enlazado. He descubierto que deepl.com hace un trabajo increíble de traducción de cosas.

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Sat Jul 14, 2018 3:59 pm

Eso me imaginaba :(
Lo que me parece interesante es que le procesador tenga casi todos los puertos en el cartucho creo que se podria hacer algo tengo que armarlo bien en un protoboard y probar.
me gustaría que me ayudaran con algún ejemplo simple por ejemplo como hacer un onda triangular.


Por otro lado tengo uno checho con http://blog.dzl.dk/2014/04/26/thesynth- ... t-upgrade/

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Sat Jul 14, 2018 5:29 pm

La CPU del interior del 2A03 es suficientemente rápida como para recibir manualmente el MIDI que se le envía. Pero tendrás que escribir el programa para correr en el 2A03; no puedes trivialmente hacer que Arduino introduzca datos en el 2A03.

No sé cómo hacer que el Arduino tenga sentido aquí. El 2A03 tiene que ejecutar código 6502, hay que entender el código 6502 que ejecuta, y en ese punto también se puede hacer que el 2A03 sea el que recibe el MIDI estándar de 31250 baudios.

Aquí hay otro ejemplo: https://forums.nesdev.com/viewtopic.php?t=16964

User avatar
bazza
Posts: 89
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by bazza » Sat Jul 14, 2018 5:49 pm

es que yo quiero omitir la ROM no "darle" código directamente en el procesador, sobre el sintetizador, es lo mismo que se puede hacer en el 6502

hay documentación de como conectar el midi?

lidnariq
Posts: 8777
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: pueto 45 del cartucho de family (Audio from 2A03)

Post by lidnariq » Sat Jul 14, 2018 10:29 pm

Sí, puede hacer algo como este ejemplo al que enlazó antes - http://www.plingboot.com/2015/10/homebrew-6502-part-2/

Sin embargo, existen las siguientes limitaciones:
#1 - el 2A03 divide su reloj de entrada por 12. Tendrá que proporcionar 12 veces más relojes por cada byte leído por la CPU, en relación con el ejemplo enlazado.
#2 - el 2A03 utiliza este mismo reloj para el sonido. Debe utilizar un reloj de velocidad constante, de lo contrario el sonido se distorsionará.
#3 - el 6502 (sin "C") tiene un reloj mínimo de 10kHz. Por debajo de esto, dejará de funcionar. Debido a esto y al divisor de reloj de entrada, el 2A03 tiene un reloj mínimo de 120kHz.

Cualquier otra cosa requerirá una ROM, o algo que se comporte de manera suficientemente similar a una ROM, para que la NES funcione.



MIDI: http://hardwarebook.info/MIDI_In

MIDI es un "bucle de corriente": cuando la corriente fluye es un 0 bit y cuando no lo es un 1 bit.

De lo contrario, es básicamente RS232 8-n-1 serie a 31250 baudios. Se supone que debes usar un optoaislador para convertir los niveles de corriente a niveles de voltaje, pero los emisores MIDI que he usado resultan tener una "fuente de corriente" de +5V y un "sumidero de corriente" de 0V o 5V.

Post Reply