Categoría : Mis proyectos

Tutorial de instalación de entorno de desarrollo en lenguaje C para Commodore 64, usando CC65 y WinVICE sobre Windows XP/7


El motivo de este tutorial es instalar un entorno básico de desarrollo en lenguaje C para crear aplicaciones de Commodore 64 bajo Windows, con las siguientes características:

  • WinVICE: emulador de Commodore
  • CC65: compilador C para 6502
  • Plataforma Windows XP/7

Mi intención es tener todo el entorno en formato "portable" (recomiendo la web Portable Apps para obtener programas portables), o sea que no dependa de instalar aplicaciones y que sea fácilmente portable de un ordenador a otro, por ejemplo en una memoria USB o como en mi caso, usando la aplicación de almacenamiento online y sincronización automática Dropbox.

La estructura de carpetas que utilizaré será esta:
Carpetas de entorno de desarrollo usando CC65 en Windows
Básicamente en /programas irá el emulador WinVICE y el compilador CC65 y luego en /proyectos/c64 estarán los archivos del "Hola mundo"

Teniendo en cuenta este árbol, cada uno puede usarla tal cual o adaptarla a su forma de trabajo, reemplazando por ejemplo la unidad D:\ por la C:\, etc.

Comencemos con el tutorial:

  1. Descargar el emulador de Commodore WinVICE

    Logo WinVICEWinVICE es un emulador Open Source que permite emular los sistemas de Commodore C16, C64, C128, C64DTV, VIC20, PLUS4, CBM-II y Pet.

    Hay versiones disponibles para todo tipo de sistemas: Windows, DOS, GNU/Linux, etc.

    La versión que voy a usar es la MS-Windows 32bit (Pentium-optimized) que se puede descargar desde aquí: WinVICE-2.2-x86.zip.

    Pantalla de descarga de WinVICE

  2. Instalar el emulador de Commodore WinVICE en Windows XP/7

    En mi caso tengo una carpeta donde voy "instalando" todos los programas portables y como este tema de Commodore 64 me interesa que esté accesible desde varios ordenadores, instalaré todo en la carpeta \programas de Dropbox, en mi caso la carpeta donde descomprimo el WinVICE es D:\documentos\My Dropbox\programas\WinVICE\

    Luego lo que hay que hacer es asociar los archivos .PRG, .D64, .T64, etc. al emulador. Por ejemplo pinchando con el botón derecho sobre un archivo .PRG y eligiendo Abrir con... > Examinar, navegar por el disco ir hasta la carpeta del emulador y seleccionar x64.exe

    Consejo útil: cuando se hace lío con estas asociaciones lo mejor es pasar el CCleaner con la opción de "Limpiar el Registro de Windows", repetir el proceso varias veces hasta que no muestre más errores.

    Una guía sobre este tema: Asociar un tipo de archivo a un Programa determinado

  3. Descargar CC65, el compilador de C para 6502

    Logo CC65 CC65 es un completo compilador cruzado de C para Windows y GNU/Linux que permite compilar código para varias plataformas basadas en el procesador 65(C)02, como los Commodore 16, 64, 128, CBM510, CBM610, PET, PLUS4, VIC20, GEOS, Atari 400/800/65XE/130XE/800XL/1200XL/5200 y Apple ][.
    Incluye un potente macro ensamblador, un compilador de C, un enlazador (linker), librerías y varias otras herramientas. La licencia de este software es Open Source.

    La opción más fácil (pero no la que usaré) es descargar el instalador (cc65-2.13.2-1.exe) e instalarlo directamente, una de las ventajas de hacerlo así es que se auto-configuran todas las variables de entorno de forma automática y quizás para empezar sea mejor, pero yo me voy a centrar en la opción portable, que tiene más pasos pero todo queda donde uno quiere, como uno quiere, sin ensuciar el sistema (el registro) y además nos permite la libertad de compartir nuestro entorno entre varios ordenadores.

    Enlaces para descargar los archivos de la versión portable:
    - Compilador CC65: cc65-win32-2.13.2-1.zip
    - Librerías CC65 para la plataforma Commodore 64: cc65-c64-2.13.2-1.zip

    Sección de descargas de CC65:
    Pantalla de descarga de CC65

  4. Instalación de CC65, compilador de C para 6502

    En caso de instalar la versión autoinstalable se puede saltar directamente al punto 6.

    Descomprimir el compilador (archivo cc65-win32-2.13.2-1.zip) en la carpeta D:\documentos\My Dropbox\programas\cc65.

    Luego descomprimir cc65-c64-2.13.2-1.zip en la misma carpeta.

    El resultado final debería ser así:
    Arbol de carpetas de CC65

  5. Crear un "makefile"

    Me he creado un simple archivo .BAT para compilar, enlazar las librerías, archivos externos, crear un ejecutable y mostrarlo llamando al emulador de Commodore 64, todo en un solo paso.

    Logo de Notepad++

    Editor de código fuente:

    Mención especial merecen los editores de código fuente, la herramienta de programación base, personalmente uso el Notepadd++ (en su versión portable), es un editor liviano que me resulta muy cómodo, permite agregar plugins, reconoce el lenguaje Ensamblador y C (además de muchos otros que uso a diario, como PHP, HTML, CSS, Javascript, SQL, Flash ActionScript, etc.) Seguramente el tipo de editor sea algo personal y cada uno prefiera uno distinto, por ejemplo el Crimson Editor también parece ser una buena opción.

    Bibliografía sobre el tema: cc65:project setup.

    Archivo /proyectos/c64/holamundo.bat

    @ECHO OFF

    REM ### INICIO ZONA DE CONFIGURACION ###

    REM moverse a la carpeta donde se encuentran nuestros archivos fuente
    D:
    CD \
    CD documentos\My Dropbox\proyectos\c64\

    REM nombre del archivo C a compilar (sin la extension)
    SET NOMBRE=holamundo

    REM la libreria a incluir
    SET LIBRERIAS=text.s

    REM ruta a la carpeta de CC65
    SET CC65_HOME=D:\documentos\My Dropbox\programas\cc65\

    REM ruta al emulador
    SET EMULADOR="D:\documentos\My Dropbox\programas\WinVICE\x64.exe"

    REM ### FIN ZONA DE CONFIGURACION ###


    PATH %CC65_HOME%bin


    REM cl65 -t c64 -l Walker.asm -o walker_nocomp.prg Walker.c
    cl65 -t c64 -l -L %CC65%lib -o %NOMBRE%.prg %NOMBRE%.c %LIBRERIAS%


    REM borrar el archivo objeto generado al compilar
    DEL *.o


    REM borrar el archivo assembler generado al compilar
    DEL *.lst


    REM comprimir el resultado (opcional)
    REM exomizer -o walker.prg -s sys walker_nocomp.prg


    REM ejecutar el juego compilado
    %EMULADOR% %NOMBRE%.prg


    COLOR 30
    ECHO *** TERMINADO ***

    REM PAUSE
  6. Crear un "Hola mundo!" en C para Commodore 64

    Bibliografía, dos enlaces a la documentación en CC65 que pueden ser muy interesantes:
    - cc65:hello_world
    - cc65:overview

    Crear archivo de texto /proyectos/c64/holamundo.c

    #include
    #include

    /* declarar texto como variable externa en text.s */
    extern const char texto[];

    int main (void)
    {
          printf ("%s\n", texto);
          return EXIT_SUCCESS;
    }

    Crear archivo de texto /proyectos/c64/text.s

    .export _texto
    _texto: .asciiz "Hola mundo!!"

    Y si todo ha ido bien al ejecutar holamundo.bat se cargará de forma automática el emulador mostrándonos la característica pantalla azul de C64 (no la de Windows jeje) con nuestro "Hola mundo!", así que ¡¡bienvenido al mundo de Commodore 64 y los 8 bits!! :)

    Hola mundo en Commodore 64

    También veremos en la carpeta de nuestro proyecto que se ha creado un archivo de nombre holamundo.prg, que es el programa listo para funcionar desde Commodore 64.

    La estructura de carpetas y archivos quedaría así:
    Carpetas de instalacion CC65 en Windows

  7. Y mucho más

    • Mi "makefile" es muy básico, seguro que se puede mejorar muchísimo y ademas me imagino que habrá otras maneras de hacerlos.
    • CC65 ofrece muchas posibilidades, entre ellas las de compilar código para otras plataformas basadas en el procesador 6502.
    • También se puede obtener el código assembler generado a partir del fuente C, que resulta muy interesante para ver y curiosear.
    • Recomiendo explorar la web de CC65 donde hay bastante información aunque a veces resulta un poco "mareante" :P
    • Sobre el lenguaje C, al comenzar con este tema nunca había programado en C, así que he usado algunas paginas de consulta que me fueron muy útiles para dar mis primeros pasos, por ejemplo C con Clase.

