Okay, a little more light on this subject.
Sony's CDEXEC above was compiled 4/AUGUST/1995 11:55PM. It can be located in the Psy-Q/BIN directory.
If you do a search in your SDK directories, you will eventually find another program called CDEXEC but it only contains these lines:
Code: Select all
/*
* $PSLibId: Run-time Library Release 4.4$
*/
/*
* Sample Program: H2000 Boot Module
*
* Copyright (C) 1995 by Sony Computer Entertainment Inc.
* All rights Reserved
*
* Version Date
* ------------------------------------------
* 1.10 May,19,1995 yoshi
* 1.11 Aug,15,1997 yoshi moved the description to readme file.
*/
main()
{
_96_remove();
_96_init();
LoadExec("cdrom:\\PSX.EXE;1", 0x801fff00, 0);
/* File name, stack pointer, stack size */
}
That version is useless compared to the first one they made since it only works with PS-EXE's that are only called 'PSX.EXE'.
I have been trying to find the source code to this binary they compiled since it is remarkably simple.
I disassembled it using IDA, and this is what I have figured out:
- _96_init(); is called first.
- LoadExec() is then called trying to load PSX.EXE first. If it fails, then...
- A kernel open() function is then called.
- A kernel read() is then issued.
- A bcopy() is performed, following a bzero().
- Lastly, LoadExec() is called again but this time pointing to the PS-EXE found within SYSTEM.CNF.
I booted Gran Turismo using the original 1995 CDEXEC.CPE and EXE via CAETLA 0.34 (linked above) and it worked perfectly fine.
Oh, and in case you're wondering what happened to the code I was working on, it does work, but I'm not happy with it when I disassembled Sonys version. The version they made seems to be much more simplistic and I would rather use that instead