As some of you may know, an investigation into the g1m (program) format at the behest of tifreak8x led me to re-examine the g3p (picture) format used on the Casio Prizm. I succeeded in reverse-engineering the format sufficiently to both parse existing 3-bit and 16-bit images and to generate new 3-bit and 16-bit images that fx-CG10 calculators will accept. I later discovered that some of the format information I discovered through strenuous reverse-engineering had been previous published in obscure locations, but that other components were previous completely unknown. Notably, I believe this is the very first time that a third-party tool has generated images acceptable to all Casio Prizm calculators (or, in fact, any Casio Prizm calculator).

While technically impressive and a lot of fun to work through (with periods of frustration that make the eventual success that much more fun), this uncovers some ethical issues that have lain dormant for a few years. Back when the Prizm was first released, community members fxdev and SimonLothar uncovered some information about the image formats, and were considering going further. In fact, Simon even produced an OS patch to turn fx-CG10 (North American) Prizms into fx-CG20 (European/Asian) Prizms that could accept images from Casio's official image converter. He never released that patch, and community pressure forced fxdev to stop his reverse-engineering work as well. At the time, the only calculator that could accept arbitrary images was the TI-Nspire. The community, including vocal leaders such as myself, largely felt that breaking Casio's image format might lead them to lock down the Casio Prizm, making it as bad as the older TI-Nspires that lacked even the Lua language.

With the introduction of the TI-84 Plus C Silver Edition, for which SourceCoder and TI-Connect can both generate arbitrary images, the HP Prime, and the more open TI-Nspire, these concerns seem less important. If Casio's competitors allow images to be loaded despite concerns about smut and cheating, it seems reasonable to assume that we no longer need to fear retaliation from Casio as much. In addition, our third-party work has never been acknowledged officially either positively or negative by Casio itself, although its social media team appears peripherally aware of our work. Therefore, I put the question to you: should I unlock the currently-crippled SourceCoder feature that generates 3-bit and 16-bit .g3p images from 384x192-pixel images, in the hopes that it will promote more cool Prizm programs and games and continue to push the calculator as a viable platform in the US and abroad? Should I only open 3-bit images and keep my 16-bit image work for myself? Or should I keep both 3-bit and 16-bit image exporting disabled? Discuss!

What I am wondering is how will this help encourage more prizm programs? Is there a syscall that can load images in this format or is this just for basic programmers? You know it is not hard as I have demonstrated to write a png loader and even an mpeg2 player using cross platform libraries which can be compiled for the prizm. Considering that you can do even more cheating with a png and mpeg2 viewer which caused no action by casio I think you might as well release this. If casio is the concern don't tell them about this. I know this sounds like a silly statement but maybe just keep this quite and only registered members can use it only if you are very concerned.

What I am wondering is how will this help encourage more prizm programs? Is there a syscall that can load images in this format or is this just for basic programmers?

The issue is that currently, several good BASIC games and programs from Plančte-Casio such as this cannot run on the American models because they use cg20-only images and since several Casio programmers prefer BASIC to other languages, such image support would give them more freedom.

ProgrammerNerd wrote:

You know it is not hard as I have demonstrated to write a png loader and even an mpeg2 player using cross platform libraries which can be compiled for the prizm. Considering that you can do even more cheating with a png and mpeg2 viewer which caused no action by casio I think you might as well release this. If casio is the concern don't tell them about this. I know this sounds like a silly statement but maybe just keep this quite and only registered members can use it only if you are very concerned.

The main issue was the action of circumventing Casio's protections that supposedly made the PRIZM compliant with American exams. This is why I think that the PNG and MPEG viewers did not get any backlash from Casio like Ndless and PTTKiller did. Notice how the TI-84+ is still allowed at tests that disallows CAS models, even though people can easily install Autocalc+Symbolic+PrettyPrint on their calculator.

My only concern about allowing third-party 3-bit and 16-bit images on the cg10 is that the cg10 lacks a teacher/PTT mode. On the 84+CSE, PTT can disable image vars, which is impossible on the PRIZM. On the other hand, the calc is still allowed despite disabling add-ins/programs being impossible, so perhaps this should not be a serious issue, after all. IMHO I would allow at least 3 bit image support. 16 is fine too if you get enough votes for it.

EDIT: From experience, the majority of cheaters are not interested in learning anything, including programming, and will not bother participating on Cemetech forums, not to mention if they have bad ethics then the members will politely reprimand them for it. Knowing this, wouldn't it be a good idea to limit this new SourceCoder feature to members who have at least 10 posts including at least 1 introduce yourself post?

My only concern about allowing third-party 3-bit and 16-bit images on the cg10 is that the cg10 lacks a teacher/PTT mode. On the 84+CSE, PTT can disable image vars, which is impossible on the PRIZM. On the other hand, the calc is still allowed despite disabling add-ins/programs being impossible, so perhaps this should not be a serious issue, after all. IMHO I would allow at least 3 bit image support. 16 is fine too if you get enough votes for it.

I think Casio might be using the more traditional approach of letting people delete everything that shouldn't be accessed. It makes sense with all of the specific deletion options they have, for instance deleting everything in flash except for add-ins. Easier to implement, harder to bypass

For the record, I'm in support of publishing the information about both 3-bit and 16-bit images. Every color screen calculator can display images already, so I don't see why it would cause any trouble. Even the Prizm can do it with simple add-ins, so it's not like it would be adding any sort of cheating capability. What it would do is to allow people to use images for graphing in a simple manner instead of just letting them look at images. And of course, as DJ_O mentioned, it would be great for TI-BASIC games too. So, in short: it would be much easier to use images for education (one of the main purposes of the calculator!), and it would also be easier to do something that already is possible: viewing arbitrary images.

I honestly see no harm in releasing it to the world, at this point. Other color calcs can display pics, you got SC3 do create pictures for the CSE, and TI hasn't said anything, and you could easily create pics and images to cheat with there. I doubt Casio will waste their time with you/us over it.

I say everything can be basically released and documented at this point. In my opinion, all the harm there was to be done is already done, with JPEG, PNG and BMP image viewers having been available for long; additionally, not really related to this discussion, but still on the topic of "annoying Casio", there's also my Eigenmath port. Perhaps the closeness of the CP 400 platform is already a consequence of these "annoyances", or simply the fact that the community managed to run any kind of third-party code. I'm willing to bet that the successor to the Prizm (i.e., the successor in Casio's non-CAS line of graphic calcs) will be locked-down too.

The Prizm has been out for over three years already, has already received the 2.00 OS update, I doubt we're going to see any major changes to the platform. I once listed, on #cemetech IRC I think, a list of reasons why I think it's unlikely that Casio will attempt to lock down the fx-CG 10 and 20; two reasons that come to mind right now is that they would need to focus resources on the Prizm, when they are probably better used in the development of its successor, and that it would probably break compatibility with their own add-ins (or in the case of locking down g3p pictures, it would break compatibility with lots of existing eActivites, including Casio's).
Even if changes happen, not updating is certainly a valid choice, as I doubt any updates will bring any valuable new features over 2.00.

I say, let's reclaim our freedom and enjoy the Prizm, which may be Casio's last hackable platform.

The main issue was the action of circumventing Casio's protections that supposedly made the PRIZM compliant with American exams. This is why I think that the PNG and MPEG viewers did not get any backlash from Casio like Ndless and PTTKiller did. Notice how the TI-84+ is still allowed at tests that disallows CAS models, even though people can easily install Autocalc+Symbolic+PrettyPrint on their calculator.

On the contrary, the lack of backlash from Casio about those image viewers makes me think that they're either not aware of them or don't really have reservations about any particular American exams.

DJ_O wrote:

EDIT: From experience, the majority of cheaters are not interested in learning anything, including programming, and will not bother participating on Cemetech forums, not to mention if they have bad ethics then the members will politely reprimand them for it. Knowing this, wouldn't it be a good idea to limit this new SourceCoder feature to members who have at least 10 posts including at least 1 introduce yourself post?

I'm not convinced that non-programming Prizm users would find their way to SourceCoder to convert images to Prizm formats in the first place, personally. I don't see abuse of the tool being a big potential problem, although I will of course keep an eye on how the converter is being used.

JosJuice wrote:

For the record, I'm in support of publishing the information about both 3-bit and 16-bit images. Every color screen calculator can display images already, so I don't see why it would cause any trouble. Even the Prizm can do it with simple add-ins, so it's not like it would be adding any sort of cheating capability.

That's my feeling as well. It seems that TI-Planet kind of raced to publish fx-CP400 picture documentation ahead of me, so clearly they agree that publishing image format details is not something to worry about.

Hayleia wrote:

Seems like Casio decided to make the CP 400 a closed platform.

Confusingly, TeamFX posted that same information without the TI-Planet link, then later came back and deleted his post. The upshot of his post was that fx-CP400 OS 2.0 had been released, and while it seemed that Casio originally intended to have two different models of the calculator, at some point they decided to not bother.

tifreak8x wrote:

I honestly see no harm in releasing it to the world, at this point. Other color calcs can display pics, you got SC3 do create pictures for the CSE, and TI hasn't said anything, and you could easily create pics and images to cheat with there. I doubt Casio will waste their time with you/us over it.

That is exactly my feeling as well. It would be surprising to me if Casio reacted more strongly then TI to a particular use of their technology, given the companies' relative reactions in the past (not to say that each hasn't necessarily changed in the meantime).

gbl08ma wrote:

[...]I say, let's reclaim our freedom and enjoy the Prizm, which may be Casio's last hackable platform.

I pretty much agree with all your points there. I'm not convinced that the fx-CP400 will get much of Casio's focus any more either, though. Casio seems to have made very little effort to promote the calculator in the US, including not sending prototypes to their US marketing staff. From what I've heard from community members, the calculator is basically the Classpad with minimal color changes, and quite underpowered specifications compared with TI's latest offerings. I'll be interested to see what Casio's next calculator looks like, and I hope you're wrong about it being closed.

TL;DR: Based on all the opinions given in this topic, and my own feelings, I will be releasing the SourceCoder 3 features for working with both 3-bit and 16-bit images, and publishing my documentation on how the image formats are constructed on Cemetech's authoritative Casio Prizm Wiki. I'm considering turning that information into a bit of a tutorial on reverse-engineering file formats; does anyone have any interest in such a tutorial?

TL;DR: Based on all the opinions given in this topic, and my own feelings, I will be releasing the SourceCoder 3 features for working with both 3-bit and 16-bit images, and publishing my documentation on how the image formats are constructed on Cemetech's authoritative Casio Prizm Wiki. I'm considering turning that information into a bit of a tutorial on reverse-engineering file formats; does anyone have any interest in such a tutorial?

I think it would make for interesting reading. And I might even learn something from it, if it were posted

The main issue was the action of circumventing Casio's protections that supposedly made the PRIZM compliant with American exams. This is why I think that the PNG and MPEG viewers did not get any backlash from Casio like Ndless and PTTKiller did. Notice how the TI-84+ is still allowed at tests that disallows CAS models, even though people can easily install Autocalc+Symbolic+PrettyPrint on their calculator.

On the contrary, the lack of backlash from Casio about those image viewers makes me think that they're either not aware of them or don't really have reservations about any particular American exams.

The bad news about the Physium add-in with ClassPad II OS 2.00 is that it's not an add-in, but rather built-in into the OS. It might just be that Casio intended this to be a feature, but it's also entirely possible that they purposely decided to not support add-ins just to ensure we won't produce third-party ones by hacking Physium.

KermMartian wrote:

DJ_O wrote:

EDIT: From experience, the majority of cheaters are not interested in learning anything, including programming, and will not bother participating on Cemetech forums, not to mention if they have bad ethics then the members will politely reprimand them for it. Knowing this, wouldn't it be a good idea to limit this new SourceCoder feature to members who have at least 10 posts including at least 1 introduce yourself post?

I'm not convinced that non-programming Prizm users would find their way to SourceCoder to convert images to Prizm formats in the first place, personally. I don't see abuse of the tool being a big potential problem, although I will of course keep an eye on how the converter is being used.

Yeah my concerns were because in late 2012 or early 2013, Omnimaga got plagued by a wave of n00bs that begged non-stop for help on installing PTTKiller or a CAS OS on their non-CAS Nspire because they were scared of failing their math tests tomorrow and often they showed no willingness to instead study and do their exams the legit way, often resorting to obnoxious backlash when their "extremely urgent" demands were not met. Thankfully, people might think of SourceCoder as programming, so yes it's possible they won't find their way into the image converter. As for TI-Planet tools, while they are promoted more, they are mostly used by French people, and in France, you can go in jail for cheating at certain school exams.

KermMartian wrote:

It seems that TI-Planet kind of raced to publish fx-CP400 picture documentation ahead of me, so clearly they agree that publishing image format details is not something to worry about.

On the other hand, if they purposely locked down the calc even more than the PRIZM, then it's entirely possible that any effort to stay on Casio's good side within the past 3 years was in vain. In such case, why bother doing anymore effort to stay on their good side (other than using common sense when using such image converter, of course)?

In such case, why bother doing anymore effort to stay on their good side (other than using common sense when using such image converter, of course)?

Yeah, Casio rewarded its overly kind user community the exact same way that TI rewarded its overly kind user community (with OS 3.2)...
I hope that Casio enthusiasts will do the same to the fx-CP400 as unknown people did to the Nspire - I mean nLaunch

That said, I'm glad they didn't lock the PRIZM down more at least. But seeing the state of the ClassPad II, I wonder for how long...

As for the HP Prime, I hope HP doesn't lock it down as well, but at least, in their case, they provided a decent alternative to third-party code, which took TI 6 years to do (versions 3.2+ of Lua) and in Casio's case, never happened.

EDIT: Testing SourceCoder's new features

Images act like backgrounds, so whatever you draw on top of them won't be erased (except the previous image). I don't think transparency is supported, though.

The dungeon pics that have the most colors in this screenshot range from 12 to 22 KB in size, but if I make a picture with only the little dude in the center of the screen, the file is less than 1 KB large.

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.