mirror of https://github.com/mgba-emu/mgba.git
Python: Improve GB SIO bindings
This commit is contained in:
parent
7752bfe0db
commit
6b26384c12
|
@ -65,21 +65,46 @@ class GBSIODriver(object):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
class GBSIOSimpleDriver(GBSIODriver):
|
class GBSIOSimpleDriver(GBSIODriver):
|
||||||
def __init__(self):
|
def __init__(self, period=0x100):
|
||||||
super(GBSIOSimpleDriver, self).__init__()
|
super(GBSIOSimpleDriver, self).__init__()
|
||||||
self.tx = 0xFF
|
self.rx = 0x00
|
||||||
self.rx = 0xFF
|
self._period = period
|
||||||
|
|
||||||
|
def init(self):
|
||||||
|
self._native.p.period = self._period
|
||||||
|
return True
|
||||||
|
|
||||||
def writeSB(self, value):
|
def writeSB(self, value):
|
||||||
self.rx = value
|
self.rx = value
|
||||||
|
|
||||||
def schedule(self, period=0x100, when=0):
|
def writeSC(self, value):
|
||||||
|
self._native.p.period = self._period
|
||||||
|
if value & 0x80:
|
||||||
|
lib.mTimingDeschedule(ffi.addressof(self._native.p.p.timing), ffi.addressof(self._native.p.event))
|
||||||
|
lib.mTimingSchedule(ffi.addressof(self._native.p.p.timing), ffi.addressof(self._native.p.event), self._native.p.period)
|
||||||
|
return value
|
||||||
|
|
||||||
|
def isReady(self):
|
||||||
|
return not self._native.p.remainingBits
|
||||||
|
|
||||||
|
@property
|
||||||
|
def tx(self):
|
||||||
|
self._native.p.pendingSB
|
||||||
|
|
||||||
|
@property
|
||||||
|
def period(self):
|
||||||
|
return self._native.p.period
|
||||||
|
|
||||||
|
@tx.setter
|
||||||
|
def tx(self, newTx):
|
||||||
|
self._native.p.pendingSB = newTx
|
||||||
self._native.p.remainingBits = 8
|
self._native.p.remainingBits = 8
|
||||||
self._native.p.period = period
|
|
||||||
self._native.p.pendingSB = self.tx
|
@period.setter
|
||||||
self.tx = 0xFF
|
def period(self, newPeriod):
|
||||||
lib.mTimingDeschedule(ffi.addressof(self._native.p.p.timing), ffi.addressof(self._native.p.event))
|
self._period = newPeriod
|
||||||
lib.mTimingSchedule(ffi.addressof(self._native.p.p.timing), ffi.addressof(self._native.p.event), when)
|
if self._native.p:
|
||||||
|
self._native.p.period = newPeriod
|
||||||
|
|
||||||
class GBMemory(Memory):
|
class GBMemory(Memory):
|
||||||
def __init__(self, core):
|
def __init__(self, core):
|
||||||
|
|
Loading…
Reference in New Issue