I'll answer this. I have some free time...
1. Where exactly *is* the executable on the PSOne disk? Is it split across files? Does the PSOne even read filenames?
The game's executable is on the root of the disk. In the American version is SCUS_941.63. The PSX BOIS is hard coded to read SYSTEM.CNF (It's a text file)and then load and execute the refrenced in there. The "Main executable" is really small (ABout 300k) because all it does it lay out the memory, then decompresses and loads STARTUP/SCEAP.LZS (I think, that also may just be the splash screens
) Now it actually doesn't open it like a file but raw reads the data directly of the CD-ROM like it's memory. That is the "kernel" that managers all the modules of the game.
The PSX has no memory manager, so the game "executable" is actually split up in different modules and overwritten when a new module is needed. (Menu, battle, field, etc) Foe example. the .MNU files are actually PSX program fragments that just deal with that menu. When a new menu is needed, the old one is overwritten and the new one is executed.
So I guess there is no real "Main executable" there is "The Kernel" and "the modules.
Also don't confuse the kernel with kernel.bin. That is just supplementary data for the game.
2. How, exactly, do FF8/9 work? From what I've seen, you've just got these chunky BIN files on each disk. Why is this? What advantage is there to this? And how does the PSOne navigate them? By sector?
It actually works just like FF7 (Direct disk reads), but they did away with the file names to keep hackers out. They weren't needed anyway. I've seen some PSX games that make a huge data block and flag it as a folder in the directory. When you try and open the folder, the filesystem crashes. (Konami Toki Meki Memorial)
3. How much research has been done into the filetables and boot directories (if they exist) on the PSOne disk? I know we can't author our own disks, but is that because we don't know much about the ways in which these tables are coded?
Booting pretty straightforward on a PSX. SYSTEM.CNF is read, and the referenced file is loaded into memory and ran. The reason why we can't author our own FF7 disk is because the file locations were hard-coded... somewhere When they made the final burn, A disk image was made, the files were put down, and then the file locations were "filled in". We don't know where the reference table is. They did the same with FF8/9, but the file locations were recoded, the file names were wiped from the directory and replaced with a big bin blob.
4. Can anyone point me to information about the way the PSOne boots? I've seen that certain disks can 'hack' the PS logo that appears on startup, so I'm guessing there's some kind of bootstrap program on the disk itself. Google just gets me scores of spammy emulation sites.
The PS logo is in the BIOS, before anything is read off the disk. once again, the BIOS reads SYSTEM.CNF and then runs the executable in there.
5. What's the real reason EIDOS directly ported many of the files from PSX to PSOne? I've heard several theories: that it was unnecessary work, that the port was rushed, or even that Square didn't want to divulge certain information key to modifying and working on the files.
Read
this6. Do we actually know much about the executable on PSOne? Not that I'm thinking of modifying it! Can anyone point me to info on the PSOne architecture?
You are going to have a heck of a time modding the executable. It's native state, the kernel is compressed and you will have to work with the modules where they are. Altering their location or size will break the game.
As for you PSX questions.------
The PSX has a 512K program called a BIOS that is the layer between the software and the hardware. PSX games are not allowed to make direct hardware calls and were only allowed to go through the BIOS. Here you will find the load_file() function, which is used by the BIOS to load the initial 300k boot file. but square bypasses that function the much faster read_sector() which allows them to load data one sector at a time and not have the game "stall" while it does a file load. (The PSX BIOS can't multitask. It give it a function, and you must wait till it returns)
You can read my PSX doc for more info
here You can load the SDW file in OpenOffice. (It's really old, and was originally written in StarOffice)