From 75d9085eefa51c7d5a6a5436e4692e6daf0cc4e4 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Tue, 27 Dec 2016 02:11:54 -0800 Subject: [PATCH] GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers --- CHANGES | 1 + src/gba/io.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index ef9a32039..b9174874f 100644 --- a/CHANGES +++ b/CHANGES @@ -70,6 +70,7 @@ Misc: - GBA DMA: Refactor DMA out of memory.c - GBA DMA: Move DMAs to using absolute timing - All: Add C++ header guards + - GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers 0.5.1: (2016-10-05) Bugfixes: diff --git a/src/gba/io.c b/src/gba/io.c index 0168b31ab..0ec739915 100644 --- a/src/gba/io.c +++ b/src/gba/io.c @@ -806,6 +806,11 @@ uint16_t GBAIORead(struct GBA* gba, uint32_t address) { mLOG(GBA_IO, GAME_ERROR, "Read from write-only I/O register: %03X", address); return 0; + case REG_JOY_RECV_LO: + case REG_JOY_RECV_HI: + gba->memory.io[REG_JOYSTAT >> 1] &= ~JOYSTAT_RECV_BIT; + break; + case REG_SOUNDBIAS: case REG_KEYCNT: case REG_POSTFLG: @@ -862,8 +867,6 @@ uint16_t GBAIORead(struct GBA* gba, uint32_t address) { case REG_SIOMULTI3: case REG_SIOMLT_SEND: case REG_JOYCNT: - case REG_JOY_RECV_LO: - case REG_JOY_RECV_HI: case REG_JOY_TRANS_LO: case REG_JOY_TRANS_HI: case REG_JOYSTAT: