Mostrando entradas con la etiqueta Homebrew. Mostrar todas las entradas
Mostrando entradas con la etiqueta Homebrew. Mostrar todas las entradas

miércoles, 17 de agosto de 2022

Emulicious, emulador multiplataforma

 

 Hay toneladas de emuladores. No hay peor o mejor y tener que elegir uno es más una cuestión de gusto personal. Personalmente suelo preferir los emuladores donde la configuración del mando es automática (o semiautomática) y hay pocas, pero buenas, opciones. Por esta razón solo puedo recomendar a cualquier usuario Windows, Linux o Mac Emulicious.


Emulicious es un emulador multisistema de uso gratuito para Windows, Linux, Mac OS (X) y cualquier otro sistema operativo compatible con Java SE.


No necesita instalar Java en su sistema para ejecutar Emulicious. Solo requiere los binarios de Java para ejecutarse. Para los usuarios de Windows hay una descarga que incluye los binarios actuales de Java.



Emulicious consta de los siguientes emuladores:


  • Un emulador de Game Boy de Nintendo

  • Un emulador de Nintendo Game Boy Color

  • Un emulador de Sega Master System

  • Un emulador de Sega Game Gear


Emulicious aún proporciona algunas características y herramientas adicionales:


  • Actualizaciones automáticas

  • Turbo ajustable

  • Acelerador ajustable

  • Aplicación de parches IPS

  • Estados guardados (solo Master System/Game Gear)



Herramientas (solo Master System/Game Gear):


  • Depurador (incluido un desensamblador interactivo con código automatizado/separación de datos)

  • Perfilador

  • Trazador

  • Editor de memoria

  • Visor de paletas

  • Visor de mosaicos

  • Visor de mosaicos

  • Visor de sprites

  • Rastreador de memoria


El depurador proporciona muchas funciones que pueden ser útiles para el ROMHacking y el desarrollo de Homebrew. Proporciona resaltado de sintaxis personalizable, registro de seguimiento, puntos de interrupción y puntos de observación. Una jerarquía de referencia ayuda a comprender el flujo de un programa, el generador de perfiles ayuda a identificar puntos críticos. Una poderosa sintaxis de expresión permite la definición de condiciones útiles para puntos de interrupción/puntos de observación. Los puntos de interrupción que se detienen en los accesos a la memoria no inicializada y los estados inconsistentes después de las interrupciones pueden ayudar a evitar errores de programación innecesarios.



Por esto y mucho más Emulicious puede convertirse en un interesante aliado para nuestros propios desarrollos.


La web del proyecto https://emulicious.net/

lunes, 15 de agosto de 2022

LA LELLENDA DE LA CERDA

 


No, no es un error ortográfico, La Lellenda de la Cerda es un buen ejemplo de juego ROMHack,

una versión modificada del link’s awakening de Game Boy hecha por un grupo de ROMHackers que se hacen llamar Charnego Translations, con el objetivo de darle una traducción gamberra al titulo. Vio a la luz a principios de 1999 y desde entonces es una de las ROMHacks mas icónicas del scene Game Boy. En el en lugar de despertar en una isla rodeados de conchas y palmeras, nuestro protagonista, amanecerá en una playa repleta de jeringuillas de yonkies y en lugar de usar nuestra espada usaremos una autentica navaja de Albacete.

Posteriormente el grupo llamado “Iberic Games” https://www.facebook.com/ibericgames/ saco una edición física con el permiso de charnego translations.



Mucha diversión con un lenguaje no apto para niños en este titulo.




La web de Charnego translations y desde la cual podréis bajaros el parche: https://charnego.krusher.net/

jueves, 11 de agosto de 2022

GB STUDIO, Herramienta gratuita para diseñar juegos de Game Boy

 



Gracias a esta herramienta gratuita, tendrás la posibilidad de crear tu propio Juego para Game Boy. ¡Sin necesidad de conocimiento de programación!

Si siempre siempre has tenido el sueño de crear un juego de Game Boy , pero nunca encontraste el coraje o el compromiso de aprender la programación detrás de los píxeles. Gracias a GB Studio y un poco de esfuerzo, finalmente puedes hacer realidad tus sueños. GB Studio fue desarrollado por Chris Maltby y lanzado para el 30 aniversario de la consola portátil más icónica de todos los tiempos.

