• Hola amigos!
    Tengo entre manos un pequeño proyecto (del que seguramente en unas semanas les voy a dar mas datos) para el que necesito algo de documentacion sobre la creacion de sonidos en C64 mediante el uso de PEEK y POKE. wink

    Tengo la hoja de datos del SID, pero me gustaria encontrar algun libro o apunte que sea un poco mas ....extenso o que contenga ejemplos de como hacer esto.

    Cualquier cosa me vale, ya sea un libro de programacion de juegos en BASIC o lo que sea. La idea es tener un poco de código y la explicacion de que registros usa, etc.

    ¿Saben de algo asi?  suprised
     

  • Los registros del sid se encuentran desde la posicion de memoria
    $D400 a $D41C y equivalen a los poke 54272 hasta el 54300 todos los controles estan en esos pokes, volumen, formas de onda, voces, etc. y estan todos detallados en un manual que cuando lo encuentre te paso el nombre, creo que esta disponible en la web y fue publicado aca en el foro el site, cuando lo vea te digo.
                                                                                                                                                                                                                                                                                                                                                           
     

  • Los registros del sid se encuentran desde la posicion de memoria
    $D400 a $D41C y equivalen a los poke 54272 hasta el 54300 todos los controles estan en esos pokes, volumen, formas de onda, voces, etc. y estan todos detallados en un manual que cuando lo encuentre te paso el nombre, creo que esta disponible en la web y fue publicado aca en el foro el site, cuando lo vea te digo.
                                                                                                                                                                                                                                                                                                                                                           


    Perfecto!
    Voy a revisar yo tambien a ver si lo encuentro  wink
     

  • En Codebase64.org tenes mucha info sobre la C64
    http://codebase64.org/doku.php?id=base:sid_programming

    Este es el mapa de todos los puertos de la C64 (http://sta.c64.org/cbm64mem.html) fijate de D400 en adelante

    Desde basic podes probar todo, salvo que quieras hacer algun efecto que requiera velocidad, pero tenes el control absoluto.

    Basicamente de las 32 direcciones que tenes (que se repiten desde D400 hasta D800) tenes 7 bytes por voz, y hay 3 voces, y un par de registros generales para el volumen y alguna que otra cosa.
    Con los ejemplos del manual de la C64 y el apendice sobre sonido tenes creo que todo para aprender a usar el SID. El manual de drean traia un listado para hacer un programa con un piano

             Saludos
            MARCOS
     

  • En Codebase64.org tenes mucha info sobre la C64
    http://codebase64.org/doku.php?id=base:sid_programming

    Este es el mapa de todos los puertos de la C64 (http://sta.c64.org/cbm64mem.html) fijate de D400 en adelante

    Desde basic podes probar todo, salvo que quieras hacer algun efecto que requiera velocidad, pero tenes el control absoluto.

    Basicamente de las 32 direcciones que tenes (que se repiten desde D400 hasta D800) tenes 7 bytes por voz, y hay 3 voces, y un par de registros generales para el volumen y alguna que otra cosa.
    Con los ejemplos del manual de la C64 y el apendice sobre sonido tenes creo que todo para aprender a usar el SID. El manual de drean traia un listado para hacer un programa con un piano

             Saludos
            MARCOS


    Mirando!

    En realidad, acabo de hacer una placa con un PIC18F4550 y un SID, y estoy viendo como hacerlo sonar (en el buen sentido de la palabra "sonar", claro!)
    Todo eso me va a ser de utilidad. Si no surge ninguna cosa rara, en 15 o 20 dias supongo que algo se va a escuchar  wink
     

  • Una cosa: es solo con POKE, no usas PEEK porque no necesitas ninguna informacion del SID. Lo que podes leer del SID es la posicion de los PADs, porque tiene un conversor AD. Pero para producir sonido con setearle lo que queres hacer te alcanza.

    Aca tenes una cancioncita que hice la otra vez: wink
    http://www.retrocomputacion.com/cgi-bin/foro/YaBB.pl?action=downloadfile;file=basiclist2.gif

    S es la direccion inicial del SID. En la linea 10 resetea el SID, lo pone todo a 0, en la 20 pone el volumen en 15 (maximo)
    En la 30 setea la forma de onda de la voz 1. Como quedo todo en 0, por default es onda cuadrada, y le podes setear el ancho (255) y despues el Ataque queda en 0 (una vez encendido la onda queda en maximo volumen) y decaimiento en 9 (el tiempo que tarda en llegar al volumen sostenido, que en esta caso es 0) asi que va a producir un pulso que empieza a maximo volumen y va a bajar rapidamente

    En la linea 80 se setea la frecuencia (16 bits que no esta en hertz)
    En la linea 85 se enciende y apaga el sonido de la voz

           Saludos
          MARCOS
    Basiclist 001
     


  • En realidad, acabo de hacer una placa con un PIC18F4550 y un SID, y estoy viendo como hacerlo sonar (en el buen sentido de la palabra "sonar", claro!)
    Todo eso me va a ser de utilidad. Si no surge ninguna cosa rara, en 15 o 20 dias supongo que algo se va a escuchar  wink


      biglaugh Buenisimo! siempre tuve la idea de hacer algo asi pero todavia no reutilice ninguno de los chips de C64 que tengo.
      Mostra como te quedo cuando este andando!!
      una pregunta: ademas de 5V DC, el SID no usaba otra alimentacion, no se si alterna? o me confundo con el CIA?

           Saludos
          MARCOS
     

  • Antes de confundir mas aclaro porque hice lio.
    Esta es la version que queria subir del programa que toca una musiquita, esta un cacho optimizada.

    Tambien explique mal, seteas el tipo de onda en el mismo registro con el que disparas el sonido (S+4), fijate que cambia el bit 0

    En esta version no usas onda cuadrada, fijate que se setea distinto la forma del pulso
    No te confundas en la linea 85, con el Poke 54272+i (deberia ser S+I para optimizar mad ) porque I es mayor a 1024, esta escribiendo a la memoria de colores. Y el resto es la cuenta que tiene que hacer para transformar de nota musical a frecuencia y luego a frecuencia del SID.

            Saludos
           MARCOS
    Basiclist4 001
     


  • En realidad, acabo de hacer una placa con un PIC18F4550 y un SID, y estoy viendo como hacerlo sonar (en el buen sentido de la palabra "sonar", claro!)
    Todo eso me va a ser de utilidad. Si no surge ninguna cosa rara, en 15 o 20 dias supongo que algo se va a escuchar  wink


      biglaugh Buenisimo! siempre tuve la idea de hacer algo asi pero todavia no reutilice ninguno de los chips de C64 que tengo.
      Mostra como te quedo cuando este andando!!
      una pregunta: ademas de 5V DC, el SID no usaba otra alimentacion, no se si alterna? o me confundo con el CIA?

           Saludos
          MARCOS


    Lleva +5v y +12. Y un clock de 2MHz. Como el xtal del PIC es de 4MHz, use unas compuertas para dividir esta frecuencia por 2. Ayer termine de soldar todo, PERO AUN NO HICE TIEMPO NI DE ENCHUFARLO A VER QUE PASA!
    Quiero revisar todo bien (si quemo el UNICO SID que tengo me corto las b@l@s)...

    Gracias por la ayuda.... ;D
     

  • Buen proyecto, a 2MHz el SID esta en lo justo, ponele un buen disipador o no te va a durar mucho me parece (ya calienta lindo a 1MHz)

    Acordate que la frecuencia de salida depende del reloj: LINK

    Acá tenes unos cuantos libros para mirar: LINK
     

Moderador (s): thierry, homecomputer, Selandari, pastbytes, Durandal