Page 1 of 1

How do I make a SYSTEM.CNF file?

Posted: October 26th, 2012, 8:42 pm
by Shadow
In order to boot a PSX CD-ROM, you will need a file in the root (cdrom:/) of the disc called 'SYSTEM.CNF'.
This is what the PSX looks for on boot, and what it needs to know in order to setup and execute correctly.

In retail games, the PS-EXE file is usually called 'SLUS-123.4'.

Each section is as follows:
BOOT: Specify the name of the file to be started. The default is MAIN.PSX.
Example: BOOT = DEMO.EXE

TCB: Specify the number of tasks. The default is 4.
Example: TCB = 5

EVENT: Specify the number of events. The default is 16.
Example: Event = 5

STACK: The stack pointer value where the file specified by BOOT is started.
The default is 8001FF00 (be sure to not put '0x' in front of the address).
Example: STACK = 801FFFF0

Also take note that the PSX executable needs to be a multiple length of 2048 bytes.
You may use a program called EXEFIXUP to fix your EXE's to required size. Most PS-EXE's will work fine without the need to run the EXEFIXUP tool, however, I have found that when using LoadExec it must be a multiple of 2048. Otherwise, the new EXE will not boot or the old one will lockup while executing LoadExec.


TCB and EVENT correspond the the multitasking of the R3000A CPU.
For example, setting TCB to 8 would mean that 8 tasks can be performed at one time, which would be useful if you were using an I or D cache. The same rules apply with EVENT.

If SYSTEM.CNF is skipped, the PlayStation will default to 4 tasks, 16 events, and 0x8001FF00 as the stack entry point. It will also default to the 'MAIN.PSX' executable title. If it can not find it, nothing will not boot and the PSX will hang.

EXAMPLE:

Code: Select all

BOOT=cdrom:\demo.exe;1
TCB=4
EVENT=10
STACK=801FFFF0
DOWNLOAD:
SYSTEM.CNF