Este increíble software actualmente es compatible con Windows, MacOS y Linux . Para construir tu juego, necesitarás un editor de imágenes PNG externo (como GIMP ) para poder crear los sprites para los distintos personajes y fondos, mientras que la música se puede agregar gracias al uso de GB Player.

Luego los juegos que desarrollemos pueden ser compilados y compartidos a través del emulador HTML5 ya implementado en la herramienta, o crear directamente un archivo ROM de Game Boy, capaz de ejecutarse tanto en su emulador favorito como en cualquier consola Game Boy, flasheando en un cartucho o en un cartucho tipo Everdrive.

En caso de que tengas problemas para comenzar con GB Studio, no entres en pánico y deja que Chris Maltby te guíe . De hecho, el desarrollador ha puesto a disposición su primer trabajo con GB Studio, Untitled GB Game . Este título, además de ayudarte con ideas , también será un tutorial mostrándote al mismo tiempo un excelente ejemplo de un proyecto que se puede crear con el software. Con un poco de talento en el arte de los sprites , mucha imaginación e incluso un poco de compromiso, puedes mostrar tu talento en el desarrollo de juegos con esta herramienta muy simple e intuitiva.

Seguramente estamos hablando de un software de nivel de entrada , crear un videojuego es ciertamente mucho más complejo y tarde o temprano tendremos que toparnos con desafíos más difíciles, como tener que aprender algún lenguaje de programación. Lo cierto es que con esta fantástica herramienta podrás dar un paso en la dirección del desarrollo de videojuegos y aunque el camino sea largo, el viaje siempre comienza con un primer paso.


Puedes descargarte la herramienta desde su web oficial:

https://www.gbstudio.dev/

jueves, 28 de julio de 2022

ROMHACKS

 


El Romhack es una rama del homebrew un poco particular. Para empezar, ROM significa memoria de solo lectura , que proviene del chip dentro de los cartuchos de videojuegos que contiene todos los datos relacionados con ese juego específico. Estos datos se pueden copiar a través de una imagen de ROM o un archivo de ROM, y esto es lo que se usa para hackear ROM.


El Romhacking es el proceso de tomar los archivos de un juego y modificarlos para crear una nueva experiencia utilizando el motor del juego anterior . Con las herramientas de edición adecuadas, un hacker de ROM puede cambiar cosas que van desde opciones de diálogo hasta mecánicas de juego básicas y diseño de niveles.


Los hacks de ROM generalmente se mantendrán fieles al diseño original del juego, optando en su lugar por crear nuevos niveles, introducir nueva música y elementos del juego, y apuntar a crear una forma totalmente nueva de experimentar el juego original.



La mayoría de los hacks de ROM se realizan mediante el uso de un editor hexadecimal , que se enfoca en editar texto y conceptos fundamentales en cualquier juego en particular, como las propiedades de los elementos. Aprender a usar un editor hexadecimal es la base para cualquiera que quiera aprender el Romhacking.


También hay sistemas de edición adicionales según la tarea en cuestión, como un editor de mosaicos para cambiar gráficos y un editor de niveles para rediseñar los niveles que ya están en el juego. Las herramientas que usará un pirata informático dependen completamente del alcance y el objetivo del ataque específico en el que están trabajando.


Cuando se completa el hack de la ROM, casi siempre se reproduce a través del emulador, ya que esta es la forma más fácil de transferir y cargar los archivos. Sin embargo, hay ciertas ROM parcheadas que se pueden reproducir con los cartuchos y el hardware originales, y encontrar formas de incorporar experiencias emuladas en las consolas originales se ha convertido en el objetivo más popular por los aficionados a esta modalidad.


El sitio web ROMhacking.net es un excelente lugar para comenzar, ya que hay muchos documentos, foros, preguntas frecuentes y artículos que responden a casi cualquier pregunta que uno pueda tener al comenzar a investigar el mundo del Romhacking. También proporciona una lista de juegos para que pueda limitar su búsqueda a las cosas que realmente le interesan.


Revisar las cosas en YouTube también es un buen comienzo y, a menudo, los canales más populares y/o los creadores de la ROM en particular tendrán los parches en algún lugar de la descripción, lo que hará que esas ROM sean fáciles de encontrar.


Espero que os haya gustado y en futuros post aprovecharemos para conocer algunos de estos hackroms y analizarlos.


martes, 26 de julio de 2022

GBDK-2020

 


Según su pagina de Github (https://github.com/gbdk-2020/gbdk-2020), GBDK-2020 es un kit de desarrollo multiplataforma para consolas de juegos basadas en procesadores SM83 y Z80. Incluye bibliotecas, utilidades de cadenas de herramientas y el conjunto de compiladores SDCC C.

Consolas compatibles:

  • Nintendo Gameboy / Game Boy Color

  • Analogue Pocket

  • Sega Master System & Game Gear

  • Mega Duck / Cougar Boy


El GameBoy Developer's Kit (GBDK, GBDK-2020) se utiliza para desarrollar juegos y programas para Nintendo. Game Boy (y algunas otras consolas) en C y ensamblado. GBDK incluye un conjunto de bibliotecas que satisface los requisitos más comunes y genera archivos de imagen para usar con un GameBoy real flasheando un cartucho, con un Evendrive o emuladores.


Características de GBDK:

Cadena de herramientas C y ASM basada en SDCC con algunas utilidades de soporte

Un conjunto de bibliotecas con código fuente

Programas de ejemplo en ASM y en C

Compatibilidad con múltiples imágenes de bancos de ROM y banca automática


GBDK es gratuito y la a mayor parte del código de las herramientas incluidas está bajo licencia GPL, que es una licencia de derechos de autor ampliamente usada en el mundo del software libre y código abierto, lo que hace es permitir que los usuarios finales (personas, organizaciones, etc) tengan libertad de usar, estudiar, compartir (copiar) y modificar el software. Las bibliotecas de tiempo de ejecución deben estar bajo la LGPL.

La versión 2020 incorpora muchos cambios, hay que tener en cuenta que la versión anterior data del año 2000. Entre ellos el cambio quizás mas importante es el de compilador del LCC al SDCC,

Desde su pagina de Github podemos descargarlo en el apartado "Current Release" tanto para Windows, Linux y Mac Os


En próximas entregas iremos viendo paso a paso como desarrollar nuestros primeros juegos.

lunes, 25 de julio de 2022

Generar documentación para nuestros juegos a partir del código fuente con Doxygen

 

Doxygen es una herramienta que nos va a permitir generar documentación a partir de nuestro código fuente en c, aunque es compatible con una gran cantidad de lenguajes más como PHP, C++, etc. Y esta disponible tanto para Windows, linux y Mac.

Esta documentación puede sernos de mucha utilidad de cara a documentar el código de nuestros juegos y poder reutilizar su código fuente, descubrí esta herramienta por casualidad buscando un equivalente al Javadoc de java en C.

Sus principales características son

  • Puede generar un navegador de documentación en línea (en HTML) y/o un manual de referencia fuera de línea (en LaTex)

  • Doxygen para extraer la estructura del código de archivos fuente no documentados y también puede visualizar las relaciones entre los diversos elementos mediante la inclusión de gráficos de dependencia, diagramas de herencia y diagramas de colaboración, que se generan automáticamente.

  • También puede usar Doxygen para crear documentación normal

Un ejemplo muyu claro de la documentación que genera podria ser la documentacion del Api KDE que esta elaborada con esta herramienta https://api.kde.org/


Puedes descargarte Doxygen desde el siguiente enlace: https://doxygen.nl/download.html


Bloque de comentarios especial de Doxygen


Para poder poner comentarios en su código para que doxygen los incorpore en la documentación que genera debemos añadir un bloque de comentarios especial, este bloque se asemeja a un bloque de comentarios de estilo C o C++ con algunas marcas adicionales, por lo que doxygen sabe que es un fragmento de texto estructurado que debe terminar en la documentación generada.


Podemos usar el estilo Javadoc para ello, que consiste en un bloque de comentarios de estilo C que comienza con dos *, como este:

    /**
     * ... texto ...
     */

Doxygen incluye una sintaxis propia dentro de los bloques de comentarios especiales, a continuación dejo un ejemplo extraído de su documentación:




/**
  @brief Writes the digital output of a given line in a given subdevice

  Most digital output systems are organized in groups of lines, (8, 16, 32 ...) and the aim of this function is to handle only
  one line a given group

  @param subdevice target subdevice, an integer between 0 and 255
  @param line line to be modifided, in general, a value between 0 and 31, but depends on the target slave
  @param value state to be written to thew line, mus be 0 or 1

  @returns the result of the operation, being cd_Error_NoError if all worked OK

  Example:
  \verbatim
      cd_Error my_error;

      my_error = cdm_DAQWriteDigitalLine(2,31,1);
      if (my_error != CD_Erro_NoError) {
            printf("Ups, this failed with error %s\n", cd_ErrorStr(my_error);
      }
   \endverbatim

  */
cd_Error cdm_DAQWriteDigitalLine(uint8_t subdevice, uint8_t line, uint8_t value) {
 ...

}

Para aprender esta sintaxis os recomiendo que le deis un vistazo a la documentación oficial en: https://doxygen.nl/manual/index.html


Lanzando el generador de HTML


Para lanzar el generador de HTML se procede con los siguientes pasos minimos desde el GUI una vez descargado y instalado:


1. Indicamos el nombre de nuestro proyecto



2. Especificamos el lenguaje de programación, en nuestro caso C.




3. Seleccionar la forma de salida (en nuestro caso no tocamos nada)




4. Seleccionar diagramas de salida (en nuestro caso no tocamos nada)




5. En el ultimo paso pulsamos el botón “run doxygen” y si queremos ver el resultado del html generado, una vez terminado el proceso pulsamos el botón “Show HTML output”







Espero que os haya gustado este post y si queréis que profundicemos mas en el tema solo tenéis que decirlo en los comentarios :)






