Not complaining. I’m showing our kids with this video how to click a “share” hypertext link and then the steps to DOWNLOAD a game and then upload it to their Meowbit by Kittenbot Arcade console. It just happens that this game, Spacewars, was maybe not intended to play on Meowbit. Anyway, I’m trying to tell the kids that they could possibly change the game code so that it will play on an Arcade game board as well on their computers. Here’s the vid. link: https://youtu.be/K-VJuZeEFek
Sadly, there is no documentation on the Kittenbot website as to what that error code might mean. I suspect it has something to do with the fact that it is a two-player game, although it could be some sort of out-of-memory error, too.
I’ll be getting my hands on one of these devices soon. I look forward to learning more about them!
0x21 is the ‘out of memory’ error: https://makecode.com/js/errorcodes
It looks like the current version of space fight is making the title screen images all at once and storing them in an array:
Each ‘screen’ size image takes up about 9.6kb of memory, which will cause the hardware to run out of memory really quickly (I believe meowbit has 96kb ram)
Is it possible to use this as a learning experience for students? Can we leave the game as it is and when there are more Meowbits out there use this game for students to learn how to change it to “fit” in the console? This may happen more often as more people develop Arcade games on their computers only to discover that they will not play on the console and thereby ,perhaps, be a teaching moment for students. Maybe even identify Alex’ game here as the one for teaching this concept? Just a thought from a non-programmer and MakeCode volunteer.
@frank_schmidt I just wrote up the start of a friendlier error page at https://arcade.makecode.com/hardware/errors ; if you have any suggestions on things to add / questions to clarify in it let me know~
The “attract mode” that I use with my games is a bit on the elaborate side, to be sure. I’ve wondered how it would fare on hardware devices like the Meowbit, and now I know! I’ll be reworking the attract modes once I get a hardware device of my own to play with so that I can better understand its limitations.
Thanks, @jwunderl, for starting an error code list. That’ll be a great help as we start working more with these devices and push them to their limits.
Thanks for making this effort , Joey. On a similar subject, I saw the release of MakeCode beta for 2019 and joined up as, I guess , a kind of a tester. I uploaded the Colorbit program to my Micro:bit in beta. I got this frowny face 840, and I see they are “internal” ? This works with the non-beta version of MakeCode without the 840 error. I don’t know if this is helpful to anyone but I posted a note on the MicroBit foundation facebook page because I didn’t know who else to ask. Here’s the program: and I did have the Colorbit extension installed: https://makecode.microbit.org/_irzKoMCcsVss
And it will be interesting to see if the GHI Arcade Brainpad can handle the same code program , when we get that one in hand. I don’t know how much ram it has.
GHI will have the same problem. In general, hardware is going to be restricted memory wise. Better in browser simulation of the “limited memory feature” is going to be interresting.
Well, when we’re given a board choice for Meowbit we’re told to use “F401” and I understand that will be the same for BrainPad Arcade ; same processor. Now would this hardware memory restriction apply as well to consoles with SAMD51 chips? It looks to me (not knowing very much) that SAMD51 has more ram. I’m thinking about that new kit for Arcade with the Adafruit processor: https://www.microchip.com/wwwproducts/en/ATSAMD51N19A#additional-features
Hm, I can’t reproduce this error right away. Couple questions;
- did this occur over the last few days, or a while back? There was a fix for a similar error pushed out a week or two ago.
- Does the error occur immediately, or after a period of time / an action or gesture
- Any other info about it (I’m assuming you connected the ColorBit, anything else?)
(created an issue on github for this)
- this occurred just now, again.
- Occurs upon upload before tilting the Microbit to give the input command; ie at file upload.
- Colorbit only connected . The error occurs regardless of power source (pc or 5v. batt.) and happens when ever Micro:Bit is powered up when it contains the code from beta 2019 url but not from standard MakeCode for Microbit URL. Same error when I unplug Colorbit from connections to MicroBit via the breadboard. Have not tried the connection of two devices via gator clips but that does not seem it would make any difference; no connection from Micro:bit to Colorbit still gives error of 840. Here’s the vid: https://youtu.be/l8w-VzqoeaI
According to the Meowbit specs, there is a 2MB “SPI” flash, and also an SD card socket. Does anyone know how these are addressed? It might be possible to page assets in and out of these, into the (presumably faster) 96kb of main RAM.
Perhaps Blocks to access these secondary storage resources will be coming in future?
All I know about SD card slot is that I was told it has not been enabled as yet. Ask Christina Kittenbot on Adafruit Discord Arcade. I have tried communicating with Kittenbot but have not got more information. I would be as interested if the edge connector works. I saw an extension for it but that’s not enabled either as far as i can see. Email us:email@example.com
@paul the SPI flash or SD card isn’t going to help with out of memory errors. You need to make your program more memory efficient. It’s just the nature of constrained embedded platforms.
Also, the upcoming D51 boards have twice the RAM, which may or may not help depending on what your program actually does.
Think about having level data in the SPI or SD card. Now you can page levels into main RAM as and when needed. That’s how it might help build larger games, within the constraints, by treating the SPI or SD as secondary storage.
You have around 200k of free flash for level data etc. String and hex literals do not take any RAM only flash so you can use them to store level data.