I had the same problem when testing the game as part of the process of writing a ticalc.org news item about it, but I forgot to report the issue. Sorry.
» Forum
> Your Projects
YKitty2004 wrote:
AngryBlackSheep wrote:
I have played the game, and on CEmu it will save progress, but on my real TI-84 CE it will delete all progress after I quit the game and open it again. Is there something that I am doing wrong or is this a bug maybe?
I have the same problem! Do you know if it has been amended? thanks
Well, it seems like the last update to the game was when he also uploaded it to the archives, looking at github. And looking at his cemetech account, the above message was also his last one on cemetech, more than a year ago. So the project probably has to be continued by someone else, or be left alone...
Although except for not saving progress, the game works good as it is now.
Apologies for the massive necropost here, but I would like to address this issue since it seems that multiple people are encountering it.
I noticed a review about this issue several years back, but did not take any action because the progress saving/loading feature had been thoroughly tested and I have not been able to recreate this issue. FlowCE saves progress to an appvar called "FLOWDATA." The progress is saved along with the Calc ID (bytes 28-37 from os_GetSystemStats). If the ID read when loading the progress variable does not match the Calc ID read from the device, the progress variable is reset. The idea behind this was to prevent people from transferring their game progress to a different device.
Here is the code snippet:
Code:
There are certain cases where the calc ID is 0, such as when using an emulator. In this case the progress data would not be deleted. The only scenario where I could see the progress being deleted unintentionally would be if the value of the calc ID somehow changes between executions. Does anyone know if this is possible?
I previously tested the game with OS version 5.3.0.0037, in CEmu and on the TI hardware. It is also possible that an OS update changed the behavior of os_GetSystemStats since then, but I have not checked this yet.
Quote:
I have played the game, and on CEmu it will save progress, but on my real TI-84 CE it will delete all progress after I quit the game and open it again. Is there something that I am doing wrong or is this a bug maybe?
I noticed a review about this issue several years back, but did not take any action because the progress saving/loading feature had been thoroughly tested and I have not been able to recreate this issue. FlowCE saves progress to an appvar called "FLOWDATA." The progress is saved along with the Calc ID (bytes 28-37 from os_GetSystemStats). If the ID read when loading the progress variable does not match the Calc ID read from the device, the progress variable is reset. The idea behind this was to prevent people from transferring their game progress to a different device.
Here is the code snippet:
Code:
saveData = ti_Open(varName, "r");
if (!saveData) { // does not already exist
return progress;
} else {
char *saveID = (char*)ti_GetDataPtr(saveData);
char *ptr = (char*)os_GetSystemStats();
// if calc id and saveID don't match, saveID is nonzero, and calc id is nonzero, delete progress
if (memcmp(&ptr[28], saveID, 10) && memcmp(zeroID, saveID, 10) && memcmp(&ptr[28], zeroID, 10)) {
ti_Delete(varName);
return progress;
}
}
There are certain cases where the calc ID is 0, such as when using an emulator. In this case the progress data would not be deleted. The only scenario where I could see the progress being deleted unintentionally would be if the value of the calc ID somehow changes between executions. Does anyone know if this is possible?
I previously tested the game with OS version 5.3.0.0037, in CEmu and on the TI hardware. It is also possible that an OS update changed the behavior of os_GetSystemStats since then, but I have not checked this yet.
Pretty sure that os_GetSystemStats was wrong, you should use os_GetSystemInfo
The CalcID is only 8 characters so not sure why you are comparing 10 there anyway
The CalcID is only 8 characters so not sure why you are comparing 10 there anyway
MateoConLechuga wrote:
Pretty sure that os_GetSystemStats was wrong, you should use os_GetSystemInfo
The CalcID is only 8 characters so not sure why you are comparing 10 there anyway
The CalcID is only 8 characters so not sure why you are comparing 10 there anyway
Thank you.
The documentation in tice.h shows that the Calc ID field is 10 bytes long:
Code:
/**
* Gets a pointer to the system stats
*
* @returns
* [3] - Hardware version <br>
* [12-13] - Boot Version Major <br>
* [14] - Boot Version Minor <br>
* [15-16] - Boot Version Build <br>
* [28-37] - Calc ID (From certificate if exists) <br>
* [38-39] - Appears to be localization language
*/
void *os_GetSystemStats(void);
However, it seems like this function has long since been replaced by os_GetSystemInfo, where calcid is 8 bytes. I also noticed that the value displayed in the "About" menu is only 5 bytes.
I'll update my toolchain and try to get a new release out soon.
I uploaded a new release to the Cemetech Archives. If someone can confirm that the progress saving feature is working on their calculator, that would be very helpful.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
» Go to Registration page
» Go to Registration page
» Goto page Previous 1, 2, 3, 4
» View previous topic :: View next topic
» View previous topic :: View next topic
Page 4 of 4
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Advertisement