Hypothetically, a dynamic recompiler can be written to work on all firmwares (without a kernel exploit) by using gspwn to write the output to memory pages that are already marked as executable. MIPS is an interesting platform because the most significant byte of the current program counter controls which memory segment the code is running. All the memory segments mirror each other, however, one of the segments has the CPU cache enabled and the user code can choose which segment to run in using absolute memory jumps; this is a good starting point for determining which code is viable for dynamic recompilation in real time.​

Spoiler View attachment 25211

Hello,About 1 month ago I began working on an experimental PS1 emulator. This is the very first release. It's still missing many core functions, but I believe it is ready to be shown as a bare-bones proof-of-concept. Included in the download is a freeware BIOS replacement; this is necessary to use the emulator as other BIOS aren't designed with CTRX's current state in mind. Also included is a freeware PS1 homebrew (boot.exe) that prints text to the screen using the GPU. It is built using nextvolume's PSXSDK and its source can be found in the attachment(s) to this post.The emulator will attempt to run any PSX EXE file found at sdmc:/3ds/CTRX/boot.exe but bear in mind, that chances are it won't run at this point in time.CTRX is a new and free emulator. It has been written from the ground up. It is not a port. It is also free. It has no price and does not bind the user's soul to a document written in legalese. Contributions to the project (including donations) are always appreciated.Plans:Dynamic recompilation:Source: https://github.com/machinamentum/CTRX Download/Releases: https://github.com/machinamentum/CTRX/releases/ Screenshots: