PSEXE2ROM : Convert PS1/PSX Executables To Flashable GameShark/Cheat Cart ROM files

Brought to you by MottZilla and Alex Free

Have you ever wanted to run your own code instead of the PSX BIOS/Shell at boot on an unmodified PS1 console? This tool allows you to convert PSX executables into a .rom file that you can use to overwrite the existing executable on a GameShark or similar PSX cheat cart with your own.

You can flash your cheat cart using the NXFlash CD method with the romfile.dat file generated by PS-EXE2ROM, and then the cheat cart will boot that PS-EXE automatically if the cheat cart is installed in a console and you turn it on.

Alternatively, you can send over the .rom file generated by PSEXE2ROM with a serial cable to transfer the .rom file from your computer to your PS1 console using a program like UNIROM or NXFlash.

PSEXE2ROM can generate byte-identical romfile.dat files, exactly the same as when generated by the old, non-open source program romfile.exe included in the original NXFLASH/XFLASH releases.


Version 1.0.2 (11/25/2022)


Version 1.0.1 (11/24/2022)


Version 1.0 (7/6/2022)


PSEXE2ROM is a command line program that requires 3 arguments. The program is the psexe2rom.exe (Windows) or psexe2rom (Linux) file in the releases downloadable from above.

PS1 cheat carts such as the GameShark have capacities of either 128KB, 256KB, or 512KB (such as the GameShark Pro v3.0 that I have). Due to the fact that MottZilla’s primary loader that runs the PS-EXE on the cheat cart takes up space in itself, the actual maximum PS-EXE file size you can use is slightly less:

If you specify a PS-EXE file bigger then 523,264 bytes psexe2rom will flat out refuse to continue after telling you that the executable you specified as the first argument is too large to be converted into a ROM file. Otherwise PSEXE2ROM will generate a ROM file that is padded exactly to 128KB, 256KB, or 512KB in size depending on the least common denominator for maximum compatibility between flash carts.

The first argument is the output mode of PSEXE2ROM. -d as the first argument will output a romfile.dat file in the current directory, and a .rom file specified by the 3rd argument given. -r as the first argument will output only the .rom file asspecified by the 3rd argument given.

The second argument is the file path to the PS-EXE file you want to run on your GameShark or other cheat device.

The third argument is the desired output file path of the ROM file that you want to make out of the PS-EXE file you specify in the first argument. The third argument must have the file extension .rom or .ROM specified. Example usage below:

Linux (In Terminal), generate my.rom from my.exe

./psexe2rom -r my.exe my.rom

Linux (In Terminal), generate my.rom from my.exe and a romfile.dat file in the current directory

./psexe2rom -d my.exe my.rom

Windows (In CMD.EXE) generate my.rom from my.exe

psexe2rom.exe -r my.exe my.rom

Windows (In CMD.EXE), generate my.rom from my.exe and a romfile.dat file in the current directory

psexe2rom.exe -d my.exe my.rom


You can build an NXFLASH or XFLASH CD with a romfile.dat file, which when booted on a PS1 console allows you to flash the .rom file contained within the romfile.dat file on the CD to a cheat cartridge connected to the PS1. If you don’t have a serial cable and everything setup for that, this is the easiest way to flash your cheat cartridge. The only requirement is a CD-R to flash your cartridge this way.


Building From Source

PSEXE2ROM is written in C with no external dependencies. To compile PSEXE2ROM, simply download the latest source, cd into the psexe2rom source directory, and execute make.


PSEXE2ROM is released under the 3-BSD license. See the file license.txt in each release for more info.