Algunos Juegos HomeBrew GameBoy

 

Como ya sabéis los juegos Homebrew son juegos hechos para plataformas que no se comercializan ya o que su fabricación se a descontinuado, como el caso de nuestra querida Game Boy.


Si no sabéis que son los juegos Homebrew os dejo un enlace a un post en el que os explico lo que son https://jujubegames.blogspot.com/2022/07/que-es-homebrew.html


Viendo un día en el grupo de Facebook de Game boy España, grupo al que encarecidamente os recomiendo uniros por la cantidad de información que maneja y el buen rollismo que impera, vi un post de Javier González Robles en el que proponía un reto con los siguientes 4 juegos “Indies” de Game Boy para probarlos durante 15 días. La verdad es que vi que eran títulos tan buenos que no he podido evitar el contaros cuales son y comentaros un poco de que van.


Cada día me sorprende mas la escena Homebrew los niveles de calidad que esta llegando a tener, espero que disfrutéis de estos juegos, tanto como yo disfruto escribiendo sobre ellos.


DMG DEALS DAMAGE



Como dicen en su pagina webcreado para celebrar el 30 cumpleaños de la mejor consola portátil jamás creada!” Un divertido título de acción donde manejaremos una Game Boy para pelearnos con todo tipo de maquinitas de la competencia celosas por el éxito de nuestra querida consola, 30 niveles de dificultad (Uno por cada año de la consola) y mucha diversión y originalidad.


Puedes obtener mas información en su pagina web https://drludos.itch.io/dmg-deals-damage




DEADEUS



Juego realizado con la herramienta GBStudio de Chris Maltby, que da una idea de las autenticas maravillas que podemos desarrollar con la misma (y de la que espero hablaros mucho en este blog).


El juego se centra en un niño pequeño que tiene una pesadilla profética que le dice que todos morirán en 3 días y que tiene que investigar su aldea para ver cómo puede salvarlos, si es que lo hace.


Un excelente y oscuro rpg de terror ambientado en un pueblo donde ocurrirán grandes misterios... ¡con hasta 11 finales diferentes!


Puedes obtener mas información en su pagina web https://izma.itch.io/deadeus



TOBU TOBU GIRL DX


