
Originally Posted by
dlanor
'Only' you say. But how many other launch methods did you try ?
None, I was not able to run from a CD-RW (will try again later). But it should not matter, because the game I'm developing is meant to be run from mass: using uLaunchELF anyway. I'll try to run directly from the memory card just in case, using the matrix R1-hold method.

Originally Posted by
dlanor
It is far more likely that it is your test application that has a serious problem with its initialization routine, being affected by remnant modules used by previous applications (...)
But I suspect that your application does not do this correctly and therefore suffers from trying to use either the remnant drivers of the previous application, or by improperly initialized newly loaded drivers, whose init failed because of remnant modules.
My advice to you is to check and double-check your program initialization routines.
Best regards: dlanor
Here is my initialization part of the code:
Code:
#ifdef PLAYSTATION
//SifResetIop(); // commented out because if caused crashed
PS2loadMinimal();
PS2loadUSB();
if (!strncmp(argv[0], "cdfs", 4) || !strncmp(argv[0], "cdrom", 5)) {
PS2loadCD();
}
#endif
PS2loadMinimal is as follows:
Code:
#ifndef __PS2SDK_1_1__
#include <stdio.h>
#endif
#include <tamtypes.h>
#include <sifrpc.h>
#include <kernel.h>
#include <loadfile.h>
#include <fileio.h>
#include <errno.h>
#include <debug.h>
#include <iopcontrol.h>
#include "cdvd_rpc.h"
//Declare usbd module //
extern unsigned char usbd[];
extern unsigned int size_usbd;
//Declare usbhdfsd module //
extern unsigned char usbhdfsd[];
extern unsigned int size_usbhdfsd;
// cdfs IRX
extern unsigned char cdvd[];
extern unsigned int size_cdvd;
// adds support for basic I/O such as MC
void PS2loadMinimal() {
int ret;
ret = SifLoadModule("rom0:XSIO2MAN", 0, NULL);
ret = SifLoadModule("rom0:XMCMAN", 0, NULL);
#ifdef DEBUG_PS2
if (ret < 0) {
printf("Error '%d' loading module rom0:MCMAN\n", ret);
}
#endif
ret = SifLoadModule("rom0:XMCSERV", 0, NULL);
ret = SifLoadModule("rom0:XPADMAN", 0, NULL);
ret = SifLoadModule("rom0:XIOMAN", 0, NULL);
//mcInit(MC_TYPE_MC);
}
// usb mass support
void PS2loadUSB() {
int ret;
SifExecModuleBuffer(usbd, size_usbd, 0, NULL, &ret);
SifExecModuleBuffer(usbhdfsd, size_usbhdfsd, 0, NULL, &ret);
}
void PS2loadCD() {
int ret;
SifExecModuleBuffer(cdvd, size_cdvd, 0, NULL, &ret);
CDVD_Init();
}
I can't see my error, can you please just take a look on this?
I've got all this code from exemples here and there, I've found on forums, but maybe it is old/outdated/wrong.
Thanks in advance.