aboutsummaryrefslogtreecommitdiff
path: root/src/SPI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SPI.cpp')
-rw-r--r--src/SPI.cpp32
1 files changed, 23 insertions, 9 deletions
diff --git a/src/SPI.cpp b/src/SPI.cpp
index 29f3321..ac40707 100644
--- a/src/SPI.cpp
+++ b/src/SPI.cpp
@@ -93,7 +93,10 @@ void Reset()
if (Firmware) delete[] Firmware;
Firmware = NULL;
- strncpy(FirmwarePath, Config::FirmwarePath, 1023);
+ if (NDS::ConsoleType == 1)
+ strncpy(FirmwarePath, Config::DSiFirmwarePath, 1023);
+ else
+ strncpy(FirmwarePath, Config::FirmwarePath, 1023);
FILE* f = Platform::OpenLocalFile(FirmwarePath, "rb");
if (!f)
@@ -620,7 +623,7 @@ void Reset()
SPI_Firmware::Reset();
SPI_Powerman::Reset();
SPI_TSC::Reset();
- DSi_SPI_TSC::Reset();
+ if (NDS::ConsoleType == 1) DSi_SPI_TSC::Reset();
}
void DoSavestate(Savestate* file)
@@ -633,7 +636,7 @@ void DoSavestate(Savestate* file)
SPI_Firmware::DoSavestate(file);
SPI_Powerman::DoSavestate(file);
SPI_TSC::DoSavestate(file);
- DSi_SPI_TSC::DoSavestate(file);
+ if (NDS::ConsoleType == 1) DSi_SPI_TSC::DoSavestate(file);
}
@@ -647,8 +650,12 @@ void WriteCnt(u16 val)
{
case 0x0000: SPI_Powerman::Hold = 0; break;
case 0x0100: SPI_Firmware::Hold = 0; break;
- //case 0x0200: SPI_TSC::DataPos = 0; break;
- case 0x0200: DSi_SPI_TSC::DataPos = 0; break;
+ case 0x0200:
+ if (NDS::ConsoleType == 1)
+ DSi_SPI_TSC::DataPos = 0;
+ else
+ SPI_TSC::DataPos = 0;
+ break;
}
}
@@ -674,8 +681,11 @@ u8 ReadData()
{
case 0x0000: return SPI_Powerman::Read();
case 0x0100: return SPI_Firmware::Read();
- //case 0x0200: return SPI_TSC::Read();
- case 0x0200: return DSi_SPI_TSC::Read();
+ case 0x0200:
+ if (NDS::ConsoleType == 1)
+ return DSi_SPI_TSC::Read();
+ else
+ return SPI_TSC::Read();
default: return 0;
}
}
@@ -691,8 +701,12 @@ void WriteData(u8 val)
{
case 0x0000: SPI_Powerman::Write(val, Cnt&(1<<11)); break;
case 0x0100: SPI_Firmware::Write(val, Cnt&(1<<11)); break;
- //case 0x0200: SPI_TSC::Write(val, Cnt&(1<<11)); break;
- case 0x0200: DSi_SPI_TSC::Write(val, Cnt&(1<<11)); break;
+ case 0x0200:
+ if (NDS::ConsoleType == 1)
+ DSi_SPI_TSC::Write(val, Cnt&(1<<11));
+ else
+ SPI_TSC::Write(val, Cnt&(1<<11));
+ break;
default: printf("SPI to unknown device %04X %02X\n", Cnt, val); break;
}