He creado este tutorial pensando en la guía que me hubiera gustado encontrar cuando dí mis primeros pasos en este tema, espero que resulte útil para otras personas que quieran meterse en la programación retro y no sepan cómo hacerlo.

Finalmente, he preparado un archivo comprimido con todos los archivos del tutorial para descargar y descomprimir en un sólo paso, se puede descargar desde aquí: CC65 + WinVICE + holamundo.c + makefile.bat.

Agradecería que me aviséis de cualquier fallo o problema que noteis.

Tutorial creado por José Zanni.

Calendario 2010 de Commodore 64 / RetroInvaders

He creado un calendario de temática retro dedicado a algunos de los juegos de Commodore 64 que recuerdo con mas cariño, muchos otros se han quedado fuera de esta selección, seguramente aparecerán en la edición 2011 :)

Hice varias versiones del calendario: una específica para España con la semana empezando en lunes y marcados los días de fiesta, otra versión en español pero con la semana iniciando los domingos y sin días de fiesta marcados así sirve para cualquier país con ese formato (por ejemplo Argentina), y finalmente otra versión internacional en inglés también con la semana empezando los domingos.

Si a alguien le interesa que marque los días de fiesta de su país, que me lo diga y puedo crear una versión concreta.

Calendario Retroinvaders 2010: juegos de Commodore 64

El calendario está en formato PDF y las hojas en tamaño A5 (que es medio A4), pero se puede imprimir al tamaño que se desee ya que excepto las capturas de pantallas, todo lo demás está en formato vectorial y se puede reescalar sin problemas. En mi caso particular he impreso en tamaño mas pequeño (A5) para poder ponerlo encima de la mesa.

Si alguien ve un error o tiene alguna sugerencia estaré muy agradecido que me lo comunique.

Descargas/downloads:

Descargar desde www.retroinvaders.com

He creado estos calendarios usando Scribus es un programa de software libre para autoedición.

Calendario en Lulu

He creado también una versión en Lulu (editorial online), de esta manera por 15,40€ envían el calendario impreso, anillado y listo para colgar, aunque el formato es distinto al de mis archivos PDF (que personalmente me gusta mas el mio :P), quizás le interese a alguien, aunque sólo es la versión de España.

Calendario en Lulu: Calendario Retroinvaders.com 2010: juegos de Commodore 64

Banners para Retro Invaders, mi planet de retro informática

He creado algunos banners para Retroinvaders.

Por si no sabes de que se trata: es una web donde se agrupan los blogs que tratan sobre ordenadores antiguos de 8 bits, 16 bits, Spectrum, Commodore 64, Amstrad, MSX, Amiga, Atari, Apple, PC XT, consolas Nintendo, Sega, Sony, Aquarius, Oddysey, Wonderswan, desarrollo de remakes, demakes, emuladores, análisis, noticias y un laguísimo etc. y genera una nueva semilla RSS para tener todos los artículos en un solo espacio.

En la página de suscripción del retro planet estan los correspondientes códigos HTML de cada uno y se pueden usar libremente.

Banner de Retro invaders Banner de Retro invaders Banner de Retro invaders Banner de Retro invaders
Banner de Retro invaders Banner de Retro invaders
Banner de Retro invaders Banner de Retro invaders

Nueva versión de Glest 3.2.0

Martiño ha liberado la última versión 3.2.0 del Glest.

Esta versión viene con tutoriales, escenarios y una interfas simplificada. También incluye el nuevo tileset de Tucho "Dark Forest", que usa modelos más detallados que aprovechan las ventajas de las tarjetas de video más nuevas.

Glest 3.2.0

Lista de las nuevas características:

  • LUA scriting
  • Nuevo tileset: Dark Forest
  • Tutoriales
  • Mejoras en el render de texto
  • Efectos de sonido para los mensajes de chat
  • Cambios en la pantalla de carga
  • Y más características que se pueden consultar en este tema del foro.

Para descargar esta nueva versión de Glest:

Tienda de camisetas y productos Glest

Hemos creado una tienda para comprar camisetas y otros productos de merchandising, es un inicio al que iremos agregando más productos en el futuro. Aquí los enlaces:

Guía del juego

Una impresionante guía del Glest creada por el usuario omega, donde podemos encontrar estos temas: Maximizing your Glest Experience, Basics to Glest, Magitech, Tips for Glest, List of Mods, Making Mods, Modeling, TGAs, Animation, XMLs, Scenarios and Lua Scripting, Map Making, Fan Art, etc.
Enlace a la Glest Guide (ingles) y el tema de discusión en el foro del Glest.
Y buscando por el foro del juego, hay muchísimo más material.

Bake Planet, un planet de blogs creado con CakePHP

CakePHPHace unos días, escribiendo en el foro de Computer Emuzone, se me ocurrió instalar un "planet de blogs" para los blogs de retro informática. Lo primero que hice fue buscar algo ya hecho para no reinventar la rueda, como estoy inscripto al Planet Stratos miré cual usaban (Planet Planet), pero está hecho con Python y yo no sé nada de Python... fue entonces cuando me picó el gusanito de "hacerlo yo mismo"... :D

