Kpspemu
PSP Emulator written in Kotlin for JVM, JS and Native. Can work as PWA.
Install / Use
/learn @soywiz-archive/KpspemuREADME
kpspemu
PSP Emulator done in Kotlin Common Platform with Korge targeting JVM and JS for now

Running from source-code:
JVM: ./gradlew runApp
JS: ./gradlew compileKotlin2Js && http-server kpspemu/js/web
Or open build.gradle with intelliJ and open kpspemu/common/src/com/soywiz/kpspemu/Main.kt and execute the fun main method
Running tests:
./gradlew check
More advanced homebrew working:
- https://kpspemu.github.io/kpspemu-demo/0.3.1/ (interpreted)
- https://kpspemu.github.io/kpspemu-demo/0.3.1/#samples/cube.cso (interpreted)
- https://kpspemu.github.io/kpspemu-demo/0.3.1/#samples/TrigWars.zip (interpreted)
- https://kpspemu.github.io/kpspemu-demo/0.3.1/#samples/cavestory.zip (interpreted)
- More coming soon...
Previous works:
- https://github.com/soywiz/pspemu (PSP Emulator done in D programming language. Interpreted.)
- https://github.com/cspspemu/cspspemu (PSP Emulator done in C# programming language. Dynarec.)
- https://github.com/jspspemu/jspspemu (PSP Emulator done in typescript programming language. Dynarec.)
Youtube Coding Video Blog
- Vertex Decoder [Part 1] [Part 2]
- Fix Ortho Sample (madd ins + sceCtrl)
- 2017-12-12: Splitting ThreadManForUser in intelliJ
Current state:
Right now it is capable to run some homebrew in interpreted mode and starts to run some early simple commercial games.
The aim is to create a portable emulator that can run fast in JVM (generating bytecode), JS (generating JavaScript), Android (generating dex or in interpreted mode), C++ targets (using libjit or in interpreted mode).
To achieve this, I have created a library called dynarek that will provide an IR that
will generate JS code, JVM bytecode and relevant native code for each supported platform.
The rest of the code is kotlin common and uses korge and all the korlibs libraries to do accelerated portable rendering, input, audio, ui, timers, logging, zlib...
Related Skills
node-connect
328.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
328.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.0kCommit, push, and open a PR


