un emulador de game boy escrito en ruby (parte 1)
TRANSCRIPT
![Page 1: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/1.jpg)
Un emulador de Game Boy escrito en Ruby (Parte 1)
Jano González
![Page 2: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/2.jpg)
@janogonzalezhttp://janogonzalez.com
![Page 3: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/3.jpg)
https://github.com/janogonzalez/janogb
Fork me on GitHub
![Page 4: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/4.jpg)
El comienzo de esta historia
![Page 5: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/5.jpg)
Tutorial de Imran Nazar para crear un emulador de Game Boy en JavaScript
![Page 6: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/6.jpg)
Podría seguirlo, pero programar en otro
lenguaje...
![Page 7: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/7.jpg)
![Page 8: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/8.jpg)
Comencé por conocer la CPU...
![Page 9: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/9.jpg)
Son 8 registros de 8 bits, más
un PC y un SP de 16
![Page 10: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/10.jpg)
A F
B C
D E
H L
PCSP
![Page 11: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/11.jpg)
Luego las instrucciones...
![Page 12: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/12.jpg)
LD, ADD, SUB, AND, OR, XOR, INC, DEC, etc..
![Page 13: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/13.jpg)
Mhh... Voy a hacer un port en Java...
![Page 14: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/14.jpg)
Empecé a desarrollar en Java, pero...
![Page 15: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/15.jpg)
![Page 16: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/16.jpg)
![Page 17: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/17.jpg)
Hay muchos métodos similares...
¿Qué puedo hacer?
![Page 18: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/18.jpg)
Ruby y Metaprogramación al
rescate
![Page 19: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/19.jpg)
No más getters y setters
![Page 20: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/20.jpg)
![Page 21: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/21.jpg)
49 métodos en una declaración (o algo así...)
![Page 22: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/22.jpg)
![Page 23: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/23.jpg)
En realidad, antes de comenzar me hice otra
pregunta...
![Page 24: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/24.jpg)
¿Cómo diablos voy a saber si mi programa va a
estar correcto?
![Page 25: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/25.jpg)
TDD al rescate
![Page 26: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/26.jpg)
♪ A little RSpec ♪
![Page 27: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/27.jpg)
![Page 28: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/28.jpg)
Menos código sería mejor...
![Page 29: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/29.jpg)
![Page 30: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/30.jpg)
Quiero mejorar el código...¿Qué puedo hacer?
![Page 31: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/31.jpg)
Sintactic Sugar e Idioms al rescate
![Page 32: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/32.jpg)
Parámetros con nombre y defaults
![Page 33: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/33.jpg)
![Page 34: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/34.jpg)
![Page 35: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/35.jpg)
![Page 36: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/36.jpg)
If postfijo
![Page 37: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/37.jpg)
![Page 38: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/38.jpg)
Métodos encadenados
![Page 39: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/39.jpg)
![Page 40: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/40.jpg)
![Page 41: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/41.jpg)
Lo que falta...
● Cargar juegos ● Interrupciones● Gráficos● Sonido● En fin, casi todo
![Page 42: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/42.jpg)
Si termino, sería el primer emulador de Game Boy
escrito en Ruby
![Page 43: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/43.jpg)
Antes de terminar...Un mensaje de nuestros
auspiciadores
![Page 44: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/44.jpg)
Visitahttp://gemaroja.com
![Page 45: Un emulador de Game Boy escrito en Ruby (parte 1)](https://reader033.vdocuments.co/reader033/viewer/2022042817/55a269711a28ab89308b4622/html5/thumbnails/45.jpg)
Game Boy es una marca registrada de Nintendo
Foto de Aretha Franklin: http://es.wikipedia.org/wiki/Archivo:Aretha_Franklin_on_
January_20,_2009.jpg