Subversion Repositories pspware

Rev

Rev 345 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 345 Rev 350
Line 21... Line 21...
21
#include <time.h>
21
#include <time.h>
22
#include <stdlib.h>
22
#include <stdlib.h>
23
#include <string.h>
23
#include <string.h>
24
#include <unistd.h>
24
#include <unistd.h>
25
#include <stdio.h>
25
#include <stdio.h>
-
 
26
#include <stdarg.h>
26
27
27
#include "sio.h"
28
#include "sio.h"
28
29
29
/* Define the module info section */
30
/* Define the module info section */
30
PSP_MODULE_INFO("LUABOOT", 0x1000, 1, 1);
31
PSP_MODULE_INFO(LUABOOT, 0x1000, 1, 1);
31
PSP_MAIN_THREAD_ATTR(0);
32
PSP_MAIN_THREAD_ATTR(0);
32
PSP_MAIN_THREAD_STACK_SIZE_KB(32);
33
PSP_MAIN_THREAD_STACK_SIZE_KB(32);
33
PSP_HEAP_SIZE_KB(32);
34
PSP_HEAP_SIZE_KB(32);
34
35
35
// startup path
36
// startup path
36
char path[256];
37
char path[256];
37
38
38
int debugOutput(const char *buff, int size)
39
int debugOutput(const char *format, ...)
39
{
40
{
-
 
41
        va_list opt;
-
 
42
        char buffer[2048];
-
 
43
        int bufsz;
-
 
44
40
        static int debugInitialized = 0;
45
        static int debugInitialized = 0;
41
        if(!buff) {
46
        if(!format) {
42
                debugInitialized = 0;
47
                debugInitialized = 0;
43
                return 0;
48
                return 0;
44
        }
49
        }
45
        if (!debugInitialized) {
50
        if (!debugInitialized) {
46
                //disableGraphics();
51
                //disableGraphics();
47
                pspDebugScreenInit();
52
                pspDebugScreenInit();
48
                debugInitialized = 1;
53
                debugInitialized = 1;
49
        }
54
        }
-
 
55
        va_start(opt, format);
-
 
56
        bufsz = vsnprintf( buffer, (size_t) sizeof(buffer), format, opt);
50
        return pspDebugScreenPrintData(buff, size);
57
        return pspDebugScreenPrintData(buffer, bufsz);
51
}
58
}
52
59
-
 
60
53
int loadModule( char * moduleLocation )
61
int loadModule( char * moduleLocation )
54
{
62
{
55
        char path[256];
63
        char path[256];
56
        getcwd(path, 256);
64
        getcwd(path, 256);
57
        strcat(path, moduleLocation );
65
        strcat(path, moduleLocation );
58
66
59
        int retVal = sceKernelLoadModule( path, 0, NULL );
67
        int retVal = sceKernelLoadModule( path, 0, NULL );
60
        if (retVal < 0)
68
        if (retVal < 0)
61
        {
69
        {
62
                debugOutput("Error: loadModule luaplayer.prx\n", 33);          
70
                debugOutput("Error: loadModule %s %x\n", path, retVal);
63
                debugOutput( path, strlen(path) );
71
                debugOutput("Loading from %s\n", path );
64
                return retVal;
72
                return retVal;
65
        }
73
        }
66
74
67
        int fd;
75
        int fd;
68
        retVal = sceKernelStartModule( retVal, strlen(path)+1, path, &fd, NULL );
76
        retVal = sceKernelStartModule( retVal, strlen(path)+1, path, &fd, NULL );
69
        if ( retVal < 0 )
77
        if ( retVal < 0 )
70
        {
78
        {
71
                debugOutput("Error: strtModule luaplayer.prx\n", 33);          
79
                debugOutput("Error: strtModule %s %x\n", path, retVal);
72
                return retVal;
80
                return retVal;
73
        }
81
        }
74
82
75
        return 0;
83
        return 0;
76
}
84
}
77
85
78
int main( int argc, void **argp )
86
int main( SceSize args, void *argp )
79
{
87
{
80
        pspSdkInstallNoDeviceCheckPatch();
88
        pspSdkInstallNoDeviceCheckPatch();
81
        pspSdkInstallNoPlainModuleCheckPatch();
89
        pspSdkInstallNoPlainModuleCheckPatch();
-
 
90
        registerSIODriver();
-
 
91
       
82
92
83
        getcwd(path, 256);
93
        getcwd(path, 256);
84
        int err = pspSdkLoadInetModules();
94
        int err = pspSdkLoadInetModules();
85
        if (err != 0) {
95
        if (err != 0) {
86
                pspDebugScreenInit();
96
                pspDebugScreenInit();
87
                pspDebugScreenPrintf("pspSdkLoadInetModules failed with %x\n", err);
97
                pspDebugScreenPrintf("pspSdkLoadInetModules failed with %x\n", err);
88
                sceKernelDelayThread(5*1000000); // 5 sec to read error
98
                sceKernelDelayThread(5*1000000); // 5 sec to read error
89
        }
99
        }
90
100
91
        int retVal = loadModule( "/luaplayer.prx" );
101
        int retVal = loadModule( "/loadlib.prx" );
92
        if (retVal < 0)
102
        if (retVal < 0 )
93
        {
103
        {
94
                debugOutput("Error: failed loadModule luaplayer.prx\n", 31);
104
                debugOutput("Error: failed loadModule loadlib.prx\n");
95
                sceKernelSleepThread();
105
                sceKernelSleepThread();
96
        }
106
        }
97
       
107
-
 
108
        retVal = loadModule( "/luaplayer.prx" );
-
 
109
        if (retVal < 0)
-
 
110
        {
-
 
111
                debugOutput("Error: failed loadModule luaplayer.prx\n");
98
        sceKernelSleepThread();
112
                sceKernelSleepThread();
99
        return 0;
-
 
100
}
113
        }
101
/*
-
 
102
__attribute__((constructor)) void stdoutInit()
-
 
103
{
-
 
104
        //pspKernelSetKernelPC();
-
 
105
        pspSdkInstallNoDeviceCheckPatch();
-
 
106
        pspSdkInstallNoPlainModuleCheckPatch();
-
 
107
        //pspKernelSetKernelPC();
-
 
108
        //pspKernelSetKernelPC();
-
 
109
        //pspSdkInstallNoDeviceCheckPatch();
-
 
110
        //pspDebugInstallKprintfHandler(NULL);
-
 
111
        registerSIODriver();
-
 
112

114
113
        // ignore startup messages from kernel, but install the tty driver in kernel mode
115
        sceKernelSleepThread();
114
        //pspDebugInstallStdoutHandler(nullOutput);
116
        return 0;
115
}
117
}
116
*/
118