Add write float
This commit is contained in:
parent
95cde0fb31
commit
b6ca272c60
1 changed files with 10 additions and 19 deletions
29
memtest.py
29
memtest.py
|
@ -212,8 +212,7 @@ class Dolphin(object):
|
||||||
ctypes.pointer(buffer),
|
ctypes.pointer(buffer),
|
||||||
size,
|
size,
|
||||||
ctypes.pointer(read))
|
ctypes.pointer(read))
|
||||||
|
return result and read.value == size, buffer
|
||||||
return result and read.value == size, buffer
|
|
||||||
|
|
||||||
def write_ram(self, offset, data):
|
def write_ram(self, offset, data):
|
||||||
buffer = (ctypes.c_char*len(data))(*data)
|
buffer = (ctypes.c_char*len(data))(*data)
|
||||||
|
@ -231,12 +230,12 @@ class Dolphin(object):
|
||||||
def read_uint32(self, addr):
|
def read_uint32(self, addr):
|
||||||
assert addr >= 0x80000000
|
assert addr >= 0x80000000
|
||||||
success, value = self.read_ram(addr-0x80000000, 4)
|
success, value = self.read_ram(addr-0x80000000, 4)
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
return struct.unpack(">I", value)[0]
|
return struct.unpack(">I", value)[0]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def read_float(self, addr):
|
def read_float(self, addr):
|
||||||
assert addr >= 0x80000000
|
assert addr >= 0x80000000
|
||||||
success, value = self.read_ram(addr - 0x80000000, 4)
|
success, value = self.read_ram(addr - 0x80000000, 4)
|
||||||
|
@ -245,6 +244,11 @@ class Dolphin(object):
|
||||||
return struct.unpack(">f", value)[0]
|
return struct.unpack(">f", value)[0]
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def write_float(self, addr, val):
|
||||||
|
assert addr >= 0x80000000
|
||||||
|
return self.write_ram(addr - 0x80000000, struct.pack(">f", val))
|
||||||
|
|
||||||
|
|
||||||
"""with open("ctypes.txt", "w") as f:
|
"""with open("ctypes.txt", "w") as f:
|
||||||
for a in ctypes.__dict__:
|
for a in ctypes.__dict__:
|
||||||
|
@ -266,23 +270,10 @@ if __name__ == "__main__":
|
||||||
print("We found MEM1 and/or MEM2!", dolphin.address_start, dolphin.mem2_start)
|
print("We found MEM1 and/or MEM2!", dolphin.address_start, dolphin.mem2_start)
|
||||||
else:
|
else:
|
||||||
print("We didn't find it...")
|
print("We didn't find it...")
|
||||||
"""print(dolphin.write_ram(0, b"GMS"))
|
print(dolphin.write_ram(0, b"GMS"))
|
||||||
success, result = dolphin.read_ram(0, 8)
|
success, result = dolphin.read_ram(0, 8)
|
||||||
print(result[0:8])
|
print(result[0:8])
|
||||||
|
|
||||||
print(dolphin.write_ram(0, b"AWA"))
|
print(dolphin.write_ram(0, b"AWA"))
|
||||||
success, result = dolphin.read_ram(0, 8)
|
success, result = dolphin.read_ram(0, 8)
|
||||||
print(result[0:8])"""
|
print(result[0:8])
|
||||||
|
|
||||||
kartctrlPtr = dolphin.read_uint32(0x803CC588)
|
|
||||||
print(hex(kartctrlPtr))
|
|
||||||
for i in range(8):
|
|
||||||
kartPtr = dolphin.read_uint32(kartctrlPtr+0xA0+i*4)
|
|
||||||
print(hex(kartPtr))
|
|
||||||
x = dolphin.read_float(kartPtr + 0x23C)
|
|
||||||
y = dolphin.read_float(kartPtr + 0x240)
|
|
||||||
z = dolphin.read_float(kartPtr + 0x244)
|
|
||||||
|
|
||||||
#self.karts[i].x = x
|
|
||||||
#self.karts[i].y = y
|
|
||||||
#self.karts[i].z = z
|
|
Loading…
Reference in a new issue