Un emulador de Game Boy escrito en Ruby (parte 1)

45
Un emulador de Game Boy escrito en Ruby (Parte 1) Jano González

Transcript of Un emulador de Game Boy escrito en Ruby (parte 1)

Page 1: Un emulador de Game Boy escrito en Ruby (parte 1)

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)

@janogonzalezhttp://janogonzalez.com

Page 3: Un emulador de Game Boy escrito en Ruby (parte 1)

https://github.com/janogonzalez/janogb

Fork me on GitHub

Page 4: Un emulador de Game Boy escrito en Ruby (parte 1)

El comienzo de esta historia

Page 5: Un emulador de Game Boy escrito en Ruby (parte 1)

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)

Podría seguirlo, pero programar en otro

lenguaje...

Page 7: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 8: Un emulador de Game Boy escrito en Ruby (parte 1)

Comencé por conocer la CPU...

Page 9: Un emulador de Game Boy escrito en Ruby (parte 1)

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)

A F

B C

D E

H L

PCSP

Page 11: Un emulador de Game Boy escrito en Ruby (parte 1)

Luego las instrucciones...

Page 12: Un emulador de Game Boy escrito en Ruby (parte 1)

LD, ADD, SUB, AND, OR, XOR, INC, DEC, etc..

Page 13: Un emulador de Game Boy escrito en Ruby (parte 1)

Mhh... Voy a hacer un port en Java...

Page 14: Un emulador de Game Boy escrito en Ruby (parte 1)

Empecé a desarrollar en Java, pero...

Page 15: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 16: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 17: Un emulador de Game Boy escrito en Ruby (parte 1)

Hay muchos métodos similares...

¿Qué puedo hacer?

Page 18: Un emulador de Game Boy escrito en Ruby (parte 1)

Ruby y Metaprogramación al

rescate

Page 19: Un emulador de Game Boy escrito en Ruby (parte 1)

No más getters y setters

Page 20: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 21: Un emulador de Game Boy escrito en Ruby (parte 1)

49 métodos en una declaración (o algo así...)

Page 22: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 23: Un emulador de Game Boy escrito en Ruby (parte 1)

En realidad, antes de comenzar me hice otra

pregunta...

Page 24: Un emulador de Game Boy escrito en Ruby (parte 1)

¿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)

TDD al rescate

Page 26: Un emulador de Game Boy escrito en Ruby (parte 1)

♪ A little RSpec ♪

Page 27: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 28: Un emulador de Game Boy escrito en Ruby (parte 1)

Menos código sería mejor...

Page 29: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 30: Un emulador de Game Boy escrito en Ruby (parte 1)

Quiero mejorar el código...¿Qué puedo hacer?

Page 31: Un emulador de Game Boy escrito en Ruby (parte 1)

Sintactic Sugar e Idioms al rescate

Page 32: Un emulador de Game Boy escrito en Ruby (parte 1)

Parámetros con nombre y defaults

Page 33: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 34: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 35: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 36: Un emulador de Game Boy escrito en Ruby (parte 1)

If postfijo

Page 37: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 38: Un emulador de Game Boy escrito en Ruby (parte 1)

Métodos encadenados

Page 39: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 40: Un emulador de Game Boy escrito en Ruby (parte 1)
Page 41: Un emulador de Game Boy escrito en Ruby (parte 1)

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)

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)

Antes de terminar...Un mensaje de nuestros

auspiciadores

Page 44: Un emulador de Game Boy escrito en Ruby (parte 1)

Visitahttp://gemaroja.com

Page 45: Un emulador de Game Boy escrito en Ruby (parte 1)

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