Desde el estudio independiente danés Tangram, nos llega un juego de habilidad vertical (y bastante dificultad) donde manejaremos a una chica que va en rescate de su gato, que ha salido volando en globo.


Tobu Tobu Girl Deluxe es una versión nueva y mejorada del original que presenta gráficos mejorados a todo color y es totalmente compatible con Game Boy, Game Boy Color y Super Game Boy.


Además de todo esto, el juego es de código abierto y podemos descargarnos su código fuente en

https://github.com/SimonLarsen/tobutobugirl-dx


Puedes obtener mas información en su pagina web https://tangramgames.dk/tobutobugirldx/



DANGAN GB



Dangan GB es un Shooter corto y simplista de boss-rush/bullet-hell lanzado para Game Boy para celebrar el 30 aniversario de la consola.

Algunas características del mismo:

  • 6 jefes únicos con múltiples fases

  • sin parpadeo de bala

  • sin ralentización

  • sin desgarramiento

  • muchas balas

Un shooter donde pondrás a prueba tus reflejos, con enemigos y cantidad de animaciones en pantalla que te dejarán perplejo.

Puedes obtener mas información en su pagina web https://snorpung.itch.io/dangan-gb


Espero vuestros comentarios y espero que si probais estos juegos os gusten.

jueves, 21 de julio de 2022

Hacer ping en C


Ahí va esta receta de bastante utilidad, que me encontré por los apuntes de una de mis anteriores empresas, aunque no esta relacionada con el mundo del retro directamente, como en este blog estoy tratando algo de lenguaje c, quizás os pueda interesar.

Básicamente su utilidad radica por si alguna vez necesitamos hacer un ping para comprobar si tenemos conectividad con algún dispositivo conectado a nuestra red.(Solo bajo linux)

 int ping(string target)
{
  char buffer[50];
  char c[20];
  sprintf(buffer,"ping -c 1 -W 1 %s | grep -c ms", target.c_str());
  FILE *p = popen(buffer,"r");
  fgets(c, 5, p);
  pclose(p);
  if (strcmp(c, "3\n") == 0)
    return 1;
  return 0;
}

martes, 19 de julio de 2022

DefleMask, Crea música chiptune simulando chips de consolas clásicas

Deflemask es una aplicación que nos permite componer música  después poderla reproducir en diversas plataformas retro. Tenéis mas información en su web https://www.deflemask.com/




Os dejo un video de mi canal donde se analizó la app en su día para el grupo de Game Boy España (y aprovecho para pediros que os suscribáis a mi canal ☺)



Algunas de las plataformas que soporta son:

  • Sega genesis
  • Master system
  • Conmodore 64
  • Nindendo NES

Lo han creado un grupo de argentinos y ahora es de pago, pero la versión de 2017, la 0.12.1 es gratuita y tiene de sobra para poder funcionar, aunque si queréis apoyar a esta gente siempre podéis apoyar y adquirir la ultima versión

 

En cuanto al software en si, tiene las típicas opciones de este tipo de aplicaciones incluso tiene la posibilidad de añadir un teclado midi para poder componer de manera mas profesional, aunque no he podido probarlo. Podemos guardar en varios formatos nuestras creaciones según en que plataforma vayamos a reproducirlo y segun la consola que tengamos nos aparecerán mas o menos canales en pantalla, marcaremos las notas en ellos y con las opciones de la parte superior del programa podemos ajustar los diferentes parámetros como la velocidad, tono, etc...

 


Te dejo un enlace para que lo puedas descargar en la versión 1.12 que comentaba

https://deflemask.uptodown.com/windows/descargar

jueves, 7 de julio de 2022

Introducción a la programación en C (II)

 

Comentarios en C

 





Un comentario en programación es una herramienta muy útil para poder realizar anotaciones sobre el código legibles por el desarrollador, estas anotaciones no las interpretará el compilador, es decir que el usuario final no va a poder leerlos y ni tan siquiera se guardaran en el binario final.

Tiene varios usos para el programador desde comentar código con anotaciones hasta documentarlo por completo.

Es importante tener en cuenta que los comentarios al igual que el código fuente se debe de mantener, así que no es una buena practica abusar de ellos ya que puede que, en vez de ayudar a la clarificación del código, lo compliquemos más.

 

 

 

En C, los comentarios se componen de la siguiente estructura:



 


/* Texto comentado */


 

De este modo todo texto que insertemos dentro de esta estructura será un comentario, como por ejemplo:


/* Esto es un comentario */


/*

Esto también

*/


/*

* Y

* esto

*/

 

sábado, 2 de julio de 2022

Introducción a la programación en C (I)


El lenguaje c




¿Porqué hablamos de C en este blog? C es un lenguaje de programación con el que podemós hacer desarrollos para Game Boy gracias al software GBDK que ya comentaré en otra entrada. 


C es un lenguaje de programación estructurado que nació de mano de Dennis Ritchie a principios de la década de 1970 en los laboratorios Bell, Según el artículo de la propia compañía The Development of the C Language del propio creador del lenguaje Dennis Ritchie, “El lenguaje de programación C se ideó a principios de la década de 1970 como un lenguaje de implementación del sistema para el incipiente sistema operativo Unix. Derivado del lenguaje sin tipos BCPL, desarrolló una estructura de tipos; creado en una máquina diminuta como una herramienta para mejorar un entorno de programación exiguo”. Surge como indica el propio articulo, como una mejora del lenguaje B creado por Ken Thompson, otro empleado de laboratorios Bell, que a su vez se basaba en el lenguaje BCPL, debido a su incapacidad para aprovechar las funciones de PDP-11 en el sistema operativo.


Como ya se a comentado, C es un lenguaje que se enmarcaría dentro del paradigma de la programación estructurada. Es un tipo de programación que generalmente convierte programas grandes o complejos en piezas de código más manejables y pequeñas. Estos pequeños fragmentos de códigos suelen conocerse como funciones, módulos o subprogramas de programas grandes y complejos. Se conoce como programación modular y minimiza las posibilidades de que una función afecte a otra.


Esto lo hace un lenguaje mucho mas amigable que el lenguaje de ensamblador a la hora de desarrollar juegos, además, aunque no sea un lenguaje orientado a objetos permite definir tipos de datos como estructuras, lo que facilita enormemente la encapsulación del código de los diferentes elementos que se plantean en el juego que estemos desarrollando.

¿Que es homebrew?





Homebrew es, de modo muy resumido, la manera en la que denominamos al software “casero” y sin licencia oficial, realizado por aficionados habitualmente para plataformas que ya no se encuentran en su periodo de vida. Normalmente suele referirse a videojuegos sobre todo de consolas y en algo menor medida de ordenadores personales.


Este movimiento solo a ganado adeptos en los últimos años y los aficionados al homebrew desarrollan muchas veces una labor de ingeniería inversa y investigación, desarrollando sus propias herramientas para el desarrollo del software y en algunos casos creando comunidades y foros muy activos.


La tecnología avanza muy rápido y no todos los usuarios están dispuestos a padecer esta evolución tan vertiginosa, además hay que tener en cuenta el factor “nostalgia”, que a generado un movimiento paralelo al movimiento homebrew, en el que cualquier tiempo pasado siempre fue mejor y los nacidos en la década de los 80, necesitamos recordar las sensaciones de satisfacción que vivimos en nuestra infancia, se podría decir que He-man, Gijoe, los cazafantasmas o regreso al futuro están mas vivos que nunca.


También existen desarrolladores que además de crear software, lo modifican con el fin de traducirlos o personalizarlos. Un ejemplo de ello sería “La lellenda de la Cerda” del Charnego Translations, en el cual se tradujo a un lenguaje obsceno, vulgar pero muy divertido el Zelda Links Awakenings.


Una de las características que mas seduce a los hombrewers es tener que desarrollar con unas limitaciones planteadas de antemano y forzadas por la plataforma. Supone un reto ser creativo cuando tienes que desarrollar un producto que ocupe en memoria física lo mismo que el icono de la Wikipedia (¡un cartucho estándar de Game Boy tiene 32 Kbytes de capacidad!).




Nos trasladamos

Blogger se nos queda pequeño, así que este blog migra a  jujubegames.com