Remake Ghosts n Goblins GBA ¿Alguien se apunta?

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
Mode2
Amiga 2500
Amiga 2500
Mensajes: 2621
Registrado: 08 Oct 2009, 23:53
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Atari 2600
Primera consola: TV Games/Pong Clone
Ubicación: The Grid
Gracias dadas: 1 vez
Gracias recibidas: 8 veces
Contactar:

Re: ¿Alguien se apunta?

Mensajepor Mode2 » 22 Mar 2013, 17:30

Buenas Jotego,

Se agradecería que fueses poniendo información técnica respecto a lo que vayas haciendo, por ejemplo, muy interesado en lo de pillar los gráficos originales y adaptarlos al formato de Gameboy. También en las tareas de programación.

Por otro lado, contad de seguid aprendiendo sobre todas estos temas, yo me ofrecería a echarte una mano pero no sé en que puedo echartela. ;-)

Gracias y ánimo.
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía nº1 1ª época, Amstrad Semanal, MicroHobby, juegos (especialmente Atari, CPC y Vectrex), Newbrain, Aquarius, Sam Copué, 520 ST, manual +3, manual CPC664.

Avatar de Usuario
falvarez
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 173
Registrado: 10 Mar 2013, 16:59
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo GameBoy
Gracias dadas: 11 veces
Gracias recibidas: 4 veces
Contactar:

Re: ¿Alguien se apunta?

Mensajepor falvarez » 23 Mar 2013, 12:08

EdgeM escribió:En cuanto a entorno de desarrollo, tienes esto:

http://devkitpro.org/


Como compilador y librerías "primarias" está claro que DevKitPro es la respuesta. Pero yo tengo más dudas:

* ¿Qué IDE usáis para desarrollar? Si es que usáis alguno y no tiráis directamente de vuestro editor favorito (Vi, Sublime Text, Notepad++...)
* ¿Usáis algún programa que convierta los gráficos a ficheros para ser enlazados directamente en el ejecutable?
* ¿Algún tracker? ¿Alguna librería de reproducción de música/audio?

Saludos.

Avatar de Usuario
jotego
Atari 1040 STf
Atari 1040 STf
Mensajes: 657
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 27 veces
Gracias recibidas: 44 veces
Contactar:

Re: ¿Alguien se apunta?

Mensajepor jotego » 24 Mar 2013, 22:20

Mode2 escribió:Se agradecería que fueses poniendo información técnica respecto a lo que vayas haciendo, por ejemplo, muy interesado en lo de pillar los gráficos originales y adaptarlos al formato de Gameboy. También en las tareas de programación..


La codificación de los gráficos de máquinas en la ROM se puede ver en el código fuente de MAME buscando el fichero .c de la maquina en el directorio mame/drivers. Para el GnG el fichero es gng.c. Voy a comentar los gráficos de fondo:

Código: Seleccionar todo

static const gfx_layout tilelayout =
{
   16,16,
   RGN_FRAC(1,3),
   3,
   { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) },
   { 0, 1, 2, 3, 4, 5, 6, 7,
         16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
         8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
   32*8
};


Esto dice que los bloques son de 16x16 puntos, con 3 bits por punto y que cada bit está en un archivo distinto. La macro RGN_FRAC no sé bien cómo está definida, pero es con la que se da la información de los bits por punto o planos como se le llama en el argot. Luego hay un vector que dice para cada pixel en horizontal, la posición en bits del mismo. Es decir, que los píxeles 0 al 7 están en un mismo byte y que los píxeles 8 al 15 están en otro byte pero 16 bytes después del primero. El siguiente vector es la posición de cada línea horizontal también en bits. Como va una línea por byte hay *8 en cada sitio. El 32*8 final es el número de bloques en el archivo de la ROM. Es decir, que los bloques son de 16x16 pero están almacenados como si fueran de 8x16. Se encuentran distribuidos en tres ROMs diferentes y cada una contiene un bit del mismo píxel.

Más abajo podéis ver la descripción de qué ficheros tienen los gráficos:

Código: Seleccionar todo

   ROM_REGION( 0x18000, "gfx2", 0 )
   ROM_LOAD( "gg11.bin",     0x00000, 0x4000, CRC(ddd56fa9) SHA1(f9d77eee5e2738b7e83ba02fcc55dd480391479f) ) /* tiles 0-1 Plane 1*/
   ROM_LOAD( "gg10.bin",     0x04000, 0x4000, CRC(7302529d) SHA1(8434c994cc55d2586641f3b90b6b15fd65dfb67c) ) /* tiles 2-3 Plane 1*/
   ROM_LOAD( "gg9.bin",      0x08000, 0x4000, CRC(20035bda) SHA1(bbb1fba0eb19471f66d29526fa8423ccb047bd63) ) /* tiles 0-1 Plane 2*/
   ROM_LOAD( "gg8.bin",      0x0c000, 0x4000, CRC(f12ba271) SHA1(1c42fa02cb27b35d10c3f7f036005e747f9f6b79) ) /* tiles 2-3 Plane 2*/
   ROM_LOAD( "gg7.bin",      0x10000, 0x4000, CRC(e525207d) SHA1(1947f159189b3a53f1251d8653b6e7c65c91fc3c) ) /* tiles 0-1 Plane 3*/
   ROM_LOAD( "gg6.bin",      0x14000, 0x4000, CRC(2d77e9b2) SHA1(944da1ce29a18bf0fc8deff78bceacba0bf23a07) ) /* tiles 2-3 Plane 3*/


En otro hilo he puesto un PDF que explica esto para otros tres juegos sin recurrir al MAME.

Avatar de Usuario
Mode2
Amiga 2500
Amiga 2500
Mensajes: 2621
Registrado: 08 Oct 2009, 23:53
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Atari 2600
Primera consola: TV Games/Pong Clone
Ubicación: The Grid
Gracias dadas: 1 vez
Gracias recibidas: 8 veces
Contactar:

Re: ¿Alguien se apunta?

Mensajepor Mode2 » 25 Mar 2013, 01:19

Muchíiisimas gracias, Jotego. ;-)
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía nº1 1ª época, Amstrad Semanal, MicroHobby, juegos (especialmente Atari, CPC y Vectrex), Newbrain, Aquarius, Sam Copué, 520 ST, manual +3, manual CPC664.

Avatar de Usuario
jotego
Atari 1040 STf
Atari 1040 STf
Mensajes: 657
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 27 veces
Gracias recibidas: 44 veces
Contactar:

Re: ¿Alguien se apunta?

Mensajepor jotego » 25 Mar 2013, 23:17

Otro truco para sacar gráficos del MAME. Resulta que los fondos y muñecos están codificados habitualmente usando pocos bits por píxel. En el caso del GnG, los fondos tienen sólo 3 bits por píxel. El color se saca de unas paletas de, por ejemplo, 12 bits (4 bits para rojo, 4 para verde y 4 para azul). Los 3 bits del píxel indexan la paleta y habitualmente hay una información adicional asociada al bloque en la memoría de vídeo que dice qué paleta es la que usa el bloque.

Así que, para sacar los bloques con sus colores no basta con la ROM, hay que correr el juego y ver la RAM. Aquí viene el truco: si grabas la partida en MAME (mayúscula + F7 y luego tecla 1-9) tienes un fichero con toda la información en RAM, VRAM, etc. ¡pero está comprimido! Si no estuviera comprimido podrías ver todas las paletas de color, el mapa de fondo activo en ese momento, etc. El truco para que no se grabe el fichero comprimido y acceder a la información con facilidad es ir al fichero save.c de MAME y comentar la lína 320:

Código: Seleccionar todo

   // write the header and turn on compression for the rest of the file
   file.compress(FCOMPRESS_NONE);
   file.seek(0, SEEK_SET);
   if (file.write(header, sizeof(header)) != sizeof(header))
      return STATERR_WRITE_ERROR;
   // la siguiente linea la he comentado yo (jotego)
   // file.compress(FCOMPRESS_MEDIUM);


Luego volvemos a compilar MAME y ya tenemos una versión que graba la memoria cruda, ideal para copiar cosas.

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: ¿Alguien se apunta?

Mensajepor Hark0 » 26 Mar 2013, 08:32

Bravo por esta iniciativa!

=D>

Pongo a tu disposicion mi Gba y dsi para test o lo que precises...

Y gracias por postear toda esa info tecnica... ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: Remake Ghosts n Goblins GBA ¿Alguien se apunta?

Mensajepor dancresp » 26 Mar 2013, 18:21

Pues yo no te voy a ayudar porque bastante tengo con mis cosas, pero ni que decir que me muero de ganas de ver el resultado del proyecto.

Y jugarlo... :gamers:
Buscando la IP de la W.O.P.R.

Avatar de Usuario
jotego
Atari 1040 STf
Atari 1040 STf
Mensajes: 657
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 27 veces
Gracias recibidas: 44 veces
Contactar:

Re: Remake Ghosts n Goblins GBA ¿Alguien se apunta?

Mensajepor jotego » 28 Mar 2013, 12:22

Llegaron las vacaciones de Pascua a Valencia y ya estoy manos a la obra. De momento he conseguido cargar los bloques de gráficos desde la ROM y mostrarlos usando paletas sacadas de la primera fase (y la misma para todos los bloques). Parece que voy a tener que pasarme el juego grabando el estado (como expliqué más arriba) para ir capturando las paletas que se usan en cada nivel.

Esta es la imagen del incipiente mapeador mostrando todos los bloques (1024) del juego. Parece mentira que con solo eso saliera tanto.

Imagen

Avatar de Usuario
Mode2
Amiga 2500
Amiga 2500
Mensajes: 2621
Registrado: 08 Oct 2009, 23:53
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Atari 2600
Primera consola: TV Games/Pong Clone
Ubicación: The Grid
Gracias dadas: 1 vez
Gracias recibidas: 8 veces
Contactar:

Re: Remake Ghosts n Goblins GBA ¿Alguien se apunta?

Mensajepor Mode2 » 28 Mar 2013, 12:25

¡¡Acojonante!!, el mapeo. :shock:
BUSCO: VideoPac+, Jaguar, Saturn, Micromanía nº1 1ª época, Amstrad Semanal, MicroHobby, juegos (especialmente Atari, CPC y Vectrex), Newbrain, Aquarius, Sam Copué, 520 ST, manual +3, manual CPC664.

Avatar de Usuario
josepzin
Amiga 2500
Amiga 2500
Mensajes: 3103
Registrado: 12 Ene 2009, 14:36
Sistema Favorito: C64
primer_sistema: ZX81
Ubicación: Carthagonova
Gracias dadas: 4 veces
Gracias recibidas: 63 veces
Contactar:

Re: Remake Ghosts n Goblins GBA ¿Alguien se apunta?

Mensajepor josepzin » 28 Mar 2013, 12:26

jotego escribió:Parece mentira que con solo eso saliera tanto.


Ciertisimo!


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados