aboutsummaryrefslogtreecommitdiff
path: root/src/DSi_I2C.cpp
diff options
context:
space:
mode:
authorWaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>2020-12-19 17:43:53 +0000
committerGitHub <noreply@github.com>2020-12-19 17:43:53 +0000
commitdf190b04000a8a3c5052de3fd695f6c26892f353 (patch)
tree85c53cda9b5e6c73dcfb82f97272e509f023788b /src/DSi_I2C.cpp
parentd6cade25f4ac6b2ebac9d4830ab7b10294bc4c89 (diff)
parent659dc58d4d8290d8ef1930d9f21007c0ec4c3739 (diff)
Merge branch 'master' into feature/zip-support
Diffstat (limited to 'src/DSi_I2C.cpp')
-rw-r--r--src/DSi_I2C.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/DSi_I2C.cpp b/src/DSi_I2C.cpp
index d58a38c..76664e5 100644
--- a/src/DSi_I2C.cpp
+++ b/src/DSi_I2C.cpp
@@ -50,7 +50,7 @@ void Reset()
Registers[0x10] = 0x00; // power btn
Registers[0x11] = 0x00; // reset
Registers[0x12] = 0x00; // power btn tap
- Registers[0x20] = 0x83; // battery
+ Registers[0x20] = 0x8F; // battery
Registers[0x21] = 0x07;
Registers[0x30] = 0x13;
Registers[0x31] = 0x00; // camera power
@@ -187,8 +187,10 @@ void WriteCnt(u8 val)
switch (Device)
{
case 0x4A: Data = DSi_BPTWL::Read(islast); break;
- case 0x78: Data = DSi_Camera0->Read(islast); break;
- case 0x7A: Data = DSi_Camera1->Read(islast); break;
+ case 0x78: Data = DSi_Camera0->I2C_Read(islast); break;
+ case 0x7A: Data = DSi_Camera1->I2C_Read(islast); break;
+ case 0xA0:
+ case 0xE0: Data = 0xFF; break;
default:
printf("I2C: read on unknown device %02X, cnt=%02X, data=%02X, last=%d\n", Device, val, 0, islast);
Data = 0xFF;
@@ -211,8 +213,10 @@ void WriteCnt(u8 val)
switch (Device)
{
case 0x4A: DSi_BPTWL::Start(); break;
- case 0x78: DSi_Camera0->Start(); break;
- case 0x7A: DSi_Camera1->Start(); break;
+ case 0x78: DSi_Camera0->I2C_Start(); break;
+ case 0x7A: DSi_Camera1->I2C_Start(); break;
+ case 0xA0:
+ case 0xE0: ack = false; break;
default:
printf("I2C: %s start on unknown device %02X\n", (Data&0x01)?"read":"write", Device);
ack = false;
@@ -226,8 +230,10 @@ void WriteCnt(u8 val)
switch (Device)
{
case 0x4A: DSi_BPTWL::Write(Data, islast); break;
- case 0x78: DSi_Camera0->Write(Data, islast); break;
- case 0x7A: DSi_Camera1->Write(Data, islast); break;
+ case 0x78: DSi_Camera0->I2C_Write(Data, islast); break;
+ case 0x7A: DSi_Camera1->I2C_Write(Data, islast); break;
+ case 0xA0:
+ case 0xE0: ack = false; break;
default:
printf("I2C: write on unknown device %02X, cnt=%02X, data=%02X, last=%d\n", Device, val, Data, islast);
ack = false;