SD card capabilities

I got past the ‘fast forward’ issue by adding a manual delay. It runs ok in the simulator at least.

The loader is mere 2-3 hours away from ready. Its already updating the system. I am just brushing up the interface, the core code is working like clockwork.

:sweat_smile: feeling relieved

edit: ready means its functional and can swap programs. Naturally the UI still needs finetuning and testing

edit: probably need to add some sort of CRC checks also to verify code is properly loaded before the loader quits

1 Like

Going to try the loader with a real game now.

Super excited :laughing:

Hmm… what game will have the honor of being the first ever loaded from SD card…

I have decided @catsfolly and @Aphrodite will get the honours.

Squiddy it will be.

Video coming if it works



Dangers of removing USB devices unsafely demonstrated right here today, courtesy of yours truly.

So test.bins are written to flash properly, but squiddy.bin only produces zeroes.

And I am stepping through the code, watching memory space in raw hex etc.


a terrible thought

“maybe the squiddy.bin file is not OK?”

I open it and its full of zeroes.

I had pulled the SD card from the PC too soon.

Now we try again, after a wasted hour.


On this day, at 5 pm Finland time, Squiddy by @Aphrodite and @catsfolly became the first program ever to be loaded from the SD card.

We have gaming on the go: you can load programs from SD card while travelling.

I always knew I would make it work but now we have it, just in time before shipping.

Video proof coming later today, but now I need to rest my head for a while.


Excellent news :slight_smile: !


Nicely done! Congratulations! I was surprised to see the load take more time than a blink of an eye. Is that because of Flash programming?

Thanks! There were several “blind spots” i.e. mysterious hangs at difficult to debug spots. Most of them were about initialization of the MCU and init of the C runtime. Every time you hit one of those snags the first thought is “oh my god, how many days of debugging will this take again”. That is why I was slightly worried about my promise that the SD loader will work. But now were on the home stretch, its just routine cleanup from here.

Actually optimization is completely off in that code. I need to turn it back on.

But yeah, even with a hw debugger writing the flash is not very fast - on all mcus. Its got something to do with the architecture of the memory.

I must say it feels great to see squiddy running on a pokitto from an sd card, thanks a lot! @jonne


Awesome !!! :ok_hand:

Very high quality post :clap::raised_hands: this is the content that we like to see

This looks amazing! I was thinking maybe we could have a “games” screen that shows all the games on the SD Card?

Maybe we could make the games screen have the option of either being vertical (like what you did) or tiled (like @adekto’s idea in post #48). The user could choose.

Although I’m fine with just the vertical list if logistics get in the way :slight_smile:

And just as a bonus, here’s my idea for an icon for my Arcade Classics game:

Directories (aka folders)

After a long discussion yesterday with @crait and @Hanski I finally bit the bullet and added the code needed to read directories and subdirectories

The main reason for this is I realized there is so much interest in using the SD card to store game assets that it is going to lead in chaos unless we have a directory system.

I still need to implement the logic of jumping up/down the directory tree.

I was thinking that directories come up like:

/SQUIDDY or /SQUIDDY/ in the file listing



Looks good to me. Both slashes would be best I think. Or maybe [ ] instead?

IMO [SQUIDDY] is visually more pleasing than /SQUIDDY/. Even more with C64 font.


Slightly off topic, but it might be nice to think about overall system settings. As we will have SD access, we could just use a .ini file or somethings to store names/colours etc.


settings will be in eeprom


Yes, and we need some kind of “cache-file” on SD. if we first browse through the directories, searching for applications, we want to store the list of applications. So we do not need to do that every time.