Autor Tema: SID6581 (sintetizador de audio del Commodore 64)  (Leído 71993 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: [*]Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #90 en: 18 de Junio de 2008, 14:04:17 »
Ya les conté que conseguí hacerme con un C64 por ebay. Ha llegado hoy... pero está roto  :8} :8} :8} y :8}

El ordenador muestra menos bytes libres de los que debería. Parece ser que esto indica un fallo en los chips de memoria 4264 (4164) o en sus gestores 74LS257

mmmmmmmmmmmm, dejame revisar y te digo.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
[*]Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #91 en: 18 de Junio de 2008, 14:12:34 »
Sí el SID está presente, pero tengo las manos atadas... no puedo hacer nada de electrónica porque tengo el taller desmontado (necesitamos espacio en casa) y en el trabajo estoy hasta el cuello.

A ver si dentro de un par de semanas cambian las cosas...

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #92 en: 18 de Junio de 2008, 17:21:52 »
¡Que mala pata!  :( Ni siquiera uno tengo.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #93 en: 20 de Junio de 2008, 04:37:00 »
En esta página http://www.lemon64.com/manual/ está el manual de usuario del c64, y una parte especialmente interesante es todo lo relacionado con la generación de sonido: http://www.lemon64.com/manual/manual/8_1.html.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #94 en: 21 de Junio de 2008, 09:37:24 »
Hola Juanfe!
Buen material. Yo tengo uno similar en papel, que me vino con la C64.

Voy a ver de hacer una placa de pruebas para el SID, sencilla, que utilice conectores compatibles con mis modulos entrenadores. Solo me está comiendo el coco el tema del CLOCK. ¿convendrá nomas usar el PWM del PIC para generalo?

¿Que opinas?

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #95 en: 21 de Junio de 2008, 10:18:55 »
Yo en eso ne tengo dudas. Seguro que te interesa usar el PWM porque así, como explicó Nocturno en otro hilo, podrás conocer internamente desde el PIC cuándo el reloj está en alto y cuándo en bajo, que es fundamental para la comunicación con el SID.

Creo que mañana por fin me quitaré de encima un proyecto de trabajo gordo que me ha tenido casi ahogado (será un gran día para mí) y a principios de la semana que viene terminaré algunos proyectos menores de trabajo, y probablemente para mediados de semana ya pueda ponerme de nuevo en serio con esto del SID y el nixie.  Espero que no me pase como en el cuento de la lechera. Si puedes esperarme hasta mediados de semana, nos ponemos con ello juntos, y a ver si Leon también puede sumarse.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #96 en: 21 de Junio de 2008, 10:20:50 »
Como me alegra leer eso!
Es muy bueno sacarse las obligaciones de encima para poder encarar las cosas que nos gustan. :)

Por supuesto, esperamos hasta que estés listo. Mientras, voy a sacarme yo tambien algunas cosillas de la lista de "pendientes" :)

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #97 en: 21 de Junio de 2008, 22:30:20 »
Con todo gusto me les voy a unir.

Me comprometo leer de nuevo lo más interesante del hilo, porque aún no me queda en claro la fuente para el mismo (en realidad quiero ver si encuentro algo diferente y que sea más sencillo y/o mejor). También trataré de conseguir el datasheet, porque no tengo ni idea de la distribución de los pines.

Me interesa también poder montarlo en el protoboard, para hacer todas las modificaciones hasta llegar al circuito original que será montado en la PCB.

