1
0
Fork 0

[v0.1.1] Fixed bug reading MEM2

This commit is contained in:
sup39 2023-03-27 23:52:33 +09:00
parent 82f82eba3e
commit 8dc66466cc
3 changed files with 12 additions and 5 deletions

5
CHANGELOG.md Normal file
View file

@ -0,0 +1,5 @@
# Change Log
## 0.1.1 (2023/03/27)
- Fixed bug reading MEM2
## 0.1.0 (2023/03/09)
- Implemented WebSocket server

View file

@ -1,6 +1,6 @@
[metadata] [metadata]
name = supDolphinWS-server name = supDolphinWS-server
version = 0.1.0 version = 0.1.1
author = sup39 author = sup39
author_email = sms@sup39.dev author_email = sms@sup39.dev
description = A WebSocket server for accessing memory of emulated games in Dolphin description = A WebSocket server for accessing memory of emulated games in Dolphin

View file

@ -46,24 +46,26 @@ class Dolphin():
self.m = None self.m = None
def _read_bytes(self, addr, size): def _read_bytes(self, addr, size):
''' '''
addr: int addr: int|None
size: int size: int
''' '''
if addr is None: return None
if MEM1_START <= addr <= MEM1_END-size: if MEM1_START <= addr <= MEM1_END-size:
idx = addr-MEM1_START idx = addr-MEM1_START
elif MEM2_START <= addr <= MEM2_END-size and len(self.m) > MEM2_OFFSET: elif MEM2_START <= addr <= MEM2_END-size and len(self.m.buf) > MEM2_OFFSET:
idx = MEM2_OFFSET + addr-MEM2_START idx = MEM2_OFFSET + addr-MEM2_START
else: return None else: return None
return self.m.buf[idx:idx+size].tobytes() return self.m.buf[idx:idx+size].tobytes()
def _write_bytes(self, addr, payload): def _write_bytes(self, addr, payload):
''' '''
addr: int addr: int|None
payload: bytes payload: bytes
''' '''
if addr is None: return None
size = len(payload) size = len(payload)
if MEM1_START <= addr <= MEM1_END-size: if MEM1_START <= addr <= MEM1_END-size:
idx = addr-MEM1_START idx = addr-MEM1_START
elif MEM2_START <= addr <= MEM2_END-size and len(self.m) > MEM2_OFFSET: elif MEM2_START <= addr <= MEM2_END-size and len(self.m.buf) > MEM2_OFFSET:
idx = MEM2_OFFSET + addr-MEM2_START idx = MEM2_OFFSET + addr-MEM2_START
else: return None else: return None
self.m.buf[idx:idx+size] = payload self.m.buf[idx:idx+size] = payload