Esempio n. 1
0
 public void WriteBytes(uint addr, byte[] buf, int length)
 {
     if (!GckMemoryRange.ValidAddress(addr))
     {
         throw new GckException("Invalid memory range.");
     }
     Stream.WriteCommand(GckCommands.UploadMemory);
     Stream.WriteUInt32(addr);
     Stream.WriteUInt32(addr + (uint)length);
     Stream.WriteBytes(buf, length);
     Stream.Flush();
 }
Esempio n. 2
0
 public void WriteDouble(uint addr, double val)
 {
     if (!GckMemoryRange.ValidAddress(addr))
     {
         throw new GckException("Invalid memory range.");
     }
     Stream.WriteCommand(GckCommands.UploadMemory);
     Stream.WriteUInt32(addr);
     Stream.WriteUInt32(addr + sizeof(double));
     Stream.WriteDouble(val);
     Stream.Flush();
 }
Esempio n. 3
0
 public void WriteSingle(uint addr, float val)
 {
     if (!GckMemoryRange.ValidAddress(addr))
     {
         throw new GckException("Invalid memory range.");
     }
     Stream.WriteCommand(GeckoCommand.UploadMemory);
     Stream.WriteUInt32(addr);
     Stream.WriteUInt32(addr + sizeof(float));
     Stream.WriteSingle(val);
     Stream.Flush();
 }
Esempio n. 4
0
 public static int RangeCheckId(UInt32 address)
 {
     for (int i = 0; i < ValidRanges.Length; i++)
     {
         GckMemoryRange range = ValidRanges[i];
         if (address >= range.low && address < range.high)
         {
             return(i);
         }
     }
     return(-1);
 }
Esempio n. 5
0
        public uint ReadUInt32(uint addr)
        {
            if (!GckMemoryRange.ValidAddress(addr))
            {
                throw new GckException("Invalid memory range.");
            }
            Stream.WriteCommand(GckCommands.ReadMemory);
            Stream.WriteUInt32(addr);
            Stream.WriteUInt32(addr + sizeof(uint));
            Stream.Flush();

            if (Stream.ReadUInt8() == BYTES_ONLY_ZEROS)
            {
                return(0);
            }
            return(Stream.ReadUInt32());
        }
Esempio n. 6
0
        public byte[] ReadBytes(uint addr, int length)
        {
            if (!GckMemoryRange.ValidAddress(addr))
            {
                throw new GckException("Invalid memory range.");
            }
            Stream.WriteCommand(GckCommands.ReadMemory);
            Stream.WriteUInt32(addr);
            Stream.WriteUInt32(addr + (uint)length);
            Stream.Flush();

            if (Stream.ReadUInt8() == BYTES_ONLY_ZEROS)
            {
                return(new byte[length]);
            }
            return(Stream.ReadBytes(length));
        }