all repos — mgba @ 6d4236bd293e752483c74bb705be15375622f2e4

mGBA Game Boy Advance Emulator

DS: Fix RTC not outputting on LOW
Vicki Pfau vi@endrift.com
Mon, 13 Mar 2017 16:29:45 -0700
commit

6d4236bd293e752483c74bb705be15375622f2e4

parent

2b70e1714a1354d50013a532ba4e494815905c6e

1 files changed, 6 insertions(+), 2 deletions(-)

jump to
M src/ds/ds.csrc/ds/ds.c

@@ -885,8 +885,12 @@ }

break; case 2: if (!DSRegisterRTCIsClock(value)) { - ds->rtc.bits &= ~(1 << ds->rtc.bitsRead); - ds->rtc.bits |= DSRegisterRTCGetData(value) << ds->rtc.bitsRead; + if (DSRegisterRTCIsDataDirection(value)) { + ds->rtc.bits &= ~(1 << ds->rtc.bitsRead); + ds->rtc.bits |= DSRegisterRTCGetData(value) << ds->rtc.bitsRead; + } else { + value = DSRegisterRTCSetData(value, GBARTCOutput(&ds->rtc)); + } } else { if (DSRegisterRTCIsSelect(value)) { // GPIO direction should always != reading