It is currently Mon Jul 16, 2018 8:00 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 15 posts ] 
Author Message
PostPosted: Wed Jul 11, 2018 6:52 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
veo que este puerto es una entrada para el 2A03 de audio saben como puedo enviarle datos? manejo arduino

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Wed Jul 11, 2018 10:11 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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


Top
 Profile  
 
PostPosted: Thu Jul 12, 2018 7:22 am 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
o sea, el cartucho envia sonido directamente la consola que sale por la salida de audio?

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Thu Jul 12, 2018 10:32 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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.


Top
 Profile  
 
PostPosted: Thu Jul 12, 2018 7:01 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
y para enviar mensajes al 2A03 para hacer sonido existe algo?

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Thu Jul 12, 2018 10:55 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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


Top
 Profile  
 
PostPosted: Fri Jul 13, 2018 9:37 am 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
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/

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Fri Jul 13, 2018 12:00 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
este es mejor ejemplo http://www.deblauweschicht.nl/tinkering/mos6581_2.html
https://github.com/LeifBloomquist/ArduinoSID

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Fri Jul 13, 2018 4:24 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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.


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 1:23 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
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

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 2:28 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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.


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 3:59 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
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/

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 5:29 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 5:49 pm 
Offline
User avatar

Joined: Fri Nov 24, 2017 1:36 pm
Posts: 55
Location: Argentina
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?

_________________
http://ochobitwlectqv5c.onion.link/
http://4232.cf/


Top
 Profile  
 
PostPosted: Sat Jul 14, 2018 10:29 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7303
Location: Seattle
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group