If I was to put a
SYSTEM.CNF that contained
BOOT=cdrom:\untitled.exe;1
TCB=4
EVENT=10
STACK=801FFFF0
as well as a PSX.EXE on the same cd which would have boot priority the PSX.EXE or the untitled.exe read from the system.cnf?
|
|
|
|
Would you like to get all the new info from
PSX-Scene in your email each day?
Want to learn more about the team keeping you up to date with the latest scene news?
Read about them now! Check out our Developer bios, too! | ||
|
|
If I was to put a
SYSTEM.CNF that contained
BOOT=cdrom:\untitled.exe;1
TCB=4
EVENT=10
STACK=801FFFF0
as well as a PSX.EXE on the same cd which would have boot priority the PSX.EXE or the untitled.exe read from the system.cnf?
I'm not sure what the prioritization would be on a real PS1, though my guess is that a BOOT directive in a SYSTEM.CNF would dominate over a PSX.EXE file. But the way these are used for booting commercial games, it is quite likely that such a BOOT directive would specify the same file anyway, making it impossible to tell what prioritization caused the file to be launched.
I am however very sure of how it is done on a PS2, since I had reason to emulate this behaviour for the "MISC/PS2Disc" command of uLaunchELF, where these disc boot issues are resolved by the following C function from "main.c" of the uLE sources.
(Partly based on info from the FMCB sources.)
Here some of the functionality is hidden in the call to scanSystemCnf which extracts the proper values for the SystemCnf_BOOT and SystemCnf_BOOT2 directives (if present in the CNF).Code://--------------------------------------------------------------------------- //readSystemCnf will read standard settings from a SYSTEM.CNF file //------------------------------ int readSystemCnf(void) { int dummy, var_cnt; unsigned char *RAM_p, *CNF_p, *name, *value; BootDiscType = 0; SystemCnf_BOOT[0] = '\0'; SystemCnf_BOOT2[0] = '\0'; SystemCnf_VER[0] = '\0'; SystemCnf_VMODE[0] = '\0'; if( (RAM_p = preloadCNF("cdrom0:\\SYSTEM.CNF;1")) != NULL){ CNF_p = RAM_p; for(var_cnt = 0; get_CNF_string(&CNF_p, &name, &value); var_cnt++) dummy = scanSystemCnf(name, value); free(RAM_p); } if(SystemCnf_BOOT2[0]) BootDiscType = 2; else if(SystemCnf_BOOT[0]) BootDiscType = 1; if(!SystemCnf_BOOT[0]) strcpy(SystemCnf_BOOT, "???"); if(!SystemCnf_VER[0]) strcpy(SystemCnf_VER, "???"); if(RAM_p == NULL){ //if SYSTEM.CNF was not found test for PS1 special cases if(exists("cdrom0:\\PSXMYST\\MYST.CCS;1")){ strcpy(SystemCnf_BOOT, "SLPS_000.24"); BootDiscType = 1; }else if(exists("cdrom0:\\CDROM\\LASTPHOT\\ALL_C.NBN;1")){ strcpy(SystemCnf_BOOT, "SLPS_000.65"); BootDiscType = 1; }else if(exists("cdrom0:\\PSX.EXE;1")){ BootDiscType = 1; } } return BootDiscType; //0==none, 1==PS1, 2==PS2 } //------------------------------ //endfunc readSystemCnf //---------------------------------------------------------------------------
So if SYSTEM.CNF is present and contains a BOOT2 directive, then this specifies a PS2 elf to be launched in PS2 mode, and all other tests lack importance.
For all other cases the disc is assumed to NOT be a PS2 game disc.
And if a SYSTEM.CNF is present with BOOT directive, then this specifies the PS1 executable to be launched, and again the other tests lack importance.
But if no SYSTEM.CNF is present, then the other tests for alternate boot programs are used, in the order specified in the listing, with PSX.EXE being the last alternative tested. Thus it has the lowest priority of all.
Discs that match none of the tests are assumed to be either CDDA or DVD-Video discs, depending on their basic type. But uLE does not support CDDA, though it does support DVD-Video format, either ESR-patched by launching ESR, or normal DVD-Video by launching the Sony DVD-Player.
Best regards: dlanor
Thanks for the info so it's probably last thenstill i'll give it a try just to make sure.
I'm trying to patch Gran Turismo 2000 Trial Edition to run on a ps1 without disc swap, I think the patch reads the SYSTEM.CNF of the original ps2 disc for sharing info off the ps2 executable, I wanted the ps1 patch executable to be named as PSX.EXE so that the SYSTEM.CNF would be left untouched as a normal ps2 SYSTEM.CNF but the PS1 would load the PSX.EXE instead first.
http://pouet.net/prod.php?which=34324
http://pouet.net/prod.php?which=49106
Last edited by kevstah2004; 05-31-2010 at 07:17 PM.
If what you want to do is to make a disc capable of booting different files when used on a PS2 and on a PS1, then you could try just including both a "BOOT2" directive and a "BOOT" directive in the same SYSTEM.CNF.
The PS1 will have no idea what a "BOOT2" directive means, so that will be ignored on the PS1, which will thus launch the file specified by the "BOOT" directive instead.
But on a PS2 the "BOOT2" directive is of course recognized and given top priority.
I never did this myself, but it should work.
Best regards: dlanor
I'll try it and report back, psone games have a license screen though which can be edited, but for ps2 games I think the image taken directly from the biosi've never seen any relicensing tools for a ps2 iso's wouldn't that cause a problem.
The main problem of an 'unlicensed' disc is to make the console accept reading it at all, but presumably you have modchips in both consoles (to even consider using a burned CD), so that should not be much of a problem. But some part of the license check may still be performed, and to insure against problems with that you should use PS1 licensing. That should be acceptable to both PS1 and PS2 consoles.
But again I must emphasize that I'm really just speculating here, as I never made such a disc myself.
Edit:
On second thought, I just reread your post #3 above again, and I must say that your intent to make it "run on a ps1 without disc swap" does sound as if you're trying to do this without a modchip (why else even mention swapping), and that I think is impossible. If you don't have a modchip and also don't swap, then you will not boot that burned CD.
Best regards: dlanor
When I said disc swap I meant swapping between a single disc burnt with the loader and the original gran turismo disc, what i'm wanting to do is keep the loader and gran turismo on the same disc via a custom made iso, I'm booting it via a ps1 emulator so need to worry about disc swap or modchips.
Search for "PS2Logo 1.0 Beta" and "Boot Screen Editor 0.2.2 Beta".
Not sure, if those are the newest ones, but atleast that are the versions I still have.
| « Previous Thread | Next Thread » |