domingo, 31 de enero de 2010

Funcionalidad

He creado una lista de la funcionalidad, desglosada por categorías.
Algunas ya están resueltas ;D>

Proyecto y código
  • Crear blog como canal de información.
  • Dar de alta proyecto en Google Codesourceforge.
  • Recolección de documentación técnica para el desarrollo.
  • Elección de la tecnologia a usar (lenguaje/s de programación), y herramientas de desarrollo.
  • Buscar librerías y código de apoyo para MSX.
  • Crear "Hello World".
  • Decidir lenguajes soportados: (monoidioma/multiidioma)? (Español/Ingles)?
  • La aplicación ha de ser de tipo ROM de 32k.

    Diseño de la interfaz gráfica
    • Tileset
    • Pantalla de presentación.
    • Pantalla del editor.
    • Pantalla de ayuda
    • Pantalla de carga de ficheros.
    • Pantalla para guardar ficheros.
    • Ventana modal de salida de mensajes (alerta, aviso y error).
    • Sprite cursor para ratón.
    • Sprite cursor para teclado.

    I/O
    • Acceso a los controles por teclado.
    • Acceso a los controles con ratón.
    • Acceso a los controles mediante potenciometros.
    • Acceso a disco. Leer y guardar ficheros binarios de un área de memoria (datos del PSGed)

    Controles de pantalla
    • Selector de valor simple. Izquierda decrementa y derecha incrementa el valor.
    • Selector de valor de envolvente. Igual que el simple, pero muestra una imagen correspondiente a la forma del envolvente.
    • CheckBox: Conmutador con dos estados (Off/On).
    • Tira de conmutadores de los patrones.
    • Botón de salida de la aplicación (solo desde ratón).
    • Control de flujo de tabulación (con cursores arriba y abajo)

    Funcionalidades por teclas
    • [F1] Muestra la pantalla de Ayuda.
    • [F2] Player del secuencia (3 canales un solo patrón).
    • [F3] Acceso al Editor.
    • [F4] Acceso a la ventana de carga de ficheros.
    • [F5] Acceso a la ventana para guardar ficheros.
    • [Stop]. Detiene el secuenciador y reset de los tres canales.
    • Cursores Arriba y abajo. Cambia el foco del control de la pantalla.
    • Cursores Izquierda y derecha. Cambia el valor del control.
    • [Enter] Ok.
    • [Esc] Cancelar/Salir (Ventanas modales, Help, Load y Save).

    jueves, 28 de enero de 2010

    Diseño de la GUI (2). Las herramientas.

    Primeramente, me olvide decir de que la pantalla esta realizada para el modo screen 2 de los MSX. Aprovecho para presentaros un tutotial de como dibujar imágenes para screen2 con Photoshop, que he alojado recientemente en mi blog.

    La imagen final que vimos en el post anterior, es un boceto desde donde saque el tileset para crear las pantallas con un programa editor de mapas de caracteres (tiles).


    El sofware que he utilizado es nMSXtiles v0.4.2 de Pentacour para Windows. Es una aplicación especifica para crear pantallas en modo screen 2, a partir de una imagen con los tiles. Simplifica enormemente el desarrollo de las pantallas, comparado con otros medios y nos proporciona un fichero con los datos preparados para utilizarlos en nuestros programas en assembler.


    De momento he realizado la ventana de Edición y he empezado a trabajar las ventanas de leer y guardar ficheros. Haciendo estas últimas, me he dado cuenta de que tendré que añadir nuevos tiles.

    Nota: Si alguien quiere utilizar estos tiles, autorizo a usarlos y modificarlos sin ningún tipo de requisito, aunque agradecería que me lo comunicarais.

    martes, 26 de enero de 2010

    Diseño de la GUI (1). Diseño y Bocetos.

    Antes de entrar en detalle de como se elaboró, quiero mostrar varios de los pasos de la evolución de la Interfaz Gráfica de Usuario (GUI), hasta llegar a la definitiva.
    Aunque lo mejor es empezar dibujándola en papel, yo muchas veces empiezo a plasmar mis ideas directamente desde Photoshop. Quizás no sea lo mejor para pantallas de poca resolución, siendo aconsejado un programa tipo Paint, como los existentes para Amiga como el Deluxe Paint o Personal Paint. También existen programas de este tipo para PC, creo que son freeware. Habría que probarlos para ver que tal funcionan. Para MAC existe el Pixen, pero me es un poco incomodo, seguramente por que no estoy acostumbrado a él. Para MSX también hay bastantes programas tipo Paint. Lo recomendable es utilizar la herramienta con la que uno trabaje más a gusto.

    En el primer boceto, podemos ver que empecé a desarrollar varias partes. Una de ellas es un control tipo potenciometro. Probé con dos tamaños, pero me decidí por el pequeño, con un tamaño de 16x16 puntos. También creé la fuente, unos marcos, un controlador tipo checkbox, un selector de envolvente y un deslizador para el control de volumen.

    En la siguiente pantalla, podemos ver que comencé a darle forma. Desestime el control tipo potenciometro y lo sustituí por un selector donde se muestra el valor decimal de los registros. Mi intención era de poner un controlador del volumen general, pero como veremos más adelante, lo eliminé, para simplificar.

    En esta pantalla, amplié la zona del envolvente y el ruido para que abarcara el ancho de la pantalla para indicar que afectan a los tres canales. También compacté los controles para ganar espacio en la zona de abajo y utilicé colores para mejorar el aspecto y diferenciar la información. Aunque no se vea, en una capa iva trabajando en el set de caracteres.

    En el siguiente paso cambié el dibujo de los marcos por unos en relieve.

    En este último paso, como podéis observar, hay bastantes cambios. El logo lo he modificado por una barra horizontal con el nombre de aplicación y la versión más un botón de salida. Uno de los motivos, es el de ganar espacio para poder incorporar todas las funcionalidades necesarias. He añadido un título de la pantalla, que en este caso seria la de Edición, ya que habrá una de ayuda, y las de acceso a disco para leer y grabar la información. Abajo he añadido un pequeño secuenciador de 16 pasos (tipo TR 909), pero de un solo patrón. y una barra con un menú de opciones, que se lanzan con las teclas de función.

    lunes, 25 de enero de 2010

    Comienza un nuevo proyecto

    PSGed pretende ser un programa para los ordenadores MSX de primera generación, para edición de los registros del chip de sonido AY-3-8910.
    La idea nació el año pasado, inspirado en el post del blog de Neuroflip del controlador basado en potenciometros para el Prophet64 de Commodore 64. Mi intención es conseguir una utilidad para jugar con el PSG, con una interfaz atractiva y fácil de usar, con la posibilidad de usar ratón y potenciometros.
    El objetivo es adquirir experiencia para abordar un proyecto mas complejo, como es el desarrollo de un secuenciador musical tipo tracker para el modulo de sonido SFG-01/05 de Yamaha (incluido en los ordenadores CX5M).
    Con este blog quiero compartir la experiencia por si puede servir de ayuda a alguien y aprovechar para invitaros a participar con vuestros comentarios e ideas.