Warning
This project is inactive now and won’t be updated, or maintained. if you want to edit, work on it, or even make your own project using it. then fork the project and modify it as you’d like.
Minimal PS4/PS5 UI hijack framework for learning framebuffer rendering, overlays, and emulator frontend development.
EXP-C0RE is a minimal educational framework showing how UI hijacking and framebuffer rendering work internally on SWRR for both PlayStation 4 and PlayStation 5.
This project demonstrates:
- Video output hijacking
- Direct framebuffer rendering
- Text rendering
- Pad input handling
- Overlay/UI systems
- Graphics takeover concepts
- Emulator frontend foundations
The repository intentionally does NOT include the NES emulator itself.
Instead, the goal is to help developers understand:
- how emulator frontends work
- how framebuffer rendering works
- how overlays are drawn
- how custom UI systems are built
- how graphics hijacking operates internally
- Simple modular architecture
- Direct framebuffer rendering
- Bitmap font rendering
- Video output hijacking
- Pad input debugging
- Clean rendering pipeline
- Easy to modify and extend
- Educational-oriented codebase
- 1920×1080 and resizeable
- PS4 + PS5 compatible concepts
EXP-C0RE is separated into multiple independent layers so developers can replace rendering, input handling, or emulator logic without rewriting the entire framework.
| Layer | File(s) | Purpose |
|---|---|---|
| System Interface | core.h |
Type definitions, syscall wrappers, and NC/SYM helper macros for calling internal PlayStation functions |
| Video Hijack | hijack.h / hijack.c |
Terminates the game renderer, creates a new video output, allocates direct-memory framebuffers, and performs flips using sceVideoOut |
| UI Rendering | ui.h / ui.c |
Clears framebuffers and renders scaled text using an 8×8 bitmap font with pixel doubling or arbitrary scaling |
| Main Logic | main.c |
Initialises video + pad input, renders debug/UI text, handles runtime logic, and exits cleanly on R1 |
Tip
Because every subsystem is isolated, developers can easily integrate their own renderer, emulator frontend, menu system, or overlay layer.
Game Renderer
↓
Hijack Graphics Output
↓
Allocate Custom Framebuffers
↓
Draw UI/Text
↓
Flip Buffers via sceVideoOut
↓
Display Custom Overlay
- Lua-C0re — by Gezine
- emu-c0re — by egycnq
- Emu-Building iPhone Tools — by MexrlDev
Clone the repository:
git clone https://github.com/MexrlDev/Exp-C0re.git
cd EXP-C0REEdit whatever you need, then run the GitHub Actions workflow.
After building:
- Ignore the generated
.elf - Take the generated
.bin - Convert the
.bininto hex using:- my coverer via python - BIN to HEX
- or a Bin-to-Lua tool
- Replace:
local sc = "HEX HERE"- Send the Lua script to the game using Gezine lua sender or my own python sender.
EXP-C0RE is designed to help developers learn:
- Low-level framebuffer rendering
- Graphics hijacking
- Overlay systems
- Emulator UI design
- Text rendering
- Buffer flipping
- Input handling
- Rendering abstraction layers
- PlayStation homebrew structure
Warning
This project is for Star Wars Racer Revange and NOT FOR OTHER GAMES.
Note
The current implementation targets 1920×1080 rendering.
Tip
The framework is intentionally simple so developers can easily expand it into larger projects.
- PNG rendering
- Texture support
- GPU accelerated rendering
- Emulator frontend integration
- Animated UI
- File browser (which i did, but only browse content_temp -_-)
- Audio output
- Multiple resolution support
- Better font rendering
- Theme system
Huge respect to:
- Gezine
- egycnq
- PlayStation reverse engineering community
- Homebrew developers and researchers