- libg1m - a library to rule all of CASIO's formats
- 21 Mar 2017 10:56:06 am
- Last edited by Cakeisalie5 on 30 Mar 2017 10:22:15 am; edited 2 times in total
>>> See the P7 project topic instead! <<<
Hi! I heard Cemetech wasn't as much into CASIO calculators as before, but still, maybe this project will at least interest some of you.
libg1m is basically a library that should allow you to read and write in proprietary and community-made formats surrounding all-time CASIO calculators. It is part of the in-development version of the P7 project, which the official website is located here. The P7 project is basically a project to free software around CASIO calculators, with the FONTCHARACTER reference/libfontcharacter for freeing the proprietary character set, the libp7 for freeing the communications protocols, and the present libg1m.
Currently, I'm focusing on decoding and on having a clean interface, so the encoding is only implemented for fx addins (which are a really basic format) ; but here are the formats libg1m can or will be able to decode:
- CAS/GRC: few subformats are actually managed (programs, lists, matrixes), but the overall format (which is more or less the same as the legacy communications protocols) is managed;
- Casemul: all but programs are managed (as programs in Casemul files have tokens, so dedicated functions need to be made in libfontcharacter before this is possible);
- Cafix: only a placeholder for now;
- FXI: only a placeholder for now;
- Newcat: only a placeholder for now;
- G1A: managed for encoding and decoding;
- G1E/G2E/G3E: I still have to work on these ones, although libg1m can already do basic decoding on them;
- G1L/G1N: more or less managed for decoding;
- G1M/G1R/G2M/G2R/G3M: managed for decoding, although only the main subtypes are managed for now (lists, matrixes, vectors, pictures, captures, programs, setup files, spreadsheets, strings, alpha memory);
- G1S: documentation has been regrouped, decoding function still has to be finished;
- C2P: only a placeholder for now;
- G3A: managed for decoding only;
- G3P: I'm not far from getting this format out of the way, though zlib still throws me an error, so this is not ready yet.
Also, I'm trying to make it as clean as possible while documenting the formats in the specific format headers:
https://github.com/cakeisalie5/libg1m/blob/master/include/libg1m/format.h
https://github.com/cakeisalie5/libg1m/tree/master/include/libg1m/format/
You can find all of the links (source included) on the in-development website. Also, if you want to help, I'll organize contributions as soon if I have time
Hi! I heard Cemetech wasn't as much into CASIO calculators as before, but still, maybe this project will at least interest some of you.

libg1m is basically a library that should allow you to read and write in proprietary and community-made formats surrounding all-time CASIO calculators. It is part of the in-development version of the P7 project, which the official website is located here. The P7 project is basically a project to free software around CASIO calculators, with the FONTCHARACTER reference/libfontcharacter for freeing the proprietary character set, the libp7 for freeing the communications protocols, and the present libg1m.
Currently, I'm focusing on decoding and on having a clean interface, so the encoding is only implemented for fx addins (which are a really basic format) ; but here are the formats libg1m can or will be able to decode:
- CAS/GRC: few subformats are actually managed (programs, lists, matrixes), but the overall format (which is more or less the same as the legacy communications protocols) is managed;
- Casemul: all but programs are managed (as programs in Casemul files have tokens, so dedicated functions need to be made in libfontcharacter before this is possible);
- Cafix: only a placeholder for now;
- FXI: only a placeholder for now;
- Newcat: only a placeholder for now;
- G1A: managed for encoding and decoding;
- G1E/G2E/G3E: I still have to work on these ones, although libg1m can already do basic decoding on them;
- G1L/G1N: more or less managed for decoding;
- G1M/G1R/G2M/G2R/G3M: managed for decoding, although only the main subtypes are managed for now (lists, matrixes, vectors, pictures, captures, programs, setup files, spreadsheets, strings, alpha memory);
- G1S: documentation has been regrouped, decoding function still has to be finished;
- C2P: only a placeholder for now;
- G3A: managed for decoding only;
- G3P: I'm not far from getting this format out of the way, though zlib still throws me an error, so this is not ready yet.
Also, I'm trying to make it as clean as possible while documenting the formats in the specific format headers:
https://github.com/cakeisalie5/libg1m/blob/master/include/libg1m/format.h
https://github.com/cakeisalie5/libg1m/tree/master/include/libg1m/format/
You can find all of the links (source included) on the in-development website. Also, if you want to help, I'll organize contributions as soon if I have time
