Cita de: Clamud en Abril 19, 2016, 06:12:50 PMAh, sí, eso es porque la address que aparece arriba es de donde toma los datos para dibujar el sprite este. Un eventual editor de sprites (que tal vez sea mi objetivo final) deberá modificar los bytes de la línea de bits que empieza en 1CE0, y los cambios se verán en el sprite que encontraste.
Que bien, entonces sí funciona. Busqué otros sprites en la rom de SMB y encontré el de la imagen de arriba, pero aparece en una dirección diferente.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
1
Preguntas y respuestas / Re:Leer número binario y dibujar un píxel donde hay un 1
Abril 21, 2016, 02:08:58 PM2
Preguntas y respuestas / Re:Leer número binario y dibujar un píxel donde hay un 1
Abril 19, 2016, 05:53:35 AMCita de: Clamud en Abril 17, 2016, 12:29:50 AM
He usado este método para crear una matriz 8x8 con valores de 0 a 3 (números de 2 bits):
[gml]
file_bin_seek( ida, drc ); //byte inicial
for( i=0; i<16; i+=1 ) //leer 16 bytes
byte = file_bin_read_byte( ida );
k = 0; //posicion en el array de bytes
for( j=0; j<8; j+=1 ){ //capa 1
for( i=0; i<8; i+=1 ){
mtz[i,j] = (byte[k] >> i) & 1;
}
k += 1;
}
for( j=0; j<8; j+=1 ){ //capa 2
for( i=0; i<8; i+=1 ){
mtz[i,j] += ((byte[k] >> i) & 1) << 1;
}
k += 1;
}
[/gml]
En el editable adjunto se puede ver la matriz, pero no he encontrado los sprites en ninguna rom, espero que te ayude.
Gracias, es exactamente lo que buscaba. El único inconveniente fue que los sprites se veían invertidos horizontalmente, por ejemplo en el juego Super Mario Bros. la letra K es la dirección 9150. Si ingresamos esa dirección vamos a ver una K invertida.
Lo resolví simplemente modificando esta parte del código del evento Draw:
Código [Seleccionar]
}
x = i*20 + 200;
y = j*20 + 100;
draw_rectangle( x,y, x+20, y+20, false );
}
Le puse un "-" en i*20, así:
Código [Seleccionar]
}
x = i*-20 + 200;
y = j*20 + 100;
draw_rectangle( x,y, x+20, y+20, false );
}
Entonces ahora dibuja los rectángulos hacia la izquierda.
Gracias nuevamente, también a Black_Cat por su ayuda.
3
Preguntas y respuestas / Leer número binario y dibujar un píxel donde hay un 1
Abril 16, 2016, 01:21:09 PM
Hola a todos.
Mi inquietud esta vez consiste en que quiero hacer un visualizador de sprites de NES... con Game Maker, obviamente.
El procedimiento es simple: utilizar la función de abrir un archivo binario para su lectura, abrir así la ROM de NES, y que lea una línea de valores de una dirección específica, por ejemplo:
001CE0: 00 00 00 00 00 00 7E 3C 3C 7E 73 FF FF FF 42 00
Eso debe visualizarlo como una tile de 8x8 píxeles.
El método de composición de imágenes de NES es 2BPP, es decir que superpone dos planos de 8x8 píxeles de dos colores posibles, para formar una tile de un máximo de 4 colores.
Esta imagen lo explica claramente:

Más info aquí:
www.romhacking.net/forum/index.php/topic,20294.msg285382.html
Los colores a usar se especifican aparte, eso no es problema.
Mi gran problema es escribir un código que lea un número binario (en realidad Game Maker lee los valores binarios en decimales, pero creo que para eso puedo utilizar un conversor decimal a binario para GM que creo haber visto en la web), dibuje un píxel cuando lea "1" y deje un espacio o dibuje un pixel del color de fondo cuando lea "0". La pregunta es ¿cómo puedo hacer que lea uno por uno los dígitos de un número binario y no como todo un valor? O sea, necesito que si lee "1100100" pueda separar 1 -1 -0 - 0 -1 - 0 - 0
Si a alguien le interesa este asunto, he visto en el blog de YoYo Games un tipo que está haciendo un emulador de Commodore 64 integramente en GM.
https://www.yoyogames.com/blog/84
Yo no quiero hacer un emulador de NES, sólo un visor de sprites, pero puede servir para entender lo que busco hacer. Es algo parecido, pero no es lo mismo, por eso me resulta complicado.
Mi inquietud esta vez consiste en que quiero hacer un visualizador de sprites de NES... con Game Maker, obviamente.
El procedimiento es simple: utilizar la función de abrir un archivo binario para su lectura, abrir así la ROM de NES, y que lea una línea de valores de una dirección específica, por ejemplo:
001CE0: 00 00 00 00 00 00 7E 3C 3C 7E 73 FF FF FF 42 00
Eso debe visualizarlo como una tile de 8x8 píxeles.
El método de composición de imágenes de NES es 2BPP, es decir que superpone dos planos de 8x8 píxeles de dos colores posibles, para formar una tile de un máximo de 4 colores.
Esta imagen lo explica claramente:
Más info aquí:
www.romhacking.net/forum/index.php/topic,20294.msg285382.html
Los colores a usar se especifican aparte, eso no es problema.
Mi gran problema es escribir un código que lea un número binario (en realidad Game Maker lee los valores binarios en decimales, pero creo que para eso puedo utilizar un conversor decimal a binario para GM que creo haber visto en la web), dibuje un píxel cuando lea "1" y deje un espacio o dibuje un pixel del color de fondo cuando lea "0". La pregunta es ¿cómo puedo hacer que lea uno por uno los dígitos de un número binario y no como todo un valor? O sea, necesito que si lee "1100100" pueda separar 1 -1 -0 - 0 -1 - 0 - 0
Si a alguien le interesa este asunto, he visto en el blog de YoYo Games un tipo que está haciendo un emulador de Commodore 64 integramente en GM.
https://www.yoyogames.com/blog/84
Yo no quiero hacer un emulador de NES, sólo un visor de sprites, pero puede servir para entender lo que busco hacer. Es algo parecido, pero no es lo mismo, por eso me resulta complicado.
4
Preguntas y respuestas / Re:Transparencia en tiles
Diciembre 11, 2015, 11:44:33 AM
Bueno, el optimizador de PNG parece ser la mejor alternativa, gracias a todos.
5
Preguntas y respuestas / Re:Transparencia en tiles
Diciembre 09, 2015, 11:43:24 AM
Estoy usando 8.0 Pro. Y sí puedo usar correctamente PNGs transparentes, pero lo que yo quería era usar PNG no-transparentes con un color del extremo inferior izquierdo que se haga transparente automaticamente como en los sprites, porque si uso PNGs con un canal alpha el tamaño final del juego aumenta. Juraría que lo había podido hacer en otras versiones, pero tal vez me equivoque. Si alguien puede intentar usar set de tiles en formato PNG no transparente y decirme si se la borra el color del extremo inferior izquierdo se lo agradecería.
6
Preguntas y respuestas / Transparencia en tiles
Diciembre 08, 2015, 10:42:17 AM
Hola. Mi duda es: a los set de tiles no se les borra el color del pixel de la esquina inferior izquierda como sucede con los sprites para que tengan transparencia? Es que hice varios set de tiles porque quiero hacer algo con imágenes que se superponen y las tiles son más manejables que los backgrounds, ya que estas tienen la propiedad de depth, mientras que el background sólo obtiene la profundidad del objeto que lo asigna. En fin, si no se entendió no importa, el asunto es que las tiles se dibujan rectangulares, con el color verde de relleno de la imagen original, y no se les borra ese color como se hace con los sprites. Tuve que resolverlo editando cada tileset uno por uno con el editor de imágenes del GM, usando la función Image - Erase a Color... y así borrar el color verde. Así las tiles se ven recortadas, con un color transparente, pero este método tiene su contra. Aumenta el tamaño del archivo, lo comprobé exportando recursos de los tileset sin transparencia y con transparencia, y el tamaño del archivo varía. Esto es, supongo, porque un tileset sin transparencia es como un PNG normal, mientras que con transparencia es como guardar PNGs transparentes. Supongo.
La pregunta sería justamente: a los tilesets no se les borra el color inferior izquierdo? No hay manera de que se le borre un color a una tile automáticamente?
La pregunta sería justamente: a los tilesets no se les borra el color inferior izquierdo? No hay manera de que se le borre un color a una tile automáticamente?
7
Preguntas y respuestas / Re:[Solucionado]Cambiar un solo color en imagen
Mayo 11, 2015, 05:04:55 AMCita de: Clamud en Mayo 10, 2015, 05:13:50 PM
El script puede ser lento porque usa la función surface_getpixel, que es una de las funciones más lentas en GM, y el tiempo se multiplica al modificar sprites grandes. Lo mejor es usar la función al inicio del juego o en las transiciones entre niveles para evitar retardos a mitad del juego.
Aquí hay otro script que es un poco más rápido, en ese sript se cambian los modos de mezcla al dibujar en superficies, y parece extraño, pero eso se hace más rápido en GM. Además el script cambia el color en todas las sub-imágenes del sprite. Hay una advertencia de bug en :GMS:, pero es completamente compatible con :GM8:
También he leído de una extensión para :GM8: que permite utilizar shaders, pero creo que eso ya es complicarse demasiado.
EDITO: Los siento, había olvidado poner el enlace: http://www.gmlscripts.com/script/sprite_replace_color
Gracias!
8
Preguntas y respuestas / Re:Cambiar un solo color en imagen
Mayo 09, 2015, 10:11:17 AMCita de: Texic en Septiembre 23, 2013, 07:58:40 PMLo estuve viendo y aparentemente es exactamente lo que busco. Voy a tratar de dominarlo a ver si me sirve, por lo pronto, es lo más parecido a lo que necesito. Gracias.
Fijate este script que hice
http://www.comunidadgm.org/index.php?topic=16970.0
PD. - EDITADO -
Hay alguna precaución que se deba tomar a la hora de usar este script? Es decir, consume muchos recursos por el hecho de usar funciones de dibujo?
9
Preguntas y respuestas / Re:¿Crear GIFs animados?
Junio 28, 2014, 08:19:39 AM
La descalificación ante todo.
Mi pregunta surgió porque una vez vi en un sitio en inglés (no recuerdo si en YoYo Games) un programa creador de emoticones animados, cuyo autor se jactaba de haberlo confeccionado integramente en Game Maker, pero no dejaba el editable, sólo el .exe; por lo que tuve la curiosidad sobre cómo era esto posible. Y por eso hice la segunda pregunta, si alguien conocía la composición de un GIF animado, porque me parecía una buena base para comenzar a conjeturar sobre las posibilidades de Game Maker.
Mi pregunta surgió porque una vez vi en un sitio en inglés (no recuerdo si en YoYo Games) un programa creador de emoticones animados, cuyo autor se jactaba de haberlo confeccionado integramente en Game Maker, pero no dejaba el editable, sólo el .exe; por lo que tuve la curiosidad sobre cómo era esto posible. Y por eso hice la segunda pregunta, si alguien conocía la composición de un GIF animado, porque me parecía una buena base para comenzar a conjeturar sobre las posibilidades de Game Maker.
10
Preguntas y respuestas / ¿Crear GIFs animados?
Junio 26, 2014, 10:39:23 PM
La pregunta ya se la habrán hecho todos, pero la respuesta no la sé.
¿Existe alguna manera de crear GIFs animados en Game Maker a partir de BMPs? Es decir que nos cree un archivo de GIF animado.
O visto de otra manera; alguien conoce cuál es la composición de un GIF animado? Me imagino que son varios gifs separados más algún archivo que indica la duración de cada uno, las repeticiones, el color transparente, etc... Tal vez eso se pueda lograr con GM.
¿Alguien sabe algo?
¿Existe alguna manera de crear GIFs animados en Game Maker a partir de BMPs? Es decir que nos cree un archivo de GIF animado.
O visto de otra manera; alguien conoce cuál es la composición de un GIF animado? Me imagino que son varios gifs separados más algún archivo que indica la duración de cada uno, las repeticiones, el color transparente, etc... Tal vez eso se pueda lograr con GM.
¿Alguien sabe algo?
11
Preguntas y respuestas / Re:Que jugadores vean pantallas diferentes
Junio 24, 2014, 11:30:06 AMCita de: Guacusio en Junio 23, 2014, 11:13:57 PM
Supongamos que identificas para cada instancia del juego si el jugador es el host o el cliente usando una variable global.master (true para el host, false para el cliente). Si lo que ve el jugador del host se encuentra en la view[0] y lo que ve el otro se encuentra en la view[1], cambia los valores de view_visible como sigue:Código [Seleccionar]if global.master
{
view_visible[0]=true;
view_visible[1]=false;
}
else
{
view_visible[0]=false;
view_visible[1]=true;
}
Gracias por responder. Lo voy a probar.
12
Preguntas y respuestas / Que jugadores vean pantallas diferentes
Junio 23, 2014, 06:31:06 PM
Hola, comunidad.
Pido disculpas por preguntar directamente cómo hacer algo en vez de pedir que me ayuden a modificar un script. Pero realmente no sé cómo hacer esto.
Digamos que estoy haciendo un juego de cartas que debería ser multiplayer (vía internet). Tutoriales sobre juegos multiplayer hay muchos, y ya más o menos voy entendiendo como funciona esto, pero en el caso específico de un juego de cartas los dos jugadores deben estar viendo cosas distintas, ya que uno no debería saber qué cartas tiene el otro o cuál va a elegir.
Los tutoriales que he visto enseñan cómo mostrar dos views (una correspondiente a cada jugador) simultaneamente, pero yo no busco mostrar una pantalla partida, sino dos diferentes.
¿Conoce alguien algún tutorial que me ayude a solucionar este asunto?
Gracias de antemano.
Pido disculpas por preguntar directamente cómo hacer algo en vez de pedir que me ayuden a modificar un script. Pero realmente no sé cómo hacer esto.
Digamos que estoy haciendo un juego de cartas que debería ser multiplayer (vía internet). Tutoriales sobre juegos multiplayer hay muchos, y ya más o menos voy entendiendo como funciona esto, pero en el caso específico de un juego de cartas los dos jugadores deben estar viendo cosas distintas, ya que uno no debería saber qué cartas tiene el otro o cuál va a elegir.
Los tutoriales que he visto enseñan cómo mostrar dos views (una correspondiente a cada jugador) simultaneamente, pero yo no busco mostrar una pantalla partida, sino dos diferentes.
¿Conoce alguien algún tutorial que me ayude a solucionar este asunto?
Gracias de antemano.
13
Preguntas y respuestas / Archivos .nes en GM
Marzo 15, 2014, 02:40:19 PM
Hola, gente. Tengo una duda, y anticipo que mi pregunta va más bien apuntada a quienes alguna vez experimentaron con el ROMhacking (el proceso de modificar ROMs de juegos de consola). Sucede que abriendo una ROM de Famicom/NES (extensión .nes) aplicando las funciones de archivos binarios en GM podemos leer y modificar varios aspectos de un juego, pero esto nos sirve sólo para trabajar con números hexadecimales, no así con los gráficos que (corrijanme) se hallan en la memoria PPU. Pregunta: ¿Existe manera de visualizar los mapas de tiles de una ROM?
¿Alguna extensión quizás?
...
¿Alguna extensión quizás?
...
14
Desarrollo de Scripts / Re:Crear tono con game maker 8
Septiembre 25, 2013, 01:00:23 PM
Interesante... ¿Será posible hacer que el sonido suene directamente en el juego? Es decir, sin la necesidad de guardarlo como wav previamente. Serviría para hacer un sintetizador.
15
Preguntas y respuestas / [Solucionado]Cambiar un solo color en imagen
Septiembre 23, 2013, 10:50:44 AM
Hola a todos. Mi duda es si es posible mostrar un sprite o background pero al que se le pueda cambiar un solo (o más, pero por separado) color. No me refiero a la función de colorear todo el sprite con un color, sino que quiero saber si se puede tomar un color específico en una imagen para reemplazarlo por otro.
Por ejemplo así, para cambiarle el color de pelo..:
(ver archivo adjunto)
Por ejemplo así, para cambiarle el color de pelo..:
(ver archivo adjunto)