01/31/2016 at 16:56 •
I finally came up with a name for the device: The NANO-4096. The past two weeks I've spent more time on the code. I decided on using the SdFat library for SD card functions. It's slightly more compact than the standard Arduino SD library. I've also finished the demo game Heartlight! The levels file from the original game is read from the SD card which means that all 70 levels from the original game are playable on the NANO-4096 :D. It needs a little more polish, for example being able to select a level and a real intro screen, before I'm fully satisfied with it. There is still 5kb left for these features, which should be plenty.
I've also decided to ditch the analogue stick. It was making the device quite bulky and the analogue travel of the stick was almost non existent. So I've replace the stick with four buttons. Still the X and Y-axes are hooked up to separate analogue inputs (A0 and A1 respectively) allowing the player to press two direction simultaneously. This change lead to me making a new prototype on a slightly bigger board. Build instructions on this page still need to be updated and I will provide a video soon of the NANO-4096 in action playing Heartlight.
01/16/2016 at 14:15 •
- Heartlight is almost complete! :) I've been programming this week to add the last missing game elements such as transport blocks and I've added viewport scrolling so the entire level can be explored. I'm now able to play individual levels of the game :D. Loading levels from the SD card is still missing...
- On that topic... I haven't found a good replacement for the SD library (yet). The ones I tried didn't work or didn't give any real improvement on code size. So for now I'm sticking with the standard Arduino SD library and optimizing my code to fit everything in memory.
- On the hardware side I've added a 1uF capacitor between D7 and the speaker. This prevents the screen flashes that would occur when a sound was being played.
- I'm not sure whether I will keep the analog stick. It's not very useful and if I replace it with tactile buttons it will make the unit less bulky.