Just came across this recently. Fortunately I had backed my program up under a different name.
Bring up PICO-8.
Save filename, "my-8bit"
The entire system hangs and you must manually remove PICO-8 from the tasklist.
Any ideas as to what is causing this ?
Did some testing on this. It seems to be narrowed to the name containing ?b, where ? is a digit, but not all digits. So far, these names have frozen up:
But, oddly, these have not:
@zep, hope this helps in debugging!
EDIT: Just to further add, it doesn't need to just have ?b in the name anywhere to freeze up. Rather, you have to have ?b preceded by one of the following:
- nothing (not the word, but meaning it's the beginning of the filename)
- space (not the word, the character)
And further, if you enclose your cart name in quotes, it will not freeze up. For example, save 4b will freeze, but save "4b" will not.
The fact that 0b and 1b don't hang makes me think it has something todo with how pico-8 handles binary notation 0b01101101 etc... which explains why they all work fine with quotes but without quotes pico-8 might be designed to try to ignore other #b combinations in an attempt to look for binary numbers?
I think Cabledragon has it. Somehow a mathematical formula is being calculated instead of the actual save filename.
Came across another way to hang PICO. Did this accidentally in my new code, lost all my unsaved work.
BEWARE, running this will nastily hang PICO.
a="" repeat a=a.." " until forever
Now I know you guys are saying, well, don't run a loop forever, but in any other programming language I know there is ALWAYS a keystroke to exit an infinite loop when run.
in GWBasic and QBasic it is CTRL-BREAK, and no, that does not work here.
In BlitzMAX it is the ESC key.
Suggest there be SOMETHING, anything, to prevent this kind of lock.
I am understanding that all PICO code runs at the exact same speed, 30fps, or 60fps, so there is plenty of time to look for a CTRL-C, CTRL-BREAK, or ESC key even when incrementing a string to ridiculous proportions.
And there could be a limit for that, too. Say 2^15 since the highest calculated integer is 32767, that should be enough.
a="" repeat if (#a<32767) a=a.." " until forever
Works correctly, ESC will exit.
[Please log in to post a comment]