Tutorial programacion Megadrive - SGDK

13, 4, 5, 6, 7
nolddor escribió:Hola estoy teniendo problemas con los gráficos...

Veamos con photoshop he creado una imagen con 15 colores distintos en modo indexado y guardado en bmp 4bits. Al pasarlo con el Imagénesis para sacarle la paleta resulta que me crea una paleta incorrecta y además me cambia los colores del dibujo original...

¿Sabéis que puede estar pasando y como solucionarlo?


--------------Antes ----------------------------------- Después--------------------

Imagen


Porque la megadrive usa una paleta fija de 9bits, o sea, 512 colores de donde escojer

Pero eso no significa que te los puedes inventar tu!

O sea, si quieres por ejemplo, verde ..


No puedes usar 55,211, 77

Tendras q buscar el color mas cercano de la paleta de Megadrive

Por ejemplo 63,223,63


En mi post de programacion de basic, creo q colge dos archivos png de 8bits cada uno con toda la paleta ya armada

Si no encuentras el post, en mi web, tutorial 3 de graficos, tienes la paleta. Mi web sale en mi perfil


saludos
He estado haciendo pruebas con la paletta q hay en tu web y los colores salen tal y como los pongo, así que ya sabemos cual era el problema me he inventado los colores jajaja...

Ahora el problema es que no tng webos de dibujar nada decente con esos colores jajaja...

SE BUSCA PIXEL-ART -- RAZÓN AQUI -- xD
nolddor escribió:He estado haciendo pruebas con la paletta q hay en tu web y los colores salen tal y como los pongo, así que ya sabemos cual era el problema me he inventado los colores jajaja...

Ahora el problema es que no tng webos de dibujar nada decente con esos colores jajaja...

SE BUSCA PIXEL-ART -- RAZÓN AQUI -- xD

aprovecho para hacer lo mismo XD XD XD

SE BUSCA PROGRAMADOR -- RAZÓN AQUI -- xD
nolddor escribió:He estado haciendo pruebas con la paletta q hay en tu web y los colores salen tal y como los pongo, así que ya sabemos cual era el problema me he inventado los colores jajaja...

Ahora el problema es que no tng webos de dibujar nada decente con esos colores jajaja...

SE BUSCA PIXEL-ART -- RAZÓN AQUI -- xD



Ahora justo estoy en el aeropuerto llendo a espania

Si quieres este finde cuelga alguna imagen, y te doy ideas de como trabajar con ella

Creo q hice un post o hilo de como lograr unos 128 o mas colores sin demasiado lio



Edito: Mira esta imagen la cree en un ejemplo en mi hilo de programacion

Son dos planos, y solo una paleta de 16 colores, la imagen final seria la tercera

O sea, q con solo 16 colores, creo q logro un buen efecto


Imagen
Ahora mismo estamos preparando herramientas para poder dibujar usando las cuatro paletas (más los "sombreados" del modo shadow) sobre un mismo plano de forma medio cómoda. Va para largo tal vez pero a lo que voy es que es viable usar la cuatro paletas en un único plano con sólo complementar los datos del tilemap exportado por el imagenesis.

Los cinco primeros bits de cada uno de los datos del tilemap que funcionan a modo de índices del tileset contienen la información de las propiedades del tile: paleta, reflejo horizontal, reflejo vertical, prioridad. El imagenesis los inicializa todos a cero por lo que el tilemap exportado nos obliga a usar una paleta común, una prioridad común y una orientación común. Editando a pelo el primer y segundo dígito de los valores u16 de los tilemaps (0x0000) podéis probar a asignar distintas propiedades a los tiles.

Otra cosa. Echad un vistazo a esto (no es un binario megadrivero):

http://www.makestuff.eu/wordpress/category/projects/umdkv2/

Acojonante, ¿a que sí?

El tipo que me dio a conocer el enlace me pidió que le escribiese al autor del invento mostrándole interés por el curro que se está dando. Según me escribió dice que no el autor piensa que lo que hace al final no lo van a usar más que ellos dos, que el resto de desarrolladores megadriveros en el fondo pasan de algo así.

Si os pilla con ganas de escribirle al tal Chris por su web tiene que andar la dirección de contacto.
Hostia que pasada ^_^ y encima hasta admite live coding o modificar codigo en caliente vamos XD
Ains ... Cómo puede ser que se te localice por aquí antes que en la lista de correo ...
[tomaaa]

Bueno, ya aprovecho: a ver si me vas dando indicaciones sobre cómo quieres que sea la herramienta para exportar los datos de enemigos (sprites, tablas de animaciones o lo que sea, etc ...). Vamos, que me brainstormees la que sería la aplicación ideal que quiero ponerme con ello en breve. Evidentemente eso ya en la mailgrouplist :p
En la lista voy leyendo todo pero en cuanto a la navaja suiza multiusos hecha a medida [+risas] no he comentado nada porque ya entre manu, tu y el resto vais sacando todo ademas de que la mayoria es en relacion a graficos [oki] Y sobre lo que comentas, ok, empiezo a pensar hoy mismo como plantearlo.
Lo escribo por aquí por si alguien se vuelve loco como yo, que casi me quedo sin pelos y dejo loco al Sr. realbrucest mandandole MP.

La VERSION ACTUAL DE SGDK (v0.94) TIENE UN BUG CON EL SCROLL,
el cual al cambiar de modo de scroll a otro diferente (por ejemplo de scroll horizontal por tile a linea) no resetea los valores de scroll y no funciona correctamente, haciendo q el modo de scroll la segunda vez que se utiliza funcione de forma impredecible.
Según Stef, creador de las SGDK está trabajando para actualizar la versión y corregir ese bug.

PD: Es normal que el scroll vertical no tenga modo linea ni modo tile? solo modo plano o modo pareja de dos tiles ?? Me resulta extraño :S
nolddor escribió:Lo escribo por aquí por si alguien se vuelve loco como yo, que casi me quedo sin pelos y dejo loco al Sr. realbrucest mandandole MP.

La VERSION ACTUAL DE SGDK (v0.94) TIENE UN BUG CON EL SCROLL,
el cual al cambiar de modo de scroll a otro diferente (por ejemplo de scroll horizontal por tile a linea) no resetea los valores de scroll y no funciona correctamente, haciendo q el modo de scroll la segunda vez que se utiliza funcione de forma impredecible.
Según Stef, creador de las SGDK está trabajando para actualizar la versión y corregir ese bug.

PD: Es normal que el scroll vertical no tenga modo linea ni modo tile? solo modo plano o modo pareja de dos tiles ?? Me resulta extraño :S

Si, es normal, ya es mucho el modo ese de dos tiles, que sirve por ejemplo para los shooters verticales con marcadores a los lados o para hacer efectos chulos como en el contra o el gunstar heroes.
Supongo que con modo plano te refieres a mover todo el plano.
Piensa que el modo horizontal es asi porque las televisiones dibujaban de arriba a abajo y era relativamente facil sincronizarse con el retrazo horizontal, por eso hay tanto efecto de raster.
Si me lo han explicado q la mega drive solo soporta esos dos modos de scroll vertical por eso solo hay esos dos en las SGDK

PD: Si alguien tiene tiempo sería todo un detalle que explicara el tema de los sonidos y melodias en SGDK
Mientras que eso ocurre, os enseño la versión muda de lo que yo he llamado SupraKillminds!

Download Link:
(*No ha sido probada con hardware real - Usala bajo tu responsabilidad*)
https://dl.dropboxusercontent.com/u/138 ... nds%21.bin
Muy interesante, me ha costado un poco coger la mecánica (las piezas de color del cuadrado central aparecen en los laterales en la misma posición en la que estaban en el centro al pulsar una dirección del pad, no había entendido bien tu explicación [+risas] ). ¿Hay alguna forma de empezar de nuevo sin necesidad de resetear al perder o no lo has implementado todavía?.

PD: Me está empezando a picar el gusanillo con esto del desarrollo homebrew y todas las cosas que va mostrando la gente. Al final me voy a tener que poner a programar mi propio engine y herramientas para Megadrive o Neo Geo [carcajad]
Ostias, muy chulo y muy viciante el concepto y muy bien implementado y presentado.

Eso sí, jugar a las once y media con ciertas ganas de pillar el catre lo hacen una locura. Mañana pruebo a una hora que me coja más fresco a ver si es eso o que soy un inepto de cojones xD

¿Me comentaste que eres matemático, no? Matemático --> juego de puzles :P

Postéalo también por spritesmind y aprovechas para dar el toque de que necesitas un grafista. Y encantado de poder echarte un cable en lo que se pueda (es que para ayudarte con lo del sonido ya me pilla más liado ^_^u )

Muy buen comienzo :)
Paspallas escribió:Muy interesante, me ha costado un poco coger la mecánica (las piezas de color del cuadrado central aparecen en los laterales en la misma posición en la que estaban en el centro al pulsar una dirección del pad, no había entendido bien tu explicación [+risas] ). ¿Hay alguna forma de empezar de nuevo sin necesidad de resetear al perder o no lo has implementado todavía?.

PD: Me está empezando a picar el gusanillo con esto del desarrollo homebrew y todas las cosas que va mostrando la gente. Al final me voy a tener que poner a programar mi propio engine y herramientas para Megadrive o Neo Geo [carcajad]



Es la versión alpha, aún no esta implementado al igual que el menu sonido y miles de cosas. Ahora estoy con examenes y eso pero prometo actualizar la versión en cuanto pueda.

@realbrucest
no no soy matemático, aunque es lo que debería ser tengo bastante capacidad de calculo mental. De momento soy Administrador de Sistemas y acabo de comenzar a estudiar Desarrollo Web.
En cuanto a lo de spriteminds creo que todavía habría que mejorarlo bastante antes de pasarme por alli xD al igual que mi ingles.

EDIT:
Acabo de actualizar la ROM a la version Alpha2 ya no es necesario resetear la consola para volver a jugar, opcion de pause (aun sin terminar) y he añadido algunos elementos gráficos más.

podeis ir viendo los progresos AQUI
Voy a aportar mi granito de arena a este hilo con un pseudo clon de Arkanoid. El código no está ni mucho menos optimizado, es más, he incumplido las normas más elementales sobre buenas prácticas de programación (las variables globales son el demonio, todo el código en un único fichero...), pero el objetivo de este experimento era familiarizarme con el SDK y comprobar si podía hacer algo interesante en el mínimo tiempo posible. Así que aprovechando que el clima por Galicia no invita a salir aquí os dejo lo que he hecho en una tarde.

http://www.filefactory.com/file/66r6jq5umqmv/mega_arkanoid.zip
Esto ... ¿es normal que filefactory empaquete los archivos subidos en un exe?

El archivo que se me ha bajado un tal "mega_arkanoid.zip.exe" (soy usuario linuxero).

Arkanoid es un buen juego para tomar contacto con cualquier librería gráfica con la que se pretenda realizar algún juego. Control del pad, dibujo, movimiento de la paleta, colisiones ... seguro que el código puede resultar un material de aprendizaje muy interesante para cualquiera que quiera empezar también.

Eso sí, si puedes súbelo a otro server ;) y ya de paso tampoco estaría de más que lo anunciaras por los foros de spritesmind (a lo mejor después de darle algún retoque o traducirlo -no me ha dado lugar a verlo). Aunque a ti te pueda parecer quizá que no es gran cosa o el código diste de ser lo que te hubiese gustado es muy posible que en algún momento le vaya a resultar muy útil a alguien que quiera ponerse a cacharrear con las sgdk y no sepa por dónde empezar.

Por descontado, muchas gracias por tu aporte. Poquito a poco vamos formando una escena megadrivera la mar de maja ;)
Después lo subo a dropbox. Ahora estoy en proceso de refactorizar el código. Mi intención es crear un engine en condiciones siguiendo el patrón de composición de entidades mediante componentes.

PD: Tienes que deseleccionar la casilla que dice "download with filefactory´s downloads manager" para bajar el archivo directamente.
Me alegra que haya más gente dándole al SGDK, yo también le estoy dando caña aunque sólo para practicar y probar cosas, ningún proyecto en concreto (me da mucha pereza el tema de crear sprites, fondos... [+risas] )
Ahora sí. Juer, mira que escapárseme lo de desmarcar la puñetera casilla ^_^u

Pues cojonudo en todos los aspectos :) Y el código muy claro y ordenado por más que esté todo en el mismo archivo (a mí me costó horrores librarme de esa costumbre). Totalmente autoexplicativo con lo que insisto en darte la chapa para que lo difundas también por spritesmind que es donde suelen pulular la gran mayoría de interesados en el cacharreo megadrivero.

@Manveru Ainu: uhm ... :-\ te diría que pruebes a trastear por devianart por si acaso encontrases a algún grafista a quien tirarle los tejos con algunas opciones, lo mismo queda en nada pero... voy a hacer gestiones ... ;)
realbrucest escribió:@Manveru Ainu: uhm ... :-\ te diría que pruebes a trastear por devianart por si acaso encontrases a algún grafista a quien tirarle los tejos con algunas opciones, lo mismo queda en nada pero... voy a hacer gestiones ... ;)

jejeje te lo agradezco que te preocupes, pero no sé la verdad es que tampoco tengo nada pensado en concreto. A ratos me pongo a practicar un shooter e intento imitar un nivel del Thunder Force IV, otras veces me tiran los plataformas y me pongo con un Sonic, etc. (juegos que ya tengo el sonido, música, los sprites y demás escenografía pillados directamente de la mega) pero por el placer de aprender a hacer cosas. Hacer algo nuevo me abruma un poco bastante y veo muy complicado de hacerlo. Lo suyo sería hacer algo entre varios, así en plan proyecto habría más motivación [360º]
Nueva versión del SGDK, la 0.95, disponible en la web oficial del proyecto http://code.google.com/p/sgdk/. Presenta interesantes novedades:

Changelog

COMPILER:

  • Major change on resource compilation: a new resource compiler tool (rescomp) is used to compile all resource files. It support many type of resources as BMP, PNG, WAV, PCM, VGM, TFM.. Read the rescomp.txt file to have more informations about it and look in the sound and sprite sample example. You can also convert your old project by using the rescomp -convert command on the project folder to convert.
  • added appack tool.
  • minor fix in wavtoraw tool.

LIBRARY:

  • added GFX compression support (see tools.h file for doxygen documentation).
  • VDP:
    • added VDP_getBackgroundColor() and VDP_setBackgroundColor(..) methods.
    • added VDP_get/setTextPlan(), VDP_get/setTextPalette() and VDP_get/setTextPriority() methods to change text drawing properties.
    • added VDP_drawBitmap(..) and VDP_drawBitmapEx(..) methods to draw Bitmap resource.
    • added VDP_drawImage(..) and VDP_drawImageEx(..) methods to draw Image resources.
    • added VDP_loadTileSet(..) method to load TileSet resource.
    • added VDP_setMap(..) and VDP_setMapEx(..) methods to load Map resources.
    • lot of refactoring in the setTileMapXX methods...
    • some tweaks.
  • TILE:
    • added new tile cache engine for easier tile allocation in VRAM. See the tile_cache.h file for doxygen documentation.
  • SPRITE:
    • added sprite engine for easier sprite manipulation. See the sprite_eng.h file for doxygen documentation and the included sprite sample for an example.
  • SOUND:
    • added TFC_isPlaying() command for the 68k TFM driver.
    • fixed issue with consecutive play command on TFM Z80 driver.
    • Improved VGM driver (thanks to kubilus1 and sigflup). You can now pause, resume music and even better play PCM SFX !
    • now clear Z80 memory on driver loading to avoid any problems with var initialization.
  • DMA:
    • minor change to VDP_doDMAEx(..) method, be careful if you use this method, the last parameter changed.
  • JOY:
    • added JOY_waitPressTime() and JOY_waitPressBtnTime() methods.
    • JOY_waitPressBtn() and JOY_waitPress() now return button pressed info.
  • MEMORY:
    • fixed a minor bug with dynamic memory allocation.
  • SYSTEM:
    • added SYS_disableInts() and SYS_enableInts() methods.
    • added SYS_isInInterrupt() to detect if we are in an interrupt callback.
    • added SYS_getAndSetInterruptMaskLevel(..) method to atomically get and set interrupt mask level.
    • added SYS_die(..) for fatal error handling.
  • library font is now included as an image.
  • added some logs for easier debugging (KDebug message).
  • many others smalls improvements.
  • lot of refactoring.
Hola gente, perdon que ponga esto, pero queria haceros unas preguntas.

