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

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
pueto 45 del cartucho de family (Audio from 2A03)
by on (#220905)
veo que este puerto es una entrada para el 2A03 de audio saben como puedo enviarle datos? manejo arduino
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220911)
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
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220927)
o sea, el cartucho envia sonido directamente la consola que sale por la salida de audio?
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220934)
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.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220963)
y para enviar mensajes al 2A03 para hacer sonido existe algo?
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220973)
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):
viewtopic.php?t=17425
viewtopic.php?t=11002
viewtopic.php?t=10806
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#220998)
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/
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221005)
este es mejor ejemplo http://www.deblauweschicht.nl/tinkering/mos6581_2.html
https://github.com/LeifBloomquist/ArduinoSID
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221016)
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.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221086)
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
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221095)
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.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221101)
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/
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221106)
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: viewtopic.php?t=16964
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221107)
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?
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221138)
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.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221246)
Hice mi primera versión que realmente en un fake pero se escucha muy similar a family

sin usar el micro solo emulando y entrando por RF
Image
https://archive.org/details/familygame-midi-usb-famicom-famitracker

tiene 5 canales MIDI:

1 - PWM25
2 - PWM25
3 - triangulo
4 - ruido
5 - DCPM lo interpreta como otro canal de ruido
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221248)
lidnariq wrote:
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.


Esto no lo entendí, se como funciona MIDI pero solo usa un cable donde lo tendría que conectar en el familygame?
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221253)
¿Estás preguntando cómo conectar los dos eléctricamente?

¿Qué significa "familygame"? ¿Un cartucho specificamente?
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221256)
lidnariq wrote:
¿Estás preguntando cómo conectar los dos eléctricamente?


claro, el 2A03 lee midi o algo parecido? y como se conecta la TTY (RS232 8-n-1 serie a 31250 baudios)

lidnariq wrote:
¿Qué significa "familygame"? ¿Un cartucho specificamente?


a la consola tipo famicom no a un cartucho, yo quiero enviar datos a la consola
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221262)
bazza wrote:
claro, el 2A03 lee midi o algo parecido? y como se conecta la TTY (RS232 8-n-1 serie a 31250 baudios)


Yo haría esto:
Code:
CPU MIDI current source ---+        +---- Famicom expansion port pin 4 (Joypad 2 D4)
                           |        |
                          +----------+
                          |⤓ 6N138  >|
                          +----------+
                           |        |
CPU MIDI current sink -----+        +---- Famicom expansion port pin 1 (Ground)


Dependiendo, es concebible que esto funcione:
CPU MIDI current source ---- Famicom expansion port 15 (+5V)
CPU MIDI current sink ---- Famicom expansion port pin 4 (Joypad 2 D4)


Necesitará algo que ya emita MIDI, como esto.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221264)
yo pensaba que esa conexión era para usar el software Miracle NES y que si uno lo enviá así sin nada no sonaba.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221265)
El cable Miracle Piano sólo utiliza MIDI cuando se trata de un instrumento independiente. Cuando se utiliza el cable de NES a piano, es algo más parecido a SPI.

http://problemkaputt.de/everynes.htm#co ... rollerport

En cualquier caso, el software Miracle Piano no utiliza el generador de sonido del 2A03.
Re: pueto 45 del cartucho de family (Audio from 2A03)
by on (#221267)
No parece funcionar. Ademas todos los ejemplos que encuentro usan un software un cartucho que usa el joystick o puerto como control para enviar los mensajes que traduce del MIDI