EightSpriter, libreria para hacer videojuegos en C

EightSpriter es una libreria básica para hacer videojuegos en Commodore 64 usando C (CC65 http://www.cc65.org). La intencion de esta libreria es tener una mínima compatibilidad con la librería SP1 (http://www.z88dk.org/) de Spectrum (aunque a medida avanzo más me alejo de mi objetivo :D :D)

El nombre "EightSpriter" esta inspirado en la librería FourSpriter (http://www.mojontwins.com/tag/fourspriter) para Spectrum de los Mojon Twins y en el hecho de que C64 viene con 8 sprites de base, que son los que permite gestionar la EightSpriter. Para empezar a programar C en Commodore 64 he creado este Tutorial de instalación de entorno de desarrollo en lenguaje C para Commodore 64, usando CC65 y WinVICE sobre Windows XP/7 (https://josepzin.blogspot.com/2010/08/tutorial-instalacion-entorno-C-para-C64.html)

Agradecimientos: Woodmaster, Dr.Fred, Carlos, Mojon Twins y todos los que me han prestado su apoyo.


Descargas

Esta libreria esta en desarrollo, los archivos que se pueden descargar son versiones sin terminar, descargar desde SourceForge (https://sourceforge.net/projects/eightspriter/)

Librería

Joystick

  • inJoy1 : [terminado] : Leer el joystick del puerto 1
  • inJoy2 : [terminado] : Leer el joystick del puerto 2

Pantalla / Modos gráficos

  1. Modos

    • bitmapMode : [terminado] : Activa el modo bitmap.
    • textMode : [terminado] : Activa el modo texto.
    • ecmMode : [terminado] : Activa el modo texto y el modo ECM (aka 'extended background colors')
  2. Tipos

    • hiresMode : [terminado] :
    • multicolorMode : [terminado] :
  3. Colores de modos graficos

    • background : [terminado] : Color del fondo de la pantalla.
    • border : [terminado] : Color de los bordes de la pantalla.
    • multicolor : [terminado] : Colores generales para el modo multicolor.
  4. Scroll

    Las opciones de scroll necesitan sincronizar con el barrido para que funcionen correctamente (al menos las de scroll vertical) por lo que todavía no estoy seguro que se puedan usar desde C sin tener que recurrir a algo de ensamblador para sincronizar el barrido.
    • columnSelect : [terminado] : Activar el modo 38 columnas para usar en los scroll.
    • rowSelect : [terminado] : Activar el modo 24 filas para usar en los scroll.
    • xScrolling : [terminado] : Valor del scroll horizontal. ***param desplazamiento horizontal [0-7]
    • yScrolling : [terminado] : Valor del scroll vertical. ***param desplazamiento vertical [0-7]

Sprites

Terminar de definir los nombres de las funciones y lo que hara cada una
  1. Colores

    • sprColor : [terminado] : param sprite[0..7], color
    • sprMulticolor : [terminado] : param colornum[0,1], color
    • sprColorMode : [terminado] : param sprite[0..7], mode[0,1]
  2. Transformaciones

    • sprExpandX : [terminado] : param sprite[0..7], expand[0,1]
    • sprExpandY : [terminado] : param sprite[0..7], expand[0,1]
  3. Prioridad

    • sprPriority : [terminado] : Establece la prioridad sobre los pixel del background. ***param sprite[0..7], priority[0,1]
  4. Visibilidad / Activacion

    • sprDisplay : [terminado] ***param sprite[0..7]
    • sprShow : [terminado]
    • sprHide : [terminado]
    • sprHideAll : [terminado]
    • sprDisplayAll : [terminado]
    • sprDisplayTogle : [no va bien] :
  5. Colisiones

    • sprCollision : [terminado]
    • backCollision : [terminado]

Creacion

  • createSpr : [en desarrollo] :

Movimientos

Intentar hacer que estas funciones tengan mas o menos la misma funcionalidad que SP1
  • moveSprAbs : mueve spr ABS, parametro struc, llama a MoveSpr
  • moveSprRel : mueve REL, parametro struc, llama a MoveSpr
  • moveSprPix : mueve x/y pixel segun la pos. actual, parametro struc, desplazamientos x e y, llama a MoveSpr
  • moveSpr : mueve ABS, parametros nro spr, x e y

Charsets

  • charset: modificar el banco de memoria del juego de caracteres. Parametro 0..7

VIC

  • vicBank : Modificar el banco de memoria activo del chip VIC. Parametro 0..3
  • screen : Modificar la posicion en memoria de la pantalla. Parametro 0..15

Tiles

Sonido / Musica

Interrupciones