Omnimaga
Calculator Community => Casio Calculators => Topic started by: Juju on September 20, 2012, 02:29:25 pm
-
So to extract the OS from the installer provided on Casio's website, you'll need prizmosdecomp (http://prizmwiki.omnimaga.org/wiki/Tools#prizmosdecomp), but it only works with OS 1.02 and lower. Today, I found the way for OS 1.03 and later.
So you'll need the .exe on Casio's website (https://edu.casio.com/download_service/download/category.php), it's a simple InstallShield wizard. From here, the manipulations are similar to OS 1.02, run the executable until you have the connect your calc screen and you'll find files in C:\Documents and Settings\<your login>\Application Data\CASIO\fx-CG10 OS Update\{EF1BD945-AF60-43FD-A487-0D430D3D7911}. But this time, you'll find fx-CG Series OS Update.msi and 1036.MST. The .msi one is the file responsible for the connect your calc screen, so it must contain the OS.
You'll want to extract it with a MSI extractor instead of running it, in my case I used Universal Extractor (http://legroom.net/software/uniextract). Run it on the .msi you got and you should get those files. (In my case, I ran it in a Windows XP VM, then shared a folder with the Mac OS X host, hence the UNIX commands.)
miku:fx-CG Series OS Update julien$ ls -l
total 22832
-rw-r--r-- 1 julien staff 169272 20 sep 13:44 Binary.ISSELFREG.DLL
-rw-r--r-- 1 julien staff 1965158 20 sep 13:44 Binary.ISSetup.dll
-rw-r--r-- 1 julien staff 58680 20 sep 13:44 Binary.ISSetupFilesHelper
-rw-r--r-- 1 julien staff 1033 20 sep 13:44 Binary.NewBinary1
-rw-r--r-- 1 julien staff 4534 20 sep 13:44 Binary.NewBinary10
-rw-r--r-- 1 julien staff 4534 20 sep 13:44 Binary.NewBinary11
-rw-r--r-- 1 julien staff 3262 20 sep 13:44 Binary.NewBinary12
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary13
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary14
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary15
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary16
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary17
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary18
-rw-r--r-- 1 julien staff 318 20 sep 13:44 Binary.NewBinary2
-rw-r--r-- 1 julien staff 15368 20 sep 13:44 Binary.NewBinary21
-rw-r--r-- 1 julien staff 3340 20 sep 13:44 Binary.NewBinary22
-rw-r--r-- 1 julien staff 318 20 sep 13:44 Binary.NewBinary3
-rw-r--r-- 1 julien staff 3262 20 sep 13:44 Binary.NewBinary4
-rw-r--r-- 1 julien staff 4534 20 sep 13:44 Binary.NewBinary6
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary7
-rw-r--r-- 1 julien staff 766 20 sep 13:44 Binary.NewBinary8
-rw-r--r-- 1 julien staff 10134 20 sep 13:44 Binary.NewBinary9
-rw-r--r-- 1 julien staff 128320 20 sep 13:44 Binary.SetAllUsers.dll
-rw-r--r-- 1 julien staff 418098 20 sep 13:44 Data1.cab
-rw-r--r-- 1 julien staff 7887872 20 sep 13:44 ISSetupFile.SetupFile1
-rw-r--r-- 1 julien staff 65536 20 sep 13:44 ISSetupFile.SetupFile2
-rw-r--r-- 1 julien staff 757808 20 sep 13:44 ISSetupFile.SetupFile3
-rw-r--r-- 1 julien staff 110592 20 sep 13:44 Icon.ARPPRODUCTICON.exe
Okay, now we're wondering which one the OS is, or if it's even in a DLL, the filenames aren't helping. Let's find out.
miku:fx-CG Series OS Update julien$ file *
Binary.ISSELFREG.DLL: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
Binary.ISSetup.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
Binary.ISSetupFilesHelper: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
Binary.NewBinary1: JPEG image data, JFIF standard 1.02
Binary.NewBinary10: MS Windows icon resource - 2 icons, 48x48, 256-colors
Binary.NewBinary11: MS Windows icon resource - 2 icons, 48x48, 256-colors
Binary.NewBinary12: MS Windows icon resource - 1 icon
Binary.NewBinary13: MS Windows icon resource - 1 icon
Binary.NewBinary14: MS Windows icon resource - 1 icon
Binary.NewBinary15: MS Windows icon resource - 1 icon
Binary.NewBinary16: MS Windows icon resource - 1 icon
Binary.NewBinary17: MS Windows icon resource - 1 icon
Binary.NewBinary18: MS Windows icon resource - 1 icon
Binary.NewBinary2: MS Windows icon resource - 1 icon
Binary.NewBinary21: JPEG image data, JFIF standard 1.01
Binary.NewBinary22: JPEG image data, JFIF standard 1.01
Binary.NewBinary3: MS Windows icon resource - 1 icon
Binary.NewBinary4: MS Windows icon resource - 1 icon
Binary.NewBinary6: MS Windows icon resource - 2 icons, 48x48, 256-colors
Binary.NewBinary7: MS Windows icon resource - 1 icon
Binary.NewBinary8: MS Windows icon resource - 1 icon
Binary.NewBinary9: MS Windows icon resource - 6 icons, 16x16, 16-colors
Binary.SetAllUsers.dll: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
Data1.cab: Microsoft Cabinet archive data, 418098 bytes, 2 files
ISSetupFile.SetupFile1: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
ISSetupFile.SetupFile2: PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit
ISSetupFile.SetupFile3: Dyalog APL version 189 .175
Icon.ARPPRODUCTICON.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
Most of them are DLLs and icon ressources oh wait what is ISSetupFile.SetupFile3 I'm pretty sure I saw this filetype somewhere else.
[julien@haruhi demo]$ file demo.g3a
demo.g3a: Dyalog APL version 189 .175
ISSetupFile.SetupFile3 is detected as having the same file format as a g3a add-in, so it must be our OS.
There we go, we have our OS binary, so have fun ^_^
-
Great Juju :)
-
ISSetupFile.SetupFile3 is detected as having the same file format as a g3a add-in, so it must be our OS.
Well, you are wrong. This is the Geometry add-in version 1.01
It seems as if it is automatically updated when updating the OS; however, the OS is still encrypted inside the OSupdateDLL file... but no more: I asked Goplat (http://ourl.ca/8207/201163) to add support for newer DLL files, asked him to give me the source code, but he didn't respond. And that's why I called my friend the disassembler and we did it! ;D(http://www.omnimaga.org/Themes/default/images/gpbp_arrow_up.gif)
So here we go...
+++ Overview of encrypted Casio setups and compatible extraction tools +++
Explanation: The legacy setups contained the two resources UpdateExe.bin and UpdateCode.bin
- UpdateExe.bin is the on-calc OS updater taking over control during the update process
- UpdateCode.bin is the calculator OS image without user flash storage area
UpdateExe.bin is only a few kilobytes large, whereas UpdateCode.bin is about 12 megabytes for Prizm OSes and 2.5 megabytes for fx-9860G/GII OSes.
To use these tools, copy the "OSupdateDLL.dll" file obtained from your %temp% directory while the Casio setup was running, to the same directory as the executable file.
fx-CG 10 OS 1.02 Setup
- resource 3063 (0x0BF7), magic byte: 0x7F, UpdateExe.bin
- resource 3064 (0x0BF8), magic byte: 0x08, UpdateCode.bin
- file "extract_cg10_102.exe"
Changes to Goplat's tool:
None
fx-CG 10 OS 1.03 Setup
- resource 3081 (0x0C09), magic byte: 0x7F, UpdateExe.bin
- resource 3084 (0x0C0C), magic byte: 0x08, UpdateCode.bin
- file "extract_cg10_103.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0x090C
0x07C7 : 0xF70B -> 0x090C
0x07DA : 0xF80B -> 0x0C0C
0x090D : 0xF90B -> 0x0D0C
fx-CG 20 OS 1.03 Setup
fx-CG 10/20 OS 1.04 Setup
- resource 3069 (0x0BFD), magic byte: 0x7F, UpdateExe.bin
- resource 3070 (0x0BFE), magic byte: 0x08, UpdateCode.bin
- file "extract_cg1020_10x.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0xFD0B
0x07C7 : 0xF70B -> 0xFD0B
0x07DA : 0xF80B -> 0xFE0B
0x090D : 0xF90B -> 0xFF0B
fx-9860G OS 2.01 Setup
fx-9860G AU OS 2.01 Setup
GRAPH 85 OS 2.01 Setup
- resource 3037 (0x0BDD), magic byte: 0x39, UpdateExe.bin
- resource 3040 (0x0BE0), magic byte: 0x34, UpdateCode.bin
- resource 3041 (0x0BE1), magic byte: 0xD8, UpdateCode.bin
- file "extract0_9860g_201.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0xDD0B
0x07C7 : 0xF70B -> 0xDD0B
0x07CC : 0x0A -> 0x22
0x090D : 0xF90B -> 0xDE0B
0x1078 : 0x7F -> 0x39
- file "extract_9860g_201.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0xE00B
0x07C7 : 0xF70B -> 0xE00B
0x07DA : 0xF80B -> 0xE10B
0x090D : 0xF90B -> 0xE20B
0x1078 : 0x7F -> 0x34
0x107A : 0x08 -> 0xD8
fx-9860GII OS 2.01 Setup
fx-9860G AU PLUS OS 2.01 Setup
GRAPH 75/95 OS 2.01 Setup
- resource 3078 (0x0C06), magic byte: 0xAE, UpdateExe.bin
- resource 3071 (0x0BFF), magic byte: 0xD3, UpdateCode.bin
- resource 3073 (0x0C01), magic byte: 0xD3, UpdateCode.bin
- resource 3074 (0x0C02), magic byte: 0x33, UpdateCode.bin
- file "extract0_9860g2_201.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0xFF0B
0x07C7 : 0xF70B -> 0x060C
0x07DA : 0xF80B -> 0xFF0B
0x090D : 0xF90B -> 0x070C
0x1078 : 0x7F -> 0xAE
0x107A : 0x08 -> 0xD3
- file "extract_9860g2_201.exe"
Changes to Goplat's tool:
0x0732 : 0xF70B -> 0x010C
0x07C7 : 0xF70B -> 0x010C
0x07DA : 0xF80B -> 0x020C
0x090D : 0xF90B -> 0x030C
0x1078 : 0x7F -> 0xD3
0x107A : 0x08 -> 0x33
-
Yeah, as mentionned on Cemetech, we came to the conclusion that file might not be that one, so it must be in the bigger DLL file.
-
Nice work juju. That g3a file you talked to me about earlier kinda intrigued me at first. Hopefully that info is helpful for PRIZM dev. Nice work cfxm as well :)
-
I asked Goplat to add support for newer DLL files, asked him to give me the source code, but he didn't respond
Don't take it personnaly.
I don't get any reply either for Nspire-Ndless related stuff.
Goplat must be very busy.
-
Could it be possible that Goplat moved on from calculator-related stuff to new life stuff? The vast majority of calculator programmers, even some of the best ones, won't frequent calc forums nor do anything calculator-related for more than two or three years.
-
Why are there several (2-3) UpdateCode.bin files in the fx-9860G/fx-9860Gii 2.01 update files?
Which one is being used for the update?
-
Hmm that is strange, could this be due to how there is multiple FX-9860G models? For example, there is the FX-9860G SD (the one with SD card support), the FX-9860G AU (Australian version of the 9860G with half the user archive), the FX-9860G Slim and the regular models. The Slim model is no longer maintained since years ago so OS 2.x is not available for it, but the other models have 2.01 updates.
OS Update for fx-9860GII(SD) Ver.2.01
OS Update for GRAPH75(95) Ver.2.01
OS Update for fx-9860G AU PLUS Ver.2.01
OS Update for fx-9860G(SD) Ver.2.01
OS Update for GRAPH85(SD) Ver.2.01
OS Update for fx-9860G AU Ver.2.01
OS Update for fx-9860G Slim Ver.1.**
Btw I know the Graph 85 in France is the original FX-9860G, but which of the 75 and 95 are the FX-9860G SD and the FX-9860GII?
-
In the fx-9860G 2.01 update, there are 2 UpdateCode.bin files:
- resource 3040 (OS datestamp is 2010.1227.0915) for fx-9860G, fx-9860G SD, Graph 85, Graph 85 SD
- resource 3041 (OS datestamp is 2010.1015.1156) for fx-9860G AU
The difference being that fx-9860G AU OSes limit the archive (storage) space to 800KB instead of 1.5MB.
But in the fx-9860G II 2.01 update, there are 3 UpdateCode.bin files:
- resource 3071 (OS datestamp is 2010.1115.1723)
- resource 3073 (OS datestamp is 2010.1227.0935)
- resource 3074 (OS datestamp is 2010.1227.0954)
But this time I don't understand what the differences are, as the fx-9860G AU+ no longer has the archive space limit.
-
Oh I didn't know about that. Could it be due to processor differences in the USB Power Graphic II models, an impending revival of the 9860 Slim or an upcoming new Fx-9860 model?
-
Actually, there are five images in the GII OS 2.01 setup included, but they are effectively the same. The only difference is at address 0x24FEE0 (being a copy of the boot code data at 0x300) and the checksum at 0x24FFF8. This is probably used to check whether the OS image runs on the correct hardware.
Those five images should correspond to:
fx-9860GII
fx-9860GII SD
fx-9860G AU PLUS
GRAPH 75
GRAPH 95
-
Btw are OS updates still provided for people with the original version of the 9860G AU or are they stuck with OS 1.xx like Slim models?
-
Thank you very much TeamFX. :)
Btw are OS updates still provided for people with the original version of the 9860G AU or are they stuck with OS 1.xx like Slim models?
On edu.casio.com, fx-9860G AU users can download a 2.01 update exe.
The exe file is exactly the same as the one given to Graph 85 and fx-9860G owners.
(but remember the exe file does include several OSes)
I don't understand why the fx-9860G Slim stopped being updated.
-
I don't understand why the fx-9860G Slim stopped being updated.
According to Casio, the fx-9860G Slim is very popular in Asia (like the Casio dictionaries) and some OS 2.00 features are banned there.
Slim OS 2.00 is available here: https://edu.casio.com/data/fx0909/9860slim_osup_200.zip
Casio said they did not make a Slim OS 2.01 setup.
-
Ah I see now. That could probably explain it, although they could possibly have done like the Nspire series and release a different Casio FX-9860 Slim model for Europe and America.
Also is that Slim OS 2.00 you just listed public or did you find it as secret or something? I thought it stopped at 1.xx
-
On OS versions 1.xx, was there already a checksum like the OS 2.0x 0x24FFF8 checksum?
At which offset?
-
On OS versions 1.xx, was there already a checksum like the OS 2.0x 0x24FFF8 checksum?
At which offset?
From OS 1.00 to OS 1.02
- OS checksum at 0x26FFF8
- Calculated as sum of 0x10000..0x26FFF7
From OS 1.03 to OS 1.11
- OS checksum at 0x26FFF8
- Calculated as sum of 0x10000..0x22FFFF + 0x260000..0x26FFF7
From OS 2.00 to OS 2.04
- OS checksum at 0x24FFF8
- Calculated as sum of 0x10000..0x24FFF7
-
I could modify the extract_9860g2_201.exe for get all the 11 flash files from the fx-9860GII osupdatedll.dll plus the binary installer, here is the list:
Note: I discarded extract0_9860g2.2o1.exe since it erases 3072 thru 3075 files.
extract_9860g2_201.exe (the orginal modified by cfxm) makes prizm3073 and prizm3074 (typeinfo1 ´95A and 495B)
extract2_9860g2_201.exe makes prizm3080 and prizm3081 (typeinfo1 ´97A and 497B)
extract3_9860g2_201.exe makes prizm3082 and prizm3083 (typeinfo1 ´98A and ´99A)
extract4_9860g2_201.exe makes prizm3084 and prizm3085 (typeinfo1 499B and 499E)
extract5_9860g2_201.exe makes prizm3071 and prizm3072 (typeinfo1 ´93A and 493B)
extract6_9860g2_201.exe makes prizm3075 and prizm3078 (typeinfo1 495E)
3071 to 3075 are for SH3, 3080 to 3085 are for SH4, 3078 the binary installer.
-
Oh well, my old nick was cfxm... :-)
And I don't want to bother you, but I have just attached the latest archive.
I didn't want to release this because I feared that Casio might start protecting the fx-CP400 setup. Now that I have extracted the OS 2.00 some days ago and Simon confirmed that Upload'n'Run is just working normally, there is no reason for me to keep this private any longer.
[File deleted]
-
No problem, I did that earlier since I needed urgent one of the sh4 files for patch it and make it readable by fxremote
-
Oh well, my old nick was cfxm... :-)
And I don't want to bother you, but I have just attached the latest archive.
I didn't want to release this because I feared that Casio might start protecting the fx-CP400 setup. Now that I have extracted the OS 2.00 some days ago and Simon confirmed that Upload'n'Run is just working normally, there is no reason for me to keep this private any longer.
Wait, I thought you were another person, because you used a different account before ???
Also It seems that Casio protected the fx-CP400 setup anyway >.<
-
I still can get the OSUpdate.dll, so there's no problem after that (I haven't tried, though, but once we have the .dll ...)
-
Wait, I thought you were another person, because you used a different account before
I was getting too many PMs and emails on how to hack/upgrade with fxRemote, so I decided it would be best to just kill my old account and register with a new one. And this turned out to be highly effective...
-
Btw anyone got a fx-9860G Slim that could be messed around (as a guinea pig)? I want to test a .fls that I've patched.
-
Wait, I thought you were another person, because you used a different account before
I was getting too many PMs and emails on how to hack/upgrade with fxRemote, so I decided it would be best to just kill my old account and register with a new one. And this turned out to be highly effective...
This reminds me when I kept getting PMs non-stop about Omni administrative issues and had to change my nickname. In my case, though, the change to DJ_O didn't work, as it actually became worse afterward. The change to "DJ Omnimaga (Not Admin)" did work, though, and even after removing the Not Admin part it continued working except with a certain group of no longer active members (who I had to block PMs from).
That and when TI community members kept e-mailing me at my Hotmail address even though it was clear since half a decade by then that the gmail address was the one I primarily used.Btw anyone got a fx-9860G Slim that could be messed around (as a guinea pig)? I want to test a .fls that I've patched.
Isn't fls an FL Studio file? O.O Sadly I don't have a spare 9860G, though.
-
I'm not sure if it's FL studio file, but i'ts one of the extensions used by fxremote, along bin
-
Actually now that I think about it, it's Microsoft Reader that uses that extension. FL Studio would be .flp
-
.fls stands for flash (ROM image).