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.