- Para alguien que no tiene conocimientos de programacion y que le gustaria hacer algun juego para consolas retro, para que consola deberia intentar (xD) hacer algo? Tambien deberia ser posible el encontrar tutoriales y demas en castellano.

He visto que para megadrive y Dreamcast se hacen cosas, asi que bueno me gustaria aprender, no me atrae aprender hacer algo en 3D, solo en 2D, lo que supongo que Dreamcast daria para hacer cosas mas grandes, no?

- Que hilos deberia leerme para comenzar?

Saludos.
Widder escribió:Hola gente, perdon que ponga esto, pero queria haceros unas preguntas.

- Para alguien que no tiene conocimientos de programacion y que le gustaria hacer algun juego para consolas retro, para que consola deberia intentar (xD) hacer algo? Tambien deberia ser posible el encontrar tutoriales y demas en castellano.

He visto que para megadrive y Dreamcast se hacen cosas, asi que bueno me gustaria aprender, no me atrae aprender hacer algo en 3D, solo en 2D, lo que supongo que Dreamcast daria para hacer cosas mas grandes, no?

- Que hilos deberia leerme para comenzar?

Saludos.


Comienza por basic en Megadrive, o programa para PC
Widder escribió:Hola gente, perdon que ponga esto, pero queria haceros unas preguntas.

- Para alguien que no tiene conocimientos de programacion y que le gustaria hacer algun juego para consolas retro, para que consola deberia intentar (xD) hacer algo? Tambien deberia ser posible el encontrar tutoriales y demas en castellano.

He visto que para megadrive y Dreamcast se hacen cosas, asi que bueno me gustaria aprender, no me atrae aprender hacer algo en 3D, solo en 2D, lo que supongo que Dreamcast daria para hacer cosas mas grandes, no?

- Que hilos deberia leerme para comenzar?

Saludos.

En el primer mensaje de este hilo tienes varios tutos para empezar desde cero, aunque un conocimiento básico de C te hará falta.
Hola, gracias por la respuesta.

Pues de la pagina de codebloks en la seccion download hay que bajar las 3 cosas?

Y de la SGDK al clickar en el enlace no aparece ningun archivo para descargar.

Sobre el Tema de C, con conocimientos basicos que quiere decir? XD, vamos es que no tengo ni idea y creo que los tutoriales que he visto son algo extensos.

Y ultima pregunta, si solo quisiera hacer sprites y tiles, tambien deberia saber algo de programacion?

Gracias y perdon por las molestias, estoy muy perdido, pero tengo ganas de hacer algo xD.

Saludos.
Buenas Widder.
El post tiene ya algún tiempo y han ido sacando nuevas versiones del SGDK, supongo que el enlace ya no vale. Algunas funciones habrán cambiado pero en las librerías (carpeta inc en la SGDK) tienes toda la ayuda que necesitas, y además trae algunos ejemplos para ver cómo funcionan. Además esta nueva versión trae cosas muy interesantes y que ahorran muchísimo trabajo.

Del codeblocks bájate el primero, el que no trae añadidos; el SGDK te lo puedes bajar de la web oficial del proyecto http://code.google.com/p/sgdk/wiki/Download?tm=2

Los tutos son bastante sencillitos para ir cogiéndole el truquillo a las SGDK, tampoco necesitas saber demasiado de C, pero claro si quieres hacer un poco más tendrás que saber moverte en C, tema funciones, punteros y demás, eso ya va en función de lo complejo que quieras hacer, pero para empezar y trastear con sprites, tiles y fondos y demás no necesitas más de lo más básico, lo que ves en los tutos vamos [oki]

Un saludo.
Ok, gracias.

Por curiosidad habeis hecho alguna cosilla?

Saludos.
Widder, no es por desanimar, pero antes de ni tan solo plantearte hacer algo para megadrive, empapate unos cuantos tutoriales de programación "en general". Sinó, morirás en el intento XD
Bueno... [triston] ...en realidad lo que me gustaria seria hacer la parte grafica, se dibujar algo, estudie comic lo que no termine y bueno me falta nivel para ser profesional.

Como me gustan los videojuegos retro y los juegos de mesa, aveces se me ocurren ideas y mecanicas pero acaban siendo engorrosas para un juego de mesa, asi que habia pensando en intentar crear un videojuego desde 0.

