mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-26 15:50:00 -06:00
make it able to switch between DS and DSi modes
This commit is contained in:
32
src/SPI.cpp
32
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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user