Skip to content

Trying to port an emulator as standalone library + use it as web emulator for add-ons

Notifications You must be signed in to change notification settings

TheRainbowPhoenix/CP-emu

 
 

Repository files navigation



A work-in-progress ClassPad Emulator.

It is based on casio-emu and will bring some of the RuK UI and features.

It currently runs many add-ins created with gint quite well.

Usage

Grab an addin, like MyAddin.g3a, and select it from the file picker. Then, click "Run" or "Debug".

Limitations

  • This does not attempt to emulate syscalls or the OS yet, so PrizmSDK add-ins will not work
  • Add-ins that use the USB driver will not boot
  • The code is quite messy and inaccurate sometimes.

To be done

  • Support for SDK functions, maybe by building a "stub" os that only provides mocked-up functions and jump tables at given SDK offsets.
    • Support for "open" is ongoing - but issues with filename pointer
    • Add file browser on /fls0 to view addins and run them easily. Also good for debug

Later

  • Disassemble opcodes on debugger - First version done
  • Stack view
  • Write to memory / "hot patching"
  • Add "detours" support on debugger

Building

For the web

C:\Path\To\EMScripten\emsdk\emsdk.bat activate latest
C:\Path\To\EMScripten\emsdk\emsdk_env.bat
mkdir -p ebuild  
cd ebuild
echo "copy the ebuild.zip content in the ebuild folder"
emcmake cmake .. -DUSE_SDL_GUI=ON -DEMSCRIPTEN=ON
emmake make -j4

Locally

This is not tested, but :

mkdir build
# If you want to build the SDL GUI rather than Qt one, add -DUSE_SDL_GUI=ON
# For the Emscripten build, use emcmake and emmake
cmake . -B build
make -C build
./build/calcemu [optional path to g3a]

Screenshots

image image

(Older version) image

About

Trying to port an emulator as standalone library + use it as web emulator for add-ons

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 79.6%
  • JavaScript 8.4%
  • HTML 4.8%
  • Svelte 4.4%
  • TypeScript 2.2%
  • C++ 0.3%
  • Other 0.3%