Lo de hacer un videojuego en megadrive era por que habia visto que habia un tutorial, que si fuera para otra consola me daria igual, lo que al estar leiendo esta tarde el post veo cosas que me suenan a chino..supongo que necesito tener conocimientos previos.

Sobre la parte grafica de los juegos, a mi lo que me gustaria seria en 2D, hay algun apartado o hilo que se hable o que sea un tutorial para iniciarse en el tema?

Saludos y gracias por las respuestas ;) .
Como comenta kusfo79, tendrás que aprender a programar algo si no acabarás frustrado. Si sólo te interesa la parte gráfica puedes ofrecerte a alguien que programe para ayudarle con ese trabajo. Al igual que se te da bien el tema diseño gráfico y no controlas programar, hay (habemos) muchas personas a las que les pasa justo al contrario.

Para aprender sobre las consolas, por ejemplo para la Mega en el primer hilo tienes algunas ideas para conocer las características y limitaciones sobre tiles, fondos, colores y sprites de esta consola, a partir de ahí ya sabes lo que puedes hacer y lo que no.
Hola Widder!

Si te interesa mas diseñar/dibujar que programar, y se te da mas o menos bien..., has pensado unirte a alguno de los grupos que están desarrollando cosas homebrew para consolas clásicas?
Y donde estan esos grupos?

Saludos y gracias.
Hola a todos.

Aprendí aldo de C programando cosas para la GameBoy color, ahora empecé con la megadrive y me parece muy potente, sobre todo las mates que tiene.

¿Alguno puede hacer un tutorial sobre vectores 2d y 3d desde lo básico como dibujar lineas?
El doc que viene con el sgdk no me sirve de nada, no lo entiendo

Mi objetivo es dibujar los poligonos en modo sólido y con iluminación, he visto todas las opciones para definir una escena 3d, pero eso, me falla lo básico, no se ni dubujar una línea jeje.

Otra cosa, para hacer efectos de ondas en el fondo, (mover fondo sin esperar a sincronización vertical) el sgdk me ha parecido algo lento, ¿o lo he hecho mal?. jaja

Muchas gracias.
simplemente me encantaria programar algo para megadrive, me he intentado descargar el programa desde la web que se indica aqui

wiki/Uso_de_SGDK_en_CodeBlocks

la putada es que a la hora de descargar el ensamblador la web no funciona :S

alguien sabria decirme el nombre de la web o proporcionarme otro link de descarga?

gracias compañeros :)
Que link es el que no te va?

El SGDK se puede descargar desde aquí:

https://code.google.com/p/sgdk/
kusfo79 escribió:Que link es el que no te va?

El SGDK se puede descargar desde aquí:

https://code.google.com/p/sgdk/


ya lo tengo tio :)

gracias [oki]
De nada,

para cualquier problema, puedes preguntarnos a alguno de los interfectos que habitamos este hilo :-P
ya veo que te han ayudado aqui ;)

animo [beer]
Hola,

Llevo unos días peléandome con SGDK y agradezco enormemente el trabajo desinteresado y la ayuda prestada por todos en éste hilo y otros foros.

El caso es que quería probar a hacer un juego sencillo: algo así como una mezcla de Pacman/Humphrey/Bomberman, pero creo que la cosa se va a quedar en agua de borrajas porqué estoy desesperaíto.

Uso Code:Blocks como IDE (de nuevo gracias al tutorial), ya que Eclipse me produce urticaria, SGDK 1.11, Gimp para la parte gráfica y como tracker VGM. Hasta aquí todo bien.

He podido hacer algunos sprites del personaje principal y únicamente quería presentarlos y animar al personaje en base a la lectura del pad1. Pues bien, algo tan aparentemente sencillo me está dando un montón de dolores de cabeza.

He probado a importar los ficheros .bmp de los sprites con rescomp y genres sin éxito.

* Con rescomp: creo el ficherito de marras "rescomp.res" en la carpeta del proyecto\res con el siguiente contenido:

SPRITE characters "Fichero_sprites.bmp" 32 32 0 11
VGM music_intro "Music\Intro.vgm"

en el main.c defino los sprites:

SpriteDef Fichero_sprites;

