public byte[] ReadBytes(uint offset, int length)
        {
            lock (_sync)
            {
                byte[] cmd = SwitchCommand.PeekRaw(offset, length);
                AndroidUSBUtils.CurrentInstance.WriteToEndpoint(cmd);

                // give it time to push data back
                Thread.Sleep((length / 256) + 100);

                byte[] buffer = AndroidUSBUtils.CurrentInstance.ReadEndpoint(length);
                return(buffer);
            }
        }
Exemple #2
0
        public static byte[] GetPeekCommand(ulong offset, int count, RWMethod method, bool usb)
        {
            switch (method)
            {
            case RWMethod.Heap when !usb: return(SwitchCommand.Peek((uint)offset, count));

            case RWMethod.Heap when usb: return(SwitchCommand.PeekRaw((uint)offset, count));

            case RWMethod.Main: return(SwitchCommand.PeekMain(offset, count));

            case RWMethod.Absolute: return(SwitchCommand.PeekAbsolute(offset, count));

            default: return(SwitchCommand.Peek((uint)offset, count));
            }
        }
Exemple #3
0
        public byte[] ReadBytes(uint offset, int length)
        {
            lock (_sync)
            {
                var cmd = SwitchCommand.PeekRaw(offset, length);
                SendInternal(cmd);

                // give it time to push data back
                Thread.Sleep((length / 256) + 100);

                var buffer = new byte[length];
                var _      = ReadInternal(buffer);
                //return Decoder.ConvertHexByteStringToBytes(buffer);
                return(buffer);
            }
        }
        public byte[] ReadBytes(uint offset, int length)
        {
            if (length > MaximumTransferSize)
            {
                return(ReadBytesLarge(offset, length));
            }
            lock (_sync)
            {
                byte[] cmd = SwitchCommand.PeekRaw(offset, length);
                AndroidUSBUtils.CurrentInstance.WriteToEndpoint(cmd);

                // give it time to push data back
                Thread.Sleep((length / 256) + UI_Settings.GetThreadSleepTime());

                byte[] buffer = AndroidUSBUtils.CurrentInstance.ReadEndpoint(length);
                return(buffer);
            }
        }
Exemple #5
0
        public byte[] ReadBytes(uint offset, int length)
        {
            if (length > MaximumTransferSize)
            {
                return(ReadBytesLarge(offset, length));
            }
            lock (_sync)
            {
                var cmd = SwitchCommand.PeekRaw(offset, length);
                SendInternal(cmd);

                // give it time to push data back
                Thread.Sleep((length / 256) + UI_Settings.GetThreadSleepTime());

                var buffer = new byte[length];
                var _      = ReadInternal(buffer);
                //return Decoder.ConvertHexByteStringToBytes(buffer);
                return(buffer);
            }
        }