Entrevista a Emilio

Fecha: Junio 2009

Entrevistamos a Emilio. Programador del emulador de NES EmilNES.

Hola Emilio. Gracias por aceptar la entrevista. ¿Qué tal?

Pues aquí descansado merecidamente que es domingo xD De nada hombre es un placer que alguien se acuerde de EmilNES aún.

 

¿De donde eres? ¿Qué datos personales puedes darnos? Y sobretodo... ¿Por qué no tienes un nick?

Pues a ver me llamo Emilio, soy de Madrid y estudie ingeniería informática que la acabe hace ya algunos añitos.

En realidad sí tengo nick, soy igiamai pero quedaba todavía menos comercial.

 

¿Cómo empezaste en la informática y en los videojuegos en general?

Pues a los 7 años me tocó una Master System en un concurso del pato Donald y mira en lo que acabó la cosa.

 

¿Qué consolas has tenido o sigues teniendo?

Pufff me dejaré alguna a ver:

- Master System
- Mega Drive
- Game Boy
- Mega CD
- Saturn
- Xbox
- PSP

- Wii
- DS

Aunque ahora juego bastante poco, casi todo emuladores, algún jueguecillo nuevo de wii y psp. También de vez en cuando a la Wii sobre todo para reuniones sociales y esas cosas. El último juego al que me vicié fue el Outrun de PSP

 

emilnes

¿Cómo y cuando se te ocurrió lo de programar un emulador de NES?

Pues mira había una practiquilla en la universidad que era de hacer algo parecido a una CPU, así que como me gustó un día me puse medio en serio medio en coña a hacer un emulador de una CPU imaginaria. A las 2 semanas dije joder Emilio ya que haces el friki por lo menos hazlo para algo que tenga más gracia y dije voy a hacer un emulador de Master System.

 

¿De Master System?

Pues sí. Al principio lo quería hacer de Master pero en cuanto busqué un poco de NES había muchísima más documentación y yo que era aun novatillo en esto dije bueeeeeno pues lo hacemos de NES.

A la NES nos hemos viciado todos, en la casa del vecino, del primo, en el bar de la esquina, donde tenían la recreativa de la NES que jugabas por minutos… En fin que la había metido vicios.

 

¿Donde buscaste información?

Nesdev era un foro de desarrollo para NES con un montón de info. Como la Biblia de la NES De hecho lo sigue siendo espero que dure siempre porque está muy bien y en el foro casi siempre te contestaba alguien.

 

¿Qué pasos dabas para programar?

Pues a ver lo primero es pillarte un core de la CPU o si eres un machote como yo te lo escribes entero que es lo que hice. Pero si quieres algo que rule mejor yo casi me pillaría un core ya hecho que es un dolor hacer uno. Es lo típico para hacer una sola vez en la vida.

Luego una vez tienes la CPU ya puedes empezar a hacer cosas más chulas. Te programas los chips de video, el pad, etc. y ya puedes correr demos.

Luego conviene añadirle un debugger.

 

¿De qué va el debugger?

Pues mira, el problemilla que hay con un emulador es que para encontrar fallos es infernal Con el debugger puedes ir controlando que demonios hace tu emulador con el juego paso a paso y ejecutar el juego y ver qué es lo que falla. De hecho aún es complicado encontrarlos con el debugger.

Luego ves porque ha cascado el juego en esa parte y finalmente lo corriges en el código-

 

¿Qué problemas te has encontrado en la programación del emulador?

Buff un montón sobre todo la sincronización de la CPU con el chip de video y algún bug en las instrucciones del core. Eso me tenía horas. Eso y que mi emulador era más lento que el caballo del malo. Luego lo mejore mucho.

Bueno el problema es que no sabía muy bien como hacerlo. Al principio andaba un poco jodido siempre porque, quitando a la gente de Nesdev, era chungo encontrar nada de ayuda. Esto es una pecera muy pequeña o yo muy torpe buscando una de 2.

 

¿Qué PC tenías para programar?

Un Pentium II 350Mhz, aún está vivo. Luego me pasé al pentium4 y ahora tengo un iMac Intel c2duo de 20”

 

¿Cuanto tiempo estuviste trabajando en total en el emulador?

Para que alguna demo funcionara... pues yo creo que tardé cosa de 6 meses echándole alguna hora todos los días.

Fue durillo sobre todo porque esos 6 meses estás a oscuras. No sabes si eso va a funcionar o va a explotar todo.

Una temporada llegué a pasarme 2 o 3 horas todos los días, y en vacaciones hasta más, aunque luego en otras épocas pasaba del tema y con 3 horas a la semana iba que chuta.

En total estuve 2 años desarrollándolo creo. El primero bastante más dedicado que el segundo.

 

¿La programación básica de un emulador es la misma sea de la consola que sea?

Pues yo diría que si, por lo menos de las clásicas. Primero el core y luego los chips de video. Luego los pads si quieres hacer algo con el juego y lo último la música

 