y luego al intentar mostrar un frame con VDP_loadTileData(Fichero_sprites[frame + 1], 1, 0, 0) me da error indicando que el valor ni es un array ni un puntero.

Con genres he podido crear un fichero .asm con los sprites, pero no se como tratarlo.

Gracias por adelantado :)
A ver algunas cosas que veo mal así en un vistazo rápido:

SPRITE characters "Fichero_sprites.bmp" 32 32 0 11


El tamaño que tienes puesto 32 no puede ser ya que ahí lo que se pone es el tamaño en tiles (bloques de 8x8px) que ocupa un frame del sprite es decir como poco 1 1 como mucho 4 4.

Ese fichero al compilar te genera un rescomp.h que debes incluir en tu main.c
#include "../res/rescomp.h"

**Ten en cuenta que la ruta puede variar según dnd hayas puesto tu el fichero.

Una vez que hayas arreglado eso en rescomp.h tendrás una variable characters (es el nombre que tu le has dado) de tipo SpriteDef que podrás usar con las funciones del engine de Sprites (funciones que empiezan por SPR_).

- Iniciar el engine de Sprites usando SPR_init() (una vez)
- Es decír, te tienes que crear una variable tipo Sprite; (una vez)
- Inicializar el Sprite usando SPR_initSprite() al que le pasaremos el Sprite (que hemos creado en el 2º punto) dnd vamos a almacenar el SpriteDef que hemos generado con el rescomp. (una vez)

- Llamar a SPR_update (una vez por cada ciclo del game-loop), para actualizar el sprite en el juego.

Además para cambiar de frame y animación tu sprite deberas usar SPR_setAnim o SPR_setFrame, este último se puede indiciar para que se haga de forma automática en el fichero rescomp.res

Si ves que no te enteras de nada dimelo y te programo un ejemplo con un sprite en estos días
-
Hola, gracias por responder tan rápido [360º]

He seguido tus indicaciones y además he tenido la fortuna de encontrar que en SDK existe una carpeta llamada "doc" con la documentación de todos los métodos de SGDK (!). ¡En la página de Google Code no se hace mención a este manual (si a los ejemplos de la wiki) y es información es básica!.

Bueno, al grano:

* He modificado el valor del fichero rescomp.res:

SPRITE characters "Fichero_sprites.bmp" 32 32 0 11 por SPRITE characters "Fichero_sprites.bmp" 4 4 0 11

(Son sprites de 32x32 pixels de un fichero de 5 filas x 4 columnas (120x96 px)), por lo que ahora ya debería cuadrar -> 4 tiles de 8x8 px.

* He añadido en los includes necesarios (rescomp.h que ya añadí en su día y los que detalla la doc para el manejo de sprites):

#include <genesis.h>
#include <rescomp.h>
#include <vdp_pal.h>
#include <vdp_tile.h>
#include <vdp_spr.h>

y he definido una variable del tipo "Sprites": "Sprite characters;"

Al compilarlo me da error en la inicialización: "SPR_init();"

src\main.c|159|error: conflicting types for 'SPR_init'|

He visto a que esto es debido a que SPR_init ya está definido en "sprite_eng.h".
Lo omito pues y trabajo directamente con una variable del tipo Sprite - "Sprite characters" que es el mismo nombre que tiene en el rescomp.res.

Parece que ya no da problema y da por buena la inicialización de "Sprite characters"...vamos avanzando.

Al intentar inicializar el Sprite con SPR_initSprite no tengo claro que narices se ha de pasar como parámetro.

Según la doc:

void SPR_initSprite ( Sprite * sprite,
SpriteDefinition * spriteDef,
s16 x,
s16 y,
u16 attribut
)

Parameters:
sprite Sprite to initialize. - Variable sprite ya inicializada, en este caso "characters", ok.
spriteDef the SpriteDefinition data to assign to this sprite. ¿?¿?
x default X position. - Ok
y default Y position. - Ok
attribut sprite attribut (see TILE_ATTR() macro). - Ok. relacionado con atributos y prioridades del tile.

Miro la doc para SpriteDefinition:

---------------

SpriteDefinition Struct Reference


#include <sprite_eng.h>

List of all members.


Public Attributes

Palette * palette - ¿No la obtiene automáticamente del fichero .bmp?
u16 numAnimation - Ok, queda claro.
Animation ** animations ¿?¿?¿

--------------------------------------------------------------------------------

Si pudiéras poner un ejemplo lo agradecería.

Gracias de nuevo.
En la carpeta sample tienes una demo con el motor de sprites del SDK.
Solo tienes que incluir genesis.h y rescomp.h cuando uses rescomp.res en tu proyecto todas las demas sobran.

En cuanto a SPR_initSprite() tienes que crear una variable Sprite por ejemplo:

Sprite my_sprite;
SPR_initSprite(&my_sprite, aqui va el SpriteDef, ...)
El spriteDef para usarlo recuerda que tienes que incluir el rescomp.h y en tu caso la variable la llamaste characters


La paletta no la tiene la imagen bmp pero si quieres usarla tienes que definir tb el bmp como PALETTE en el rescomp.res

y usar la funcion VDP_loadPal <-- algo asi para cargarla en una de las paletas PAL0 , .... PAL4
y en el TILE_ATTR() pues indicas que paletta va a usar debes poner en este caso la misma que hayas elegido en la funcion VDP_loadPal
muy buenas compañeros :)

vereis por fin me he animado a dar el salto para intentar programar "lo que sea" en megadrive [carcajad]

el problema es que cuando he ido a configurar el programa code blocks tal y como se aprecia en el tutorial me he topado con que el programa esta muy cambiado ya que la ultima versión descargable es la 13.12 y la usada en el tutorial es la 5.02, esto conlleva que el programa este tan cambiado que haya pasos que directamente no puedo ni tan siquiera hacer :-?

no he sido capaz ni tan siquiera de sacar un triste "hola mundo" [carcajad]

alguien seria tan amable de o bien indicarme como he de configurar el programa code blocks con la ultima version o bien indicarme un link con un code blocks version 5.02????

muchisimas gracias de antemano [oki] [oki] [oki]
apietoteae escribió:muy buenas compañeros :)

vereis por fin me he animado a dar el salto para intentar programar "lo que sea" en megadrive [carcajad]

el problema es que cuando he ido a configurar el programa code blocks tal y como se aprecia en el tutorial me he topado con que el programa esta muy cambiado ya que la ultima versión descargable es la 13.12 y la usada en el tutorial es la 5.02, esto conlleva que el programa este tan cambiado que haya pasos que directamente no puedo ni tan siquiera hacer :-?

no he sido capaz ni tan siquiera de sacar un triste "hola mundo" [carcajad]

alguien seria tan amable de o bien indicarme como he de configurar el programa code blocks con la ultima version o bien indicarme un link con un code blocks version 5.02????

muchisimas gracias de antemano [oki] [oki] [oki]

mmm creo recordar que el único cambio es que no hay que seleccionar el archivo del debugger sino que había que elegir en la lista el "default". En cualquier caso postea el fallo que te da al compilar a ver si sacamos lo que te falta.
Manveru Ainu escribió:mmm creo recordar que el único cambio es que no hay que seleccionar el archivo del debugger sino que había que elegir en la lista el "default". En cualquier caso postea el fallo que te da al compilar a ver si sacamos lo que te falta.


aaaaaaaaa pues puede ser porque justo en ese paso fue donde me dio error, probare de nuevo compañeros y a ver que pasa :)

PD: pues compañeros... algo mal habre configurado porque esto sigue sin funcionar :(

Imagen
Veo que el compilador no sabe donde encontrar los archivos de encabezado de la biblioteca. No se si ya lo habrás hecho pero por si acaso:

Te vas a settings-> compiler-> Global compiler settings (con el compilador correcto seleccionado en el menú despegable) y en la pestaña search directories-> compiler añades los directorios ../sgdk/inc y .../sgdk/res según donde hayas instalado el SGDK.

Por cierto en el foro de Code::Blocks hay versiones más recientes para descargar (Nightly builds), que funcionan correctamente en windows modernos de 64 bits.
Abre un terminal de windows y escribe esto
ECHO %GDK%
ECHO %GDK_WIN%

si todo está bien esas dos variables deben apuntar a la ruta donde tengas el SGDK.

Imagen


Si no es asi, comprueba el punto "C - Creación de las variables de entorno" del primer post de este hilo.
343 respuestas
13, 4, 5, 6, 7