Pues hace unos meses…, bueno, hace un año, (como pasa el tiempo), me compré una Arduboy en la tienda de la Pyra por 50 euros+gastos. Comprar por comprar, vamos. Y hasta este verano no la he catado en condiciones.
Cuando me llegó la abrí, vi lo cutre de la presentación, la probé, y me dije, …¡menudo cacharro me he comprado!. Y la dejé por ahí.
Cómo pasaba el tiempo, y no tenía nada nuevo que echarme a la boca, pues cada cierto tiempo, le iba dando un tiento.
Hasta que este verano, con muuuucho tiempo libre, me dio por pegarle fuerte. Y oye, tiene su aquel.
Vallamos al lio.
La presentación es sobria hasta decir basta. Una caja de cartón, una bolsita con la consola dentro, medianamente protegida, y un cable usb muy cortito.
Al encenderla por primera vez, la sensación es de fricada, pero fricada de las gordas.
Muy fina, bien construida, del tamaño de una tarjeta de crédito, unos tres milímetros de grosor y unos botones aceptables.
La idea es llevarla en la cartera y echar unos ratos cuando te venga en gana, pero de verdad, hay que tenerlas.
La comunidad es bastante activa.
Publica una revista más o menos bimensual, donde se tocan todos los palos. La verdad es que la revista mola y ayuda bastante.
Con esta revista, las cabeceras de las librerías y lo que iba leyendo en el foro me animé a programar para ella.
Perooo.
Con las siguientes especificaciones técnicas ya me contareis.
Pantalla de 1-bit Oled de 128x64 pixeles. (Si 1 bit. O blanco o negro.).
Microcontrolador de 8 bit ATmega 32u4 a 16 Mhz. (Potencia más que suficiente).
32 Kb Flash, 2,5Kb de Ram, 1Kb EEPROM.
180 mAh de batería, que dan más o menos para unas 6 horas de juego.
Un puñado de leds de colores.
Un altavoz piezo electrico.
Pues eso. Que con esa ram y esa Flash a ver quien es el guapo que hace cosas decentes.
Y me dije, que si el Spectrum daba muchas horas de juegos con 48 K, pues esta por el estilo. ¡JA!
Y ahí esta la gracia del cacharro este, a ver que eres capaz de hacer con él.
…
Lo que me lleva más tiempo es programar rutinas que aprovechen al máximo esa memoria.
Leer trucos en el foro. Usar técnicas de compresión de gráficos, de mapas de tiles, uso de bits para almacenar variables, (si, bits, no bytes), etc.
Así que lo primero que implementé fue un algoritmo de compresión. Empecé con el Huffman. Pero después de más de un mes de trabajo, (no soy muy bueno programando cosas tan complicadas), y estando en fase de testeo, me doy cuenta de que sí, que comprime una bestialidad, pero que no es funcional. No puedo descomprimir trozos de archivo y además el descompresor se me comía un montón de memoria y era complicado de implementar.
Bueno, por lo menos aprendí como se implementa el Huffamn de los coj…
Me pasé a un pseudo RLE inventado. Más fácil de implementar la descompresión y más fácil de obtener trozos del archivo. No me consumía apenas memoria y es bastante rápido. Ya que cada trozo de pantalla lo descomprimo en tiempo real, trabajo con él y paso al siguiente trozo que necesite. Eso sí, me comprime un 30% menos.
Más cosas.
En cuanto se te va algo del programa, sobre todo si te sales de la memoria, la consola se vuelve inestable y hasta se cuelga de tal manera, que al principio asusta.
Después aprendes a ver que estás haciendo algo mal y probar las cosas pasito a pasito, porque tardas más si haces varias cosas de golpe y las pruebas todas juntas. Aprendes a reconocer por donde te has ‘salido’.
Varias veces pensé que hasta la había brickeado, pero leyendo los foros te das cuentas que eso es muy difícil, sino imposible, y acabas aprendiendo a ‘recuperarla’ tras un cuelgue de los fuertes.
La pantalla.
Vale que la memoria sea poca, pero la pantalla…
1 bit, señores. Te tienes que acostumbrar a dibujar para ella. ¡Uf!
Tuve que practicar bastantes con texturas y observar como dibujaban los mejores del foro. Al final le cogí el truco.
Programar para Arduino
El ide es muy sobrio, por no decir otra cosas.
Acostumbrado como estoy a trabajar con el Notepad++ echaba de menos muchísimas cosas. Tantas que al final he puesto el ide en modo edición externa y trabajo con el NotePad.
Es bastante engorroso, pero si vas a hacer algo largo, se agradece.
Y en líneas generales…
La verdad es que la consola está muy bien pensada. Todo encaja.
Una mejor pantalla llevaría más cantidad de memoria, incrementando los costes, haciendo necesario una mayor trabajo el micro, etc.
Creo que cualquier modificación que se le hiciera a la consola, la descompensaría.
Es cuando te metes a pelearte con ella cuando disfrutas.
Cuando ya empiezas a ver los frutos de tu trabajo. Una pantallita haciendo scroll a partir de un mapa de tiles. Un personaje que se mueve por ella. Vas implementando las colisiones… etc.
Todo apurando al máximo el uso de la memoria. Optimizando a más no poder. Y demás triquiñuelas que vas aprendiendo y usando, te queda una sensación de triunfo que da por merecida la pena todo el esfuerzo. Es, otra manera de entretenerte y ejercitar tu cerebro.
No recomiendo esta consola, salvo para frikis de la programación. (O coleccionistas)
Un vídeo.
Aquí un video del fruto de estos tres meses de currelo.
El juego esta muy alfa, y va de una perrita que es capaz de escarbar en el suelo, con ello consigue huesos y los dispara a sus enemigos.
Como veis ni siquiera hay enemigos. Tan sólo unos avisperos, que ni sueltan avistas. Todo se andará.
Un saludo.
Marcadores