Post by Malban on Feb 26, 2021 3:19:21 GMT -5
Hi,
FYI:
recently a new "Feature" was discovered in Vectorblade. I let it be explained in the words of its discoverer:
I treated my poor Vectrex very badly and tried reproducing the bug.
Changing settings and than switching the poor thing off and on.
About 50 times.
I can verify not only by looking at the code, but also in "true life" the bug is real.
But it is in no way a "self destruct".
It is bad but not catastrophic bad.
All settings as Ralf said are set to $ff, this means the size and the "calibration" values, the achievement values and the high score.
This results in several things:
a) display is garbled
b) you cant see any highscore (because the ascii is negative and ends the string immediately)
c) you have all achievements
What I recomend you do - is go to the settings menu and do a "reset" - and than calibrate again.
But all your advancements are lost 🙁.
----
If you have a Version equal to V1.07 or higher - than this bug also sets the "input method" to "button" instead of joystick.
In that case you can not go "right" with the joystick and press a button to enter the settings.
You have to press button 2 - to enter the settings menu. From than on everything is the same and you can reset the settings.
I am looking into the possibilty of sending an update to the people who bought from me. But I can't make any promises as of now.
---
This "DO NOT PLAY SO OFTEN" feature is implemented in all "final" versions of Vectorblade!
(except the newest version V1.11 - available on github)
Also:
(I have not tested this)
If what Ralf says is true, that if you save "TWO times" and overstep the "OFF switching"
(which I won't test out on my machine, I don't want to switch it on and off again 50 times).
Than you are "easily" able to do that.
Formatting the 4kBlock 80 times takes a very NOTICABLE longer time than the usual save (and the screen blanks in that time).
If you go straight to the settings menu and change you calibration ever so slightly - another save will be done. And everything should be fine again.
Malban
FYI:
recently a new "Feature" was discovered in Vectorblade. I let it be explained in the words of its discoverer:
---
As some of you might know VectorBlade is using only one memory chip. Therefore all the settings and high scores will be saved on the same chip that already contains the game itself. While the memory chip used allows to write byte by byte there is a catch. You can only change bits from one to zero. If you want to get them back to 1 you need to erase a whole 4K sector. As a state block in VectorBlade is only 80 bytes it does something smart to avoid erasing the full 4K every time it needs to save. Every time it uses another 80 block until there is no unused block left in the 4K sector. Than it needs to erase the full sector and starts over again. This happens after 51 saves operations of any persistence data. As writing or erasing the memory need some time and the chip cannot be used while the operation is in progress a part of the code needs to be copied to the RAM and executed from there. And this is were the error happens. The code first copies the function to write a byte to the flash into the RAM. Than it checks if there is still a free slot. If there is one it uses the code in the RAM to write the 80 bytes to the flash chip. But if there is no free block anymore it need to erase the full 4K first. To do this it copies the erase function in the RAM and execute it. After this it tries to write the 80 bytes but the function in the RAM is still the erase function. Instead of writing 80 bytes. It erases the 4K sector another 80 times and doesn't save anything at all. If you quit the game now it will not find any valid data the next time you start it. This cases everything is scaled to maximum and I was not able to get back in the calibration to scale it down again. If there is another save after the flash was erased it will write an valid block again and everything is fine.
---
Changing settings and than switching the poor thing off and on.
About 50 times.
I can verify not only by looking at the code, but also in "true life" the bug is real.
But it is in no way a "self destruct".
It is bad but not catastrophic bad.
All settings as Ralf said are set to $ff, this means the size and the "calibration" values, the achievement values and the high score.
This results in several things:
a) display is garbled
b) you cant see any highscore (because the ascii is negative and ends the string immediately)
c) you have all achievements
What I recomend you do - is go to the settings menu and do a "reset" - and than calibrate again.
But all your advancements are lost 🙁.
----
If you have a Version equal to V1.07 or higher - than this bug also sets the "input method" to "button" instead of joystick.
In that case you can not go "right" with the joystick and press a button to enter the settings.
You have to press button 2 - to enter the settings menu. From than on everything is the same and you can reset the settings.
I am looking into the possibilty of sending an update to the people who bought from me. But I can't make any promises as of now.
---
This "DO NOT PLAY SO OFTEN" feature is implemented in all "final" versions of Vectorblade!
(except the newest version V1.11 - available on github)
Also:
(I have not tested this)
If what Ralf says is true, that if you save "TWO times" and overstep the "OFF switching"
(which I won't test out on my machine, I don't want to switch it on and off again 50 times).
Than you are "easily" able to do that.
Formatting the 4kBlock 80 times takes a very NOTICABLE longer time than the usual save (and the screen blanks in that time).
If you go straight to the settings menu and change you calibration ever so slightly - another save will be done. And everything should be fine again.
Malban