User Tag List

Página 8 de 9 PrimerPrimer ... 456789 ÚltimoÚltimo
Resultados 106 al 120 de 124

Tema: Adaptando juegos de MS-DOS a MegaDrive

  1. #106

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Mi everdrive esta de viaje para ser reparado, asi que no te lo puedo probar ahora mismo.

    Pero bueno, yo al llegar a casa me he dicho "bueno, ya esta bien, vamos a ponernos con ello".

    He instalado el sdk en el miniportatil (que es el que usa windows), me he hecho un proyecto "base" para empezar, creando todos los subdirectorios necesarios (src, res, inc...) y un main.c y le he metido dentro un hola mundo.

    A ver cuando saco tiempo y me pongo con ello mas a fondo, y a estudiarme las funciones del sdk, que ahora mismo estoy muy pegao.
    Mills... tu no sabes lo que has hecho... venir a este foro con estas cosas, eso no se hace tio! XDDDD
    Ya has picao a dos mas XDDD

    Nombre:  CameraZOOM-20140427060146869.jpg
Visitas: 170
Tamaño: 99.9 KB

  2. #107

    Fecha de ingreso
    Dec 2003
    Ubicación
    Tarragona
    Mensajes
    1,510
    Mencionado
    44 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    33
    Thanked in
    Agradecido 12 veces en [ARG:2 UNDEFINED] posts
    Una duda que tengo sobre los tiles y sprites, al poner una imagen en la carpeta "res" para que al compilar la convierta a código, se eliminan los tiles que se repiten? o lo hace a saco y no tiene en cuenta eso?
    Que no se vea no significa que no exista!

  3. #108

    Fecha de ingreso
    Oct 2012
    Mensajes
    218
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    131
    Thanked in
    Agradecido 41 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por ArChEr Ver mensaje
    Una duda que tengo sobre los tiles y sprites, al poner una imagen en la carpeta "res" para que al compilar la convierta a código, se eliminan los tiles que se repiten? o lo hace a saco y no tiene en cuenta eso?
    Elimina los repetidos, lo optimiza muy bien.

  4. #109

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Pero si elimina tiles... como sabes donde esta el tile que quieres usar? o sea, en que posicion esta.
    Yo es que aun no me he puesto, pensaba ponerme esta tarde de hecho, pero es que siempre acabo haciendo lo mismo, en vez de ponerme manos a la obra directamente, me lio a leer toda la informacion que caiga en mis manos y practico poco XDD
    Última edición por K-teto; 28/04/2014 a las 19:56

  5. #110

    Fecha de ingreso
    Dec 2003
    Ubicación
    Tarragona
    Mensajes
    1,510
    Mencionado
    44 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    33
    Thanked in
    Agradecido 12 veces en [ARG:2 UNDEFINED] posts
    Muy buenas!

    mills332, como haces para mover el scroll pixel a pixel? yo lo he intentado y se mueve de tile en tile :S


    para dibujar los tiles en pantalla utilizo la funcion VDP_drawImageEx y le incremento en 1 la coordenada x a cada paso... no se si se hara asi o hay otra manera de hacerlo...


    Un saludo!
    Que no se vea no significa que no exista!

  6. #111

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Has probado a poner el scroll en el modo por lineas antes?
    Código:
    void VDP_setScrollingMode	(u16 hscroll, u16 vscroll)
    Set plan scrolling mode.

    Parameters:
    hscroll Horizontal scrolling mode :
    HSCROLL_PLANE = Scroll offset is applied to the whole plan.
    HSCROLL_TILE = Scroll offset is applied on a tile basis granulity (8 pixels bloc).
    HSCROLL_LINE = Scroll offset is applied on a line basis granulity (1 pixel).
    vscroll Vertical scrolling mode :
    VSCROLL_PLANE = Scroll offset is applied to the whole plan.
    VSCROLL_2TILE = Scroll offset is applied on 2 tiles basis granulity (16 pixels bloc).

  7. #112

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Yo tengo otro problema.

    Resulta que intento usar la funcion VDP_setTileMap que tiene 4 parametros, el plano, el numero de tile en el tileset que cargo en memoria, la posicion x y la posicion y.
    Pues me dice que son muchos parametros, parece que no le gusta el ultimo, la coordenada y, porque lo puedo pintar si elimino ese parametro, pero solo puedo darle su posicion horizontal, no la vertical.

    Código:
    #include <genesis.h>
    
    const u32 tile[8]=
    {
                    0x00111100,
                    0x01144110,
                    0x11244211,
                    0x11244211,
                    0x11222211,
                    0x11222211,
                    0x01122110,
                    0x00111100
    };
    
    int main( )
    {
        VDP_loadTileData( (const u32 *)tile, 1, 1, 0);
        VDP_setTileMap(VDP_PLAN_A, 1, 19); //el 19 es la posicion horizontal, como le meta el parametro siguiente, la posicion vertical, no me compila dandome un error.
        while(1){
            VDP_waitVSync();
        }
        return (0);
    }
    EDIT: Vale, solucionado, resulta que esa funcion esta obsoleta al parecer, pero se le olvido eliminarla, y ademas esta rota XDD
    Hay que usar VDP_setTileMapXY en su lugar, con los mismos parametros.

    Me estoy empapando la documentacion que hay en el directorio doc\html, que ahi esta todo.
    Última edición por K-teto; 28/04/2014 a las 23:03

  8. #113

    Fecha de ingreso
    Nov 2005
    Ubicación
    Excartagenero
    Mensajes
    24,970
    Mencionado
    296 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    6,640
    Agradecer Thanks Received 
    6,919
    Thanked in
    Agradecido 4,482 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    1
    Mola usar algo que ya tiene todas las funciones gráficas hechas!

  9. #114

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Pues yo me estoy dando cuenta del daño que ha hecho no tocar el C desde el 2007, la leche, me esta costando la vida.
    Y eso sumado a que aun no tengo ni idea de como funciona la megadrive, solo estoy haciendo pruebas chorras para ir pillando cachito a cachito algo de como se puede hacer una u otra cosa.

  10. #115

    Fecha de ingreso
    Oct 2012
    Mensajes
    218
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    131
    Thanked in
    Agradecido 41 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por ArChEr Ver mensaje
    Muy buenas!

    mills332, como haces para mover el scroll pixel a pixel? yo lo he intentado y se mueve de tile en tile :S


    para dibujar los tiles en pantalla utilizo la funcion VDP_drawImageEx y le incremento en 1 la coordenada x a cada paso... no se si se hara asi o hay otra manera de hacerlo...
    Un saludo!
    Pero te refieres a moverlo cada cada fotograma un pixel no?.

    A lo mejor se te olvidó poner el VDP_waitVSync(); y se acelera.

    Cita Iniciado por K-teto Ver mensaje
    Pues yo me estoy dando cuenta del daño que ha hecho no tocar el C desde el 2007, la leche, me esta costando la vida.
    Y eso sumado a que aun no tengo ni idea de como funciona la megadrive, solo estoy haciendo pruebas chorras para ir pillando cachito a cachito algo de como se puede hacer una u otra cosa.
    Lo poco que me han explicado de como funciona es esto:

    - La MD tiene 128 K de RAM, 64 para cosas en general, y 64 para los gráficos, además tiene 8 más para la música.
    - El sistema gráfico es el VDP, que mueve dos planos con 40x48 pixeles o tiles de 8x8 cada uno. Además tiene otro plano para una ventana que no se mueve, y otro plano para sprites. En total, le caben 1024 tiles de 8x8 (sumando los planos, la ventana y los sprites).
    - 4 paletas de 16 colores cada una.

    Y ya no se más... el SGDK le añade funciones al procesador, como operar con números decimales, y senos y cosenos y todo eso.


    Una pregunta, quería, en un futuro, comprar una consola de verdad con un everdrive. Me encanta el modelo 3, ese tan pequeño. Sabéis donde conseguir el everdrive y el modelo 3 de la MD? No se si existe la version europea.

  11. #116

    Fecha de ingreso
    Dec 2003
    Ubicación
    Tarragona
    Mensajes
    1,510
    Mencionado
    44 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    33
    Thanked in
    Agradecido 12 veces en [ARG:2 UNDEFINED] posts
    Yo que vendí hace poco mi megadrive con everdrive y ahora me arrepiento :S
    Que no se vea no significa que no exista!

  12. #117

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Yo tengo megadrive, pero mi everdrive lo tengo jodido y en reparacion, no se cuanto tardara en volver a casa XDD
    Un chip de memoria defectuoso, me lo van a cambiar.

  13. #118

    Fecha de ingreso
    Apr 2003
    Ubicación
    HACAPULCO (MEHICO)
    Mensajes
    60,860
    Mencionado
    131 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    404
    Agradecer Thanks Received 
    3,537
    Thanked in
    Agradecido 2,171 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    24
    pillaos uno de los chinos que ahora esta entoabia mas barato!

  14. #119

    Fecha de ingreso
    Jun 2004
    Mensajes
    12,135
    Mencionado
    41 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    665
    Thanked in
    Agradecido 437 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    17
    Ese es el que esta en camino para ser reparado XDD

    Estaba pensando tonterias esta mañana y me ha dado por pensar... si tenemos 2 planos de tiles, no tenemos por que estar limitados a 15 colores por imagen, guardas dos imagenes con pixels alternos y paletas distintas y pintas una imagen en el plano A y otra en el plano B.
    El tema es que para lo unico que serviria esto es para pantallas de titulo o cosas asi que no necesitan scroll o un solo plano de scroll.

    Tambien he pensado que vale, la megadrive no pinta pixels sueltos, sino tiles, pero no seria muy complicado hacer un algoritmo para pintar pixels en un mapa de tiles a partir de un framebuffer virtual.
    O sea, tener un array de 320x224, pintar ahi como si fuera un framebuffer lineal y luego volcarlo al mapa de tiles que se ve en pantalla.
    Lo que no se es que velocidad tendria eso, pero como posibilidad, me parece logica.

    Lo voy a probar a ver, es solo dividir ese framebuffer en trozos de 8x8.

    -----Actualizado-----

    Pues de momento estoy pintando la pantalla entera con tiles de contenido generado aleatoriamente y la velocidad es perfecta.
    Rellenar la pantalla no es problema, ahora habria que mirar lo que tardaria en generar una imagen, hacer un mapa de tiles de ella y mostrarla en pantalla.
    Última edición por K-teto; 29/04/2014 a las 17:23

  15. #120

    Fecha de ingreso
    Oct 2012
    Mensajes
    218
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    131
    Thanked in
    Agradecido 41 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por K-teto Ver mensaje
    Ese es el que esta en camino para ser reparado XDD

    Estaba pensando tonterias esta mañana y me ha dado por pensar... si tenemos 2 planos de tiles, no tenemos por que estar limitados a 15 colores por imagen, guardas dos imagenes con pixels alternos y paletas distintas y pintas una imagen en el plano A y otra en el plano B.
    El tema es que para lo unico que serviria esto es para pantallas de titulo o cosas asi que no necesitan scroll o un solo plano de scroll.

    Tambien he pensado que vale, la megadrive no pinta pixels sueltos, sino tiles, pero no seria muy complicado hacer un algoritmo para pintar pixels en un mapa de tiles a partir de un framebuffer virtual.
    O sea, tener un array de 320x224, pintar ahi como si fuera un framebuffer lineal y luego volcarlo al mapa de tiles que se ve en pantalla.
    Lo que no se es que velocidad tendria eso, pero como posibilidad, me parece logica.

    Lo voy a probar a ver, es solo dividir ese framebuffer en trozos de 8x8.

    -----Actualizado-----

    Pues de momento estoy pintando la pantalla entera con tiles de contenido generado aleatoriamente y la velocidad es perfecta.
    Rellenar la pantalla no es problema, ahora habria que mirar lo que tardaria en generar una imagen, hacer un mapa de tiles de ella y mostrarla en pantalla.
    No te vuelvas muy loco, el SGDK, ya incorpora un bufer de esos para pintar BMP, pero a la mitad de resolución. Yo estoy intentando hacer un rotozoom, pero no consigo pintar en si... Copié un código de rotozoom, la verdad es que lo hace, porque se ve lento, pero no "pinta" ni actualiza la pantalla.

    Para usar el modo BMP hay un monton de info en el doc, pero vamos, que yo no se hacerlo funcionar.

    Por si alguien lo intenta, este código funciona en el emulador al menos, pero no actualiza la pantalla:

    Código:
     
    
    #include "genesis.h"
    #include "BKG.h"
    
    int XX = 0;
    int x = 0;
    int y = 0;
    int u = 0;
    int v = 0;
    int W = 0;
    
    u16 color = 0x0000;
    
    int main(){
     
     BMP_init(1, 0, 1);
     VDP_drawBitmap(VDP_PLAN_A,&bkg,0,0);
     
     while (1){
     
        if (W == 1024) W = 0; //el ángulo en no se que unidades
    	
        //copiar y pegar pixeles de imagen, resolución de 160x128, El modo BMP de dibujo de imágenes, usa pixeles de 2x2
        for(y=0;y<=224;y+=2){
           for(x=0;x<=320;x+=2)
           {
            u = fix16Int(x*cosFix16(W)+y*(-sinFix16(W)));
            v = fix16Int(x*sinFix16(W)+y*cosFix16(W));
            color = BMP_GETPIXEL(x,y);                              //Copia pixel
            BMP_SETPIXEL(u,v,color);                                //pega pixel
            }
        }
    	
    	W++;
    
    
            BMP_clear(); //no hace nada.. 	
    	BMP_flip(1); //no hace nada...
    
            BMP_showFPS(1); Hay que hacerlo con menor resolución, yo he conseguido 3 FPS saltando pixeles de 4 en 4
    
    	VDP_waitVSync();
    	
     }
       
    }
    El modo BMP También pinta vectores y cosas 3D a resolución casi completa, estos los hice yo:


    20 fps, (no va a 60...)

    Por cierto, voy a abrir el hilo solo para sgdk, y ya pegamos todo ahi.
    Última edición por mills332; 29/04/2014 a las 19:24

Página 8 de 9 PrimerPrimer ... 456789 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •