SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Un emulador de Game Boy
 escrito en Ruby (Parte 1)



         Jano González
@janogonzalez
http://janogonzalez.com
Fo
                         rk
                              m
                                  e
                                      on
                                           G
                                            itH
                                                  ub

https://github.com/janogonzalez/
              janogb
El comienzo de esta
      historia
Tutorial de Imran Nazar
para crear un emulador de
Game Boy en JavaScript
Podría seguirlo, pero
 programar en otro
    lenguaje...
Comencé por conocer la
      CPU...
Son 8 registros de 8 bits,
          más
 un PC y un SP de 16
A        F
B        C
D        E
H        L


    PC
    SP
Luego las instrucciones...
LD, ADD, SUB, AND, OR,
 XOR, INC, DEC, etc..
Mhh... Voy a hacer un port
        en Java...
Empecé a desarrollar en
   Java, pero...
Hay muchos métodos
     similares...
¿Qué puedo hacer?
Ruby y
Metaprogramación al
      rescate
No más getters y setters
49 métodos en una
declaración (o algo así...)
En realidad, antes de
comenzar me hice otra
      pregunta...
¿Cómo diablos voy a
saber si mi programa va a
     estar correcto?
TDD al rescate
♪ A little RSpec ♪
Menos código sería
    mejor...
Quiero mejorar el código...
  ¿Qué puedo hacer?
Sintactic Sugar e Idioms
        al rescate
Parámetros con nombre y
        defaults
If postfijo
Métodos encadenados
Lo que falta...

●
  Cargar juegos
●
  Interrupciones
● Gráficos

● Sonido

● En fin, casi todo
Si termino, sería el primer
 emulador de Game Boy
      escrito en Ruby
Antes de terminar...
Un mensaje de nuestros
    auspiciadores
Visita
http://gemaroja.com
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

Contenu connexe

Plus de Jano González

Plus de Jano González (14)

Vim FTW!
Vim FTW!Vim FTW!
Vim FTW!
 
Ruby
RubyRuby
Ruby
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
A Little RSpec
A Little RSpecA Little RSpec
A Little RSpec
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1
 
Curso de Spring: Transacciones
Curso de Spring: TransaccionesCurso de Spring: Transacciones
Curso de Spring: Transacciones
 
Análisis y Diseño OO 2
Análisis y Diseño OO 2Análisis y Diseño OO 2
Análisis y Diseño OO 2
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Curso de Spring: Beans
Curso de Spring: BeansCurso de Spring: Beans
Curso de Spring: Beans
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a Sinatra
 

Dernier

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Dernier (11)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

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