G1L Format
8 posts
• Page 1 of 1
- cakeisalie5
- Senior Member
-
- Posts: 102
- Joined: Sun Mar 27, 2016 10:24 am
- Location: France
- Calculators: Casio Afx 1.0, Casio fx-9860GII, Casio fx-CG50
G1L Format
Hi,
I found some (small) documentation on the G3L I could use to read it, but almost nothing on G1L. There is indeed fx_legacy_messages.htm, but nothing else that I could find. I'm crap at reverse engineering, so I was wondering if you heard of any work on it I could use.
Thanks in advance !
I found some (small) documentation on the G3L I could use to read it, but almost nothing on G1L. There is indeed fx_legacy_messages.htm, but nothing else that I could find. I'm crap at reverse engineering, so I was wondering if you heard of any work on it I could use.
Thanks in advance !

Part of the Planète Casio community (FR) - main author of Cahute
- SimonLothar
- Senior Member
-
- Posts: 605
- Joined: Sat Sep 15, 2012 6:59 am
- Location: Krautland ****
- Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400
Re: G1L Format
This is the asm source of some experimental G1L file, which I just checked. It identifies itself in the SYSTEM/Language menu as "MyLanguage".
It is just done from scratch and neither documented nor optmized. I'll try to post a better documented one as fast as possible.
But it works on a fx 9860GII-2 with OS 2.09.
I think a G1N-file to replace the FKey-icons should be done in a similar way. I am on it.
It is just done from scratch and neither documented nor optmized. I'll try to post a better documented one as fast as possible.
But it works on a fx 9860GII-2 with OS 2.09.
ASM-source: Show
corresponding HMake-file: Show
I think a G1N-file to replace the FKey-icons should be done in a similar way. I am on it.
I'll be back!
- cakeisalie5
- Senior Member
-
- Posts: 102
- Joined: Sun Mar 27, 2016 10:24 am
- Location: France
- Calculators: Casio Afx 1.0, Casio fx-9860GII, Casio fx-CG50
Re: G1L Format
I tried to mess around with what I've understood of what you did and what I know about G3L files, and here's what I got :
0x20-0x27: identifier ("PowerUSB"/"Simon\0\0\0")
0x28-0x29: unknown (CORRECTED - see below)
0x2A-0x2B: all zeroes
0x2C-0x2D: message count
0x2E-0x2F: unknown (CORRECTED - see below)
Then we have a tab of offsets (all 16-bytes long) that indicate the offset of the message since the first string (right after the offsets tab).
Then we have the strings, null-terminated.
But there is a problem with this: the first message I manage to parse is:
(unknown characters are normal since strings are FONTCHARACTER-encoded)
where the first message I parse with Russian.g3l is:
What am I missing ? x) (I'll try to mess around a little more to find out what has gone wrong)
0x20-0x27: identifier ("PowerUSB"/"Simon\0\0\0")
0x28-0x29: unknown (CORRECTED - see below)
0x2A-0x2B: all zeroes
0x2C-0x2D: message count
0x2E-0x2F: unknown (CORRECTED - see below)
Then we have a tab of offsets (all 16-bytes long) that indicate the offset of the message since the first string (right after the offsets tab).
Then we have the strings, null-terminated.
But there is a problem with this: the first message I manage to parse is:
- Code: Select all
[libg1m info] g1m_parse_lang: [#0] '���� �n�`�g�m�i�s�e:[EXIT] '
(unknown characters are normal since strings are FONTCHARACTER-encoded)
where the first message I parse with Russian.g3l is:
- Code: Select all
[libg1m info] g1m_parse_lang_cg: [#0] 'Russian'
What am I missing ? x) (I'll try to mess around a little more to find out what has gone wrong)
Last edited by cakeisalie5 on Thu Dec 15, 2016 12:01 pm, edited 2 times in total.
Part of the Planète Casio community (FR) - main author of Cahute
- SimonLothar
- Senior Member
-
- Posts: 605
- Joined: Sat Sep 15, 2012 6:59 am
- Location: Krautland ****
- Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400
Re: G1L Format
cakeisalie5 wrote:0x2E-0x2F: unknown
0x2E-0x2F is the index to the first message, which is the ASCIIZ-name of the language. Both bytes must be zero.
I'll be back!
- cakeisalie5
- Senior Member
-
- Posts: 102
- Joined: Sun Mar 27, 2016 10:24 am
- Location: France
- Calculators: Casio Afx 1.0, Casio fx-9860GII, Casio fx-CG50
Re: G1L Format
Yay, looks like my library manages to read G1L files now! Thanks 

Part of the Planète Casio community (FR) - main author of Cahute
- SimonLothar
- Senior Member
-
- Posts: 605
- Joined: Sat Sep 15, 2012 6:59 am
- Location: Krautland ****
- Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400
- SimonLothar
- Senior Member
-
- Posts: 605
- Joined: Sat Sep 15, 2012 6:59 am
- Location: Krautland ****
- Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400
Re: G1L Format
Based on the information of this post https://www.cemetech.net/forum/viewtopic.php?t=12549&sid=afa4a188929817a1ebe448e1f96b7f22
I build two asm example sources for Prizm G3L-files.
One file represents a message table (byte at offset 0x24 == 4)
The other file represents a FKey-icon table (byte at offset 0x24 == 2).
Some of previously documented header variables (like the complete inverted standard header) are not necessary.
I added the files to http://casiopeia.net/forum/downloads.php?view=detail&df_id=155.
I build two asm example sources for Prizm G3L-files.
One file represents a message table (byte at offset 0x24 == 4)
The other file represents a FKey-icon table (byte at offset 0x24 == 2).
Some of previously documented header variables (like the complete inverted standard header) are not necessary.
I added the files to http://casiopeia.net/forum/downloads.php?view=detail&df_id=155.
I'll be back!
- cakeisalie5
- Senior Member
-
- Posts: 102
- Joined: Sun Mar 27, 2016 10:24 am
- Location: France
- Calculators: Casio Afx 1.0, Casio fx-9860GII, Casio fx-CG50
Re: G1L Format
Got functions to read G3L files (at least, normal language files):
https://forge.touhey.fr/lib/libg1m/tree ... rse/lang.c (l. 98)
https://forge.touhey.fr/lib/libg1m/tree ... mat/lang.h (l. 43)
But nice that there is an equivalent of the FKey files for the Prizm! I'll try to implement this ^^
https://forge.touhey.fr/lib/libg1m/tree ... rse/lang.c (l. 98)
https://forge.touhey.fr/lib/libg1m/tree ... mat/lang.h (l. 43)
But nice that there is an equivalent of the FKey files for the Prizm! I'll try to implement this ^^
Part of the Planète Casio community (FR) - main author of Cahute
8 posts
• Page 1 of 1
Return to Calculator Hacking/Modding Discussions
Who is online
Users browsing this forum: No registered users and 15 guests