El resultado es este: Retro invaders, blogs de retro informática, todavía hay algunos errores de charset, pero en general está totalmente operativa.
Para leer las semillas RSS he usado la librería SimplePie, que facilita muchísimo la lectura de RSS, haciendo la parte más pesada.
Apenas tenga una versión un poco mas depurada publicaré los códigos fuentes del proyecto con licencia GPL (o alguna de código libre).

Lanzado Glest 3.0 final!

Después de mucho tiempo y trabajo ha salido a la luz la nueva versión de Glest, con la esperada opción multijugador: Glest 3.0 multijugador [ENG].

  • Juego en red LAN o Internet.
  • Nuevos atajos de teclado para dar órdenes y seleccionar unidades especiales.
  • Se han renombrado algunas unidades.
  • Se ha trabajado en la mejora de las actualizaciones de las facciones tecnológicas.
  • Se han balanceado diversos aspectos del juego.

Esta vez LinuxJuegos se me ha adelantado con la noticia! :D

Por otra parte, Tucho está creando un MOD especial para jugar en red... y lo poco que he visto tiene muy buena pinta!

Glest multijugador!!! multiplayer

Glest multiplayerFinalmente, la tan esperada opción de multijugador para Glest ha sido lanzada. Se trata todavía de una versión experimental, pero el primer paso ha sido dado. Ver en el foro: Glest 3.0.0 alpha 1 released - With experimental multiplayer

También agrego unos enlaces interesantes sobre desarrollos del juego:

Glest, creando una comunidad (II)

Glest logoViene de Glest, creando una comunidad (I).

Me sigo sorprendiendo con la comunidad del Glest, hay tres nuevos MODS, Tucho sigue liberando sus modelos de los edificios, y la gente sigue aportando sus ideas y sugerencias al juego.

Videos de MODs

En el hilo School Multimedia Project se publica un video de los MODs del juego: foro, video.

Mod Napoleonic War

Glest Mod Napoleonic WarBasado en los soldados de Napoleón y en la batalla de Waterloo: foro.

Mod The Northmen (Vikings)

Glest Mod Northern VigingsUnidades y edificios basados en los vikingos y la mitología nórdica, usando Blender para el modelado 3D: web, foro.

Mod Magic upgrades

Modifica los valores de configuración de la facción mágica, dando una clara ventaja sobre la otra facción, para poder combatir contra el ordenador en modo "Ultra": foro.

Modelos de edificios y unidades

Modelos 3D de las unidades y edificios del GlestTucho está liberando de a poco los modelos 3D de los edificios: blog y foro.

Más cosas...

Dylo Bross, o 'Tú también puedes' jugar con caracoles

He participado en el concurso Tú también puedes organizado por Nae, mi aporte es un simple juego de plataformas programado con Flash, se llama Dylo Bross y está basado en el Dylo's Aventure de South Winds Games.

Dylo Bross, jugando con caracoles

Comentarios: La idea era hacer un juego simple de plataformas 2D al estilo Mario Bross, con su salto mata-caracoles y pantalla sin scroll. Al ser la temática relacionada con caracoles inmediatamente pensé en uno de mis clientes que vende un manual para criar caracoles y esta era una buena ocasión para hacer un poco de "advergamming", o al menos usar esa palabra ;). Para el apartado gráfico Juan Pablo Ferreyra y Gustavo Andrés Calcaño gustosamente me prestaron el material de su juego Dylo's Adventure.

Descargar y jugar a Dylo Bross v0.8

Es la versión enviada al concurso. Se puede jugar en Windows, Mac y Linux a través de web. Actualmente estoy mejorando algunos puntos problemáticos debidos a la prisa por cumplir los tiempos del concurso. En breve la actualización.

Glest, creando una comunidad (I)

Glest logoHace mucho que tenía ganas de contar algo del Glest, quizás debería empezar por los inicios del proyecto, pero eso lo voy a hacer otro día... Ahora voy a escribir sobre la comunidad que se ha formado alrededor de este juego en el que tuve el gusto de colaborar.

Mas o menos una vez por semana me paso por los foros del Glest para curiosear un poco, colaborar en la moderación borrando los molestos spams y maravillarme con las cosas que hace la gente!!

Voy a enumerar aquí algunos de los aportes que hacen los "glestadictos" ;)

Y seguro que me dejo muchas cosas, como por ejemplo hilos kilometricos en el foro explicando nuevas unidades, nuevos MODs, sugerencias, ideas, críticas, mas traducciones, gente que le agrega características que no tiene el juego, yo mismo hice un pequeño juego Flash usando el "Universo Glest"... etc.

Todo esto deja una sensación muy agradable. Felicitaciones al Equipo Glest!!!

Glest Indians Glest Mars Squadron Glest Life Glest Starship Troopers Glest ChurchGlest modelos 3D
 
#