From 678ae00e0a4dc7fbe7b4027a1ed7bc3bcd253cec Mon Sep 17 00:00:00 2001
From: StapleButter <thetotalworm@gmail.com>
Date: Wed, 5 Jul 2017 18:46:19 +0200
Subject: support 16-bit reads to the div/sqrt registers

---
 src/NDS.cpp | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

(limited to 'src/NDS.cpp')

diff --git a/src/NDS.cpp b/src/NDS.cpp
index 5aa5f00..a2f77eb 100644
--- a/src/NDS.cpp
+++ b/src/NDS.cpp
@@ -1463,8 +1463,30 @@ u16 ARM9IORead16(u32 addr)
     case 0x04000248: return GPU::VRAMCNT[7] | (GPU::VRAMCNT[8] << 8);
 
     case 0x04000280: return DivCnt;
+    case 0x04000290: return DivNumerator[0] & 0xFFFF;
+    case 0x04000292: return DivNumerator[0] >> 16;
+    case 0x04000294: return DivNumerator[1] & 0xFFFF;
+    case 0x04000296: return DivNumerator[1] >> 16;
+    case 0x04000298: return DivDenominator[0] & 0xFFFF;
+    case 0x0400029A: return DivDenominator[0] >> 16;
+    case 0x0400029C: return DivDenominator[1] & 0xFFFF;
+    case 0x0400029E: return DivDenominator[1] >> 16;
+    case 0x040002A0: return DivQuotient[0] & 0xFFFF;
+    case 0x040002A2: return DivQuotient[0] >> 16;
+    case 0x040002A4: return DivQuotient[1] & 0xFFFF;
+    case 0x040002A6: return DivQuotient[1] >> 16;
+    case 0x040002A8: return DivRemainder[0] & 0xFFFF;
+    case 0x040002AA: return DivRemainder[0] >> 16;
+    case 0x040002AC: return DivRemainder[1] & 0xFFFF;
+    case 0x040002AE: return DivRemainder[1] >> 16;
 
     case 0x040002B0: return SqrtCnt;
+    case 0x040002B4: return SqrtRes & 0xFFFF;
+    case 0x040002B6: return SqrtRes >> 16;
+    case 0x040002B8: return SqrtVal[0] & 0xFFFF;
+    case 0x040002BA: return SqrtVal[0] >> 16;
+    case 0x040002BC: return SqrtVal[1] & 0xFFFF;
+    case 0x040002BE: return SqrtVal[1] >> 16;
 
     case 0x04000300: return PostFlag9;
     case 0x04000304: return PowerControl9;
-- 
cgit v1.2.3