示例#1
0
        public virtual int hleMSstorStorageIoDevctl(pspIoDrvFileArg drvFileArg, PspString devicename, int cmd, TPointer indata, int inlen, TPointer outdata, int outlen)
        {
            switch (cmd)
            {
            case 0x02125802:
                outdata.setValue32(0);                         // ???
                break;

            case 0x0211D814:
                // inlen == 4, outlen == 0
                break;

            case 0x0210D816:                     // Format Memory Stick
                // inlen == 0, outlen == 0
                Console.WriteLine(string.Format("A FORMAT of the Memory Stick was requested, ignoring the request"));
                break;

            case 0x02025806:                     // Check if the device is inserted
                // 0 = Not inserted.
                // 1 = Inserted.
                outdata.setValue32(1);
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorStorageIoDevctl 0x{0:X8} unknown command on device '{1}'", cmd, devicename));
                break;
            }
            return(0);
        }
示例#2
0
        public virtual int hleMSstorPartitionIoIoctl(pspIoDrvFileArg drvFileArg, int cmd, TPointer indata, int inlen, TPointer outdata, int outlen)
        {
            switch (cmd)
            {
            case 0x02125001:                     // Mounted?
                outdata.setValue32(1);           // When returning 0, ERROR_ERRNO_DEVICE_NOT_FOUND is raised
                break;

            case 0x02125803:
                outdata.clear(outlen);
                if (dumpIoIoctl_0x02125803 != null)
                {
                    Utilities.writeBytes(outdata.Address, outlen, dumpIoIoctl_0x02125803, 0);
                }
                else
                {
                    outdata.setValue8(0, (sbyte)0x02);
                }
                break;

            case 0x02125008:
                outdata.setValue32(1);                         // 0 or != 0
                break;

            case 0x02125009:
                outdata.setValue32(0);                         // 0 or != 0
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorPartitionIoIoctl 0x{0:X8} unknown command", cmd));
                break;
            }
            return(0);
        }
示例#3
0
        public virtual int hleMSstorPartitionIoWrite(pspIoDrvFileArg drvFileArg, TPointer data, int len)
        {
            if (vFile != null)
            {
                scanThread.waitForCompletion();
                len = vFile.ioWrite(data, len);
            }

            return(len);
        }
示例#4
0
        public virtual int hleMSstorPartitionIoDevctl(pspIoDrvFileArg drvFileArg, PspString devicename, int cmd, TPointer indata, int inlen, TPointer outdata, int outlen)
        {
            switch (cmd)
            {
            case 0x02125802:
                outdata.setValue32(0);                         // ???
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorPartitionIoDevctl 0x{0:X8} unknown command on device '{1}'", cmd, devicename));
                break;
            }
            return(0);
        }
示例#5
0
        public virtual int hleMSstorStorageIoIoctl(pspIoDrvFileArg drvFileArg, int cmd, TPointer indata, int inlen, TPointer outdata, int outlen)
        {
            switch (cmd)
            {
            case 0x02125008:
                outdata.setValue32(1);                         // 0 or != 0
                break;

            case 0x02125009:
                outdata.setValue32(0);                         // 0 or != 0
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorStorageIoIoctl 0x{0:X8} unknown command", cmd));
                break;
            }
            return(0);
        }
示例#6
0
        public virtual long hleMSstorPartitionIoLseek(pspIoDrvFileArg drvFileArg, long offset, int whence)
        {
            switch (whence)
            {
            case PSP_SEEK_SET:
                position = offset;
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorPartitionIoLseek unimplemented whence=0x{0:X}", whence));
                break;
            }

            if (vFile != null)
            {
                position = vFile.ioLseek(position);
            }

            return(position);
        }
示例#7
0
        public virtual int hleMSstorControllerIoDevctl(pspIoDrvFileArg drvFileArg, PspString devicename, int cmd, TPointer indata, int inlen, TPointer outdata, int outlen)
        {
            switch (cmd)
            {
            case 0x0203D802:                     // Set EventFlag named SceFatfsDetectMedium
                int eventFlag = indata.getValue32();
                // Event 0x1: memory stick inserted?
                // Event 0x2: memory stick ejected?
                Managers.eventFlags.sceKernelSetEventFlag(eventFlag, 0x1);
                outdata.setValue32(0);
                break;

            case 0x02025801:                     // Check the MemoryStick's driver status
                outdata.setValue32(4);
                break;

            case 0x2015807:
                outdata.setValue32(1);                         // Unknown value: seems to be 0 or 1?
                break;

            case 0x0202580A:
                outdata.clear(outlen);
                break;

            case 0x201580B:
                // inlen == 20, outlen == 0
                break;

            case 0x02025806:                     // Check if the device is inserted
                // 0 = Not inserted.
                // 1 = Inserted.
                outdata.setValue32(1);
                break;

            default:
                Console.WriteLine(string.Format("hleMSstorControllerIoDevctl 0x{0:X8} unknown command on device '{1}'", cmd, devicename));
                break;
            }
            return(0);
        }
示例#8
0
 public virtual int hleMSstorPartitionIoClose(pspIoDrvFileArg drvFileArg)
 {
     return(0);
 }
示例#9
0
        public virtual int hleMSstorPartitionIoOpen(pspIoDrvFileArg drvFileArg, PspString fileName, int flags, int mode)
        {
            position = 0L;

            return(0);
        }
示例#10
0
 public virtual int hleMSstorStorageIoClose(pspIoDrvFileArg drvFileArg)
 {
     return(0);
 }
示例#11
0
 public virtual int hleMSstorStorageIoOpen(pspIoDrvFileArg drvFileArg, PspString fileName, int flags, int mode)
 {
     return(0);
 }