Homebrew CTRX - PS1 Emulator

machinamentum

Well-Known Member
OP
Member
Joined
Jul 5, 2015
Messages
163
Trophies
0
XP
549
Country
United States
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 notes:
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.​

Source: https://github.com/machinamentum/CTRX
Download/Releases: https://github.com/machinamentum/CTRX/releases/

Screenshots:
screenshot00.pngscreenshot01.pngscreenshot03.pngscreenshot04.png
 

Attachments

  • test_homebrew.zip
    2.7 KB · Views: 1,306
Last edited by machinamentum,

machinamentum

Well-Known Member
OP
Member
Joined
Jul 5, 2015
Messages
163
Trophies
0
XP
549
Country
United States
He probably should have waited until it could boot a simple commercial game first.
But this is nice progress -- it's hard to imagine a psx emu for the 3ds finally close to reality.
I would like to have done so, but unfortunately, no commercial game is simple enough to have developed a proof-of-concept in a reasonable amount of time. Making a public release early will hopefully draw enough attention to the project so that others may become interested in contributing.
 

AtlasFontaine

Well-Known Member
Member
Joined
Jul 18, 2015
Messages
1,095
Trophies
0
Age
26
Location
Venezuela-Zulia.
XP
865
Country
Venezuela
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:
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.​

Source: https://github.com/machinamentum/CTRX
Download/Releases: https://github.com/machinamentum/CTRX/releases/

Screenshots:

Man,if you manage to make this run good, you will be the true hero of the scene
 
  • Like
Reactions: MAXLEMPIRA

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: https://m.youtube.com/watch?v=FzVN9kIUNxw +1