Hasta ahora estuve programando cosas que sabía que necesitaba (la CPU, la GPU, el cartucho) y venía evitando otros componentes que sabía que existían pero pensé que podía ignorarlos. Por ejemplo, pensé que podía ignorar el joystick, total podía probar cosas sin jugar a los juegos; o el «serial data transfer», si total se usa …
Tag Archives: Programación
Emulador de GB – 9: Juegos II
En el post anterior llegué a leer un archivo de un juego y ejecutarlo, y en algunos casos tuve resultados aceptables por decirlo de alguna manera, pero en la mayoría no, así que el siguiente paso fue entender cómo debuggear esto. Desensamblador Hasta ahora el desensamblador que hice solo sirve para la boot rom, pero …
Emulador de GB – 8: Juegos
Los juegos de GameBoy y de consolas antiguas en general no son como los de ahora. No lo digo por la calidad o el diseño, lo digo porque hoy un juego es un programa como cualquier otro: código y datos, y uno los instala y listo. Los juegos de antes no eran sólo datos y …
Emulador de GB – 7: GPU (fixes)
Antes de seguir con otro tema grande quería comentar un par de bugs que tuve y como los arreglé. Negativo Comparando la captura de mi post anterior y el video en YouTube de la boot rom se ve claramente que algo está mal, los colores están invertidos! Para el GameBoy el color «00» es blanco …
Emulador de GB – 6: Sincronizar GPU y CPU
Hasta ahora todo lo que hice fue dibujar todo el fondo en una función, ¿pero en que momento llamo a «DrawBackground»? Tiempos En la emulación de la CPU y la memoria no hablé de tiempos, pero para emular una consola también hay que emular la velocidad de los componentes, no solo la funcionalidad. La velocidad …
Emulador de GB – 5: Formato de imágenes
El funcionamiento de los gráficos es largo de explicar, así que voy a necesitar varios posts hasta poder tener un juego dibujado en la pantalla. La GPU (Graphics Processing Unit) o PPU (Pixel Processing Unit) se encarga de calcular el color de cada pixel de la pantalla 60 veces por segundo. Es un componente que …
Emulador de GB – 4: Desensamblador
En el post anterior hablé sobre la boot rom del gameboy, un programa muy chiquito que está incluido dentro de la consola. El código se consigue y encima con comentarios de que hace cada parte, entonces al ejecutar la rom en mi emulador puedo comparar las funciones que ejecuta el emulador (por ejemplo, poniendo brakpoints) …
Emulador de GB – 3: Memoria
Desde el punto de vista de la CPU la memoria son muchos bytes donde se pueden escribir valores y se los puede leer, y se la puede pensar como un array de bytes. Para interactuar con los bytes correctos de memoria hay que saber la dirección en la que están esos bytes, y siguiendo con …
Emulador de GB – 2: CPU
Más allá del modelo específico de procesador que usa el GameBoy, en líneas generales es un procesador como cualquier otro, así que conocer cómo funcionan conceptualmente es una ventaja para emularlos. Un procesador tiene un set de instrucciones disponibles y varios “registros” internos que sirven para almacenar información necesaria para ejecutar esas instrucciones. Un juego …
Emulador de GB – 1: Introducción
Hola! Este es mi primera vez escribiendo en un blog así que quiero presentarme. Me llamo Diego Juodziukynas, vivo en Argentina y programo desde hace muchos años. Estudié Ingeniería en Informática y en algún momento hice páginas web y aplicaciones mobile, pero en general los proyectos que no tienen que ver con gaming me aburren, …