¿Qué páginas o foros solías visitar cuando estabas más metido en el tema de la emulación? ¿Qué páginas visitas ahora?

Pues a ver… talfi, emudek, emulatronia referentes a emulación. Nesdev para la información. Y de tematica general: yonkis, meristation y gamespot

Y ahora soy más de barrapunto, meneame, xataka, genbeta, stackoverflow, elpais, digg, slashdot…

emilnes

¿Qué aprendiste programándolo?

Pues aprendí a hacer un emulador que no es poco, parece muy obvio pero tiene su tela. Aparte de eso aprendí a buscar en Google y lloriquear en foros, que también me ha sido muy útil luego.

Y Algunas cosillas de programación que creo que no las habría aprendido sino como por ejemplo pasarles profilers.

 

 

¿Conoces a muchos programadores de emuladores españoles?

Pues en persona nunca he tenido el placer.

Solo a los de Nesdev y hace siglos que no se nada de ellos, solo lo que nos contestábamos en el foro y algún email cruzado.

Y españoles la verdad que ninguno en NES que yo sepa.

Bueno un amigo mío empezó uno y lo llego a tener bastante avanzado pero quitando eso nada más.

 

Cuenta, cuenta...

Lo que hice fue apadrinar a un amigo mío para hacer un emulador de master, que era un trabajo mas ligero

Yo trabajaba en una empresa y un día así hablando de tal y cual me dijo un compañero: A mi me gustaría hacer un emulador. Y le dije ¿sí? Hey yo te enseño xD

Y digamos que le dí unas especies de "clases" y tutorías.

 

¿Qué otros emuladores te gustan?

Mmh a ver a ver, pues Gens me gustaba mucho porque fue el primero con el que pude jugar a juegos de Mega CD, que se me cascó el mío... MAME es MAME. Y luego los pcsx. Y de NES ya sabes cual… jajaja

 

Hace algunos años que dejaste EmilNES un poco abandonado. ¿Cómo es eso?

Falta de tiempo, nuevos proyectos... acabas la carrera y ya no tienes tanto tiempo libre.

 

¿En qué punto estaba el emulador? ¿Qué cosas faltaban por implementar?

Pues le había hecho las ultimas mejoras de velocidad y quería meterme con el sonido de una vez que lo tenia medio hecho pero así se quedo.

Del tema grafico estaba más o menos todo... lo que no eran mappers. Aunque la sync petardeaba un poco con según que juegos.

Están hechos los mappers 0, 2 y 3. El 1 no. Es un mapper más difícil de hacer.

 

Cuenta un poco lo que es eso de los mappers.

El mapper eran unos trucos cochinos para que la NES funcionase mejor, para que tuviese juegos con mas megas, o algunos tenían un chip de sonido mejor para que sonase mejor.

 

¿Vas a continuarlo algún día?

Pues quien sabe.

 

¿No has pensado en programar otros emuladores, o portar el tuyo a consolas tipo gp2x o PSP?

Pues pensé en portarlo a PSP, porque la tengo mayormente. A la gp2x como no la tengo pues es mas chungo. En teoría, para algo lo programe en C, solo había que cambiar unas cuantas líneas y compilar pero al final me dio pereza.

Pensé en empezar uno de PSX pero me dio pereza, es que la verdad que ahora ando muy mal de tiempo.

 

¿Tienes otros proyectos en mente?

Nada relacionado con esto la verdad, estoy metido en otras cosillas ahora mismo.

 

¿Cómo recuerdas esa época?

Recuerdo que con el emulador me lo pase pipa haciéndolo. Si volviese a tener tanto tiempo libre como entonces lo mismo repetía.

Otra cosa es que nunca creo que me traduzcan a tantos idiomas. Los changelogs que publicaba luego aparecían traducidos hasta en ruso. Me hacia mucha gracia.

 

¿Cómo ves el mundo de la emulación actualmente?

Ahora está más enfocado a las consolas sobre todo portátiles. La verdad es una gozada poder viciarte a los clásicos donde te salga las narices y en eso sí q se ha avanzado un montón.

Lo que se echa de menos un poco es que no haya emuladores de las consolas grandes de ahora, pero también es comprensible porque ahora son muy complicadas de emular.

Y mejorar los emuladores que hay. Pobre Saturn. Es que es un curro del copón eso, además hay super poca información. La información impone mucho. Si estás sin documentación estás jodido.

 

¿Qué te parecen los mega-emuladores tipo MAME?

Pues mame yo creo que es el proyecto de emuladores por decirlo así. Mucho mas corporativo que los emuladores que suele hacer un solo tío como el mío. Así que digamos que son más profesionales.

 

Nada más. Gracias por contestar la entrevista.

Pues nada, encantado de participar en la entrevista. Es gracioso ver como dejas por ahí a un "hijo" y luego te vuelven a llamar porque ha hecho algo jajaja.