mirror of
https://github.com/joel16/uofw.git
synced 2024-11-23 11:39:50 +00:00
Fixes in ctrl & me_wrapper to make them compile, and some other various stuff
This commit is contained in:
parent
595484d5cb
commit
d44a19db42
@ -25,7 +25,13 @@ typedef struct
|
||||
int unk64;
|
||||
int unk68;
|
||||
int unk72;
|
||||
// ...
|
||||
int unk76;
|
||||
int unk80;
|
||||
int unk84;
|
||||
int unk88;
|
||||
int unk92;
|
||||
int unk96;
|
||||
int unk100;
|
||||
void *allocMem; // 104
|
||||
} SceAudiocodecCodec;
|
||||
|
@ -19,12 +19,6 @@
|
||||
#ifndef CTRL_H
|
||||
#define CTRL_H
|
||||
|
||||
#include "../common/common.h"
|
||||
#include "../sysmem/sysclib.h"
|
||||
#include "../systimer/systimer.h"
|
||||
#include <pspsysmem_kernel.h>
|
||||
#include <pspmodulemgr.h>
|
||||
|
||||
/** The callback function used by ::sceCtrlSetSpecialButtonCallback. */
|
||||
typedef void (*SceCtrlCb)(int currBtns, int lastBtns, void *opt);
|
||||
|
||||
@ -196,28 +190,28 @@ enum pspCtrlPadButtonMaskMode {
|
||||
*
|
||||
* @return 0 on success, otherwise < 0.
|
||||
*/
|
||||
int sceCtrlInit();
|
||||
int sceCtrlInit(void);
|
||||
|
||||
/**
|
||||
* Terminate the controller library.
|
||||
*
|
||||
* @return 0.
|
||||
*/
|
||||
int sceCtrlEnd();
|
||||
int sceCtrlEnd(void);
|
||||
|
||||
/**
|
||||
* Suspend the controller library.
|
||||
*
|
||||
* @return 0.
|
||||
*/
|
||||
int sceCtrlSuspend();
|
||||
int sceCtrlSuspend(void);
|
||||
|
||||
/**
|
||||
* Resume the controller library after it has been suspended.
|
||||
*
|
||||
* @return 0.
|
||||
*/
|
||||
int sceCtrlResume();
|
||||
int sceCtrlResume(void);
|
||||
|
||||
/**
|
||||
* Enable/disable controller input.
|
||||
@ -297,7 +291,7 @@ int sceCtrlSetIdleCancelThreshold(int idlereset, int idleback);
|
||||
*
|
||||
* @return The number of VBlanks.
|
||||
*/
|
||||
short int sceCtrlGetSuspendingExtraSamples();
|
||||
short int sceCtrlGetSuspendingExtraSamples(void);
|
||||
|
||||
/**
|
||||
* Set a number of VBlanks for which will be waited when terminating the controller library.
|
||||
@ -308,6 +302,11 @@ short int sceCtrlGetSuspendingExtraSamples();
|
||||
*/
|
||||
int sceCtrlSetSuspendingExtraSamples(short int suspendSamples);
|
||||
|
||||
typedef struct _ctrlUnkStruct {
|
||||
int unk1;
|
||||
int (*func)(int);
|
||||
} ctrlUnkStruct;
|
||||
|
||||
/**
|
||||
* Extend the 64 internal controller buffers to represent SceCtrlDataExt structures.
|
||||
* By default, an internal controller buffer is equivalent to a SceCtrlData structure. This function has to be called before using
|
@ -1,3 +1,22 @@
|
||||
/* Copyright (C) 2011, 2012 The uOFW team
|
||||
See the file COPYING for copying permission.
|
||||
*/
|
||||
|
||||
#define PSP_O_RDONLY 0x0001
|
||||
#define PSP_O_WRONLY 0x0002
|
||||
#define PSP_O_RDWR (PSP_O_RDONLY | PSP_O_WRONLY)
|
||||
#define PSP_O_NBLOCK 0x0004
|
||||
#define PSP_O_DIROPEN 0x0008 // Internal use for dopen
|
||||
#define PSP_O_APPEND 0x0100
|
||||
#define PSP_O_CREAT 0x0200
|
||||
#define PSP_O_TRUNC 0x0400
|
||||
#define PSP_O_EXCL 0x0800
|
||||
#define PSP_O_NOWAIT 0x8000
|
||||
|
||||
#define PSP_SEEK_SET 0
|
||||
#define PSP_SEEK_CUR 1
|
||||
#define PSP_SEEK_END 2
|
||||
|
||||
struct SceIoDeviceArg;
|
||||
typedef struct SceIoDeviceArg SceIoDeviceArg;
|
||||
struct SceIoIob;
|
3
include/sysmem_suspend_kernel.h
Normal file
3
include/sysmem_suspend_kernel.h
Normal file
@ -0,0 +1,3 @@
|
||||
int sceKernelRegisterResumeHandler(int reg, int (*handler)(int unk, void *param), void *param);
|
||||
int sceKernelRegisterSuspendHandler(int reg, int (*handler)(int unk, void *param), void *param);
|
||||
|
@ -17,6 +17,3 @@ int sceKernelIsRegisterSysEventHandler(SceSysEventHandler* handler);
|
||||
int sceKernelRegisterSysEventHandler(SceSysEventHandler* handler);
|
||||
SceSysEventHandler *sceKernelReferSysEventHandler(void);
|
||||
|
||||
int sceKernelRegisterResumeHandler(int reg, int (*handler)(int unk, void *param), void *param);
|
||||
int sceKernelRegisterSuspendHandler(int reg, int (*handler)(int unk, void *param), void *param);
|
||||
|
13
include/systimer.h
Normal file
13
include/systimer.h
Normal file
@ -0,0 +1,13 @@
|
||||
typedef int SceSysTimerId;
|
||||
typedef int (*SceSysTimerCb)(int, int, int, int);
|
||||
|
||||
int sceSTimerSetPrscl(SceSysTimerId timerId, int arg1, int arg2);
|
||||
int sceSTimerAlloc(void);
|
||||
int sceSTimerSetHandler(SceSysTimerId timerId, int arg1, SceSysTimerCb arg2, int arg3);
|
||||
int sceSTimerStartCount(SceSysTimerId timerId);
|
||||
int sceSTimerGetCount(SceSysTimerId timerId, int *arg1);
|
||||
int sceSTimerResetCount(SceSysTimerId timerId);
|
||||
int sceSTimerSetTMCY(SceSysTimerId timerId, int arg1);
|
||||
int sceSTimerStopCount(SceSysTimerId timerId);
|
||||
int sceSTimerFree(SceSysTimerId timerId);
|
||||
|
@ -3,20 +3,19 @@
|
||||
|
||||
include ../../lib/common.mak
|
||||
|
||||
PSPSDK = `psp-config --pspsdk-path`
|
||||
PSPSDK = $(shell psp-config --pspsdk-path)
|
||||
CFLAGS := -I../../include -O1 -fno-toplevel-reorder -G0 -Wall -Wextra -Werror -fno-builtin -nostdlib -I$(PSPSDK)/include
|
||||
LDFLAGS := -L../../lib -specs=../../lib/prxspecs -Wl,-q,-T../../lib/linkfile.prx
|
||||
LDFLAGS := -L../../lib -specs=../../lib/prxspecs -Wl,-q,-T../../lib/linkfile.prx -L$(PSPSDK)/lib
|
||||
|
||||
# Setup default exports if needed
|
||||
ifdef PRX_EXPORTS
|
||||
EXPORT_OBJ=$(patsubst %.exp,%.o,$(PRX_EXPORTS))
|
||||
else
|
||||
$(error You have to define PRX_EXPORTS in your Makefile)
|
||||
endif
|
||||
FIXUP_IMPORTS = ../../utils/fixup-imports/psp-fixup-imports
|
||||
BUILD_EXPORTS = ../../utils/build-exports/psp-build-exports
|
||||
PRXGEN = psp-prxgen
|
||||
|
||||
PRX_EXPORTS = exports.exp
|
||||
|
||||
ifdef DEBUG
|
||||
CFLAGS += -DDEBUG
|
||||
LIBS := -ldebug $(LIBS) -lSysclibForKernel
|
||||
LIBS := -ldebug -lpspdebug $(LIBS) -lSysclibForKernel -lsceDisplay -lsceGe_user -lIoFileMgrForUser
|
||||
endif
|
||||
|
||||
MODULE_STUBS=$(foreach mod,$(MODULES), $($(mod)_STUBS))
|
||||
@ -25,31 +24,30 @@ all: $(TARGET).prx
|
||||
|
||||
$(TARGET).elf: $(OBJS) $(EXPORT_OBJ)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||
../../utils/fixup-imports/psp-fixup-imports $@
|
||||
$(FIXUP_IMPORTS) $@
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $^ -o $@ $(CFLAGS)
|
||||
|
||||
%.prx: %.elf
|
||||
#../../utils/kprxgen/psp-kprxgen $< $@
|
||||
psp-prxgen $< $@
|
||||
$(PRXGEN) $< $@
|
||||
|
||||
$(PRX_EXPORTS:.exp=.c): $(PRX_EXPORTS)
|
||||
../../utils/build-exports/psp-build-exports -b $< > $@
|
||||
$(BUILD_EXPORTS) -b $< > $@
|
||||
|
||||
clean:
|
||||
-rm -f $(TARGET).prx $(TARGET).elf $(EXPORT_OBJ) $(OBJS)
|
||||
-$(RM) $(TARGET).prx $(TARGET).elf $(EXPORT_OBJ) $(OBJS)
|
||||
|
||||
rebuild: clean all
|
||||
|
||||
Makefile.exp: $(PRX_EXPORTS)
|
||||
cat ../../lib/build_stubs.mak > Makefile.exp
|
||||
../../utils/build-exports/psp-build-exports -k $< >> Makefile.exp
|
||||
$(BUILD_EXPORTS) -k $< >> Makefile.exp
|
||||
|
||||
exp: Makefile.exp
|
||||
make -f Makefile.exp
|
||||
|
||||
exp-clean:
|
||||
make -f Makefile.exp clean
|
||||
-rm -f Makefile.exp
|
||||
-$(RM) Makefile.exp
|
||||
|
||||
|
BIN
lib/libdebug.a
BIN
lib/libdebug.a
Binary file not shown.
Binary file not shown.
BIN
lib/libsceDmac.a
BIN
lib/libsceDmac.a
Binary file not shown.
Binary file not shown.
BIN
lib/libsceGe_driver.a
Normal file
BIN
lib/libsceGe_driver.a
Normal file
Binary file not shown.
BIN
lib/libsceGe_user.a
Normal file
BIN
lib/libsceGe_user.a
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -6,7 +6,5 @@ OBJS = audio.o
|
||||
|
||||
LIBS = -lsceCodec_driver -lInterruptManager -lInterruptManagerForKernel -lSysclibForKernel -lThreadManForUser -lsceSysEventForKernel -lSysMemForKernel -lDmacManForKernel -lsceDdr_driver -lsceSysreg_driver -lsceClockgen_driver -lUtilsForKernel
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -3,9 +3,11 @@
|
||||
*/
|
||||
|
||||
#include "../common/common.h"
|
||||
#include "../sysmem/sysmem.h"
|
||||
#include "../sysmem/sysclib.h"
|
||||
#include "../codec/codec.h"
|
||||
|
||||
#include "codec.h"
|
||||
#include "sysmem_sysclib.h"
|
||||
#include "sysmem_sysevent.h"
|
||||
|
||||
#include "audio.h"
|
||||
|
||||
#include <pspsdk.h>
|
||||
|
83
src/avcodec/exports.exp
Normal file
83
src/avcodec/exports.exp
Normal file
@ -0,0 +1,83 @@
|
||||
# Export file automatically generated with prxtool
|
||||
PSP_BEGIN_EXPORTS
|
||||
|
||||
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
|
||||
PSP_EXPORT_FUNC_HASH(module_start)
|
||||
PSP_EXPORT_FUNC_HASH(module_stop)
|
||||
PSP_EXPORT_VAR_HASH(module_info)
|
||||
PSP_EXPORT_VAR_HASH(module_sdk_version)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceAvcodec_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(sceAvcodecStartEntry)
|
||||
PSP_EXPORT_FUNC_HASH(sceAvcodecEndEntry)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceVideocodec, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecGetFrameCrop)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecGetVersion)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecGetEDRAM)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecScanHeader)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecDelete)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecReleaseEDRAM)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecGetSEI)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecSetMemory)
|
||||
PSP_EXPORT_FUNC_NID(sceVideocodec_893B32B1, 0x893B32B1)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecStop)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecOpen)
|
||||
PSP_EXPORT_FUNC_NID(sceVideocodec_D95C24D5, 0xD95C24D5)
|
||||
PSP_EXPORT_FUNC_HASH(sceVideocodecDecode)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceAudiocodec, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecReleaseEDRAM)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecGetEDRAM)
|
||||
PSP_EXPORT_FUNC_NID(sceAudiocodec_3DD7EE1A, 0x3DD7EE1A)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecAlcExtendParameter)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecDecode)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecGetInfo)
|
||||
PSP_EXPORT_FUNC_HASH(sceAudiocodecCheckNeedMem)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceMpegbase, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_NID(sceMpegbase_0530BE4E, 0x0530BE4E)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvcRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopy)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvc)
|
||||
PSP_EXPORT_FUNC_NID(sceMpegbase_AC9E717E, 0xAC9E717E)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopyVme)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBasePESpacketCopy)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscVme)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceMpegbase_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceMpegbase_driver_0530BE4E, 0x0530BE4E)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvcRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopy)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvc)
|
||||
PSP_EXPORT_FUNC_NID(sceMpegbase_driver_AC9E717E, 0xAC9E717E)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopyVme)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBasePESpacketCopy)
|
||||
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscVme)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceJpeg, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegMJpegCsc)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpeg)
|
||||
PSP_EXPORT_FUNC_NID(sceJpeg_227662D7, 0x227662D7)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegDeleteMJpeg)
|
||||
PSP_EXPORT_FUNC_NID(sceJpeg_64B6F978, 0x64B6F978)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegCsc)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegFinishMJpeg)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegGetOutputInfo)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpegYCbCr)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegCreateMJpeg)
|
||||
PSP_EXPORT_FUNC_NID(sceJpeg_A06A75C4, 0xA06A75C4)
|
||||
PSP_EXPORT_FUNC_HASH(sceJpegInitMJpeg)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_END_EXPORTS
|
@ -4,7 +4,5 @@
|
||||
TARGET = codec
|
||||
OBJS = codec.o
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -27,3 +27,9 @@ static inline void pspBreak(int op)
|
||||
asm("break %0" : : "ri" (op));
|
||||
}
|
||||
|
||||
static inline void pspHalt(void)
|
||||
{
|
||||
/* The 'HALT' instruction */
|
||||
asm(".word 0x70000000");
|
||||
}
|
||||
|
||||
|
@ -4,10 +4,8 @@
|
||||
#include <pspinit.h>
|
||||
#include <pspintrman.h>
|
||||
#include <pspintrman_kernel.h>
|
||||
#include <pspsysevent.h>
|
||||
#include <pspsysmem.h>
|
||||
#include <pspsysmem_kernel.h>
|
||||
#include <pspsystimer.h>
|
||||
#include <pspthreadman.h>
|
||||
#include <pspthreadman_kernel.h>
|
||||
#include <psputils.h>
|
||||
@ -119,6 +117,26 @@ int sceSysregAwResetDisable(void);
|
||||
|
||||
int sceSysregSetMasterPriv(int, int);
|
||||
int sceSysregSetAwEdramSize(int);
|
||||
int sceSysregIntrEnd(void);
|
||||
int sceSysregInterruptToOther(void);
|
||||
|
||||
int sceSysregMeResetEnable(void);
|
||||
int sceSysregMeResetDisable(void);
|
||||
|
||||
int sceSysregMeBusClockEnable(void);
|
||||
int sceSysregMeBusClockDisable(void);
|
||||
|
||||
int sceSysregAvcResetEnable(void);
|
||||
int sceSysregAvcResetDisable(void);
|
||||
|
||||
int sceSysregPllGetFrequency(void);
|
||||
|
||||
int sceSysregGetTachyonVersion(void);
|
||||
|
||||
int sceSysregVmeResetEnable(void);
|
||||
int sceSysregVmeResetDisable(void);
|
||||
|
||||
int sceSysconCtrlTachyonAvcPower(int);
|
||||
|
||||
int DmacManForKernel_E18A93A5(void*, void*);
|
||||
|
||||
@ -134,17 +152,16 @@ typedef struct
|
||||
int (*func)();
|
||||
} SceSysmemUIDLookupFunc;
|
||||
|
||||
//int sceKernelGetUIDcontrolBlockWithType(SceUID uid, SceSysmemUIDControlBlock *type, SceSysmemUIDControlBlock **block);
|
||||
//int sceKernelGetUIDcontrolBlock(SceUID uid, SceSysmemUIDControlBlock **block);
|
||||
SceSysmemUIDControlBlock *sceKernelCreateUIDtype(const char *name, int attr, SceSysmemUIDLookupFunc *funcs, int unk, SceSysmemUIDControlBlock **type);
|
||||
SceUID sceKernelCreateUID(SceSysmemUIDControlBlock *type, const char *name, short attr, SceSysmemUIDControlBlock **block);
|
||||
uidControlBlock *sceKernelCreateUIDtype(const char *name, int attr, SceSysmemUIDLookupFunc *funcs, int unk, uidControlBlock **type);
|
||||
SceUID sceKernelCreateUID(uidControlBlock *type, const char *name, short attr, uidControlBlock **block);
|
||||
int sceKernelDeleteUID(SceUID uid);
|
||||
int sceKernelCallUIDObjCommonFunction(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
int sceKernelCallUIDObjCommonFunction(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
|
||||
void *sceKernelGetUsersystemLibWork(void);
|
||||
void *sceKernelGetGameInfo(void);
|
||||
void *sceKernelGetAWeDramSaveAddr(void);
|
||||
int sceSysregGetTachyonVersion(void);
|
||||
int sceKernelGetMEeDramSaveAddr(void);
|
||||
int sceKernelGetMEeDramSaveSize(void);
|
||||
|
||||
void Kprintf(const char *format, ...);
|
||||
int sceKernelGetUserLevel(void);
|
||||
@ -155,6 +172,12 @@ int sceKernelDebugWrite(SceUID fd, const void *data, SceSize size);
|
||||
int sceKernelDebugRead(SceUID fd, const void *data, SceSize size);
|
||||
int sceKernelDebugEcho(void);
|
||||
|
||||
int UtilsForKernel_6C6887EE(void *outBuf, int outSize, void *inBuf, void **end);
|
||||
|
||||
void *sceKernelMemset32(void *buf, int c, int size);
|
||||
|
||||
int sceWmd_driver_7A0E484C(void *data, int inSize, int *outSize);
|
||||
|
||||
int sceKernelPowerLock(int);
|
||||
int sceKernelPowerLockForUser(int);
|
||||
int sceKernelPowerUnlock(int);
|
||||
@ -163,6 +186,13 @@ int sceKernelPowerTick(int unk);
|
||||
|
||||
int sceKernelSetInitCallback(void *, int, int);
|
||||
|
||||
int sceKernelCreateMutex(char *, int, int, int);
|
||||
int sceKernelTryLockMutex(int, int);
|
||||
int sceKernelLockMutex(int, int, int);
|
||||
int sceKernelUnlockMutex(int, int);
|
||||
|
||||
int sceLfatfsWaitReady(void);
|
||||
|
||||
int sceKernelApplicationType();
|
||||
|
||||
void sceSyscon_driver_B72DDFD2(int);
|
||||
|
@ -48,7 +48,6 @@ static inline int pspGetGp(void)
|
||||
|
||||
static inline void pspSetGp(int gp)
|
||||
{
|
||||
asm("move $zr, $gp");
|
||||
asm("move $gp, %0" : : "r" (gp));
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,5 @@ OBJS = ctrl.o
|
||||
|
||||
LIBS = -lSysMemForKernel -lsceSuspendForKernel -lsceSysEventForKernel -lKDebugForKernel -lInterruptManagerForKernel -lSysclibForKernel -lThreadManForKernel -lSysTimerForKernel -lInitForKernel -lsceDisplay_driver -lsceSyscon_driver
|
||||
|
||||
PRX_EXPORTS = exports.exp
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
325
src/ctrl/ctrl.c
325
src/ctrl/ctrl.c
@ -10,7 +10,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../ctrl/ctrl.h"
|
||||
#include "../common/common.h"
|
||||
|
||||
#include <pspmodulemgr.h>
|
||||
#include "sysmem_sysclib.h"
|
||||
#include "sysmem_sysevent.h"
|
||||
#include "systimer.h"
|
||||
|
||||
#include "ctrl.h"
|
||||
|
||||
/* common defines */
|
||||
|
||||
@ -133,11 +140,6 @@ typedef struct _SceCtrlInternalData {
|
||||
void *sceCtrlBuf[3]; //28
|
||||
} SceCtrlInternalData; //Size of SceCtrlInternalData: 40
|
||||
|
||||
typedef struct _ctrlUnkStruct {
|
||||
int unk1;
|
||||
int (*func)(int);
|
||||
} ctrlUnkStruct;
|
||||
|
||||
typedef struct _SceCtrl {
|
||||
SceSysTimerId timerID; //0
|
||||
int eventFlag; //4
|
||||
@ -193,9 +195,9 @@ typedef struct _SceCtrl {
|
||||
static int _sceCtrlSysEventHandler(int ev_id, char* ev_name, void* param, int* result); //0x00000364
|
||||
static SceUInt _sceCtrlDummyAlarm(void *common); //sub_00001DD8
|
||||
static int _sceCtrlVblankIntr(int subIntNm, void *arg); //sub_00000440
|
||||
static int _sceCtrlTimerIntr(); //sub_00000528
|
||||
static int _sceCtrlSysconCmdIntr1(); //sub_00000610;
|
||||
static int _sceCtrlSysconCmdIntr2(); //sub_00001E4C
|
||||
static int _sceCtrlTimerIntr(int, int, int, int); //sub_00000528
|
||||
static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket); //sub_00000610;
|
||||
static int _sceCtrlSysconCmdIntr2(void); //sub_00001E4C
|
||||
static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY); //sub_00000968
|
||||
static int _sceCtrlReadBuf(SceCtrlDataExt *pad, u8 reqBufReads, int arg3, u8 mode); //sub_00001E70
|
||||
|
||||
@ -207,7 +209,7 @@ SceKernelDeci2Ops ctrlDeci2Ops = { sizeof(SceKernelDeci2Ops), { (void *)sceCtrlG
|
||||
(void *)sceCtrlExtendInternalCtrlBuffers
|
||||
} }; //0x000027F8
|
||||
|
||||
PspSysEventHandler ctrlSysEvent = { sizeof(PspSysEventHandler), "SceCtrl", 0x00FFFF00, _sceCtrlSysEventHandler, 0, 0, NULL,
|
||||
SceSysEventHandler ctrlSysEvent = { sizeof(SceSysEventHandler), "SceCtrl", 0x00FFFF00, _sceCtrlSysEventHandler, 0, 0, NULL,
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; //0x00002850
|
||||
|
||||
SceCtrlData g_2BB0; //0x00002BB0
|
||||
@ -218,12 +220,11 @@ SceCtrlData g_2FB0; //0x00002FB0
|
||||
* Subroutine sceCtrl_driver_121097D5 - Address 0x00000000
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrlInit() {
|
||||
int sceCtrlInit(void) {
|
||||
int eventId;
|
||||
int keyConfig;
|
||||
SceSysTimerId timerId;
|
||||
u32 supportedUserButtons;
|
||||
int unk_2;
|
||||
void (*func)(SceKernelDeci2Ops *);
|
||||
int *retPtr;
|
||||
int pspModel;
|
||||
@ -274,19 +275,13 @@ int sceCtrlInit() {
|
||||
ctrl.maskSupportButtons = supportedUserButtons; //0x00000104
|
||||
|
||||
pspModel = sceKernelGetModel();
|
||||
if (pspModel < 11) { //0x0000010C
|
||||
switch (pspModel) { //0x00000128
|
||||
case 0: case 1: case 2: case 3: case 6: case 8: case 10:
|
||||
unk_2 = 0x1FFF3F9; //0x00000130 & 0x00000138
|
||||
break;
|
||||
case 4: case 5: case 7: case 9:
|
||||
unk_2 = CTRL_ALL_SUPPORTED_BUTTONS; //0x000001EC & 0x00000138
|
||||
ctrl.unk_4 = CTRL_ALL_SUPPORTED_BUTTONS; //0x000001EC & 0x00000138
|
||||
break;
|
||||
default: //0x0000010C -> 0x000001F0
|
||||
ctrl.unk_4 = 0x1FFF3F9; //0x00000130 & 0x00000138
|
||||
break;
|
||||
}
|
||||
ctrl.unk_4 = unk_2; //0x0000013C
|
||||
}
|
||||
else { //0x000001F0
|
||||
ctrl.unk_4 = 0x1FFF3F9; //0x00000110 & 0x000001F0
|
||||
}
|
||||
ctrl.unk_5 = CTRL_ALL_SUPPORTED_BUTTONS; //0x00000168
|
||||
ctrl.unk_6 = 0xF1F3F9; //0x00000174
|
||||
@ -311,7 +306,7 @@ int sceCtrlInit() {
|
||||
* Subroutine sceCtrl_driver_1A1A7D40 - Address 0x0000020C
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrlEnd() {
|
||||
int sceCtrlEnd(void) {
|
||||
SceSysTimerId timerId;
|
||||
int sysconStatus;
|
||||
|
||||
@ -348,7 +343,7 @@ int sceCtrlEnd() {
|
||||
* Subroutine sceCtrl_driver_55497589 - Address 0x00001A50
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrlSuspend() {
|
||||
int sceCtrlSuspend(void) {
|
||||
int cycle;
|
||||
|
||||
cycle = ctrl.btnCycle; //0x00001A58
|
||||
@ -365,7 +360,7 @@ int sceCtrlSuspend() {
|
||||
* Subroutine sceCtrl_driver_33D03FD5 - Address 0x000002AC
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrlResume() {
|
||||
int sceCtrlResume(void) {
|
||||
int retVal;
|
||||
int prevButtons;
|
||||
|
||||
@ -408,12 +403,9 @@ int sceCtrlSetPollingMode(PspCtrlPadPollMode pollMode) {
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
PspCtrlPadInputMode sceCtrlGetSamplingMode(PspCtrlPadInputMode *mode) {
|
||||
int oldK1;
|
||||
int index;
|
||||
|
||||
oldK1 = pspShiftK1(); //0x00001330
|
||||
int oldK1 = pspShiftK1(); //0x00001330
|
||||
if (pspK1PtrOk(mode)) { //0x00001348 & 0x00001350
|
||||
*mode = ctrl.samplingMode[index]; //0x00001358 & 0x0000135C
|
||||
*mode = ctrl.samplingMode[!pspK1IsUserMode()]; //0x00001358 & 0x0000135C
|
||||
}
|
||||
pspSetK1(oldK1);
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
@ -483,8 +475,7 @@ int sceCtrlSetSamplingCycle(u32 cycle) {
|
||||
sceSTimerSetHandler(ctrl.timerID, 0, NULL, 0); //0x00001478
|
||||
sceSTimerStopCount(ctrl.timerID); //0x00001480
|
||||
}
|
||||
else {
|
||||
if (cycle < CTRL_BUFFER_UPDATE_MIN_CUSTOM_CYCLES || cycle > CTRL_BUFFER_UPDATE_MAX_CUSTOM_CYCLES) { //0x000013B4 & 0x000013B8
|
||||
else if (cycle < CTRL_BUFFER_UPDATE_MIN_CUSTOM_CYCLES || cycle > CTRL_BUFFER_UPDATE_MAX_CUSTOM_CYCLES) { //0x000013B4 & 0x000013B8
|
||||
return SCE_ERROR_INVALID_VALUE; //0x0000138C & 0x000013C0
|
||||
}
|
||||
/* register our new Timer-Update process and disable the VBlank-Interrupt-Update process. */
|
||||
@ -501,7 +492,6 @@ int sceCtrlSetSamplingCycle(u32 cycle) {
|
||||
sceSTimerSetHandler(ctrl.timerID, nCycle, _sceCtrlTimerIntr, 0); //0x00001408 & 0x00001444
|
||||
sceKernelDisableSubIntr(PSP_VBLANK_INT, 0x13); //0x00001450
|
||||
}
|
||||
}
|
||||
sceKernelCpuResumeIntr(suspendFlag); //0x000013D8
|
||||
pspSetK1(oldK1); //0x000013E4
|
||||
return prevCycle; //0x000013E0
|
||||
@ -544,8 +534,7 @@ int sceCtrlGetIdleCancelThreshold(int *idleReset, int *idleBack) {
|
||||
*/
|
||||
int sceCtrlSetIdleCancelThreshold(int idlereset, int idleback) {
|
||||
int suspendFlag;
|
||||
|
||||
if ((idlereset < -1 && idlereset > 128) && (idleback < -1 && idleback > 128)) { //0x000016A0 & 0x000016B4 & 0x000016C8
|
||||
if (((idlereset < -1 || idlereset > 128) && idleback < -1) || idleback > 128) { //0x000016A0 & 0x000016B4 & 0x000016C8
|
||||
return SCE_ERROR_INVALID_VALUE; //0x000016A8 & 0x000016AC & 0x00001700
|
||||
}
|
||||
suspendFlag = sceKernelCpuSuspendIntr(); //0x000016D0
|
||||
@ -562,7 +551,7 @@ int sceCtrlSetIdleCancelThreshold(int idlereset, int idleback) {
|
||||
* Exported in sceCtrl
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
short int sceCtrlGetSuspendingExtraSamples() {
|
||||
short int sceCtrlGetSuspendingExtraSamples(void) {
|
||||
short int curSuspendSamples;
|
||||
|
||||
curSuspendSamples = ctrl.suspendSamples; //0x00001C74
|
||||
@ -900,34 +889,28 @@ PspCtrlPadButtonMaskMode sceCtrlGetButtonIntercept(u32 btnMask) {
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
PspCtrlPadButtonMaskMode sceCtrlSetButtonIntercept(u32 mask, PspCtrlPadButtonMaskMode buttonMaskMode) {
|
||||
int curMaskSupBtns = ctrl.maskSupportButtons;
|
||||
int newMaskSupBtns;
|
||||
int curMaskSetBtns = ctrl.maskSetButtons;
|
||||
int newMaskSetBtns;
|
||||
int suspendFlag;
|
||||
PspCtrlPadButtonMaskMode prevBtnMaskMode = PSP_CTRL_MASK_IGNORE_BUTTON_MASK;
|
||||
|
||||
suspendFlag = sceKernelCpuSuspendIntr(); //0x000017E0
|
||||
|
||||
if (mask & curMaskSupBtns) { //0x00001800
|
||||
prevBtnMaskMode = (mask & curMaskSetBtns) ? PSP_CTRL_MASK_SET_BUTTON_MASK : PSP_CTRL_MASK_DELETE_BUTTON_MASK_SETTING; //0x00001808 & 0x00001810
|
||||
if (mask & ctrl.maskSupportButtons) { //0x00001800
|
||||
prevBtnMaskMode = (mask & ctrl.maskSetButtons) ? PSP_CTRL_MASK_SET_BUTTON_MASK : PSP_CTRL_MASK_DELETE_BUTTON_MASK_SETTING; //0x00001808 & 0x00001810
|
||||
}
|
||||
if (buttonMaskMode != PSP_CTRL_MASK_DELETE_BUTTON_MASK_SETTING) { //0x00001814
|
||||
if (buttonMaskMode == PSP_CTRL_MASK_IGNORE_BUTTON_MASK) { //0x00001818 & 0x00001850
|
||||
newMaskSupBtns = curMaskSupBtns & ~mask; //0x00001854 & 0x00001874
|
||||
newMaskSetBtns = curMaskSetBtns & ~mask; //0x00001850 & 0x0000186C
|
||||
ctrl.maskSupportButtons &= ~mask; //0x00001854 & 0x00001874
|
||||
ctrl.maskSetButtons &= ~mask; //0x00001850 & 0x0000186C
|
||||
}
|
||||
else if (buttonMaskMode == PSP_CTRL_MASK_SET_BUTTON_MASK) { //0x0000185C
|
||||
newMaskSupBtns = curMaskSupBtns | mask; //0x00001868
|
||||
newMaskSetBtns = curMaskSetBtns | mask; //0x00001820
|
||||
ctrl.maskSupportButtons |= mask; //0x00001868
|
||||
ctrl.maskSetButtons |= mask; //0x00001820
|
||||
}
|
||||
}
|
||||
else {
|
||||
newMaskSetBtns = curMaskSetBtns & ~mask; //0x000017F8 & 0x00001804 & 0x0000181C
|
||||
newMaskSupBtns = curMaskSupBtns | mask; //0x000017E4 & 0x000017F0 & 0x00001820
|
||||
ctrl.maskSupportButtons &= ~mask; //0x000017F8 & 0x00001804 & 0x0000181C
|
||||
ctrl.maskSetButtons |= mask; //0x000017E4 & 0x000017F0 & 0x00001820
|
||||
}
|
||||
ctrl.maskSupportButtons = newMaskSupBtns; //0x00001828
|
||||
ctrl.maskSetButtons = newMaskSetBtns; //0x00001830
|
||||
|
||||
sceKernelCpuResumeIntr(suspendFlag); //0x0000182C
|
||||
return prevBtnMaskMode;
|
||||
@ -958,7 +941,7 @@ int sceCtrlSetSpecialButtonCallback(u32 slot, u32 btnMask, SceCtrlCb cb, void *o
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrl_driver_6C86AF22(int *arg0) {
|
||||
ctrl.unk_9 = arg0; //0x00001AB4
|
||||
ctrl.unk_9 = (int)arg0; //0x00001AB4
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
}
|
||||
|
||||
@ -1008,13 +991,13 @@ int sceCtrl_driver_5886194C(char arg1) {
|
||||
* sceCtrl_driver_365BE224 - Address 0x00001D94
|
||||
* Exported in sceCtrl_driver
|
||||
*/
|
||||
int sceCtrlUpdateCableTypeReq() {
|
||||
int sceCtrlUpdateCableTypeReq(void) {
|
||||
ctrl.unk_Byte_0 = 1; //0x00001D9C
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
}
|
||||
|
||||
//0x00000364
|
||||
int _sceCtrlSysEventHandler(int ev_id, char* ev_name, void* param, int* result) {
|
||||
int _sceCtrlSysEventHandler(int ev_id, char* ev_name __attribute__((unused)), void* param __attribute__((unused)), int* result __attribute__((unused))) {
|
||||
int sysconStatus;
|
||||
int status;
|
||||
|
||||
@ -1061,7 +1044,7 @@ int _sceCtrlSysEventHandler(int ev_id, char* ev_name, void* param, int* result)
|
||||
*
|
||||
* @return 0.
|
||||
*/
|
||||
static SceUInt _sceCtrlDummyAlarm(void *common) {
|
||||
static SceUInt _sceCtrlDummyAlarm(void *common __attribute__((unused))) {
|
||||
int suspendFlag;
|
||||
u32 pureButtons;
|
||||
|
||||
@ -1086,7 +1069,7 @@ static SceUInt _sceCtrlDummyAlarm(void *common) {
|
||||
*
|
||||
* @return -1.
|
||||
*/
|
||||
static int _sceCtrlVblankIntr(int subIntNm, void *arg) {
|
||||
static int _sceCtrlVblankIntr(int subIntNm __attribute__((unused)), void *arg __attribute__((unused))) {
|
||||
int suspendFlag;
|
||||
int retVal;
|
||||
|
||||
@ -1135,7 +1118,7 @@ static int _sceCtrlVblankIntr(int subIntNm, void *arg) {
|
||||
*
|
||||
* @return -1.
|
||||
*/
|
||||
static int _sceCtrlTimerIntr() {
|
||||
static int _sceCtrlTimerIntr(int unused0 __attribute__((unused)), int unused1 __attribute__((unused)), int unused2 __attribute__((unused)), int unused3 __attribute__((unused))) {
|
||||
u8 sysconReqCtrlData;
|
||||
int suspendFlag;
|
||||
int retVal;
|
||||
@ -1183,12 +1166,6 @@ static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket) {
|
||||
u32 pureButtons;
|
||||
int suspendFlag;
|
||||
int res;
|
||||
int unk1;
|
||||
int unk2;
|
||||
int unk3;
|
||||
int unk4;
|
||||
int unk5;
|
||||
int unk6;
|
||||
u32 nButtons;
|
||||
u32 tmpButtons;
|
||||
u8 analogX;
|
||||
@ -1217,80 +1194,41 @@ static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket) {
|
||||
}
|
||||
//TODO: Reverse of sceSysconCmdExecAsync to get structure members!
|
||||
else {
|
||||
unk1 = *(u8 *)(sysPacket + 12); //0x00000658
|
||||
unk2 = unk1 ^ 0x2; //0x0000065C
|
||||
unk3 = unk1 ^ 0x6; //0x00000660
|
||||
|
||||
unk2 = (unk2 < 1); //0x00000664
|
||||
unk3 = (unk3 < 1); //0x00000668
|
||||
|
||||
if ((unk2 | unk3) == 0) { //0x00000670
|
||||
nButtons = ctrl.pureButtons; //0x00000674 & 0x000008A8
|
||||
tmpButtons = nButtons; //Backup old pureButtons
|
||||
if ((unk1 - 7) < 2) { //0x000008A4
|
||||
unk2 = sysPacket->rx_data[3]; //0x000008AC
|
||||
unk3 = sysPacket->rx_data[2]; //0x000008B0
|
||||
unk4 = sysPacket->rx_data[1]; //0x000008B4
|
||||
unk5 = sysPacket->rx_data[0]; //0x000008B8
|
||||
|
||||
unk2 = unk2 & 0x3; //0x000008BC
|
||||
unk3 = unk3 & 0xBF; //0x000008C0
|
||||
|
||||
unk2 = unk2 << 28; //0x000008C4
|
||||
unk3 = unk3 << 20; //0x000008C8
|
||||
|
||||
unk6 = unk4 & 0xF0; //0x000008CC
|
||||
unk2 = unk2 | unk3; //0x000008D0
|
||||
unk2 = unk2 | (unk6 << 12); //0x000008D4 & 0x000008DC
|
||||
unk3 = (unk5 & 0xFF) << 8; //0x000008D8 & 0x000008E0
|
||||
unk2 = unk2 | unk3; //0x000008E8
|
||||
|
||||
unk3 = (unk4 & 0x6) << 7; //0x000008E4 & 0x000008EC
|
||||
|
||||
unk2 = unk2 | unk3; //0x000008F4
|
||||
unk3 = (unk5 & 0xF) << 4; //0x000008F0 & 0x000008F8
|
||||
|
||||
unk2 = unk2 | unk3; //0x000008FC
|
||||
unk3 = unk2 | (unk4 & 0x9); //0x00000900 & 0x00000908
|
||||
|
||||
nButtons = unk3 ^ 0x20F7F3F9; //0x00000914
|
||||
tmpButtons = ctrl.pureButtons; //0x00000674 & 0x000008A8
|
||||
if (sysPacket->tx_cmd != 2 && sysPacket->tx_cmd != 6) { //...0x00000670
|
||||
nButtons = tmpButtons;
|
||||
if (sysPacket->tx_cmd >= 7 && sysPacket->tx_cmd <= 8) { //0x000008A4
|
||||
nButtons = (((sysPacket->rx_data[3] & 3) << 28)
|
||||
| ((sysPacket->rx_data[2] & 0xBF) << 20)
|
||||
| ((sysPacket->rx_data[1] & 0xF0) << 12)
|
||||
| ((sysPacket->rx_data[0] & 0xFF) << 8)
|
||||
| ((sysPacket->rx_data[1] & 6) << 7)
|
||||
| ((sysPacket->rx_data[0] & 0xF) << 4)
|
||||
| (sysPacket->rx_data[1] & 9))
|
||||
^ 0x20F7F3F9; //0x00000914
|
||||
}
|
||||
}
|
||||
else {
|
||||
unk1 = sysPacket->rx_data[1]; //0x00000678
|
||||
unk2 = sysPacket->rx_data[0]; //0x0000067C
|
||||
|
||||
unk3 = unk1 & 0xF0; //0x00000684
|
||||
unk4 = unk2 & 0xF0; //0x00000688
|
||||
|
||||
unk3 = unk3 << 12; //0x0000068C
|
||||
unk4 = unk4 << 8; //0x00000690
|
||||
|
||||
unk4 = unk3 | unk4; //0x00000698
|
||||
unk5 = (unk1 & 0x6) << 7; //0x00000694 & 0x0000069C
|
||||
|
||||
unk4 = unk4 | unk5; //0x000006A4
|
||||
unk5 = (unk2 & 0xF) << 4; //0x000006A0 & 0x000006A8
|
||||
|
||||
unk4 = unk4 | unk5; //0x000006B0
|
||||
unk4 = unk4 | (unk1 & 0x9); //0x000006AC & 0x000006B4
|
||||
|
||||
unk4 = unk4 ^ 0x7F3F9; //0x00000680 & 0x000006B8 & 0x000006C0
|
||||
nButtons = unk4 | (ctrl.pureButtons & 0xFFF00000); //0x000006C8
|
||||
nButtons = ((((sysPacket->rx_data[1] & 0xF0) << 12) // 0x00000678...
|
||||
| ((sysPacket->rx_data[0] & 0xF0) << 8)
|
||||
| ((sysPacket->rx_data[1] & 0x6) << 7)
|
||||
| ((sysPacket->rx_data[0] & 0xF) << 4)
|
||||
| (sysPacket->rx_data[1] & 0x9))
|
||||
^ 0x7F3F9)
|
||||
| (ctrl.pureButtons & 0xFFF00000); //0x000006C8
|
||||
}
|
||||
unk1 = *(u8 *)(sysPacket + 12); //0x00000658 -- I overwrote unk1 before so I have to restore it here
|
||||
ctrl.pureButtons = nButtons; //0x000006D8
|
||||
|
||||
//analogPadValues passed from hw-Regs via syscon to ctrl
|
||||
if (unk1 == 3) { //0x000006D4
|
||||
if (sysPacket->tx_cmd == 3) { //0x000006D4
|
||||
analogY = sysPacket->rx_data[1]; //0x00000890
|
||||
analogX = sysPacket->rx_data[0]; //0x00000898
|
||||
}
|
||||
else if (unk1 == 6) { //0x000006E0
|
||||
else if (sysPacket->tx_cmd == 6) { //0x000006E0
|
||||
analogY = sysPacket->rx_data[3]; //0x00000884
|
||||
analogX = sysPacket->rx_data[2]; //0x0000088C
|
||||
}
|
||||
else if (unk1 == 8) {
|
||||
else if (sysPacket->tx_cmd == 8) {
|
||||
analogY = sysPacket->rx_data[5]; //0x000006EC
|
||||
analogX = sysPacket->rx_data[4]; //0x0000088C
|
||||
}
|
||||
@ -1302,9 +1240,9 @@ static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket) {
|
||||
ctrl.analogY = analogY; //0x00000708
|
||||
_sceCtrlUpdateButtons(nButtons, analogX, analogY); //0x0000070C
|
||||
|
||||
unk1 = *(u8 *)(sysPacket + 20); //0x00000714
|
||||
if (unk1 == 0) { //0x00000718
|
||||
tmpButtons = nButtons ^ tmpButtons; //0x0000072C
|
||||
if (sysPacket->tx_data[6] == 0) { //0x00000718
|
||||
int unk1, unk2;
|
||||
tmpButtons ^= nButtons; //0x0000072C
|
||||
if ((nButtons & 0x20000000) == 0) { //0x00000728
|
||||
unk1 = ctrl.unk_5; //0x0000086C
|
||||
unk2 = ctrl.unk_6; //0x00000870
|
||||
@ -1315,28 +1253,18 @@ static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket) {
|
||||
unk2 = ctrl.unk_8; //0x00000734
|
||||
idleVal = ctrl.idleBack; //0x00000738
|
||||
}
|
||||
unk1 = tmpButtons & unk1; //0x0000073C
|
||||
unk2 = nButtons & unk2; //0x00000740
|
||||
unk1 &= tmpButtons; //0x0000073C
|
||||
unk2 &= nButtons; //0x00000740
|
||||
unk1 = unk1 | unk2; //0x00000744
|
||||
|
||||
checkVal = unk1 & ctrl.unk_4; //0x00000750
|
||||
if (checkVal == 0 && ctrl.samplingMode[USER_MODE] == PSP_CTRL_INPUT_DIGITAL_ANALOG) { //0x00000754 & 0x00000760
|
||||
unk1 = analogX - 128; //0x00000764
|
||||
unk1 = pspMax(unk1, -unk1); //0x00000770
|
||||
int xMove = pspMax(analogX - 128, -analogX + 128) & 0xFF; //0x00000764 & 0x00000770 & 0x00000774
|
||||
int yMove = pspMax(analogY - 128, -analogY + 128) & 0xFF; //0x0000076C & 0x00000778 & 0x00000780 & 0x00000788
|
||||
xMove = (xMove == 127) ? 128 : xMove; //0x00000774 & 0x0000078C
|
||||
yMove = (yMove == 127) ? 128 : yMove; //0x0000079C
|
||||
|
||||
unk2 = analogY - 128; //0x0000076C
|
||||
unk2 = pspMax(unk2, -unk2); //0x00000778 & 0x00000780
|
||||
|
||||
unk1 = unk1 & 0xFF; //0x00000774
|
||||
unk3 = unk1 ^ 0x7F; //0x00000784
|
||||
|
||||
unk2 = unk2 & 0xFF; //0x00000788
|
||||
unk1 = (unk3 == 0) ? 128 : unk1; //0x0000078C
|
||||
unk4 = unk2 ^ 0x7F; //0x00000790
|
||||
|
||||
unk2 = (unk4 == 0) ? 128 : unk2; //0x0000079C
|
||||
|
||||
if (unk1 >= idleVal || unk2 >= idleVal) { //0x00000798 & 0x000007A4
|
||||
if (xMove >= idleVal || yMove >= idleVal) { //0x00000798 & 0x000007A4
|
||||
checkVal = 1; //0x000007AC
|
||||
}
|
||||
}
|
||||
@ -1344,31 +1272,27 @@ static int _sceCtrlSysconCmdIntr1(SceSysconPacket *sysPacket) {
|
||||
ctrl.unk_Byte_2 = 1; //0x000007BC
|
||||
}
|
||||
}
|
||||
unk1 = ctrl.samplingMode[USER_MODE] | ctrl.samplingMode[KERNEL_MODE]; //0x000007C8
|
||||
unk1 = (0 < unk1); //0x000007D4
|
||||
unk2 = unk1 | 0x2; //0x000007D8
|
||||
unk1 = (ctrl.unk_Byte_0 != 0) ? unk2 : unk1; //0x000007DC
|
||||
u8 sampling = (ctrl.samplingMode[USER_MODE] | ctrl.samplingMode[KERNEL_MODE]) != 0; //0x000007C8 & 0x000007D4
|
||||
sampling = (ctrl.unk_Byte_0 != 0) ? (sampling | 2) : sampling; //0x000007D8 & 0x000007DC
|
||||
|
||||
if (unk1 != ctrl.unk_Byte_1) { //0x000007E0
|
||||
if (ctrl.unk_Byte_7 == 0) { //0x000007EC
|
||||
if (sampling != ctrl.unk_Byte_1 && ctrl.unk_Byte_7 == 0) { //0x000007E0 & 0x000007EC
|
||||
ctrl.unk_Byte_7 = 1; //0x00000834
|
||||
ctrl.sysPacket[1].tx_cmd = 51; //0x0000082C & 0x00000840
|
||||
ctrl.sysPacket[1].tx_len = 3; //0x00000830 & 0x0000084C
|
||||
ctrl.sysPacket[1].tx_data[0] = unk1; //0x00000858
|
||||
ctrl.sysPacket[1].tx_data[0] = sampling; //0x00000858
|
||||
|
||||
res = sceSysconCmdExecAsync(&ctrl.sysPacket[1], 0, _sceCtrlSysconCmdIntr2, 0); //0x00000854
|
||||
if (res < 0) { //0x0000085C
|
||||
ctrl.unk_Byte_7 = 0; //0x00000860
|
||||
}
|
||||
}
|
||||
}
|
||||
sceKernelSetEventFlag(ctrl.eventFlag, 1); //0x000007FC
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
}
|
||||
}
|
||||
|
||||
/* sub_00001E4C */
|
||||
static int _sceCtrlSysconCmdIntr2() {
|
||||
static int _sceCtrlSysconCmdIntr2(void) {
|
||||
ctrl.unk_Byte_0 = 0; //0x00001E5C
|
||||
ctrl.unk_Byte_1 = ctrl.sysPacket[1].tx_data[0] & 0x1; //0x00001E64
|
||||
ctrl.unk_Byte_7 = 0; //0x00001E6C
|
||||
@ -1399,14 +1323,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
int (*func)(int);
|
||||
int ret;
|
||||
int res;
|
||||
int res2;
|
||||
int storeData;
|
||||
int temp1;
|
||||
int temp2;
|
||||
int temp3;
|
||||
int unk1;
|
||||
int unk2;
|
||||
int unk3;
|
||||
u32 btnMask;
|
||||
/** User mode buttons being pressed. */
|
||||
u32 pressedUserButtons;
|
||||
@ -1476,10 +1393,12 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
ctrlKernelBuf->aY = CTRL_ANALOG_PAD_DEFAULT_VALUE; //0x00000A50
|
||||
ctrlKernelBuf->aX = CTRL_ANALOG_PAD_DEFAULT_VALUE; //0x00000A54
|
||||
}
|
||||
tempAnalogX = 0;
|
||||
//0x00000A6C && 0x00000A7C && 0x00000A88
|
||||
for (i = 0; i < (int)sizeof ctrlUserBuf->rsrv; i++) {
|
||||
ctrlUserBuf->rsrv[i] = 0;
|
||||
}
|
||||
tempAnalogY = 0;
|
||||
//0x00000A8C && 0x00000AA0 && 0x00000AA4
|
||||
for (i = 0; i < (int)sizeof ctrlKernelBuf->rsrv; i++) {
|
||||
ctrlKernelBuf->rsrv[i] = 0;
|
||||
@ -1525,37 +1444,30 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
ctrl.unk_Byte_2 = 1; //0x00000FBC
|
||||
}
|
||||
}
|
||||
ctrlUserBufExt = (SceCtrlDataExt *)ctrl.userModeData.sceCtrlBuf[i+1]; //0x00000FD0
|
||||
if ((ctrl.unk_Byte_2 == 0) && (ctrl.samplingMode[USER_MODE] == PSP_CTRL_INPUT_DIGITAL_ANALOG)) { //0x00000FCC && 0x00000FD4
|
||||
analogX = ctrlKernelBufExt->aX; //0x00000FE0
|
||||
analogY = ctrlKernelBufExt->aY; //0x00000FE4
|
||||
analogX -= 128; //0x00000FEC
|
||||
analogY -= 128; //0x00000FF0
|
||||
analogX = ctrlKernelBufExt->aX - 128; //0x00000FE0 & 0x00000FEC
|
||||
analogY = ctrlKernelBufExt->aY - 128; //0x00000FE4 & 0x00000FF0
|
||||
tempAnalogX = -analogX; //0x00000FF4
|
||||
tempAnalogY = -analogY; //0x00000FF8
|
||||
temp2 = pspMax(analogX, tempAnalogX); //0x00001004
|
||||
tempAnalogX = temp2;
|
||||
temp3 = pspMax(analogY, tempAnalogY); //0x00001008
|
||||
tempAnalogY = temp3;
|
||||
int moveX = pspMax(analogX, tempAnalogX); //0x00001004
|
||||
tempAnalogX = moveX;
|
||||
int moveY = pspMax(analogY, tempAnalogY); //0x00001008
|
||||
tempAnalogY = moveY;
|
||||
|
||||
temp1 = (ctrl.idleReset < 37) ? 37 : ctrl.idleReset; //0x0000100C & 0x00001020
|
||||
temp2 = (tempAnalogX == 127) ? 128 : temp2; //0x00001014 & 0x00001024
|
||||
unk1 = ctrlKernelBufExt->rsrv[0]; //0x00000FEC
|
||||
unk2 = ctrlKernelBufExt->rsrv[1]; //0x00000FF0
|
||||
unk1 -= 128; //0x00001028
|
||||
unk2 -= 128; //0x0000102C
|
||||
temp3 = (tempAnalogY == 127) ? 128 : temp3; //0x00001018 & 0x00001030
|
||||
unk1 = pspMax(unk1, (-unk1)); //0x00001044
|
||||
unk2 = pspMax(unk2, (-unk2)); //0x00001048
|
||||
unk2 = (unk2 == 127) ? 128 : unk2; //0x00001058 & 0x00001060
|
||||
unk1 = (unk1 == 127) ? 128 : unk1; //0x00001054 & 0x00001068
|
||||
int minIdleReset = (ctrl.idleReset < 37) ? 37 : ctrl.idleReset; //0x0000100C & 0x00001020
|
||||
moveX = (tempAnalogX == 127) ? 128 : moveX; //0x00001014 & 0x00001024
|
||||
moveY = (tempAnalogY == 127) ? 128 : moveY; //0x00001018 & 0x00001030
|
||||
|
||||
int moveX2 = pspMax(ctrlKernelBufExt->rsrv[0] - 128, -ctrlKernelBufExt->rsrv[0] + 128); //0x00000FEC & 0x00001028 & 0x00001044
|
||||
int moveY2 = pspMax(ctrlKernelBufExt->rsrv[1] - 128, -ctrlKernelBufExt->rsrv[1] + 128); //0x00000102C & 0x00001048
|
||||
moveX2 = (moveX2 == 127) ? 128 : moveX2; //0x00001054 & 0x00001068
|
||||
moveY2 = (moveY2 == 127) ? 128 : moveY2; //0x00001058 & 0x00001060
|
||||
|
||||
storeData = 1;
|
||||
if (temp3 < temp1 && temp2 < temp1) { //0x00001034 & 0x00001038 & 0x0000104C & 0x00001050 & 0x0000105C & 0x00001064
|
||||
if (unk2 < temp1 && unk1 < temp1) { //0x0000106C - 0x00001080
|
||||
if (moveY < minIdleReset && moveX < minIdleReset //0x00001034 & 0x00001038 & 0x0000104C & 0x00001050 & 0x0000105C & 0x00001064
|
||||
&& moveY2 < minIdleReset && moveX2 < minIdleReset) { //0x0000106C - 0x00001080
|
||||
storeData = 0;
|
||||
}
|
||||
}
|
||||
//0x00001088
|
||||
if (storeData) {
|
||||
ctrl.unk_Byte_2 = 1; //0x0000108C
|
||||
@ -1563,7 +1475,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
}
|
||||
}
|
||||
//*** start of code: 0x00001094 -- 0x000010D0 ***
|
||||
ctrlUserBufExt = ctrlUserBufExt + 1; //0x000010A0
|
||||
ctrlUserBufExt = ((SceCtrlDataExt **)ctrl.userModeData.sceCtrlBuf[1])[i]; //0x00000FD0 | 0x00000FDC | 0x00001090 & 0x000010A0 -> check?
|
||||
ctrlUserBufExt->activeTime = ctrlKernelBufExt->activeTime; //0x000010A8 & 0x000010B8
|
||||
ctrlUserBufExt->buttons = ctrlKernelBufExt->buttons; //0x000010AC & 0x000010C4
|
||||
ctrlUserBufExt->aX = ctrlKernelBufExt->aX; //0x000010B0 & 0x000010C8
|
||||
@ -1589,42 +1501,27 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
ctrlUserBufExt->buttons = ctrlUserBufExt->buttons & ctrl.maskSupportButtons; //0x000010F0
|
||||
ctrlUserBufExt->buttons = ctrlUserBufExt->buttons | ctrl.maskSetButtons; //0x000010F0
|
||||
|
||||
unk1 = ctrl.unk_9; //0x00001100
|
||||
unk1 = unk1 >> i; //0x00001104
|
||||
if (unk1 == 1) { //0x00001108 && 0x0000110C
|
||||
if ((ctrl.unk_9 >> i) == 1) { //0x00001100 & 0x00001104 & 0x00001108 && 0x0000110C
|
||||
buttons = ctrlKernelBufExt->buttons; //0x00001114
|
||||
ctrl.emulatedData[i+1].intCtrlBufUpdates2 = 1; //0x0000111C
|
||||
//Why that?
|
||||
unk1 = buttons & 0x500; //0x00001120
|
||||
unk2 = buttons & 0xA00; //0x00001124
|
||||
unk1 = (0 < unk1); //0x00001128
|
||||
unk2 = (0 < unk2); //0x00001130
|
||||
buttons = buttons & 0xFFFFF0FF; //0x00001134
|
||||
unk1 = unk1 << 8; //0x00001138
|
||||
unk3 = buttons | unk1; //0x0000113C
|
||||
unk2 = unk2 << 9; //0x00001140
|
||||
kModeBtnEmulation = unk3 | unk2; //0x00001144
|
||||
kModeBtnEmulation = (buttons & 0xFFFFF0FF) //0x00001134
|
||||
| (((buttons & 0x500) != 0) << 8) //0x00001120 & 0x00001128 & 0x00001138
|
||||
| (((buttons & 0xA00) != 0) << 9); //0x00001124 & 0x00001130 & 0x00001140 & 0x0000113C & 0x00001144
|
||||
uModeBtnEmulation = kModeBtnEmulation & ctrl.userModeButtons; //0x00001148
|
||||
ctrl.emulatedData[i+1].uModeBtnEmulation = uModeBtnEmulation; //0x0000114C
|
||||
ctrl.emulatedData[i+1].kModeBtnEmulation = kModeBtnEmulation; //0x00001150
|
||||
|
||||
analogX = ctrlKernelBufExt->aX; //0x00001154
|
||||
analogX -= 128; //0x00001158
|
||||
analogX = ctrlKernelBufExt->aX - 128; //0x00001154 & 0x00001158
|
||||
tempAnalogX = -analogX; //0x0000115C
|
||||
analogX = pspMax(analogX, tempAnalogX); //0x00001160
|
||||
analogY = ctrlKernelBufExt->aY; //0x0000116C
|
||||
if (analogX < 38) { //0x00001164 & 0x00001168
|
||||
res = res & 0xFF; //0x00001170
|
||||
res -= 128; //0x00001174
|
||||
res2 = -res; //0x00001178
|
||||
res2 = pspMax(res, res2); //0x00001178
|
||||
if (res2 >= 38) { //0x00001180 & 0x00001184
|
||||
if (analogX < 38
|
||||
&& pspMax((analogY & 0xFF) - 128, -(analogY & 0xFF) + 128) >= 38) { //0x00001164 & 0x00001168 & 0x00001170 & 0x00001174 & 0x00001178 & 0x00001180 & 0x00001184
|
||||
check = 1; //0x00001194
|
||||
tempAnalogY = analogY & 0xFF; //0x00001190
|
||||
tempAnalogY -= 128; //0x000011A0
|
||||
tempAnalogX -= 128; //0x000011A8
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1673,7 +1570,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
}
|
||||
//0x00000B4C
|
||||
index = ctrl.userModeData.ctrlBufIndex + 1; //0x00000AD0 & 0x00000B40 -- the index is stored into $s1.
|
||||
tempIndex = index >> 31; //0x00000B4C
|
||||
tempIndex = (int)index >> 31; //0x00000B4C
|
||||
tempIndex = tempIndex >> 26; //0x00000B54
|
||||
tempIndex = index + tempIndex; //0x00000B5C
|
||||
tempIndex &= 0xFFFFFFC0; //0x00000B64
|
||||
@ -1689,7 +1586,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
ctrl.userModeData.ctrlBufStartIndex = tempIndex; //0x00000F28
|
||||
}
|
||||
index = ctrl.kernelModeData.ctrlBufIndex +1; //0x000009C0 & 0x00000B74 -- the index is stored into $s3.
|
||||
tempIndex = index >> 31; //0x00000B78
|
||||
tempIndex = (int)index >> 31; //0x00000B78
|
||||
tempIndex = tempIndex >> 26; //0x00000B7C
|
||||
tempIndex = index + tempIndex; //0x00000B80
|
||||
tempIndex &= 0xFFFFFFC0; //0x00000B88
|
||||
@ -1705,8 +1602,9 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
ctrl.kernelModeData.ctrlBufStartIndex = tempIndex; //0x00000F08
|
||||
}
|
||||
//if HOLD mode is active
|
||||
updatedButtons = pureButtons;
|
||||
if (pureButtons & PSP_CTRL_HOLD) { //0x00000BA4
|
||||
updatedButtons = pureButtons & CTRL_PSP_HARDWARE_IO_BUTTONS; //0x00000BB0 -- only I/O Buttons permitted?
|
||||
updatedButtons &= CTRL_PSP_HARDWARE_IO_BUTTONS; //0x00000BB0 -- only I/O Buttons permitted?
|
||||
}
|
||||
//0x00000BB8 & 0x00000BC0 & 0x00000BC8
|
||||
for (i = 0; i < CTRL_DATA_EMULATION_SLOTS; i++) {
|
||||
@ -1755,6 +1653,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
}
|
||||
}
|
||||
updatedButtons |= uModeBtnEmulationAll; //0x00000C94
|
||||
gp = pspGetGp(); //0x00000C98
|
||||
|
||||
curButtons = kModeBtnEmulationAll | pureButtons; //0x00000CA8
|
||||
prevButtons = ctrl.prevButtons; //0x00000CAC
|
||||
@ -1768,7 +1667,7 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
//If a "callback" button has been pressed
|
||||
if (btnMask != 0) { //0x00000CC8
|
||||
if (ctrl.buttonCallback[i].callbackFunc != NULL) { //0x00000CD4
|
||||
gp = pspGetGp(); //0x00000EC8
|
||||
//0x00000EC8: useless
|
||||
pspSetGp(ctrl.buttonCallback[i].gp); //0x00000ECC
|
||||
btnCbFunc = ctrl.buttonCallback[i].callbackFunc; //0x00000ED0
|
||||
btnCbFunc(curButtons, prevButtons, ctrl.buttonCallback[i].arg); // 0x00000EDC
|
||||
@ -1814,8 +1713,8 @@ static int _sceCtrlUpdateButtons(u32 pureButtons, u8 aX, u8 aY) {
|
||||
}
|
||||
}
|
||||
//0x00000D34
|
||||
updatedButtons = updatedButtons & ctrl.maskSupportButtons; //0x00000D48
|
||||
updatedButtons = updatedButtons | ctrl.maskSetButtons; //0x00000D4C
|
||||
updatedButtons &= ctrl.maskSupportButtons; //0x00000D48
|
||||
updatedButtons |= ctrl.maskSetButtons; //0x00000D4C
|
||||
//HOLD mode active?
|
||||
if (updatedButtons & PSP_CTRL_HOLD) { //0x00000D50 & 0x00000D54
|
||||
if (check == 0) { //0x00000D60
|
||||
@ -2026,7 +1925,7 @@ static int _sceCtrlReadBuf(SceCtrlDataExt *pad, u8 reqBufReads, int arg3, u8 mod
|
||||
* Subroutine module_start - Address 0x00001A10
|
||||
* Exported in syslib
|
||||
*/
|
||||
int CtrlInit() {
|
||||
int CtrlInit(void) {
|
||||
sceCtrlInit();
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
}
|
||||
@ -2035,7 +1934,7 @@ int CtrlInit() {
|
||||
* Subroutine module_reboot_before - Address 0x00001A30
|
||||
* Exported in syslib
|
||||
*/
|
||||
int module_reboot_before() {
|
||||
int module_reboot_before(void) {
|
||||
sceCtrlEnd();
|
||||
return SCE_KERNEL_ERROR_OK;
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <pspdebug.h>
|
||||
#include <pspdisplay.h>
|
||||
#include <pspiofilemgr.h>
|
||||
#include <pspkerneltypes.h>
|
||||
|
||||
#include "memstk.h"
|
||||
@ -6,6 +11,10 @@
|
||||
#include "tff/tff.h"
|
||||
|
||||
#define DEBUG_FILE "uofw/log.txt"
|
||||
#define IO_DEBUG_FILE "ms0:/" DEBUG_FILE
|
||||
|
||||
#define DEBUG
|
||||
#include "debug.h"
|
||||
|
||||
typedef struct {
|
||||
int size;
|
||||
@ -26,13 +35,13 @@ void snprintf_char(SnprintfCtx *ctx, int c)
|
||||
typedef void (*prnt_callback)(void *ctx, int ch);
|
||||
int prnt(prnt_callback cb, void *ctx, const char *fmt, va_list args); /* don't use the SDK header because it's wrong: prnt returns an int */
|
||||
|
||||
int vsnprintf(char *str, int size, const char *format, va_list ap)
|
||||
int my_vsnprintf(char *str, int size, const char *format, va_list ap)
|
||||
{
|
||||
SnprintfCtx ctx = { size - 1, 0, str };
|
||||
return prnt((prnt_callback)snprintf_char, &ctx, format, ap);
|
||||
}
|
||||
|
||||
int ms_append(const char *path, const void *data, int size)
|
||||
int ms_append(const void *data, int size)
|
||||
{
|
||||
FATFS FileSystem;
|
||||
FIL FileObject;
|
||||
@ -42,7 +51,7 @@ int ms_append(const char *path, const void *data, int size)
|
||||
if (f_mount(0, &FileSystem) != 0)
|
||||
return -1;
|
||||
|
||||
if (f_open(&FileObject, path, FA_WRITE | FA_OPEN_ALWAYS) != 0)
|
||||
if (f_open(&FileObject, DEBUG_FILE, FA_WRITE | FA_OPEN_ALWAYS) != 0)
|
||||
return -1;
|
||||
|
||||
f_lseek(&FileObject, FileObject.fsize); /* append to file (move to its end) */
|
||||
@ -59,14 +68,75 @@ int ms_append(const char *path, const void *data, int size)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dbg_init(void)
|
||||
int io_append(const void *data, int size)
|
||||
{
|
||||
SceUID id = sceIoOpen(IO_DEBUG_FILE, PSP_O_CREAT | PSP_O_WRONLY, 0777);
|
||||
if (id < 0)
|
||||
return -1;
|
||||
sceIoLseek(id, 0, SEEK_END);
|
||||
int count = sceIoWrite(id, data, size);
|
||||
sceIoClose(id);
|
||||
return count;
|
||||
}
|
||||
|
||||
int (*fat_append)(const void*, int);
|
||||
int (*fb_append)(const char*, int);
|
||||
|
||||
void dbg_init(int eraseLog, FbMode fbMode, FatMode fatMode)
|
||||
{
|
||||
switch (fatMode)
|
||||
{
|
||||
case FAT_BASIC:
|
||||
pspSyscon_init();
|
||||
pspSysconCtrlLED(0,1);
|
||||
pspSysconCtrlLED(1,1);
|
||||
pspSysconCtrlMsPower(1);
|
||||
pspMsInit();
|
||||
ms_append("test.txt", "test", 4);
|
||||
fat_append = ms_append;
|
||||
if (eraseLog)
|
||||
{
|
||||
FATFS FileSystem;
|
||||
FIL FileObject;
|
||||
if (f_mount(0, &FileSystem) == 0 && f_open(&FileObject, DEBUG_FILE, FA_CREATE_ALWAYS) == 0)
|
||||
f_close(&FileObject);
|
||||
}
|
||||
break;
|
||||
|
||||
case FAT_AFTER_FATFS:
|
||||
fat_append = io_append;
|
||||
if (eraseLog)
|
||||
{
|
||||
SceUID fd;
|
||||
if ((fd = sceIoOpen(IO_DEBUG_FILE, PSP_O_CREAT | PSP_O_TRUNC, 0777)) > 0)
|
||||
sceIoClose(fd);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
fat_append = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (fbMode)
|
||||
{
|
||||
case FB_BASIC:
|
||||
pspDebugScreenInitEx((void*)0x44000000, PSP_DISPLAY_PIXEL_FORMAT_8888, 0);
|
||||
//pspDebugScreenPrintData("hello\n", 6);
|
||||
pspDebugScreenPutChar(0, 50, 0xFFFFFF, 'l');
|
||||
for (;;);
|
||||
//pspDebugScreenSetBackColor(0xFFFFFFFF);
|
||||
fb_append = pspDebugScreenPrintData;
|
||||
break;
|
||||
|
||||
case FB_AFTER_DISPLAY:
|
||||
pspDebugScreenInit();
|
||||
fb_append = pspDebugScreenPrintData;
|
||||
break;
|
||||
|
||||
default:
|
||||
fb_append = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dbg_printf(const char *format, ...)
|
||||
@ -74,9 +144,17 @@ void dbg_printf(const char *format, ...)
|
||||
va_list ap;
|
||||
char buf[512];
|
||||
va_start(ap, format);
|
||||
int size = vsnprintf(buf, 512, format, ap);
|
||||
int size = my_vsnprintf(buf, 512, format, ap);
|
||||
if (size > 0)
|
||||
ms_append(DEBUG_FILE, buf, size - 1);
|
||||
{
|
||||
if (fat_append != NULL) {
|
||||
pspSyscon_init();
|
||||
pspMsInit();
|
||||
fat_append(buf, size);
|
||||
}
|
||||
if (fb_append != NULL)
|
||||
fb_append(buf, size);
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,22 @@
|
||||
#ifndef DEBUG_H
|
||||
#define DEBUG_H
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FB_NONE,
|
||||
FB_BASIC,
|
||||
FB_AFTER_DISPLAY
|
||||
} FbMode;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FAT_NONE,
|
||||
FAT_BASIC,
|
||||
FAT_AFTER_FATFS
|
||||
} FatMode;
|
||||
|
||||
#ifdef DEBUG
|
||||
void dbg_init(void);
|
||||
void dbg_init(int eraseLog, FbMode fbMode, FatMode fatMode);
|
||||
void dbg_printf(const char *format, ...);
|
||||
#else
|
||||
static inline void dbg_init()
|
||||
|
@ -228,26 +228,21 @@ int pspMsInit(void)
|
||||
|
||||
//initialize the hardware
|
||||
int i;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
|
||||
*((volatile int*)(0xBC100054)) |= 0x00000100;
|
||||
*((volatile int*)(0xBC100050)) |= 0x00000400;
|
||||
*((volatile int*)(0xBC100078)) |= 0x00000010;
|
||||
*((volatile int*)(0xBC10004C)) &= 0xFFFFFEFF;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF00FF;
|
||||
|
||||
//Kprintf("reset\n");
|
||||
|
||||
//reset the controller
|
||||
IO_MEM_STICK_SYS = MSRST;
|
||||
while(IO_MEM_STICK_SYS & MSRST);
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFF00;
|
||||
|
||||
//Kprintf("check status\n");
|
||||
ms_check_status();
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00000000;
|
||||
ms_wait_ready();
|
||||
ms_wait_ced();
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFFFF;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
TARGET = exceptionman
|
||||
OBJS = excep.o exceptions.o intr.o nmi.o
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
DEBUG = 1
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -19,6 +19,9 @@ sub_0000:
|
||||
# get threadman exception vector?
|
||||
.globl ExceptionManagerForKernel_96D47F7E
|
||||
ExceptionManagerForKernel_96D47F7E:
|
||||
#lui $a0, %hi(_79454858)
|
||||
#jal dbg_printf
|
||||
#addiu $a0, %lo(_79454858)
|
||||
lui $v0, %hi(sub_0070)
|
||||
jr $ra
|
||||
addiu $v0, $v0, %lo(sub_0070)
|
||||
@ -132,6 +135,9 @@ sub_0140:
|
||||
FUCK:
|
||||
.globl ExceptionManagerForKernel_79454858
|
||||
ExceptionManagerForKernel_79454858:
|
||||
#lui $a0, %hi(_79454858)
|
||||
#jal dbg_printf
|
||||
#addiu $a0, %lo(_79454858)
|
||||
li $v0, 92
|
||||
b loc_0000009C
|
||||
nop
|
||||
@ -393,3 +399,15 @@ loc_000004DC:
|
||||
loc_000004E0:
|
||||
break 0x20000
|
||||
|
||||
.rdata
|
||||
.align 2
|
||||
.type _96D47F7E, @object
|
||||
.size _96D47F7E, 10
|
||||
_96D47F7E:
|
||||
.ascii "hey 96D4\00A\000"
|
||||
.align 2
|
||||
.type _79454858, @object
|
||||
.size _79454858, 10
|
||||
_79454858:
|
||||
.ascii "hey 7945\00A\000"
|
||||
|
||||
|
@ -5,17 +5,12 @@
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "excep.h"
|
||||
#include "exceptions.h"
|
||||
#include "intr.h"
|
||||
#include "nmi.h"
|
||||
|
||||
#include "exceptionman.h"
|
||||
|
||||
typedef struct SceExceptionHandler
|
||||
{
|
||||
struct SceExceptionHandler *next;
|
||||
void *cb;
|
||||
} SceExceptionHandler;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SceExceptionHandler *hdlr1[32];
|
||||
@ -29,11 +24,6 @@ PSP_MODULE_INFO("sceExceptionManager", PSP_MODULE_NO_STOP | PSP_MODULE_SINGLE_LO
|
||||
PSP_SDK_VERSION(0x06060010);
|
||||
PSP_MODULE_BOOTSTART("ExcepManInit");
|
||||
|
||||
void build_exectbl(void);
|
||||
SceExceptionHandler *newExcepCB(void);
|
||||
void FreeExcepCB(SceExceptionHandler *ex);
|
||||
void Allocexceppool(void);
|
||||
|
||||
int g_0D40 = 0;
|
||||
int g_0D44 = 0;
|
||||
|
||||
@ -48,6 +38,8 @@ SceExceptions ExcepManCB = { { NULL }, { NULL }, NULL, NULL, { { NULL, NULL } }}
|
||||
|
||||
int ExcepManInit(void)
|
||||
{
|
||||
dbg_init(1, FB_NONE, FAT_BASIC);
|
||||
dbg_printf("-- ExcepManInit()\n");
|
||||
int oldIntr = suspendIntr();
|
||||
int i;
|
||||
for (i = 0; i < 32; i++)
|
||||
@ -78,29 +70,33 @@ int ExcepManInit(void)
|
||||
// 0578
|
||||
sceKernelRegisterDefaultExceptionHandler(sub_016C);
|
||||
NmiManInit();
|
||||
dbg_printf("-- init ended\n");
|
||||
resumeIntr(oldIntr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelRegisterPriorityExceptionHandler(int exno, int prio, void (*func)())
|
||||
{
|
||||
dbg_printf("sceKernelRegisterPriorityExceptionHandler(ex = %d, prio = %d, %08x)\n", exno, prio, func);
|
||||
int oldIntr = suspendIntr();
|
||||
if (*(int*)(func) != 0)
|
||||
{
|
||||
// 06B0
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020034;
|
||||
}
|
||||
if (exno < 0 || exno >= 32)
|
||||
{
|
||||
// 069C
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020032;
|
||||
}
|
||||
prio &= 0x3;
|
||||
SceExceptionHandler *newEx = newExcepCB();
|
||||
SceExceptionHandler *ex = ExcepManCB.hdlr1[exno];
|
||||
SceExceptionHandler *lastEx = ex;
|
||||
SceExceptionHandler *ex = ExcepManCB.hdlr2[exno];
|
||||
SceExceptionHandler *lastEx = (SceExceptionHandler*)&ex;
|
||||
newEx->cb = (void*)(((int)func & 0xFFFFFFFC) | prio);
|
||||
// 0640
|
||||
while (ex != NULL)
|
||||
@ -116,17 +112,20 @@ int sceKernelRegisterPriorityExceptionHandler(int exno, int prio, void (*func)()
|
||||
lastEx->next = newEx;
|
||||
build_exectbl();
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelRegisterDefaultExceptionHandler(void *func)
|
||||
{
|
||||
int oldIntr = suspendIntr();
|
||||
dbg_printf("sceKernelRegisterDefaultExceptionHandler(%08x)\n", func);
|
||||
SceExceptionHandler *handler = func;
|
||||
if (handler->next != NULL || (func == sub_016C && ExcepManCB.defaultHdlr != NULL)) // 0734
|
||||
{
|
||||
// 0744
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020034;
|
||||
}
|
||||
// 0700
|
||||
@ -134,19 +133,22 @@ int sceKernelRegisterDefaultExceptionHandler(void *func)
|
||||
ExcepManCB.defaultHdlr = func + 8;
|
||||
build_exectbl();
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelReleaseExceptionHandler(int exno, void (*func)())
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
int oldIntr = suspendIntr();
|
||||
if (exno < 0 || exno >= 32)
|
||||
{
|
||||
// 080C
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020032;
|
||||
}
|
||||
SceExceptionHandler *lastEx = ExcepManCB.hdlr1[exno];
|
||||
SceExceptionHandler *lastEx = ExcepManCB.hdlr2[exno];
|
||||
SceExceptionHandler *ex = lastEx->next;
|
||||
// 07A0
|
||||
while (ex != NULL)
|
||||
@ -159,6 +161,7 @@ int sceKernelReleaseExceptionHandler(int exno, void (*func)())
|
||||
FreeExcepCB(ex);
|
||||
build_exectbl();
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return 0;
|
||||
}
|
||||
lastEx = ex;
|
||||
@ -166,11 +169,13 @@ int sceKernelReleaseExceptionHandler(int exno, void (*func)())
|
||||
}
|
||||
// 07C0
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020033;
|
||||
}
|
||||
|
||||
int sceKernelReleaseDefaultExceptionHandler(void (*func)())
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
int oldIntr = suspendIntr();
|
||||
void (*actualFunc)() = func + 8;
|
||||
SceExceptionHandler *releaseEx = (SceExceptionHandler*)func;
|
||||
@ -189,6 +194,7 @@ int sceKernelReleaseDefaultExceptionHandler(void (*func)())
|
||||
releaseEx->next = 0;
|
||||
build_exectbl();
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return 0;
|
||||
}
|
||||
ex = nextFunc - 8;
|
||||
@ -197,6 +203,7 @@ int sceKernelReleaseDefaultExceptionHandler(void (*func)())
|
||||
}
|
||||
// 0874
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(ERROR)\n");
|
||||
return 0x80020033;
|
||||
}
|
||||
|
||||
@ -209,8 +216,10 @@ void build_exectbl(void)
|
||||
SceExceptionHandler *hdlr = ExcepManCB.hdlr2[i];
|
||||
if (hdlr != NULL)
|
||||
{
|
||||
dbg_printf("handler set for excep %d\n", i);
|
||||
// 08DC
|
||||
while (hdlr->next != NULL) {
|
||||
dbg_printf("- next\n");
|
||||
*(int*)((int)hdlr->cb & 0xFFFFFFFC) = ((int)hdlr->next->cb & 0xFFFFFFFC) + 8;
|
||||
hdlr = hdlr->next;
|
||||
}
|
||||
@ -261,6 +270,7 @@ void FreeExcepCB(SceExceptionHandler *ex)
|
||||
void Allocexceppool(void)
|
||||
{
|
||||
ExcepManCB.curPool = &ExcepManCB.pool[0];
|
||||
dbg_printf("Allocexceppool()\n");
|
||||
// 09F4
|
||||
int i;
|
||||
for (i = 0; i < 31; i++)
|
||||
@ -270,11 +280,13 @@ void Allocexceppool(void)
|
||||
|
||||
int sceKernelRegisterExceptionHandler(int exno, void (*func)())
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
return sceKernelRegisterPriorityExceptionHandler(exno, 2, func);
|
||||
}
|
||||
|
||||
SceExceptionHandler *sceKernelGetActiveDefaultExceptionHandler(void)
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
if ((void*)ExcepManCB.defaultHdlr == sub_016C)
|
||||
return NULL;
|
||||
return ExcepManCB.defaultHdlr;
|
||||
|
16
src/exceptionman/exceptions.h
Normal file
16
src/exceptionman/exceptions.h
Normal file
@ -0,0 +1,16 @@
|
||||
#ifndef EXCEPTIONMAN_H
|
||||
#define EXCEPTIONMAN_H
|
||||
|
||||
typedef struct SceExceptionHandler
|
||||
{
|
||||
struct SceExceptionHandler *next;
|
||||
void *cb;
|
||||
} SceExceptionHandler;
|
||||
|
||||
void build_exectbl(void);
|
||||
SceExceptionHandler *newExcepCB(void);
|
||||
void FreeExcepCB(SceExceptionHandler *ex);
|
||||
void Allocexceppool(void);
|
||||
|
||||
#endif
|
||||
|
@ -13,6 +13,7 @@ void *g_nmiHandlers[16] = { NULL };
|
||||
|
||||
int NmiManInit(void)
|
||||
{
|
||||
dbg_printf("- NmiManInit()\n");
|
||||
int oldIntr = suspendIntr();
|
||||
int i;
|
||||
pspCop0CtrlSet(COP0_CTRL_NMI_TABLE, 0);
|
||||
@ -23,21 +24,25 @@ int NmiManInit(void)
|
||||
pspCop0CtrlSet(COP0_CTRL_NMI_TABLE, (int)g_nmiHandlers);
|
||||
sceKernelRegisterPriorityExceptionHandler(31, 1, nmiHandler);
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("- NmiManInit ended\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelRegisterNmiHandler(int nmino, void (*func)())
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
if (nmino < 0 || nmino >= 17)
|
||||
return 0x8002003A;
|
||||
int oldIntr = suspendIntr();
|
||||
g_nmiHandlers[nmino] = func;
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelReleaseNmiHandler(int nmino)
|
||||
{
|
||||
dbg_printf("exec %s\n", __FUNCTION__);
|
||||
int ret = 0;
|
||||
if (nmino < 0 || nmino >= 17)
|
||||
return 0x8002003A;
|
||||
@ -46,9 +51,9 @@ int sceKernelReleaseNmiHandler(int nmino)
|
||||
g_nmiHandlers[nmino] = NULL;
|
||||
else
|
||||
ret = 0x80020068;
|
||||
|
||||
// 0BFC
|
||||
resumeIntr(oldIntr);
|
||||
dbg_printf("(end)\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
10
src/ge/Makefile
Normal file
10
src/ge/Makefile
Normal file
@ -0,0 +1,10 @@
|
||||
# Copyright (C) 2011, 2012 The uOFW team
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
TARGET = ge
|
||||
OBJS = stall.o ge.o
|
||||
|
||||
LIBS = -lInterruptManagerForKernel -lThreadManForKernel -lsceSysreg_driver -lKDebugForKernel -lUtilsForKernel -lsceSysEventForKernel -lSysMemForKernel -lSysclibForKernel
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
@ -3,9 +3,10 @@
|
||||
*/
|
||||
|
||||
#include "../common/common.h"
|
||||
#include "../interruptman/interruptman.h"
|
||||
#include "../sysmem/sysmem.h"
|
||||
#include "../sysmem/sysclib.h"
|
||||
|
||||
#include "interruptman.h"
|
||||
#include "sysmem_sysevent.h"
|
||||
#include "sysmem_sysclib.h"
|
||||
|
||||
#include "ge.h"
|
||||
|
||||
|
@ -2,9 +2,7 @@
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
TARGET = interruptman
|
||||
OBJS = start.o interruptman.o end.o imports.o
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
OBJS = start.o interruptman.o end.o
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -1,16 +0,0 @@
|
||||
# Copyright (C) 2011, 2012 The uOFW team
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
.set noreorder
|
||||
|
||||
#include "pspstub.s"
|
||||
|
||||
STUB_START "sceSuspendForKernel",0x00010011,0x00020005
|
||||
STUB_FUNC 0x91A77137,sceKernelRegisterSuspendHandler
|
||||
STUB_FUNC 0xB43D1A8C,sceKernelRegisterResumeHandler
|
||||
STUB_END
|
||||
|
||||
STUB_START "LoadCoreForKernel",0x00010011,0x00010005
|
||||
STUB_FUNC 0x18CFDAA0,sceKernelGetModuleGPByAddressForKernel
|
||||
STUB_END
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "../exceptionman/exceptionman.h"
|
||||
#include "exceptionman.h"
|
||||
|
||||
#include "interruptman.h"
|
||||
#include "end.h"
|
||||
|
@ -8,7 +8,5 @@ DEBUG = 1
|
||||
|
||||
LIBS = -lThreadManForKernel -lSysclibForKernel -lSysMemForKernel -lKDebugForKernel -lInterruptManagerForKernel -lsceSuspendForKernel
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "../sysmem/sysclib.h"
|
||||
#include "sysmem_sysclib.h"
|
||||
|
||||
#include "iofilemgr.h"
|
||||
#include "stdio.h"
|
||||
#include "iofilemgr_kernel.h"
|
||||
#include "iofilemgr_stdio.h"
|
||||
|
||||
PSP_MODULE_BOOTSTART("IoFileMgrInit");
|
||||
PSP_MODULE_REBOOT_BEFORE("IoFileMgrRebootBefore");
|
||||
@ -101,8 +101,8 @@ SceIoDrvFuncs _nullcon_function =
|
||||
// 6A7C
|
||||
SceIoDrv _dummycon_driver = { "dummy_drv_iofile", 0, 0x00000800, "DUMMY_DRV", &_nullcon_function };
|
||||
|
||||
int iob_do_initialize(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
int iob_do_delete(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
int iob_do_initialize(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
int iob_do_delete(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
|
||||
|
||||
// 6A90
|
||||
SceSysmemUIDLookupFunc IobFuncs[] =
|
||||
@ -143,7 +143,7 @@ SceUID g_ktls;
|
||||
int g_iobCount;
|
||||
|
||||
// 6B28
|
||||
SceSysmemUIDControlBlock *g_uid_type;
|
||||
uidControlBlock *g_uid_type;
|
||||
|
||||
// 6B2C
|
||||
SceUID g_UIDs[64];
|
||||
@ -243,7 +243,7 @@ void sceIoCloseAll()
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
SceIoIob *iob;
|
||||
int oldK1 = pspShiftK1();
|
||||
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
|
||||
uidControlBlock *cur = g_uid_type->parent;
|
||||
// 0F74
|
||||
while (cur != g_uid_type)
|
||||
{
|
||||
@ -1171,7 +1171,7 @@ int sceIoGetFdList(SceUID *fds, int numFd, int *count)
|
||||
// 261C
|
||||
int stored = 0;
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
|
||||
uidControlBlock *cur = g_uid_type->parent;
|
||||
int curCount = 0;
|
||||
// 2648
|
||||
while (cur != g_uid_type)
|
||||
@ -1226,13 +1226,13 @@ int sceIoGetFdDebugInfo(int fd, SceIoFdDebugInfo *outInfo)
|
||||
for (i = 0; i < 88; i++)
|
||||
((int*)&info)[i] = 0;
|
||||
info.size = 88;
|
||||
char *name = ((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->name;
|
||||
char *name = ((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->name;
|
||||
if (name != NULL) {
|
||||
// 2840
|
||||
strncpy(info.name, name, 31);
|
||||
}
|
||||
// 2750
|
||||
info.attribute = ((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->attribute;
|
||||
info.attribute = ((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->attribute;
|
||||
info.unk40 = iob->unk000;
|
||||
if (iob->dev != NULL)
|
||||
info.drvName = iob->dev->drv->name;
|
||||
@ -1274,7 +1274,7 @@ int sceIoGetFdDebugInfo(int fd, SceIoFdDebugInfo *outInfo)
|
||||
|
||||
int sceIoAddDrv(SceIoDrv *drv)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
dbg_printf("sceIoAddDrv(): %s\n", drv->name);
|
||||
int oldK1 = pspShiftK1();
|
||||
if (!pspK1PtrOk(drv))
|
||||
{
|
||||
@ -1303,6 +1303,7 @@ int sceIoAddDrv(SceIoDrv *drv)
|
||||
}
|
||||
// 2904
|
||||
int ret = drv->funcs->IoInit(&list->arg);
|
||||
dbg_printf("function ioinit at %08x\n", drv->funcs->IoInit);
|
||||
if (ret < 0)
|
||||
{
|
||||
// 2928
|
||||
@ -1312,12 +1313,13 @@ int sceIoAddDrv(SceIoDrv *drv)
|
||||
}
|
||||
add_device_list(list);
|
||||
pspSetK1(oldK1);
|
||||
dbg_printf(" -> adddrv ok\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceIoDelDrv(const char *drv)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
dbg_printf("sceIoDelDrv(%s)\n", drv);
|
||||
int oldK1 = pspShiftK1();
|
||||
if (!pspK1PtrOk(drv)) {
|
||||
pspSetK1(oldK1);
|
||||
@ -1351,7 +1353,7 @@ int sceIoDelDrv(const char *drv)
|
||||
// 2A4C
|
||||
SceIoDeviceList *lookup_device_list(const char *drive)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
dbg_printf("lookup_device_list(%s)\n", drive);
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
SceIoDeviceList *cur = g_devList;
|
||||
// 2A7C
|
||||
@ -1374,8 +1376,11 @@ void add_device_list(SceIoDeviceList *list)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
dbg_printf("1\n");
|
||||
list->next = g_devList;
|
||||
dbg_printf("2\n");
|
||||
g_devList = list;
|
||||
dbg_printf("3\n");
|
||||
sceKernelCpuResumeIntr(oldIntr);
|
||||
}
|
||||
|
||||
@ -1405,10 +1410,11 @@ int delete_device_list(SceIoDeviceList *list)
|
||||
|
||||
SceIoDeviceList *alloc_device_list(void)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
dbg_printf("alloc_device_list()\n");
|
||||
SceIoDeviceList *list = sceKernelAllocHeapMemory(g_heap, sizeof(SceIoDeviceList));
|
||||
if (list != NULL)
|
||||
{
|
||||
dbg_printf(" -> ok\n");
|
||||
list->next = NULL;
|
||||
list->arg.drv = NULL;
|
||||
list->arg.argp = NULL;
|
||||
@ -1500,14 +1506,11 @@ int preobe_fdhook(SceIoIob *iob, char *file, int flags, SceMode mode)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
SceIoHookList *cur = g_hookList;
|
||||
int i; for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x000000FF;
|
||||
iob->hook.iob = iob;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FF00;
|
||||
// 2DB8
|
||||
while (cur != NULL)
|
||||
{
|
||||
iob->hook.arg = &cur->arg;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF0000;
|
||||
if (cur->arg.hook->funcs->Preobe(&iob->hook, file, flags, mode) == 1)
|
||||
{
|
||||
// 2E24
|
||||
@ -1516,11 +1519,9 @@ int preobe_fdhook(SceIoIob *iob, char *file, int flags, SceMode mode)
|
||||
}
|
||||
cur = cur->next;
|
||||
}
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
|
||||
// 2DF0
|
||||
iob->hook.funcs = NULL;
|
||||
iob->hook.arg = NULL;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFF00;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1548,7 +1549,7 @@ int validate_fd(int fd, int arg1, int arg2, int arg3, SceIoIob **outIob)
|
||||
goto error;
|
||||
}
|
||||
// 2EE4
|
||||
SceSysmemUIDControlBlock *block;
|
||||
uidControlBlock *block;
|
||||
if (sceKernelGetUIDcontrolBlockWithType(id, g_uid_type, &block) != 0)
|
||||
goto error;
|
||||
SceIoIob *iob = (void*)block + g_uid_type->size * 4;
|
||||
@ -1649,7 +1650,7 @@ int alloc_iob(SceIoIob **outIob, int arg1)
|
||||
g_iobCount++;
|
||||
}
|
||||
// 3214
|
||||
SceSysmemUIDControlBlock *blk;
|
||||
uidControlBlock *blk;
|
||||
int ret = sceKernelCreateUID(g_uid_type, "Iob", (pspK1IsUserMode() == 1 ? 0xFF : 0), &blk);
|
||||
if (ret == 0)
|
||||
{
|
||||
@ -1716,7 +1717,7 @@ int free_iob(SceIoIob *iob)
|
||||
if (fileId < 64)
|
||||
g_UIDs[fileId] = 0; // contains u32s
|
||||
// 3360
|
||||
sceKernelDeleteUID(((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->UID);
|
||||
sceKernelDeleteUID(((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->UID);
|
||||
sceKernelCpuResumeIntr(oldIntr);
|
||||
return 0;
|
||||
}
|
||||
@ -1983,7 +1984,7 @@ int sub_3778(const char *path, SceIoDeviceArg **dev, int *fsNum, char **dirNameP
|
||||
// 3A70
|
||||
int strcmp_bs(const char *s1, const char *s2)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
dbg_printf("strcmp_bs(%s, %s)\n", s1, s2);
|
||||
if (s1 == NULL || s2 == NULL)
|
||||
{
|
||||
if (s1 == s2)
|
||||
@ -2041,9 +2042,9 @@ int StdioInit(int, int);
|
||||
|
||||
int IoFileMgrInit()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
SceSysmemUIDControlBlock *in, *out, *err;
|
||||
dbg_init();
|
||||
uidControlBlock *in, *out, *err;
|
||||
dbg_init(1, FB_NONE, FAT_BASIC);
|
||||
dbg_printf("-- iofilemgr init\n");
|
||||
g_heap = sceKernelCreateHeap(1, 0x2000, 1, "SceIofile");
|
||||
sceKernelCreateUIDtype("Iob", 0x90, IobFuncs, 0, &g_uid_type);
|
||||
g_ktls = sceKernelAllocateKTLS(4, (void*)free_cwd, 0);
|
||||
@ -2062,6 +2063,7 @@ int IoFileMgrInit()
|
||||
g_UIDs[0] = sceKernelStdin();
|
||||
g_UIDs[1] = sceKernelStdout();
|
||||
g_UIDs[2] = sceKernelStderr();
|
||||
dbg_printf("-- init finished\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2112,7 +2114,7 @@ int sceIoGetAsyncStat(SceUID fd, int poll, SceInt64 *res)
|
||||
int sceIoSetAsyncCallback(SceUID fd, SceUID cb, void *argp)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
SceSysmemUIDControlBlock *blk;
|
||||
uidControlBlock *blk;
|
||||
SceIoIob *iob;
|
||||
if (sceKernelGetThreadmanIdType(cb) != 8)
|
||||
return 0x800200D2;
|
||||
@ -2652,7 +2654,7 @@ int do_open(const char *path, int flags, SceMode mode, int async, int retAddr, i
|
||||
pspSetK1(oldK1);
|
||||
return ret;
|
||||
}
|
||||
sceKernelRenameUID(((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->UID, path);
|
||||
sceKernelRenameUID(((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->UID, path);
|
||||
if (sceKernelDeci2pReferOperations() != 0)
|
||||
{
|
||||
// 4CF4
|
||||
@ -3116,7 +3118,7 @@ int do_deldrv(SceIoDeviceArg *dev)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
|
||||
uidControlBlock *cur = g_uid_type->parent;
|
||||
// 59C4
|
||||
while (cur != g_uid_type)
|
||||
{
|
||||
@ -3165,14 +3167,14 @@ int _nulldev_write(SceIoIob *iob __attribute__((unused)), const char *data, int
|
||||
return len;
|
||||
}
|
||||
|
||||
int iob_do_initialize(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
|
||||
int iob_do_initialize(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
sceKernelCallUIDObjCommonFunction(cb, funcid, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
return cb->UID;
|
||||
}
|
||||
|
||||
int iob_do_delete(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
|
||||
int iob_do_delete(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
sceKernelCallUIDObjCommonFunction(cb, funcid, arg1, arg2, arg3, arg4, arg5, arg6);
|
||||
|
@ -6,8 +6,8 @@
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "../sysmem/sysclib.h"
|
||||
#include "iofilemgr.h"
|
||||
#include "sysmem_sysclib.h"
|
||||
#include "iofilemgr_kernel.h"
|
||||
|
||||
#define STDIN 0
|
||||
#define STDOUT 1
|
||||
@ -66,45 +66,48 @@ int _sceKernelRegisterStdPipe(int fd, SceUID id);
|
||||
// 0000
|
||||
int StdioReInit()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
SceUID *fds[3];
|
||||
fds[0] = &g_stdin;
|
||||
fds[1] = &g_stdout;
|
||||
fds[2] = &g_stderr;
|
||||
// 0044
|
||||
int i;
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
|
||||
for (i = 0; i < 3; i++)
|
||||
*fds[i] = sceIoOpen("dummy_drv_iofile:", 3, 0x1FF);
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF00FF;
|
||||
g_debugRead = 1;
|
||||
sceTtyProxyInit();
|
||||
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFFFF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 0094
|
||||
int StdioInit()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return StdioReInit();
|
||||
}
|
||||
|
||||
int sceKernelStdin()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return g_stdin;
|
||||
}
|
||||
|
||||
int sceKernelStdout()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return g_stdout;
|
||||
}
|
||||
|
||||
int sceKernelStderr()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return g_stderr;
|
||||
}
|
||||
|
||||
int sceKernelStdoutReopen(const char *file, int flags, SceMode mode)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (g_stdout < 0)
|
||||
return 0x80020384;
|
||||
return sceIoReopen(file, flags, mode, g_stdout);
|
||||
@ -112,6 +115,7 @@ int sceKernelStdoutReopen(const char *file, int flags, SceMode mode)
|
||||
|
||||
int sceKernelStderrReopen(const char *file, int flags, SceMode mode)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (g_stderr < 0)
|
||||
return 0x80020384;
|
||||
return sceIoReopen(file, flags, mode, g_stderr);
|
||||
@ -119,6 +123,7 @@ int sceKernelStderrReopen(const char *file, int flags, SceMode mode)
|
||||
|
||||
int sceKernelStdoutReset()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int ret = stdoutReset(3, 0x1FF);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@ -128,6 +133,7 @@ int sceKernelStdoutReset()
|
||||
|
||||
int sceKernelStderrReset()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int ret = stdoutReset(3, 0x1FF);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@ -138,6 +144,7 @@ int sceKernelStderrReset()
|
||||
// 019C
|
||||
int stdoutReset(int flags, SceMode mode)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char openDummy = 0;
|
||||
if (sceKernelDipsw(58) == 1 && !sceKernelDipsw(59))
|
||||
openDummy = 1;
|
||||
@ -158,6 +165,7 @@ int stdoutReset(int flags, SceMode mode)
|
||||
// 0244
|
||||
void printf_char(void *ctx, int ch)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (ch == 0x200) {
|
||||
*(short*)(ctx + 2) = 0;
|
||||
return;
|
||||
@ -216,6 +224,7 @@ void printf_char(void *ctx, int ch)
|
||||
|
||||
int fdprintf(int fd, const char *fmt, ...)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
va_list ap;
|
||||
char sp[168];
|
||||
va_start(ap, fmt);
|
||||
@ -228,6 +237,7 @@ int fdprintf(int fd, const char *fmt, ...)
|
||||
|
||||
int printf(const char *fmt, ...)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
va_list ap;
|
||||
char sp[164];
|
||||
va_start(ap, fmt);
|
||||
@ -240,6 +250,7 @@ int printf(const char *fmt, ...)
|
||||
|
||||
int fdputc(int c, int fd)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char str[1] = {c};
|
||||
if (c == '\t')
|
||||
{
|
||||
@ -305,6 +316,7 @@ int fdputc(int c, int fd)
|
||||
|
||||
int fdgetc(int fd)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char buf[1];
|
||||
int ret;
|
||||
if (g_debugRead == 0) {
|
||||
@ -321,6 +333,7 @@ int fdgetc(int fd)
|
||||
|
||||
char *fdgets(char *s, int fd)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char *end = s + 125;
|
||||
char *curS = s;
|
||||
for (;;)
|
||||
@ -387,11 +400,13 @@ char *fdgets(char *s, int fd)
|
||||
|
||||
int putchar(int c)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return fdputc(c, STDOUT);
|
||||
}
|
||||
|
||||
int fdputs(const char *s, int fd)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char c;
|
||||
if (s == NULL) // 089C
|
||||
s = "<NULL>";
|
||||
@ -403,6 +418,7 @@ int fdputs(const char *s, int fd)
|
||||
|
||||
int puts(const char *s)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
char c;
|
||||
if (s == NULL) // 089C
|
||||
s = "<NULL>";
|
||||
@ -414,45 +430,54 @@ int puts(const char *s)
|
||||
|
||||
int getchar(void)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return fdgetc(STDIN);
|
||||
}
|
||||
|
||||
char *gets(char *s)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return fdgets(s, STDIN);
|
||||
}
|
||||
|
||||
int sceKernelStdioRead()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020001;
|
||||
}
|
||||
|
||||
int sceKernelStdioLseek()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020001;
|
||||
}
|
||||
|
||||
void sceKernelStdioSendChar()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
int sceKernelStdioWrite()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020001;
|
||||
}
|
||||
|
||||
int sceKernelStdioClose()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020001;
|
||||
}
|
||||
|
||||
int sceKernelStdioOpen()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020001;
|
||||
}
|
||||
|
||||
int _sceTtyProxyDevRead(SceIoIob *iob, char *buf, int size)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int cnt;
|
||||
int oldK1 = pspShiftK1();
|
||||
int count = 0;
|
||||
@ -485,6 +510,7 @@ int _sceTtyProxyDevRead(SceIoIob *iob, char *buf, int size)
|
||||
|
||||
int _sceTtyProxyDevWrite(SceIoIob *iob, const char *buf, int size)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int oldK1 = pspShiftK1();
|
||||
int count = 0;
|
||||
int curCnt;
|
||||
@ -517,12 +543,14 @@ int _sceTtyProxyDevWrite(SceIoIob *iob, const char *buf, int size)
|
||||
// 0B58
|
||||
int sceTtyProxyInit()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
sceIoAddDrv(&g_TtyDevTbl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceKernelRegisterStdoutPipe(SceUID id)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int oldK1 = pspShiftK1();
|
||||
int ret = _sceKernelRegisterStdPipe(STDOUT, id);
|
||||
pspSetK1(oldK1);
|
||||
@ -531,6 +559,7 @@ int sceKernelRegisterStdoutPipe(SceUID id)
|
||||
|
||||
int sceKernelRegisterStderrPipe(SceUID id)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
int oldK1 = pspShiftK1();
|
||||
int ret = _sceKernelRegisterStdPipe(STDERR, id);
|
||||
pspSetK1(oldK1);
|
||||
@ -540,17 +569,20 @@ int sceKernelRegisterStderrPipe(SceUID id)
|
||||
// 0BE4
|
||||
int _sceTtyProxyDevInit(SceIoDeviceArg *dev __attribute__((unused)))
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 0BEC
|
||||
int _sceTtyProxyDevExit(SceIoDeviceArg *dev __attribute__((unused)))
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int _sceTtyProxyDevOpen(SceIoIob *iob, char *file __attribute__((unused)), int flags __attribute__((unused)), SceMode mode __attribute__((unused)))
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (iob->fsNum < 3)
|
||||
return 0;
|
||||
return 0x80010006;
|
||||
@ -558,6 +590,7 @@ int _sceTtyProxyDevOpen(SceIoIob *iob, char *file __attribute__((unused)), int f
|
||||
|
||||
int _sceTtyProxyDevClose(SceIoIob *iob)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (iob->fsNum < 3)
|
||||
return 0;
|
||||
return 0x80010006;
|
||||
@ -565,11 +598,13 @@ int _sceTtyProxyDevClose(SceIoIob *iob)
|
||||
|
||||
SceOff _sceTtyProxyDevLseek()
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
return 0x80020323;
|
||||
}
|
||||
|
||||
int _sceTtyProxyDevIoctl(SceIoIob *iob, unsigned int cmd, void *indata __attribute__((unused)), int inlen __attribute__((unused)), void *outdata __attribute__((unused)), int outlen __attribute__((unused)))
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (cmd != 0x00134002)
|
||||
return 0x80020324;
|
||||
int oldK1 = pspShiftK1();
|
||||
@ -585,6 +620,7 @@ int _sceTtyProxyDevIoctl(SceIoIob *iob, unsigned int cmd, void *indata __attribu
|
||||
// 0CBC
|
||||
int _sceKernelRegisterStdPipe(int fd, SceUID id)
|
||||
{
|
||||
dbg_printf("Calling %s\n", __FUNCTION__);
|
||||
if (id < 0)
|
||||
{
|
||||
// 0DD8
|
||||
@ -601,7 +637,7 @@ int _sceKernelRegisterStdPipe(int fd, SceUID id)
|
||||
}
|
||||
if (sceKernelGetThreadmanIdType(id) == 7)
|
||||
return 0x800200D2;
|
||||
SceSysmemUIDControlBlock *blk;
|
||||
uidControlBlock *blk;
|
||||
if (sceKernelGetUIDcontrolBlock(id, &blk) != 0)
|
||||
return 0x800200D1;
|
||||
if (pspK1IsUserMode() && (blk->parent->attribute & 2) != 0)
|
||||
|
24
src/lfatfs/exports.exp
Normal file
24
src/lfatfs/exports.exp
Normal file
@ -0,0 +1,24 @@
|
||||
# Export file automatically generated with prxtool
|
||||
PSP_BEGIN_EXPORTS
|
||||
|
||||
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
|
||||
PSP_EXPORT_FUNC_HASH(module_start)
|
||||
PSP_EXPORT_FUNC_HASH(module_stop)
|
||||
PSP_EXPORT_FUNC_HASH(module_reboot_before)
|
||||
PSP_EXPORT_FUNC_HASH(module_reboot_phase)
|
||||
PSP_EXPORT_VAR_HASH(module_info)
|
||||
PSP_EXPORT_VAR_HASH(module_sdk_version)
|
||||
PSP_EXPORT_VAR_NID(syslib_1D4042A5, 0x1D4042A5)
|
||||
PSP_EXPORT_VAR_HASH(module_start_thread_parameter)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceLFatFs_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(sceLfatfsStop)
|
||||
PSP_EXPORT_FUNC_HASH(sceLfatfsWaitReady)
|
||||
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_BED8D616, 0xBED8D616)
|
||||
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_F1FBA85F, 0xF1FBA85F)
|
||||
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_F28896C0, 0xF28896C0)
|
||||
PSP_EXPORT_VAR_NID(sceLFatFs_driver_E63DDEB5, 0xE63DDEB5)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_END_EXPORTS
|
338
src/lowio/exports.exp
Normal file
338
src/lowio/exports.exp
Normal file
@ -0,0 +1,338 @@
|
||||
# Export file automatically generated with prxtool
|
||||
PSP_BEGIN_EXPORTS
|
||||
|
||||
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
|
||||
PSP_EXPORT_FUNC_HASH(module_start)
|
||||
PSP_EXPORT_FUNC_HASH(module_reboot_before)
|
||||
PSP_EXPORT_VAR_HASH(module_info)
|
||||
PSP_EXPORT_VAR_NID(syslib_11B97506, 0x11B97506)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceSysreg_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregSemaTryLock, 0x0143E8A8)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkEnable, 0x018F913A)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_0607A4C4, 0x0607A4C4)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostClkEnable, 0x08FE40F5)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkDisable, 0x092AF6A9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_0995F8F6, 0x0995F8F6)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAvcResetEnable, 0x0AE8E549)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregEmcddrBusClockEnable, 0x0BBD4ED6)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_14EB1393, 0x14EB1393)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_1561BCD2, 0x1561BCD2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_15786501, 0x15786501)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregGpioIoDisable, 0x15DC34BC)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregAtaBusClockEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifIoDisable, 0x176E590A)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregPllGetOutSelect, 0x187F651D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregApbBusClockEnable, 0x191D7461)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregPllSetOutSelect, 0x19A6E54B)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_19F4C92D, 0x19F4C92D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregVmeResetEnable, 0x1A27B224)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmIoDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbBusClockDisable, 0x1D233EF9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifClkDisable, 0x1E111B75)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_1E62714E, 0x1E62714E)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregIntrInit, 0x1E881843)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSircsClkDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_20B1D0A9, 0x20B1D0A9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifGetConnectStatus, 0x20DF8278)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregPllUpdateFrequency, 0x231EE757)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_2458B6AC, 0x2458B6AC)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwEdramBusClockDisable, 0x258782A3)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSircsIoDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregGpioClkEnable, 0x283D7A95)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmBusClockDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregKirkResetDisable, 0x2F9B03E0)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbResetEnable, 0x30C0A141)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_32E02FDF, 0x32E02FDF)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_33EE43F0, 0x33EE43F0)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostBusClockEnable, 0x35C23493)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifResetEnable, 0x370419AD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregGpioIoEnable, 0x37FBACA5)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMeBusClockEnable, 0x38527743)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_3BB0B2C8, 0x3BB0B2C8)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregApbBusClockDisable, 0x3D2CE374)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaIoEnable, 0x3E95AB4D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_3F6F2CC7, 0x3F6F2CC7)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkSelect, 0x41B0337B)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_434E8AF1, 0x434E8AF1)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwRegBBusClockEnable, 0x44277D0D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostBusClockDisable, 0x4479C9BD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMeResetEnable, 0x457FEBA9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioIoEnable, 0x4634C9DC)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregTopResetEnable, 0x47C971B2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifClkSelect, 0x48124AFE)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4841B2D2, 0x4841B2D2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkSelect, 0x48CF8E69)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMeResetDisable, 0x48F1C4AD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostResetEnable, 0x4A433DC3)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutIoEnable, 0x4B4CCE80)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4C0BED71, 0x4C0BED71)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSircsIoEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifClkEnable, 0x4DB0C55D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4E5C86AA, 0x4E5C86AA)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregGetFuseId)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwRegABusClockEnable, 0x51571E8F)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifIoEnable, 0x518E3F29)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwRegABusClockDisable, 0x52B74976)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkDisable, 0x55373EE4)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_554E97F7, 0x554E97F7)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAvcResetDisable, 0x55FF02E9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifAcquireConnectIntr, 0x56E95BB6)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddIoEnable, 0x5D5118CD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddBusClockDisable, 0x5F179286)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregInterruptToOther, 0x61FAE917)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_63E1EE9C, 0x63E1EE9C)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSircsClkEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaResetEnable, 0x64C8E8DD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregScResetEnable, 0x655C9CFC)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6596EBC3, 0x6596EBC3)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwResetEnable, 0x66899952)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_68AE6434, 0x68AE6434)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaClkEnable, 0x6A9B0426)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregPllGetBaseFrequency, 0x6B3A3417)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbClkDisable, 0x6C0EE043)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6DA9347D, 0x6DA9347D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6F3B6D7D, 0x6F3B6D7D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_72887197, 0x72887197)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbGetConnectStatus, 0x72C1CA96)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_73B3E52D, 0x73B3E52D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_73EBC752, 0x73EBC752)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkEnable, 0x74C6F776)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_76E57DC6, 0x76E57DC6)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregUartClkEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregIntrEnd, 0x7AA8A8BE)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_7CF05E81, 0x7CF05E81)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifResetDisable, 0x7DD0CBEE)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwRegBBusClockDisable, 0x7E1B1F28)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregUartIoEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_803E5F37, 0x803E5F37)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_80944C8A, 0x80944C8A)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbClkEnable, 0x84A279A4)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_84E0F197, 0x84E0F197)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_85B74FDA, 0x85B74FDA)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioBusClockDisable, 0x85BA0C0B)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddResetEnable, 0x866EEB74)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregKirkBusClockDisable, 0x867BD103)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_87B61303, 0x87B61303)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioBusClockEnable, 0x8B1DD83A)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkDisable)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSpiIoEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaResetDisable, 0x8CFD0DCA)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregGetFuseConfig)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaClkSelect, 0x9057C9E2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostAcquireIntr, 0x915B3772)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9275DD37, 0x9275DD37)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbResetDisable, 0x9306F27B)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifBusClockEnable, 0x93F96D8F)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddBusClockEnable, 0x94B89638)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbIoEnable, 0x95CA8AA1)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_96D74557, 0x96D74557)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9746F3B2, 0x9746F3B2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbQueryIntr, 0x9A6E7BB8)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostResetDisable, 0x9B710D3C)
|
||||
# TODO: where did I get that name from?
|
||||
PSP_EXPORT_FUNC_NID(sceSysregSetMasterPriv, 0x9CD29D6C)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmIoEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9E2F8FD5, 0x9E2F8FD5)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddResetDisable, 0x9EB8C49E)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSpiIoDisable)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregUartClkDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkSelect, 0xA4706857)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregPllGetFrequency, 0xA5CC6025)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostClkDisable, 0xA781B599)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_A7C82BDD, 0xA7C82BDD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregGpioClkDisable, 0xA9EE3124)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwResetDisable, 0xAEB8DBD1)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregSetAwEdramSize, 0xAEC87DFD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregDoTimerEvent, 0xAFE47914)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkEnable, 0xB1751B06)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_B413B041, 0xB413B041)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_B6296512, 0xB6296512)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregAtaBusClockDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregVmeResetDisable, 0xB73D3619)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifQueryConnectIntr, 0xBB6BAA00)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregUartIoDisable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregKirkBusClockEnable, 0xBBC721EA)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_BD7B035B, 0xBD7B035B)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkEnable, 0xBE03D832)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_BE1FF8BD, 0xBE1FF8BD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbIoDisable, 0xC11B5C0D)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregKirkResetEnable, 0xC1A37B37)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAwEdramBusClockEnable, 0xC2E0E869)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C2F3061F, 0xC2F3061F)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkSelect, 0xC36775AD)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMeBusClockDisable, 0xC4C21CAB)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioIoDisable, 0xC60FAFB4)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C6C75585, 0xC6C75585)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C9585F8E, 0xC9585F8E)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbhostQueryIntr, 0xD3E23912)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifDelaySelect, 0xD3E8F2AF)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkDisable, 0xD507A82D)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkSelect)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbBusClockEnable, 0xD7AD9705)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregRequestIntr, 0xD8E6CAE0)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_DA5B5ED9, 0xDA5B5ED9)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregSemaUnlock, 0xDB97C70E)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkDisable, 0xDED12806)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregGetTachyonVersion)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutIoDisable, 0xE5764EAC)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaIoDisable, 0xEB5C723A)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregUsbAcquireIntr, 0xEC03F6E2)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregEmcddrBusClockDisable, 0xF1924607)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregMsifBusClockDisable, 0xF288E58E)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtahddIoDisable, 0xF4A3C03A)
|
||||
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmBusClockEnable)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_F9C93DD4, 0xF9C93DD4)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_FC0131A7, 0xFC0131A7)
|
||||
PSP_EXPORT_FUNC_NID(sceSysregAtaClkDisable, 0xFC5CDD48)
|
||||
PSP_EXPORT_FUNC_NID(sceSysreg_driver_FF0E07B1, 0xFF0E07B1)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceGpio_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_0C5B2EAF, 0x0C5B2EAF)
|
||||
PSP_EXPORT_FUNC_HASH(sceGpioPortClear)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_1A730F20, 0x1A730F20)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_1BB49B65, 0x1BB49B65)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_2605F404, 0x2605F404)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_2B280C43, 0x2B280C43)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_2FFF2F8B, 0x2FFF2F8B)
|
||||
PSP_EXPORT_FUNC_HASH(sceGpioPortSet)
|
||||
PSP_EXPORT_FUNC_HASH(sceGpioSetPortMode)
|
||||
PSP_EXPORT_FUNC_HASH(sceGpioPortRead)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_4DE658CC, 0x4DE658CC)
|
||||
PSP_EXPORT_FUNC_HASH(sceGpioDisableIntr)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_9C4CFE04, 0x9C4CFE04)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_A21E44CB, 0xA21E44CB)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_EF1F40F5, 0xEF1F40F5)
|
||||
PSP_EXPORT_FUNC_NID(sceGpio_driver_FBC85E74, 0xFBC85E74)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(scePwm_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_12CCFDDD, 0x12CCFDDD)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_14FB5CD9, 0x14FB5CD9)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_36F98EBA, 0x36F98EBA)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_94552DD4, 0x94552DD4)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_B99A9B50, 0xB99A9B50)
|
||||
PSP_EXPORT_FUNC_NID(scePwm_driver_D67982F3, 0xD67982F3)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceI2c_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_4020DC7E, 0x4020DC7E)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_47BDEAAA, 0x47BDEAAA)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_49B159DE, 0x49B159DE)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_62C7E1E4, 0x62C7E1E4)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_8CBD8CCF, 0x8CBD8CCF)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_D35FC17D, 0xD35FC17D)
|
||||
PSP_EXPORT_FUNC_NID(sceI2c_driver_DBE12CED, 0xDBE12CED)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceDmac, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_HASH(sceDmacMemcpy)
|
||||
PSP_EXPORT_FUNC_HASH(sceDmacTryMemcpy)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceDmacplus_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_282CA0D7, 0x282CA0D7)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_2C5FC1E3, 0x2C5FC1E3)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_33CD36DD, 0x33CD36DD)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_47D400CB, 0x47D400CB)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_5FCF43BD, 0x5FCF43BD)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_6945F1D3, 0x6945F1D3)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_88ACB6F1, 0x88ACB6F1)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_9C492B9B, 0x9C492B9B)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_9EBF7D3E, 0x9EBF7D3E)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_A3AA8D00, 0xA3AA8D00)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_B0EC610D, 0xB0EC610D)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_B269EAC9, 0xB269EAC9)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_BF0DB45E, 0xBF0DB45E)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_CCCF6069, 0xCCCF6069)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_D126494B, 0xD126494B)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_D57D5BC2, 0xD57D5BC2)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_DBD8526F, 0xDBD8526F)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_E9B746F9, 0xE9B746F9)
|
||||
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_ED849260, 0xED849260)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceLcdc_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_0BFF31C5, 0x0BFF31C5)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_1F01BD08, 0x1F01BD08)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_2D80BB2E, 0x2D80BB2E)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_35F45B50, 0x35F45B50)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_3EDBFCB9, 0x3EDBFCB9)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_451FE1A1, 0x451FE1A1)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_525E7EB1, 0x525E7EB1)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_56307DBC, 0x56307DBC)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_5DF2F52A, 0x5DF2F52A)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_75C4DA9A, 0x75C4DA9A)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_88C3D167, 0x88C3D167)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_90AA786C, 0x90AA786C)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_94F83F74, 0x94F83F74)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_9D4FB8B1, 0x9D4FB8B1)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_A3DCEF64, 0xA3DCEF64)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_BAF165CE, 0xBAF165CE)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_BB839185, 0xBB839185)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_C004BBE0, 0xC004BBE0)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_C943B9A2, 0xC943B9A2)
|
||||
PSP_EXPORT_FUNC_NID(sceLcdc_driver_E9DBD35F, 0xE9DBD35F)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceNand_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandIsBadBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWriteAccess)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandSetScramble)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandVerifyEcc)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandEraseAllBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandDetectChipMakersBBM)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandDumpWearBBMSize)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandUnlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadExtraOnly)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandVerifyBlockWithRetry)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWriteBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadAccess)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReset)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandSetWriteProtect)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandCorrectEcc)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWritePagesRawExtra)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandEraseBlockWithRetry)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadPages)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWritePages)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandTestBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandLock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandGetPagesPerBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWriteBlockWithVerify)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandCollectEcc)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandWritePagesRawAll)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandGetTotalBlocks)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandDoMarkAsBadBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadBlockWithRetry)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadPagesRawAll)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandGetPageSize)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandDetectChip)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadPagesRawExtra)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadStatus)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandEraseBlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandCountChipMakersBBM)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandCalcEcc)
|
||||
PSP_EXPORT_FUNC_HASH(sceNandReadId)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceDdr_driver, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_00E36648, 0x00E36648)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_0BAAE4C5, 0x0BAAE4C5)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_2AA39A80, 0x2AA39A80)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_397756C0, 0x397756C0)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_3D50DEC9, 0x3D50DEC9)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_4F30BFE8, 0x4F30BFE8)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_6DE74D80, 0x6DE74D80)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_77CD1FB3, 0x77CD1FB3)
|
||||
PSP_EXPORT_FUNC_HASH(sceDdrFlush)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_95B9A692, 0x95B9A692)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_9F882141, 0x9F882141)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_CF07B9E2, 0xCF07B9E2)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_E0A39D3E, 0xE0A39D3E)
|
||||
PSP_EXPORT_FUNC_NID(sceDdr_driver_F1005384, 0xF1005384)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_END_EXPORTS
|
@ -12,10 +12,9 @@
|
||||
|
||||
/* TODO: Reverse the sceDdrdb_driver library functions in openpsid.prx.*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <pspinit.h>
|
||||
#include "../openpsid/ddrdb.h"
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "openpsid_ddrdb.h"
|
||||
|
||||
PSP_MODULE_INFO("sceMcctrl", 0x5006, 1, 1);
|
||||
|
||||
|
@ -4,9 +4,7 @@
|
||||
TARGET = me_wrapper
|
||||
OBJS = init.o main.o
|
||||
|
||||
LIBS =
|
||||
|
||||
PRX_EXPORTS = exports.exp
|
||||
LIBS = -lsceSysreg_driver -lUtilsForKernel -lIoFileMgrForKernel -lsceSysEventForKernel -lSysclibForKernel -lSysMemForKernel -lInterruptManagerForKernel -lThreadManForKernel -lsceDdr_driver -lsceSyscon_driver -lsceLFatFs_driver -lsceWmd_driver
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
@ -1,48 +0,0 @@
|
||||
.set noreorder
|
||||
|
||||
#include "pspstub.s"
|
||||
|
||||
STUB_START "ThreadManForKernel",0x00010011,0x00040005
|
||||
STUB_FUNC 0xB7D098C6,sceKernelCreateMutex
|
||||
STUB_FUNC 0xB011B11F,sceKernelLockMutex
|
||||
STUB_FUNC 0x6B30100F,sceKernelUnlockMutex
|
||||
STUB_FUNC 0x0DDCD2C9,sceKernelTryLockMutex
|
||||
STUB_END
|
||||
STUB_START "sceWmd_driver",0x00090011,0x00010005
|
||||
STUB_FUNC 0x7A0E484C,sceWmd_driver_7A0E484C
|
||||
STUB_END
|
||||
STUB_START "sceDdr_driver",0x00010011,0x00010005
|
||||
STUB_FUNC 0x87D86769,sceDdrFlush
|
||||
STUB_END
|
||||
STUB_START "sceSyscon_driver",0x00010011,0x00010005
|
||||
STUB_FUNC 0x9BC5E33B,sceSysconCtrlTachyonAvcPower
|
||||
STUB_END
|
||||
STUB_START "sceLFatFs_driver",0x00010011,0x00010005
|
||||
STUB_FUNC 0x933F6E29,sceLfatfsWaitReady
|
||||
STUB_END
|
||||
STUB_START "UtilsForKernel",0x00090011,0x00010005
|
||||
STUB_FUNC 0x6C6887EE,UtilsForKernel_6C6887EE
|
||||
STUB_END
|
||||
STUB_START "SysMemForKernel",0x00010011,0x00040005
|
||||
STUB_FUNC 0xB4F00CB5,sceKernelGetCompiledSdkVersion
|
||||
STUB_FUNC 0xFDC97D28,SysMemForKernel_FDC97D28
|
||||
STUB_FUNC 0xD3CA555C,SysMemForKernel_D3CA555C
|
||||
STUB_FUNC 0x22A114DC,sceKernelMemset32
|
||||
STUB_FUNC 0xC4EEAF20,sceKernelQueryMemoryPartitionInfo
|
||||
STUB_FUNC 0x7158CE7E,sceKernelAllocPartitionMemory
|
||||
STUB_END
|
||||
STUB_START "sceSysreg_driver",0x00010011,0x000c0005
|
||||
STUB_FUNC 0x9BC5E33B,sceSysregGetTachyonVersion
|
||||
STUB_FUNC 0xA5CC6025,sceSysregPllGetFrequency
|
||||
STUB_FUNC 0x7AA8A8BE,sceSysregIntrEnd
|
||||
STUB_FUNC 0x457FEBA9,sceSysregMeResetEnable
|
||||
STUB_FUNC 0x48F1C4AD,sceSysregMeResetDisable
|
||||
STUB_FUNC 0x1A27B224,sceSysregVmeResetEnable
|
||||
STUB_FUNC 0xB73D3619,sceSysregVmeResetDisable
|
||||
STUB_FUNC 0x0AE8E549,sceSysregAvcResetEnable
|
||||
STUB_FUNC 0x55FF02E9,sceSysregAvcResetDisable
|
||||
STUB_FUNC 0x38527743,sceSysregMeBusClockEnable
|
||||
STUB_FUNC 0xC4C21CAB,sceSysregMeBusClockDisable
|
||||
STUB_FUNC 0x61FAE917,sceSysregInterruptToOther
|
||||
STUB_END
|
||||
|
@ -5,9 +5,15 @@
|
||||
* See the file COPYING for copying permission.
|
||||
*/
|
||||
|
||||
#include <pspkernel.h>
|
||||
#include <pspsysevent.h>
|
||||
#include <pspsysmem_kernel.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "avcodec_audiocodec.h"
|
||||
#include "iofilemgr_kernel.h"
|
||||
#include "sysmem_sysevent.h"
|
||||
#include "sysmem_sysclib.h"
|
||||
|
||||
#include "me_wrapper.h"
|
||||
|
||||
PSP_MODULE_INFO("sceMeCodecWrapper", 0x1007, 1, 9);//I'm not sure if the versions are correct
|
||||
@ -16,7 +22,11 @@ u32 module_sdk_version = 0x06060010;
|
||||
int meStarted;
|
||||
|
||||
MERpc meRpc;
|
||||
int interruptHandler(int a0, int SceMediaEngineRpcWait)
|
||||
|
||||
int sceMeCore_driver_FA398D71(int cmd, ...);
|
||||
int sceMeCore_driver_635397BB(int cmd, ...);
|
||||
|
||||
int interruptHandler(int a0 __attribute__((unused)), int SceMediaEngineRpcWait)
|
||||
{
|
||||
sceKernelSetEventFlag(SceMediaEngineRpcWait, 1);
|
||||
return -1;
|
||||
@ -153,7 +163,8 @@ int sub_0x1000002(int arg)
|
||||
int sub_0x1000f()
|
||||
{
|
||||
volatile int *hwAddress = (int*)0xbfc00700;
|
||||
while (*hwAddress != -4);
|
||||
while (*hwAddress != -4)
|
||||
;
|
||||
if (*(int*)0xbfc00718 == 0){
|
||||
*(int*)0xbc100070 = *(int*)0xbc100070 & (~4);//clear 3rd bit
|
||||
sceSysregAvcResetEnable();
|
||||
@ -162,7 +173,7 @@ int sub_0x1000f()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int eventHandler(int ev_id, char *ev_name, void *param, int *result)
|
||||
int eventHandler(int ev_id, char *ev_name __attribute__((unused)), void *param, int *result __attribute__((unused)))
|
||||
{
|
||||
if (!meStarted)
|
||||
return 0;
|
||||
@ -192,9 +203,9 @@ int eventHandler(int ev_id, char *ev_name, void *param, int *result)
|
||||
return 0;
|
||||
}
|
||||
|
||||
PspSysEventHandler SceMeRpc = {sizeof(PspSysEventHandler), "SceMeRpc", 0x01ffff00, &eventHandler, 0,0, NULL, {0,0,0,0,0,0,0,0,0}};
|
||||
SceSysEventHandler SceMeRpc = {sizeof(SceSysEventHandler), "SceMeRpc", 0x01ffff00, &eventHandler, 0,0, NULL, {0,0,0,0,0,0,0,0,0}};
|
||||
|
||||
int module_start(int argc, char *argv[])
|
||||
int module_start(int argc __attribute__((unused)), void *argp __attribute__((unused)))
|
||||
{
|
||||
initRpc();
|
||||
sceLfatfsWaitReady();
|
||||
@ -223,7 +234,7 @@ int sceMeWrapperEnd()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int module_reboot_phase(int argc, char *argv[])
|
||||
int module_reboot_phase(int argc, void *argp __attribute__((unused)))
|
||||
{
|
||||
if (argc == 1)
|
||||
sceMeWrapperEnd();
|
||||
@ -289,7 +300,7 @@ int sceMePowerControlAvcPower(int arg0)
|
||||
/**************************sceMeVideo_driver****************************/
|
||||
int sub_000011E4(u32 *arg0, int error)
|
||||
{
|
||||
if (error == 0x80000003)
|
||||
if (error == (int)0x80000003)
|
||||
return -1;
|
||||
arg0[2] = error;
|
||||
return (error != -8) ? -3 : -4;
|
||||
@ -297,15 +308,15 @@ int sub_000011E4(u32 *arg0, int error)
|
||||
|
||||
int sub_00001214(u32 *arg0, int error)
|
||||
{
|
||||
if (val == 0x80000003)
|
||||
if (error == (int)0x80000003)
|
||||
return -1;
|
||||
arg0[2] = val;
|
||||
return (val >= 0) ? -3 : -4;
|
||||
arg0[2] = error;
|
||||
return (error >= 0) ? -3 : -4;
|
||||
}
|
||||
|
||||
int sceMeVideo_driver_C441994C(int arg0, u32 *arg1)
|
||||
{
|
||||
if (0x5100601 < arg1[0])
|
||||
if (arg1[0] != 0x05100601)
|
||||
return -2;
|
||||
if (arg1[4] == 0)
|
||||
return -1;
|
||||
@ -348,7 +359,7 @@ int sceMeVideo_driver_C441994C(int arg0, u32 *arg1)
|
||||
int unkVideo;
|
||||
int sceMeVideo_driver_E8CD3C75(int arg0, u32 *arg1)
|
||||
{
|
||||
if (0x5100601 < arg1[0])
|
||||
if (arg1[0] != 0x05100601)
|
||||
return -2;
|
||||
arg1[2] = 0;
|
||||
int intr = sceKernelCpuSuspendIntr();
|
||||
@ -390,7 +401,7 @@ int sceMeVideo_driver_E8CD3C75(int arg0, u32 *arg1)
|
||||
//decode
|
||||
int sceMeVideo_driver_8768915D(int arg0, u32 *arg1)
|
||||
{
|
||||
if (0x5100601 < arg1[0])
|
||||
if (arg1[0] != 0x05100601)
|
||||
return -2;
|
||||
int ret;
|
||||
arg1[2] = 0;
|
||||
@ -451,7 +462,7 @@ int sceMeVideo_driver_8768915D(int arg0, u32 *arg1)
|
||||
//Stop
|
||||
int sceMeVideo_driver_4D78330C(int arg0, u32 *arg1)
|
||||
{
|
||||
if (0x5100601 < arg1[0])
|
||||
if (arg1[0] != 0x05100601)
|
||||
return -2;
|
||||
arg1[2] = 0;
|
||||
int ret;
|
||||
@ -505,7 +516,7 @@ int sceMeVideo_driver_4D78330C(int arg0, u32 *arg1)
|
||||
//Delete, FinishMJPEG
|
||||
int sceMeVideo_driver_8DD56014(int arg0, u32 *arg1)
|
||||
{
|
||||
if (0x5100601 < arg1[0])
|
||||
if (arg1[0] != 0x05100601)
|
||||
return -2;
|
||||
int ret;
|
||||
int intr = sceKernelCpuSuspendIntr();
|
||||
@ -539,7 +550,7 @@ int sceMeVideo_driver_8DD56014(int arg0, u32 *arg1)
|
||||
//GetFrameCrop, SetMemory, ScanHeader, GetVersion, GetSEI, _893B32B1
|
||||
int sceMeVideo_driver_6D68B223(int arg0, u32 arg1, u32 *codec_buffer)
|
||||
{
|
||||
if (0x5100601 < codec_buffer[0])
|
||||
if (codec_buffer[0] != 0x05100601)
|
||||
return -2;
|
||||
int ret;
|
||||
switch (arg1)
|
||||
@ -634,44 +645,39 @@ int sceMeVideo_driver_21521BE5(int a0)
|
||||
}
|
||||
|
||||
/**************************sceMeAudio_driver****************************/
|
||||
int sub_00001240(int codec, unsigned long *codec_buffer, int error)
|
||||
int sub_00001240(int codec, SceAudiocodecCodec *info, int error)
|
||||
{
|
||||
if (error == 0x80000003 || codec < 0x1000 || codec >= 0x1006)
|
||||
if (error == (int)0x80000003 || codec < 0x1000 || codec >= 0x1006)
|
||||
return -1;
|
||||
switch (codec)
|
||||
{
|
||||
case 0x1000: //at3+
|
||||
sceMeCore_driver_635397BB(106, &codec_buffer[2], codec_buffer[3]);
|
||||
if (error>=256){
|
||||
codec_buffer[9] = 0;
|
||||
}
|
||||
sceMeCore_driver_635397BB(106, &info->err, info->edramAddr);
|
||||
if (error >= 256)
|
||||
info->unk36 = 0;
|
||||
return error < 256 ? -3 : -4;
|
||||
break;
|
||||
|
||||
case 0x1001://at3
|
||||
sceMeCore_driver_635397BB(113, &codec_buffer[2], codec_buffer[3]);
|
||||
if (error>=256){
|
||||
codec_buffer[9] = 0;
|
||||
}
|
||||
sceMeCore_driver_635397BB(113, &info->err, info->edramAddr);
|
||||
if (error >= 256)
|
||||
info->unk36 = 0;
|
||||
return error < 256 ? -3 : -4;
|
||||
break;
|
||||
|
||||
case 0x1002://mp3
|
||||
codec_buffer[2] = (u32)error;
|
||||
info->err = error;
|
||||
return -3;
|
||||
break;
|
||||
|
||||
case 0x1003://aac
|
||||
sceMeCore_driver_635397BB(145, &codec_buffer[2], codec_buffer[3]);
|
||||
if (error>=256){
|
||||
codec_buffer[9] = 0;
|
||||
}
|
||||
sceMeCore_driver_635397BB(145, &info->err, info->edramAddr);
|
||||
if (error >= 256)
|
||||
info->unk36 = 0;
|
||||
return error < 256 ? -3 : -4;
|
||||
break;
|
||||
|
||||
case 0x1005://wma
|
||||
sceMeCore_driver_635397BB(230, &codec_buffer[2], codec_buffer[3]);
|
||||
if (error<0){
|
||||
codec_buffer[9] = 0;
|
||||
}
|
||||
sceMeCore_driver_635397BB(230, &info->err, info->edramAddr);
|
||||
if (error < 0)
|
||||
info->unk36 = 0;
|
||||
return error >=0 ? -3 : -4;
|
||||
break;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@ -701,10 +707,10 @@ int sceMeAudio_driver_9A9E21EE(u32 codec, SceAudiocodecCodec *info) //same -310C
|
||||
ret = sceMeCore_driver_FA398D71(140, info);
|
||||
break;
|
||||
case 0x1003:
|
||||
ret = sceMeCore_driver_FA398D71(144, info->inBuf, &info->unk28, info->outBuf, &info->unk36, info->unk12);
|
||||
ret = sceMeCore_driver_FA398D71(144, info->inBuf, &info->unk28, info->outBuf, &info->unk36, info->edramAddr);
|
||||
break;
|
||||
case 0x1005:
|
||||
ret = sceMeCore_driver_FA398D71(229, info->inBuf, info->unk60, &info->unk64, info->outBuf, &info->unk36, &info->unk68, info->unk12);
|
||||
ret = sceMeCore_driver_FA398D71(229, info->inBuf, info->unk60, &info->unk64, info->outBuf, &info->unk36, &info->unk68, info->edramAddr);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
@ -800,7 +806,7 @@ int unk[] = {//guessed, codec_buffer[10] should be 4 or 6, got 8744 from a snd0
|
||||
0x00000098};
|
||||
|
||||
//init
|
||||
int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
|
||||
int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecCodec *info)
|
||||
{
|
||||
if (info->unk0 != 0x05100601)
|
||||
return -2;
|
||||
@ -854,7 +860,7 @@ int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
|
||||
info->unk52 = 2;
|
||||
break;
|
||||
case 0x1002://mp3
|
||||
ret = sceMeCore_driver_635397BB(139, info->unk12);
|
||||
ret = sceMeCore_driver_635397BB(139, info->edramAddr);
|
||||
break;
|
||||
case 0x1003://aac
|
||||
switch (*(int*)&info->unk40){
|
||||
@ -898,53 +904,59 @@ int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
|
||||
return sub_00001240(codec, info, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
//probably for umd(only at3/+)
|
||||
int sceMeAudio_driver_B57F033A(u32 codec, unsigned long *codec_buffer){
|
||||
if (0x5100601 < codec_buffer[0]) return -2;
|
||||
codec_buffer[2] = 0;
|
||||
int sceMeAudio_driver_B57F033A(u32 codec, SceAudiocodecCodec *info)
|
||||
{
|
||||
if (info->unk0 != 0x05100601)
|
||||
return -1;
|
||||
info->err = 0;
|
||||
int ret;
|
||||
if (codec == 0x1000){
|
||||
ret = sceMeCore_driver_635397BB(99, &codec_buffer[13], &codec_buffer[15], &codec_buffer[16], &codec_buffer[10]);
|
||||
if (ret >= 0){
|
||||
codec_buffer[2] = 0;
|
||||
if (codec_buffer[15] != -1){
|
||||
switch (codec)
|
||||
{
|
||||
case 0x1000:
|
||||
ret = sceMeCore_driver_635397BB(99, &info->unk52, &info->unk60, &info->unk64, &info->unk40);
|
||||
if (ret >= 0)
|
||||
{
|
||||
info->err = 0;
|
||||
if (info->unk60 != -1)
|
||||
return -1;
|
||||
info->unk72 = info->unk60;
|
||||
ret = sceMeCore_driver_635397BB(103, info->unk52, 1, info->unk64, 1, info->edramAddr);
|
||||
if (ret >= 0)
|
||||
{
|
||||
ret = sceMeCore_driver_635397BB(105, &info->unk44, info->edramAddr);
|
||||
if (ret >= 0)
|
||||
{
|
||||
ret = sceMeCore_driver_635397BB(100, &info->unk68, info->edramAddr);
|
||||
if (ret >= 0)
|
||||
ret = sceMeCore_driver_FA398D71(104, info->unk20, info->edramAddr);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x1001:
|
||||
if (*(int*)&info->unk40 < 14 || *(int*)&info->unk40 >= 16)
|
||||
return -1;
|
||||
info->unk52 = 1;
|
||||
info->unk48 = unk[*(int*)&info->unk40 * 2 + 1];
|
||||
ret = sceMeCore_driver_635397BB(115, unk[*(int*)&info->unk40 * 2], 44100, unk[*(int*)&info->unk40 * 2 + 1], info->edramAddr);
|
||||
break;
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
codec_buffer[18] = codec_buffer[15];
|
||||
ret = sceMeCore_driver_635397BB(103, codec_buffer[13], 1, codec_buffer[16], 1, codec_buffer[3]);
|
||||
if (ret >= 0){
|
||||
ret = sceMeCore_driver_635397BB(105, &codec_buffer[11], codec_buffer[3]);
|
||||
if (ret >= 0){
|
||||
ret = sceMeCore_driver_635397BB(100, &codec_buffer[17], codec_buffer[3]);
|
||||
if (ret >= 0){
|
||||
ret = sceMeCore_driver_FA398D71(104, codec_buffer[5], codec_buffer[3]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (codec == 0x1001){
|
||||
if ((u32)(codec_buffer[10]-14) >= 2){
|
||||
return -1;
|
||||
}
|
||||
codec_buffer[13] = 1;
|
||||
codec_buffer[12] = unk[codec_buffer[10]*2+1];
|
||||
ret = sceMeCore_driver_635397BB(115, unk[codec_buffer[10]*2], 44100, unk[codec_buffer[10]*2+1], codec_buffer[3]);
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
if (ret < 0){
|
||||
return sub_00001240(codec, codec_buffer, ret);
|
||||
}
|
||||
if (ret < 0)
|
||||
return sub_00001240(codec, info, ret);
|
||||
return ret;
|
||||
}
|
||||
//get info?
|
||||
int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
|
||||
int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, SceAudiocodecCodec *info)
|
||||
{
|
||||
if (codec_buffer[0] > 0x05100601)
|
||||
if (info->unk0 != 0x05100601)
|
||||
return -2;
|
||||
codec_buffer[2] = 0;
|
||||
info->err = 0;
|
||||
int ret;
|
||||
switch (arg1)
|
||||
{
|
||||
@ -973,7 +985,7 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
|
||||
break;
|
||||
}
|
||||
ret = sceMeCore_driver_FA398D71(index);
|
||||
codec_buffer[1] = ret;
|
||||
info->unk4 = ret;
|
||||
return ret;
|
||||
}
|
||||
case 4: {
|
||||
@ -981,9 +993,9 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
|
||||
return -1;
|
||||
}
|
||||
//at3+ checkneed mem
|
||||
ret = sceMeCore_driver_635397BB(99, &codec_buffer[13], &codec_buffer[15], &codec_buffer[16], &codec_buffer[10]);
|
||||
ret = sceMeCore_driver_635397BB(99, &info->unk52, &info->unk60, &info->unk64, &info->unk40);
|
||||
if (ret < 0) {
|
||||
return sub_00001240(codec, codec_buffer, ret);
|
||||
return sub_00001240(codec, info, ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -991,12 +1003,12 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
|
||||
if (codec != 4098){
|
||||
return -1;
|
||||
}
|
||||
ret = sceMeCore_driver_635397BB(137, codec_buffer[10], codec_buffer[3]);
|
||||
ret = sceMeCore_driver_635397BB(137, info->unk40, info->edramAddr);
|
||||
if (ret == 0) {
|
||||
ret = sceMeCore_driver_635397BB(130, codec_buffer[6], &codec_buffer[11], &codec_buffer[14], codec_buffer[3]);
|
||||
ret = sceMeCore_driver_635397BB(130, info->inBuf, &info->unk44, &info->unk56, info->edramAddr);
|
||||
}
|
||||
if (ret < 0){
|
||||
return sub_00001240(codec, codec_buffer, ret);
|
||||
return sub_00001240(codec, info, ret);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -1004,25 +1016,36 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**************************sceMeMemory_driver****************************/
|
||||
void *sceMeMalloc(int size){
|
||||
void *sceMeMalloc(int size)
|
||||
{
|
||||
return (void*)sceMeCore_driver_FA398D71(384, size);
|
||||
}
|
||||
void *sceMeCalloc(int num, int size){
|
||||
|
||||
void *sceMeCalloc(int num, int size)
|
||||
{
|
||||
return (void*)sceMeCore_driver_FA398D71(386, num, size);
|
||||
}
|
||||
void sceMeFree(void *ptr){
|
||||
|
||||
void sceMeFree(void *ptr)
|
||||
{
|
||||
sceMeCore_driver_FA398D71(385, ptr);
|
||||
}
|
||||
/**************************sceMeCore_driver****************************/
|
||||
int sceMeRpcLock(){
|
||||
int sceMeRpcLock()
|
||||
{
|
||||
return sceKernelLockMutex(meRpc.mutex, 1, 0);
|
||||
}
|
||||
int sceMeRpcUnlock(){
|
||||
|
||||
int sceMeRpcUnlock()
|
||||
{
|
||||
return sceKernelUnlockMutex(meRpc.mutex, 1);
|
||||
}
|
||||
|
||||
//me*img.img contains 2 sets of compressed data(except maybe sd), code and contents of main memory
|
||||
__attribute__((noreturn)) void decompressAndRunMeImage(void *data){
|
||||
__attribute__((noreturn)) void decompressAndRunMeImage(void *data)
|
||||
{
|
||||
void *end = data;
|
||||
int ret;
|
||||
if (0x3fffff < ((u32)data & ~0x88000000)){
|
||||
@ -1030,23 +1053,23 @@ __attribute__((noreturn)) void decompressAndRunMeImage(void *data){
|
||||
}
|
||||
*(int*)0xbfc00700 = -4;
|
||||
if (memcmp(data, "KL4E", 4) == 0){
|
||||
ret = UtilsForKernel_6C6887EE((void*)0x88300000, (void*)((u32)data & ~0x88300000), data + 4, &end);//decompress meimg.img
|
||||
ret = UtilsForKernel_6C6887EE((void*)0x88300000, (u32)data & ~0x88300000, data + 4, &end);//decompress meimg.img
|
||||
if (ret >= 0){
|
||||
sceKernelDcacheWritebackInvalidateAll() ;
|
||||
sceKernelIcacheInvalidateAll();
|
||||
((void (*)(void*))0x88300000)(end);
|
||||
}
|
||||
}
|
||||
sceKernelMemset32(end, 0, (void*)0x88400000 - (u32)end);
|
||||
sceKernelMemset32(end, 0, 0x88400000 - (u32)end);
|
||||
*(int*)0xBFC00700 = -5;
|
||||
*(int*)0xBFC00710 = -2;
|
||||
//dead end
|
||||
asm volatile("haltLoop:\n"
|
||||
".word 0x70000000\n"
|
||||
"b haltLoop\n"
|
||||
"nop\n");
|
||||
pspHalt();
|
||||
for (;;)
|
||||
;
|
||||
}
|
||||
int decrypt(void *data, int size){
|
||||
|
||||
int decrypt(void *data, int size)
|
||||
{
|
||||
int ret, newSize;
|
||||
ret = sceWmd_driver_7A0E484C(data, size, &newSize);
|
||||
if (ret < 0) {
|
||||
@ -1054,7 +1077,9 @@ int decrypt(void *data, int size){
|
||||
}
|
||||
return newSize;
|
||||
}
|
||||
int sub_00001C30(void* data, int wait){
|
||||
|
||||
int sub_00001C30(void* data, int wait)
|
||||
{
|
||||
sceSysregMeResetEnable();
|
||||
sceSysregMeBusClockEnable();
|
||||
int size = (u32)me_boot_code_end - (u32)me_boot_code;
|
||||
@ -1085,7 +1110,8 @@ int sub_00001C30(void* data, int wait){
|
||||
|
||||
int sceMeBootStart(u32 arg)
|
||||
{
|
||||
if (arg >= 5) return 0x80000102;
|
||||
if (arg >= 5)
|
||||
return 0x80000102;
|
||||
int genArg = arg;
|
||||
u32 tachyon = sceSysregGetTachyonVersion();
|
||||
if (tachyon > 0x4fffff && genArg != 2) // > 01g
|
||||
@ -1128,7 +1154,7 @@ int sceMeBootStart(u32 arg)
|
||||
sceIoClose(fd);
|
||||
if (read != size){
|
||||
sceMeRpcUnlock();
|
||||
return (read<0)?read:0x80000022;
|
||||
return (read < 0) ? read : (int)0x80000022;
|
||||
}
|
||||
decrypt(address, read);
|
||||
sub_00001C30(address, 1);
|
||||
@ -1138,27 +1164,34 @@ int sceMeBootStart(u32 arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sceMeCore_driver_635397BB(int index, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
|
||||
int sceMeCore_driver_635397BB(int cmd, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, cmd);
|
||||
sceKernelDcacheWritebackInvalidateAll();
|
||||
return sceMeCore_driver_FA398D71(index, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
|
||||
int ret = sceMeCore_driver_FA398D71(cmd, va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int));
|
||||
va_end(ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int sceMeCore_driver_FA398D71(int index, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
|
||||
int sceMeCore_driver_FA398D71(int cmd, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, cmd);
|
||||
int ret = sceKernelLockMutex(meRpc.mutex, 1, 0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
int* meTable = (int*)0xbfc00600;
|
||||
meTable[0] = index;
|
||||
meTable[2] = arg0;
|
||||
meTable[3] = arg1;
|
||||
meTable[4] = arg2;
|
||||
meTable[5] = arg3;
|
||||
meTable[6] = arg4;
|
||||
meTable[7] = arg5;
|
||||
meTable[8] = arg6;
|
||||
meTable[9] = arg7;
|
||||
meTable[0] = cmd;
|
||||
meTable[2] = va_arg(ap, int);
|
||||
meTable[3] = va_arg(ap, int);
|
||||
meTable[4] = va_arg(ap, int);
|
||||
meTable[5] = va_arg(ap, int);
|
||||
meTable[6] = va_arg(ap, int);
|
||||
meTable[7] = va_arg(ap, int);
|
||||
meTable[8] = va_arg(ap, int);
|
||||
meTable[9] = va_arg(ap, int);
|
||||
va_end(ap);
|
||||
sceDdrFlush(5);
|
||||
sceSysregInterruptToOther();
|
||||
sceKernelWaitEventFlag(meRpc.event, 1, PSP_EVENT_WAITCLEAR, 0, 0);
|
||||
|
@ -9,6 +9,7 @@ typedef struct{
|
||||
int event;
|
||||
int sema;
|
||||
}MERpc;
|
||||
|
||||
#define PSP_O_UNKNOWN0 0x04000000
|
||||
|
||||
int sceMeRpcLock();
|
||||
@ -17,29 +18,6 @@ int sub_00001C30(void* data, int wait);
|
||||
int sceMeBootStart(unsigned int bootCode);
|
||||
int sceMePowerControlAvcPower(int arg0);
|
||||
|
||||
|
||||
extern void me_boot_code_end();
|
||||
extern void me_boot_code();
|
||||
|
||||
extern void *memcpy(void *, void *, int);
|
||||
extern int memcmp(void *, void *, int);
|
||||
extern void* SysMemForKernel_5339A163();
|
||||
extern int SysMemForKernel_374E8E66();
|
||||
//Previous declaration was 'extern void* sceKernelMemset32(void*, int, void*);'
|
||||
extern void* sceKernelMemset32(void*, char, int);
|
||||
extern int sceSysregAvcResetEnable();
|
||||
extern int sceSysregAvcResetDisable();
|
||||
extern int sceSysregInterruptToOther();
|
||||
extern float sceSysregPllGetFrequency();
|
||||
extern unsigned int sceSysregGetTachyonVersion();
|
||||
extern int sceSysregIntrEnd();
|
||||
extern int sceDdrFlush(int);
|
||||
extern int sceKernelCreateMutex(char *, int, int, int);
|
||||
extern int sceKernelTryLockMutex(int, int);
|
||||
extern int sceKernelLockMutex(int, int, int);
|
||||
extern int sceKernelUnlockMutex(int, int);
|
||||
extern int sceKernelEnableIntr(int);
|
||||
extern void sceSysconCtrlTachyonAvcPower(int);
|
||||
extern int UtilsForKernel_6C6887EE(void*, void*, void*, void**);
|
||||
extern void sceKernelIcacheInvalidateAll();
|
||||
extern int sceWmd_driver_7A0E484C(void* , int, int*);
|
||||
|
91
src/mesg_led/exports.exp
Normal file
91
src/mesg_led/exports.exp
Normal file
@ -0,0 +1,91 @@
|
||||
# Export file automatically generated with prxtool
|
||||
PSP_BEGIN_EXPORTS
|
||||
|
||||
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
|
||||
PSP_EXPORT_FUNC_HASH(module_start)
|
||||
PSP_EXPORT_VAR_HASH(module_info)
|
||||
PSP_EXPORT_VAR_HASH(module_sdk_version)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceMesgLed_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_21AFFAAC, 0x21AFFAAC)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_2CB700EC, 0x2CB700EC)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_308D37FF, 0x308D37FF)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_31D6D8AA, 0x31D6D8AA)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_337D0DD3, 0x337D0DD3)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_3783B0AD, 0x3783B0AD)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4BE02A12, 0x4BE02A12)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4EAB9850, 0x4EAB9850)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_52B6E552, 0x52B6E552)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_5C3A61FE, 0x5C3A61FE)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_66B348B2, 0x66B348B2)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_6BF453D3, 0x6BF453D3)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_792A6126, 0x792A6126)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_91E0A9AD, 0x91E0A9AD)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_9E3C79D9, 0x9E3C79D9)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2CDAC3F, 0xB2CDAC3F)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2D95FDF, 0xB2D95FDF)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B5596BE4, 0xB5596BE4)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C00DAD75, 0xC00DAD75)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C79E3488, 0xC79E3488)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C7D1C16B, 0xC7D1C16B)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C9ABD2F2, 0xC9ABD2F2)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_CED2C075, 0xCED2C075)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_EBB4613D, 0xEBB4613D)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_F8485C9C, 0xF8485C9C)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceResmap_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_HASH(sceResmapPrepareByPolling)
|
||||
PSP_EXPORT_FUNC_HASH(sceResmapPrepare)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceDbman_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_HASH(sceDbmanSelectByPolling)
|
||||
PSP_EXPORT_FUNC_HASH(sceDbmanSelect)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceNwman_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceNwman_driver_9555D68D, 0x9555D68D)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceResmgr_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceResmgr_driver_8E6C62C8, 0x8E6C62C8)
|
||||
PSP_EXPORT_FUNC_NID(sceResmgr_driver_9DC14891, 0x9DC14891)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceResmgr, 0x0011, 0x4009)
|
||||
PSP_EXPORT_FUNC_NID(sceResmgr_8E6C62C8, 0x8E6C62C8)
|
||||
PSP_EXPORT_FUNC_NID(sceResmgr_9DC14891, 0x9DC14891)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceMesgd_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgd_driver_102DC8AF, 0x102DC8AF)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgd_driver_ADD0CB66, 0xADD0CB66)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceWmd_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceWmd_driver_7A0E484C, 0x7A0E484C)
|
||||
PSP_EXPORT_FUNC_NID(sceWmd_driver_B7CE9041, 0xB7CE9041)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceDbsvr_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_HASH(sceDbsvrGetData)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceMesgIns_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_4A03F940, 0x4A03F940)
|
||||
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_D062B635, 0xD062B635)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(scePauth_driver, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(scePauth_driver_98B83B5D, 0x98B83B5D)
|
||||
PSP_EXPORT_FUNC_NID(scePauth_driver_F7AA47F6, 0xF7AA47F6)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(scePauth, 0x0011, 0x4009)
|
||||
PSP_EXPORT_FUNC_NID(scePauth_98B83B5D, 0x98B83B5D)
|
||||
PSP_EXPORT_FUNC_NID(scePauth_F7AA47F6, 0xF7AA47F6)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_END_EXPORTS
|
@ -4,7 +4,5 @@
|
||||
TARGET = sysmem
|
||||
OBJS = start.o debug.o sysevent.o suspend.o assert.o sysclib.o utils.o kdebug.o main.o
|
||||
|
||||
PRX_EXPORTS=exports.exp
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
||||
|
379
src/sysmem/exports.exp
Normal file
379
src/sysmem/exports.exp
Normal file
@ -0,0 +1,379 @@
|
||||
# Export file automatically generated with prxtool
|
||||
PSP_BEGIN_EXPORTS
|
||||
|
||||
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
|
||||
PSP_EXPORT_FUNC_HASH(SysMemInit)
|
||||
PSP_EXPORT_VAR_HASH(module_info)
|
||||
PSP_EXPORT_VAR_HASH(module_sdk_version)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(SysMemForKernel, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSysMemMaxFreeMemSize, 0x00154B6D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelPartitionTotalFreeMemSize, 0x0115B0F8)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelHeapTotalFreeSize, 0x01810023)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCreateUIDtype, 0x034129FB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetModel, 0x07C586A1)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCreateUID, 0x0A34C078)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_13EE28DA, 0x13EE28DA)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelPartitionMaxFreeMemSize, 0x13F4A0DE)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetUmdCacheOn, 0x1404C1AA)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemcpy, 0x181065AB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetGprofFunction, 0x1A726C89)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelJointMemoryBlock, 0x1AB50974)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemoryExtendSize, 0x1E6BB8E8)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDeleteUIDtype, 0x1ECAB5C4)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelLookupUIDFunction, 0x21487E5B)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemset32, 0x22A114DC)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCallUIDObjCommonFunction, 0x235C2646)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelAllocHeapMemory, 0x23D81675)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_2A8B8B2D, 0x2A8B8B2D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterGetIdFunc, 0x310802A9)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemoryOpenSize, 0x35170484)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDeleteUID, 0x361F0F88)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetSystemStatus, 0x36C503A9)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelPrintUidListAll, 0x3E384043)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUIDname, 0x3EC451EB)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_40B744A4, 0x40B744A4)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetQTGP3, 0x43E0A861)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUIDcontrolBlockWithType, 0x44BDF332)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSysMemTotalFreeMemSize, 0x45332D44)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetQTGP2, 0x474CA24F)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelQueryLowheapInfo, 0x476B244F)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompilerVersion, 0x476F687A)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetAllowReplaceUmd, 0x4972F9D1)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetInitialRandomValue, 0x4A325AA0)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetSystemStatus, 0x521AC5A4)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelPartitionTotalMemSize, 0x53D50AC2)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetSysMemoryInfo, 0x57FA5AF4)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCreateHeap, 0x58148F07)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCallGcovFunction, 0x5FE712E9)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSysMemRealMemorySize, 0x6D9E2DD6)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetCompilerVersion, 0x6E4F9F62)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelAllocPartitionMemory, 0x7158CE7E)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCallUIDFunction, 0x757EAC7D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelQueryHeapInfo, 0x79BD1975)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemoryShrinkSize, 0x7A7CD7BC)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCallUIDObjFunction, 0x7D50CE82)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelHoldUID, 0x7DDA0E01)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_7FF2F35A, 0x7FF2F35A)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_807179E7, 0x807179E7)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetDdrMemoryProtection, 0x83B5226D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelApiEvaluationReport, 0x845310CF)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelFreeHeapMemory, 0x87C2AB85)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemset, 0x8AE776AF)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSizeLockMemoryBlock, 0x8E742787)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetRebootKernel, 0x96A3CE2C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetDNAS, 0x982A4779)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemmoveWithFill, 0x9B20ACEF)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemmove, 0x9BAC123D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetQTGP2, 0x9E5B1ACB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUIDtype, 0x9F205D3E)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_A03CB480, 0xA03CB480)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_A0A9185A, 0xA0A9185A)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRenameUID, 0xA7622297)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUidmanCB, 0xAC12F678)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelReleaseUID, 0xB0CA8A4E)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetCompiledSdkVersion, 0xB4F00CB5)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCopyGameInfo, 0xB9B7281A)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetDNAS, 0xBFD53FB7)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_BFE08689, 0xBFE08689)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelFreePartitionMemory, 0xC1A26C6F)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetAWeDramSaveSize, 0xC4D3A378)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryPartitionInfo, 0xC4EEAF20)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelApiEvaluationInit, 0xC5EC364C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDevkitVersion, 0xC886B169)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUIDcontrolBlock, 0xC90B0992)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_CC31DEAD, 0xCC31DEAD)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetId, 0xD0C1460D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCreateUIDtypeInherit, 0xD222DAA7)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetMEeDramSaveSize, 0xD3CA555C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDeleteHeap, 0xDD6512D0)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetAWeDramSaveAddr, 0xE0EB8CBE)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsHold, 0xE13DDC87)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSearchUIDbyName, 0xE3F9C38E)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelMemoryCloseSize, 0xE5FB2EE5)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRebootKernel, 0xE73FBC0B)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCallGprofFunction, 0xE7A3F4D5)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryBlockInfo, 0xE860BE8F)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelFillFreeBlock, 0xEA1CABF1)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetGameInfo, 0xEF29061C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetBlockHeadAddr, 0xF12A62F7)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetAllowReplaceUmd, 0xF19BA38D)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelAllocHeapMemoryWithOption, 0xF2284ECC)
|
||||
PSP_EXPORT_FUNC_NID(SysMemForKernel_F3BDB718, 0xF3BDB718)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterApiEvaluation, 0xF5153060)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetSysmemIdList, 0xF5228C40)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSeparateMemoryBlock, 0xF7E78B33)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelApiEvaliationAddData, 0xF8F54A95)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryInfo, 0xFAF29F34)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelResizeMemoryBlock, 0xFB5BEB66)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetQTGP3, 0xFC639A2B)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetGcovFunction, 0xFD15D334)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSysMemMemSize, 0xFDBDEB5C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetMEeDramSaveAddr, 0xFDC97D28)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetUsersystemLibWork, 0xFE3CF2BC)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsKindOf, 0xFFC63884)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(SysMemUserForUser, 0x0011, 0x4000)
|
||||
PSP_EXPORT_FUNC_NID(SysMemUserForUser_057E7380, 0x057E7380)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPrintf)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion603_605, 0x1B4217BC)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelAllocPartitionMemory)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelQueryMemoryInfo)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion380_390, 0x315AD3A0)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion370, 0x342061E5)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion600_602, 0x35669D4C)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion606, 0x358CA1BB)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDevkitVersion)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelFreeMemoryBlock, 0x50F61D8A)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetCompiledSdkVersion)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion507, 0x7893F79A)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion500_505, 0x91DE343C)
|
||||
PSP_EXPORT_FUNC_NID(SysMemUserForUser_945E45DA, 0x945E45DA)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetBlockHeadAddr)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelMaxFreeMemSize)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetUsersystemLibWork, 0xA6848DF8)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelTotalMemSize, 0xACBD88CA)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelFreePartitionMemory)
|
||||
PSP_EXPORT_FUNC_NID(SysMemUserForUser_D8DE5C1E, 0xD8DE5C1E)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetMemoryBlockAddr, 0xDB83A952)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion395, 0xEBD5C3E6)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetCompilerVersion)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelTotalFreeMemSize)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetCompiledSdkVersion)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelAllocMemoryBlock, 0xFE707FDF)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(SysclibForKernel, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(bcopy)
|
||||
PSP_EXPORT_FUNC_HASH(strstr)
|
||||
PSP_EXPORT_FUNC_HASH(strpbrk)
|
||||
PSP_EXPORT_FUNC_HASH(memset)
|
||||
PSP_EXPORT_FUNC_HASH(wmemset)
|
||||
PSP_EXPORT_FUNC_HASH(rindex)
|
||||
PSP_EXPORT_FUNC_HASH(look_ctype_table)
|
||||
PSP_EXPORT_FUNC_HASH(tolower)
|
||||
PSP_EXPORT_FUNC_HASH(strcat)
|
||||
PSP_EXPORT_FUNC_HASH(strtol)
|
||||
PSP_EXPORT_FUNC_HASH(strrchr)
|
||||
PSP_EXPORT_FUNC_HASH(strlen)
|
||||
PSP_EXPORT_FUNC_HASH(__umoddi3)
|
||||
PSP_EXPORT_FUNC_HASH(memchr)
|
||||
PSP_EXPORT_FUNC_HASH(strtoul)
|
||||
PSP_EXPORT_FUNC_HASH(sprintf)
|
||||
PSP_EXPORT_FUNC_HASH(strncmp)
|
||||
PSP_EXPORT_FUNC_HASH(__udivdi3)
|
||||
PSP_EXPORT_FUNC_HASH(bcmp)
|
||||
PSP_EXPORT_FUNC_HASH(memcmp)
|
||||
PSP_EXPORT_FUNC_HASH(bzero)
|
||||
PSP_EXPORT_FUNC_HASH(prnt)
|
||||
PSP_EXPORT_FUNC_HASH(strnlen)
|
||||
PSP_EXPORT_FUNC_HASH(memmove)
|
||||
PSP_EXPORT_FUNC_HASH(memcpy)
|
||||
PSP_EXPORT_FUNC_HASH(strchr)
|
||||
PSP_EXPORT_FUNC_HASH(strncpy)
|
||||
PSP_EXPORT_FUNC_HASH(strcmp)
|
||||
PSP_EXPORT_FUNC_HASH(snprintf)
|
||||
PSP_EXPORT_FUNC_HASH(toupper)
|
||||
PSP_EXPORT_FUNC_HASH(index)
|
||||
PSP_EXPORT_FUNC_HASH(__udivmoddi4)
|
||||
PSP_EXPORT_FUNC_HASH(strcpy)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceSysEventForKernel, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSysEventDispatch)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelReferSysEventHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIsRegisterSysEventHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterSysEventHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUnregisterSysEventHandler)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceSuspendForKernel, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerTick)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDispatchResumeHandlers)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemLock)
|
||||
PSP_EXPORT_FUNC_NID(sceSuspendForKernel_67B59042, 0x67B59042)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDispatchSuspendHandlers)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterSuspendHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerRebootStart)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemTryLock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemUnlock)
|
||||
PSP_EXPORT_FUNC_NID(sceSuspendForKernel_B2C9640B, 0xB2C9640B)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterResumeHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerLockForUser)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterPowerHandlers)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlockForUser)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerLock)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(sceSuspendForUser, 0x0011, 0x4000)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerTick)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemLock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemTryLock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemUnlock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPowerLock)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(UtilsForUser, 0x0011, 0x4001)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_004D4DEE, 0x004D4DEE)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937UInt)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_0939D45C, 0x0939D45C)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_157A383A, 0x157A383A)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheReadTag)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_1B0592A3, 0x1B0592A3)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcTime)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockUpdate)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetGPI)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetPTRIG)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackRange)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_3FD3D324, 0x3FD3D324)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_485E430A, 0x485E430A)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheProbe)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_515B4FAF, 0x515B4FAF)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockResult)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_5C7F2B1A, 0x5C7F2B1A)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_601E43E6, 0x601E43E6)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockUpdate)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIG)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetGPO)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcGettimeofday)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_7333E539, 0x7333E539)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_740DF7F0, 0x740DF7F0)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbeRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackAll)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_7C5DC253, 0x7C5DC253)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbe)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1Digest)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_87E81561, 0x87E81561)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcClock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateAll)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRangeForUser, 0x99134C3F)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockInit)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_AF3766BB, 0xAF3766BB)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateAll)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_B83A1E76, 0xB83A1E76)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockResult)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5Digest)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_DBBE9A46, 0xDBBE9A46)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937Init)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForUser_F0155BCA, 0xF0155BCA)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheReadTag)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(UtilsForKernel, 0x0011, 0x0009)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_004D4DEE, 0x004D4DEE)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937UInt)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_0939D45C, 0x0939D45C)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIGMask)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_157A383A, 0x157A383A)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheReadTag)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetGPIMask)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_1B0592A3, 0x1B0592A3)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterRtcFunc)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetCompressedData)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcTime)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_2F80288E, 0x2F80288E)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockUpdate)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetGPI)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetPTRIG)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_39FFB756, 0x39FFB756)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackRange)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_3FD3D324, 0x3FD3D324)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelReleaseRtcFunc)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_43C9A8DB, 0x43C9A8DB)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_485E430A, 0x485E430A)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheProbe)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_515B4FAF, 0x515B4FAF)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockResult)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_5C7F2B1A, 0x5C7F2B1A)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_601E43E6, 0x601E43E6)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockUpdate)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIG)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_66463BEC, 0x66463BEC)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetGPO)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_6C6887EE, 0x6C6887EE)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcGettimeofday)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_7333E539, 0x7333E539)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_740DF7F0, 0x740DF7F0)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbeRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipDecompress)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackAll)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_7C5DC253, 0x7C5DC253)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbe)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1Digest)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateAll)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelPutUserLog)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetComment)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelLibcClock)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateAll)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRegisterUserLogHandler)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelSetGPOMask)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_99134C3F, 0x99134C3F)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockInit)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_A6B0A6B8, 0xA6B0A6B8)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_AA9AF5CF, 0xAA9AF5CF)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_AF0C0173, 0xAF0C0173)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGetGPO)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_AF3766BB, 0xAF3766BB)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetInfo)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateAll)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_B83A1E76, 0xB83A1E76)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockResult)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelRtcGetTick)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5Digest)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_DBBE9A46, 0xDBBE9A46)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipIsValid)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetName)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937Init)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDeflateDecompress)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_EC86074D, 0xEC86074D)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_F0155BCA, 0xF0155BCA)
|
||||
PSP_EXPORT_FUNC_NID(UtilsForKernel_F192F2EC, 0xF192F2EC)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockInit)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelIcacheReadTag)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_EXPORT_START(KDebugForKernel, 0x0011, 0x0001)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugPutchar, 0x01FFE328)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSm1RegisterOperations, 0x02668C61)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterAssertHandler, 0x0C56F87A)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDebugWrite, 0x2214799B)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelGetDebugPutchar, 0x276C02E3)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsUMDMode, 0x27B23800)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelCheckDebugHandler, 0x2C7D85FA)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipswLow32, 0x43F0F8AB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsToolMode, 0x47570AC5)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugRead, 0x48BE5AA9)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugWrite, 0x4A74A9D4)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipswCpTime, 0x568DCD25)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDeci2pRegisterOperations, 0x604276EB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipswHigh32, 0x6CB0BDA4)
|
||||
PSP_EXPORT_FUNC_HASH(Kprintf)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipsw, 0x86010FCB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugPutcharByBootloader, 0x8A0F4E94)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDebugEchoSet, 0xA1C5B42F)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelAssert, 0xAA9B2F07)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsDevelopmentToolMode, 0xACF427DC)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipswSet, 0xB20CABDB)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelIsDVDMode, 0xB41E2430)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDebugRead, 0xD4EC38C1)
|
||||
PSP_EXPORT_FUNC_HASH(sceKernelDipswAll)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelRegisterKprintfHandler, 0xE201A0D8)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelSm1ReferOperations, 0xE892D9A1)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDebugEcho, 0xE8FE3EE3)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDipswClear, 0xEFF672D1)
|
||||
PSP_EXPORT_FUNC_NID(sceKernelDeci2pReferOperations, 0xF339073C)
|
||||
PSP_EXPORT_END
|
||||
|
||||
PSP_END_EXPORTS
|
@ -158,7 +158,7 @@ int sceKernelRegisterResumeHandler(int reg, int (*handler)(int, void*), void *pa
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scekernelDispatchSuspendHandlers(int unk)
|
||||
int sceKernelDispatchSuspendHandlers(int unk)
|
||||
{
|
||||
int oldGp = pspGetGp();
|
||||
SceSuspendHandler *cur = &g_suspendHandlers[0];
|
||||
|
12
src/systimer/Makefile
Normal file
12
src/systimer/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
# Copyright (C) 2011, 2012 The uOFW team
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
TARGET = systimer
|
||||
OBJS = systimer.o
|
||||
|
||||
LIBS = -lInterruptManager -lInterruptManagerForKernel -lsceSuspendForKernel
|
||||
|
||||
DEBUG = 1
|
||||
|
||||
include ../../lib/build.mak
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
#include "../common/common.h"
|
||||
|
||||
#include "../sysmem/sysmem.h"
|
||||
#include "sysmem_suspend_kernel.h"
|
||||
#include "sysmem_sysevent.h"
|
||||
|
||||
#include "systimer.h"
|
||||
|
||||
@ -51,6 +52,8 @@ int resumeSTimer();
|
||||
|
||||
int STimerInit()
|
||||
{
|
||||
dbg_init(1, FB_NONE, FAT_BASIC);
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
// 0328
|
||||
int i;
|
||||
@ -76,6 +79,7 @@ int STimerInit()
|
||||
|
||||
int module_reboot_before()
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
// 03F8
|
||||
int i;
|
||||
@ -90,6 +94,7 @@ int module_reboot_before()
|
||||
// 00E0
|
||||
int systimerhandler(int arg0 __attribute__((unused)), SceSysTimer *arg1, int arg2)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
if (arg1->cb == NULL)
|
||||
return -1;
|
||||
int var = arg1->hw->unk0;
|
||||
@ -115,18 +120,21 @@ int systimerhandler(int arg0 __attribute__((unused)), SceSysTimer *arg1, int arg
|
||||
// 02B0
|
||||
void _sceSTimerStopCount(SceSysTimer *arg)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
arg->hw->unk0 = arg->hw->unk256 & 0x7F7FFFFF;
|
||||
}
|
||||
|
||||
// 02CC
|
||||
int _sceSTimerGetCount(SceSysTimer *arg)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
return (arg->hw->unk256 & 0x003FFFFF) - (arg->hw->unk4 & 0x003FFFFF);
|
||||
}
|
||||
|
||||
// 0864
|
||||
int suspendSTimer()
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
// 088C
|
||||
int i;
|
||||
for (i = 0; i < 4; i++)
|
||||
@ -142,6 +150,7 @@ int suspendSTimer()
|
||||
// 08DC
|
||||
int resumeSTimer()
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
// 0908
|
||||
int i;
|
||||
for (i = 0; i < 4; i++)
|
||||
@ -158,6 +167,7 @@ int resumeSTimer()
|
||||
// B53534B4
|
||||
int sceSTimerSetPrscl(int timerId, int arg1, int arg2)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -181,6 +191,7 @@ int sceSTimerSetPrscl(int timerId, int arg1, int arg2)
|
||||
|
||||
int sceSTimerAlloc()
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
if (sceKernelIsIntrContext() != 0)
|
||||
return 0x80020064;
|
||||
int oldIntr = sceKernelCpuSuspendIntr();
|
||||
@ -215,6 +226,7 @@ int sceSTimerAlloc()
|
||||
|
||||
int sceSTimerSetHandler(int timerId, int arg1, SceSysTimerCb arg2, int arg3)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -249,6 +261,7 @@ int sceSTimerSetHandler(int timerId, int arg1, SceSysTimerCb arg2, int arg3)
|
||||
|
||||
int sceSTimerStartCount(int timerId)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -266,6 +279,7 @@ int sceSTimerStartCount(int timerId)
|
||||
|
||||
int sceSTimerGetCount(int timerId, int *arg1)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -277,6 +291,7 @@ int sceSTimerGetCount(int timerId, int *arg1)
|
||||
|
||||
int sceSTimerResetCount(int timerId)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -290,6 +305,7 @@ int sceSTimerResetCount(int timerId)
|
||||
// 53231A15
|
||||
int sceSTimerSetTMCY(int timerId, int arg1)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -307,6 +323,7 @@ int sceSTimerSetTMCY(int timerId, int arg1)
|
||||
|
||||
int sceSTimerStopCount(int timerId)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (timer->curTimer != timerId)
|
||||
return 0x80020097;
|
||||
@ -318,6 +335,7 @@ int sceSTimerStopCount(int timerId)
|
||||
|
||||
int sceSTimerFree(int timerId)
|
||||
{
|
||||
dbg_printf("called %s\n", __FUNCTION__);
|
||||
SceSysTimer *timer = &timers[timerId & 3];
|
||||
if (sceKernelIsIntrContext() != 0)
|
||||
return 0x80020064;
|
||||
|
@ -1,16 +0,0 @@
|
||||
/* Copyright (C) 2011, 2012 The uOFW team
|
||||
See the file COPYING for copying permission.
|
||||
*/
|
||||
|
||||
typedef int (*SceSysTimerCb)(int, int, int, int);
|
||||
|
||||
int SysTimerForKernel_4467BD60(int arg0, int arg1, int arg2);
|
||||
int SysTimerForKernel_71059CBF();
|
||||
int SysTimerForKernel_847D785B(int arg0, int arg1, SceSysTimerCb arg2, int arg3);
|
||||
int SysTimerForKernel_8FB264FB(int arg);
|
||||
int SysTimerForKernel_94BA6594(int arg0, int *arg1);
|
||||
int SysTimerForKernel_964F73FD(int arg);
|
||||
int SysTimerForKernel_CE5A60D8(int arg0, int arg1);
|
||||
int SysTimerForKernel_D01C6E08(int arg);
|
||||
int SysTimerForKernel_F03AE143(int arg);
|
||||
|
@ -1,21 +1,21 @@
|
||||
# Copyright (C) 2011, 2012 The uOFW team
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
CPP=gcc
|
||||
CC=gcc
|
||||
CFLAGS=-Wall -Wextra -Werror
|
||||
LDFLAGS=
|
||||
TARGET=psp-build-exports
|
||||
OBJECTS= ..\common\sha1.o psp-build-exports.o
|
||||
OBJECTS=../common/sha1.o psp-build-exports.o
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJECTS)
|
||||
@echo "Creating binary $(TARGET)"
|
||||
@$(CPP) $(OBJECTS) -o $@ $(LDFLAGS)
|
||||
$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
|
||||
|
||||
%.o: %.cpp
|
||||
@echo "Compiling $^"
|
||||
$(CPP) $(CFLAGS) -c $^ -o $@
|
||||
$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
clean:
|
||||
@echo "Removing all the .o files"
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Copyright (C) 2011, 2012 The uOFW team
|
||||
# See the file COPYING for copying permission.
|
||||
|
||||
CPP=gcc
|
||||
CC=gcc
|
||||
CFLAGS=-Wall -Wextra -Werror
|
||||
LDFLAGS=
|
||||
TARGET=psp-fixup-imports
|
||||
@ -11,11 +11,11 @@ all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJECTS)
|
||||
@echo "Creating binary $(TARGET)"
|
||||
@$(CPP) $(OBJECTS) -o $@ $(LDFLAGS)
|
||||
@$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
|
||||
|
||||
%.o: %.cpp
|
||||
@echo "Compiling $^"
|
||||
$(CPP) $(CFLAGS) -c $^ -o $@
|
||||
$(CC) $(CFLAGS) -c $^ -o $@
|
||||
|
||||
clean:
|
||||
@echo "Removing all the .o files"
|
||||
|
Loading…
Reference in New Issue
Block a user