I'm working on an unofficial open-source CG50 emulator that aims to be better for testing custom add-ins and reverse engineering than the official fx-CG Manager. So far it runs most programs created using fxsdk/gint, which was announced on this forum here (if you haven't tried it, please do, it's really nice and feels much more comfortable to use than PrizmSDK in my opinion). It's not very popular here but most games created by the Planet Casio community use it. These are easier to emulate because gint is a custom kernel that doesn't use syscalls except for a few specific tasks, so I only have to emulate hardware that is already well-documented and that I can see the driver code for rather than running the whole OS. It has a Qt UI and is so far only tested on Linux (there's a web port too but it's a bit slow). Here are some screenshots:
Some gint programs that rely on syscalls or USB won't work, though.
I'm also working on loading an OS dump into memory so that PrizmSDK add-ins and the OS itself can run too. This is more difficult, because the OS uses a lot of undocumented hardware, but I have made some progress:
They don't get much further than that, though, because GetKey doesn't work (probably because I'm not emulating keyboard interrupts yet, gint uses a timer to poll it periodically). The support for this is on a separate branch called "os" on my repo and needs you to dump some files, I can explain how if anyone wants to try it.
The source code is here: https://github.com/Heath123/casio-emu/
There are no precompiled binaries yet but the people who would want to use it at this point in development can probably follow the compile instructions anyway
Some gint programs that rely on syscalls or USB won't work, though.
I'm also working on loading an OS dump into memory so that PrizmSDK add-ins and the OS itself can run too. This is more difficult, because the OS uses a lot of undocumented hardware, but I have made some progress:
They don't get much further than that, though, because GetKey doesn't work (probably because I'm not emulating keyboard interrupts yet, gint uses a timer to poll it periodically). The support for this is on a separate branch called "os" on my repo and needs you to dump some files, I can explain how if anyone wants to try it.
The source code is here: https://github.com/Heath123/casio-emu/
There are no precompiled binaries yet but the people who would want to use it at this point in development can probably follow the compile instructions anyway