EDITO: Como se nota que estaba distraido. Ja. Me equivoqué al escribir el post. De todas maneras, al final del proyecto, van juntos.
« Última modificación: 23 de Junio de 2008, 11:40:13 por Leon Pic »
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #98 en: 23 de Junio de 2008, 11:26:06 »
Me puse en contacto con Anthony Westbrook (http://www.toniwestbrook.com/shredz64), creador de la versión de Guitar Hero para Commodore 64, solicitándole sus impresiones sobre este proyecto (él había intentado algo parecido, pero lo tiene abandonado), y a continuación les dejo la respuesto, que no viene sino a confirmar la idea que ya teníamos de que para reproducir un SID en un PIC habría que emular casi por completo el 6502, además de otros procesadores.

Citar
I'm not sure how far you've gotten with your project, but if you're
looking to use a PIC to drive a 6581 using a PSID file, there are a few
issues.  The biggest is that a PSID file is really just machine code
with a header that contains info about the song.  You can see the PSID
format here:

http://search.cpan.org/src/LALA/Audio-SID-3.11/SID_file_format.txt

You can read what speed it should execute at from the header (either 50
or 60 hz), what SID it was designed for, name, author, etc. 

The real problem though is that the song isn't stored as note data, it's
stored as 6502 machine code, which means that you need to have a 6502
CPU (or something emulating it) to process the code.  But additionally,
you also need to handle calls that are made to other chips, such as the
CIA and VIC II, because songs use them for timing (e.g. either raster
interrupt timing or timer timing).  This means either emulating this
functionality or the entire chip.  This is why SID plugins for music
players like Winamp are actually basic commodore-64 emulators, because
they need to emulate almost all parts of the computer to play the SID
file properly.  The way a SID file plays is the SID header has a
"player" address in it that gets called over and over again, at the
speed specified.  The code at this address executes code that feeds the
SID registers the right values.

It's definitely doable, but its a big project - it would be a fun one
though!  Let me know if I can provide anymore info.  Thanks,

-Toni


Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #99 en: 23 de Junio de 2008, 11:47:01 »
Mi ingles no es muy avanzado, pero por lo que no me acabo de convencer es que, el SID, ¿es gobernado por mas de un CI? ¿es así?
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #100 en: 23 de Junio de 2008, 19:50:04 »
Hola!
El tipo, con toda la razon, se espanta de que el contenido de los archivos SID son practicamente codigo ASM del 6502 (yo me siento muuuuy parecido a como se siente el  :lol: )

Se me ocurre que tendriamos que armar una especie de "hoja de ruta" para el proyecto, para evitar frustrarnos. El objetivo final (desde mis conocimientos, al menos) esta muy lejos. Yo lo plantearia mas o menos asi:

1) Encarar la datasheet del SID, y comprender su funcionamiento BIEN
2) Armar un prototipo con el SID y un PIC, y escribir un programa que pueda hacerlo hacer "beeeep"  :)
3) Encarar la datasheet del 6502, y aprender su ASM (un emulador de C64 podria servir para hacer pruebas)
4) Estudiar el funcionamiento de los emuladores. Mas arriba hay un EXCELENTE post de Juanfe, donde un tipo explicaca muy bien como construir uno.
5) Con lo aprendido en los puntos anteriores, determinar cuales son las sentencias (se me ocurre que todas  :( ) del 6502 habria que emular
6) Escribir el codigo CCS (seria mi candidato a usar) para cada instruccion ASM del 6502. Quizas algunas requieran partes en ASM de PIC, que "meteriamos" dentro del proyecto principal CCS.

Puede que algunos puntos ya los tengamos comenzados, y me este faltando algo. Pero en este momento me parece la mejor forma de encarar esto.

¿Opiniones? :)

Saludos!
PD: Lo bueno, en mi caso al menos, es que cuanto mas dificil, mas ganas me dan de meterle mano ;)
« Última modificación: 23 de Junio de 2008, 19:53:32 por aitopes »
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #101 en: 24 de Junio de 2008, 03:31:36 »
Me gustan las hojas de ruta, porque como tengo un carácter "maverick", así tengo algo saltarme...
1. Cumplido  :mrgreen:.
2. He renunciado a montarlo en breadboard, y haré una pequeña pcb de entrenamiento basada en el SID, que incluirá:
2.1. USB para enviar instrucciones fácilmente desde el PC. Si ven complicado obtener un PIC con USB, lo hacemos con RS232 y listo.
2.2. Memoria EEPROM. Hacer un beep con el SID creo que será fácil... lo chungo va a ser hacer un beep, beep, beep de forma más o menos sincronizada. Mi objetivo es comprobar el rendimiento de las memorias para almacenar los datos que debemos reproducir en el SID, en principio probaré con una melodía sencilla extrayendo los datos del archivo SID mediante mi versión modificada de siddump.exe. Conseguí una memoria paralelo super rápida de MAXIM, pero creo que montaré memorias I2C pues son más baratas.
2.3. Unos pocos LEDs y botoncitos para interacciones sencillas.
3. Antes de encarar el tema de la emulación me gustaría escuchar en el SID una melodía en condiciones. Emular el SID es sólo cuestión de tiempo y esfuerzo, pero lograr comunicarse con el SID a suficiente velocidad es lo que más me preocupa.
4. Ojalá lleguemos pronto aquí...

Bueno, creo que mañana ya podré ponerme con esto. ¿Qué más les parece que debería incluir la PCB de entrenamiento del SID?

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #102 en: 24 de Junio de 2008, 08:04:08 »
Bueno, creo que mañana ya podré ponerme con esto. ¿Qué más les parece que debería incluir la PCB de entrenamiento del SID?

Hola Juanfe!
Yo pondria un pequeño amplificadorcito, basado en algun integrado popular, como el LM386, para no tener que "arrastar" otra placa pegada a esta todo el tiempo. Por lo demas...para probar me parece que estamos bien!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #103 en: 25 de Junio de 2008, 10:18:04 »
Sí tienes razón, se me olvidaba el amplificador... además, es imprescindible: por lo que he leído, la salida del SID es bastante delicada y no se puede conectar directamente a un amplificador externo porque se funde el SID. También pondré 2 potenciómetros para ver cómo funcionan los conversores ADC del SID.

En otro orden de cosas... ¡que buenas sensaciones deja a veces la electrónica! Recuerdan el C64 que compré y no funcionaba. Hoy lo he reparado... se trataba de sustituir un chip de memoria. Ahora sí que lo siento como si fuera mío... ¡Qué buena suerte ha tenido este C64 de caer en mis manos  :mrgreen:!


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18269
    • MicroPIC
Re: SID6581 (sintetizador de audio del Commodore 64)
« Respuesta #104 en: 25 de Junio de 2008, 11:22:30 »
Me quedo boquiabierto  :shock: , ¿y cómo has dado con la avería?


 

anything