mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-27 00:00:07 -06:00
re-add 'open file' event, whatever that is
also remove a bunch of cruft
This commit is contained in:
@ -76,14 +76,6 @@ void CartCommon::LoadSave(const u8* savedata, u32 savelen)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void CartCommon::LoadSave(const char* path, u32 type)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void CartCommon::RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
}*/
|
|
||||||
|
|
||||||
int CartCommon::SetInput(int num, bool pressed)
|
int CartCommon::SetInput(int num, bool pressed)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
@ -116,7 +108,6 @@ CartGame::CartGame(u8* rom, u32 len) : CartCommon()
|
|||||||
|
|
||||||
CartGame::~CartGame()
|
CartGame::~CartGame()
|
||||||
{
|
{
|
||||||
//if (SRAMFile) fclose(SRAMFile);
|
|
||||||
if (SRAM) delete[] SRAM;
|
if (SRAM) delete[] SRAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +116,6 @@ void CartGame::Reset()
|
|||||||
memset(&GPIO, 0, sizeof(GPIO));
|
memset(&GPIO, 0, sizeof(GPIO));
|
||||||
|
|
||||||
SRAM = nullptr;
|
SRAM = nullptr;
|
||||||
//SRAMFile = nullptr;
|
|
||||||
SRAMLength = 0;
|
SRAMLength = 0;
|
||||||
SRAMType = S_NULL;
|
SRAMType = S_NULL;
|
||||||
SRAMFlashState = {};
|
SRAMFlashState = {};
|
||||||
@ -237,28 +227,6 @@ void CartGame::LoadSave(const u8* savedata, u32 savelen)
|
|||||||
memcpy(SRAM, savedata, std::min(savelen, SRAMLength));
|
memcpy(SRAM, savedata, std::min(savelen, SRAMLength));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void CartGame::RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
if (!write)
|
|
||||||
{
|
|
||||||
LoadSave(path, 0); // lazy
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
strncpy(SRAMPath, path, 1023);
|
|
||||||
SRAMPath[1023] = '\0';
|
|
||||||
|
|
||||||
FILE *f = Platform::OpenFile(path, "r+b");
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
printf("GBACart_SRAM::RelocateSave: failed to create new file. fuck\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
SRAMFile = f;
|
|
||||||
fwrite(SRAM, SRAMLength, 1, SRAMFile);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
u16 CartGame::ROMRead(u32 addr)
|
u16 CartGame::ROMRead(u32 addr)
|
||||||
{
|
{
|
||||||
addr &= 0x01FFFFFF;
|
addr &= 0x01FFFFFF;
|
||||||
|
@ -37,8 +37,6 @@ public:
|
|||||||
|
|
||||||
virtual void SetupSave(u32 type);
|
virtual void SetupSave(u32 type);
|
||||||
virtual void LoadSave(const u8* savedata, u32 savelen);
|
virtual void LoadSave(const u8* savedata, u32 savelen);
|
||||||
//virtual void LoadSave(const char* path, u32 type);
|
|
||||||
//virtual void RelocateSave(const char* path, bool write);
|
|
||||||
|
|
||||||
virtual int SetInput(int num, bool pressed);
|
virtual int SetInput(int num, bool pressed);
|
||||||
|
|
||||||
@ -61,8 +59,6 @@ public:
|
|||||||
|
|
||||||
virtual void SetupSave(u32 type) override;
|
virtual void SetupSave(u32 type) override;
|
||||||
virtual void LoadSave(const u8* savedata, u32 savelen) override;
|
virtual void LoadSave(const u8* savedata, u32 savelen) override;
|
||||||
//virtual void LoadSave(const char* path, u32 type) override;
|
|
||||||
//virtual void RelocateSave(const char* path, bool write) override;
|
|
||||||
|
|
||||||
virtual u16 ROMRead(u32 addr) override;
|
virtual u16 ROMRead(u32 addr) override;
|
||||||
virtual void ROMWrite(u32 addr, u16 val) override;
|
virtual void ROMWrite(u32 addr, u16 val) override;
|
||||||
@ -113,11 +109,8 @@ protected:
|
|||||||
} SRAMFlashState;
|
} SRAMFlashState;
|
||||||
|
|
||||||
u8* SRAM;
|
u8* SRAM;
|
||||||
//FILE* SRAMFile;
|
|
||||||
u32 SRAMLength;
|
u32 SRAMLength;
|
||||||
SaveType SRAMType;
|
SaveType SRAMType;
|
||||||
|
|
||||||
//char SRAMPath[1024];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// CartGameSolarSensor -- Boktai game cart
|
// CartGameSolarSensor -- Boktai game cart
|
||||||
|
62
src/NDS.cpp
62
src/NDS.cpp
@ -957,73 +957,11 @@ void EjectGBACart()
|
|||||||
GBACart::EjectCart();
|
GBACart::EjectCart();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*bool LoadROM(const u8* romdata, u32 filelength, const char *sram, bool direct)
|
|
||||||
{
|
|
||||||
if (NDSCart::LoadROM(romdata, filelength, sram, direct))
|
|
||||||
{
|
|
||||||
Running = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("Failed to load ROM from archive\n");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LoadROM(const char* path, const char* sram, bool direct)
|
|
||||||
{
|
|
||||||
if (NDSCart::LoadROM(path, sram, direct))
|
|
||||||
{
|
|
||||||
Running = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("Failed to load ROM %s\n", path);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LoadGBAROM(const char* path, const char* sram)
|
|
||||||
{
|
|
||||||
if (GBACart::LoadROM(path, sram))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("Failed to load ROM %s\n", path);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LoadGBAROM(const u8* romdata, u32 filelength, const char *filename, const char *sram)
|
|
||||||
{
|
|
||||||
if (GBACart::LoadROM(romdata, filelength, sram))
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("Failed to load ROM %s from archive\n", filename);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void LoadBIOS()
|
void LoadBIOS()
|
||||||
{
|
{
|
||||||
Reset();
|
Reset();
|
||||||
//Running = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
printf("SRAM: relocating to %s (write=%s)\n", path, write?"true":"false");
|
|
||||||
NDSCart::RelocateSave(path, write);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
u64 NextTarget()
|
u64 NextTarget()
|
||||||
{
|
{
|
||||||
|
217
src/NDSCart.cpp
217
src/NDSCart.cpp
@ -51,7 +51,6 @@ u32 TransferDir;
|
|||||||
u8 TransferCmd[8];
|
u8 TransferCmd[8];
|
||||||
|
|
||||||
bool CartInserted;
|
bool CartInserted;
|
||||||
//char CartName[256];
|
|
||||||
u8* CartROM;
|
u8* CartROM;
|
||||||
u32 CartROMSize;
|
u32 CartROMSize;
|
||||||
u32 CartID;
|
u32 CartID;
|
||||||
@ -220,19 +219,6 @@ void CartCommon::LoadSave(const u8* savedata, u32 savelen)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void CartCommon::RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int CartCommon::ImportSRAM(const u8* data, u32 length)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CartCommon::FlushSRAMFile()
|
|
||||||
{
|
|
||||||
}*/
|
|
||||||
|
|
||||||
int CartCommon::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
int CartCommon::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
||||||
{
|
{
|
||||||
if (CmdEncMode == 0)
|
if (CmdEncMode == 0)
|
||||||
@ -479,101 +465,6 @@ void CartRetail::LoadSave(const u8* savedata, u32 savelen)
|
|||||||
memcpy(SRAM, savedata, std::min(savelen, SRAMLength));
|
memcpy(SRAM, savedata, std::min(savelen, SRAMLength));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void CartRetail::LoadSave(const char* path, u32 type)
|
|
||||||
{
|
|
||||||
if (SRAM) delete[] SRAM;
|
|
||||||
|
|
||||||
strncpy(SRAMPath, path, 1023);
|
|
||||||
SRAMPath[1023] = '\0';
|
|
||||||
|
|
||||||
if (type > 10) type = 0;
|
|
||||||
int sramlen[] =
|
|
||||||
{
|
|
||||||
0,
|
|
||||||
512,
|
|
||||||
8192, 65536, 128*1024,
|
|
||||||
256*1024, 512*1024, 1024*1024,
|
|
||||||
8192*1024, 16384*1024, 65536*1024
|
|
||||||
};
|
|
||||||
SRAMLength = sramlen[type];
|
|
||||||
|
|
||||||
if (SRAMLength)
|
|
||||||
{
|
|
||||||
SRAM = new u8[SRAMLength];
|
|
||||||
memset(SRAM, 0xFF, SRAMLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
FILE* f = Platform::OpenFile(path, "rb");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
fseek(f, 0, SEEK_SET);
|
|
||||||
fread(SRAM, 1, SRAMLength, f);
|
|
||||||
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
SRAMFileDirty = false;
|
|
||||||
NDSCart_SRAMManager::Setup(path, SRAM, SRAMLength);
|
|
||||||
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case 1: SRAMType = 1; break; // EEPROM, small
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
case 4: SRAMType = 2; break; // EEPROM, regular
|
|
||||||
case 5:
|
|
||||||
case 6:
|
|
||||||
case 7: SRAMType = 3; break; // FLASH
|
|
||||||
case 8:
|
|
||||||
case 9:
|
|
||||||
case 10: SRAMType = 4; break; // NAND
|
|
||||||
default: SRAMType = 0; break; // ...whatever else
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*void CartRetail::RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
if (!write)
|
|
||||||
{
|
|
||||||
LoadSave(path, 0); // lazy
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
strncpy(SRAMPath, path, 1023);
|
|
||||||
SRAMPath[1023] = '\0';
|
|
||||||
|
|
||||||
FILE* f = Platform::OpenFile(path, "wb");
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
printf("NDSCart_SRAM::RelocateSave: failed to create new file. fuck\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
fwrite(SRAM, SRAMLength, 1, f);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CartRetail::ImportSRAM(const u8* data, u32 length)
|
|
||||||
{
|
|
||||||
memcpy(SRAM, data, std::min(length, SRAMLength));
|
|
||||||
FILE* f = Platform::OpenFile(SRAMPath, "wb");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
fwrite(SRAM, SRAMLength, 1, f);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
|
|
||||||
return length - SRAMLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CartRetail::FlushSRAMFile()
|
|
||||||
{
|
|
||||||
if (!SRAMFileDirty) return;
|
|
||||||
|
|
||||||
SRAMFileDirty = false;
|
|
||||||
NDSCart_SRAMManager::RequestFlush();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
int CartRetail::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
int CartRetail::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
||||||
{
|
{
|
||||||
if (CmdEncMode != 2) return CartCommon::ROMCommandStart(cmd, data, len);
|
if (CmdEncMode != 2) return CartCommon::ROMCommandStart(cmd, data, len);
|
||||||
@ -968,13 +859,6 @@ void CartRetailNAND::LoadSave(const u8* savedata, u32 savelen)
|
|||||||
BuildSRAMID();
|
BuildSRAMID();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*int CartRetailNAND::ImportSRAM(const u8* data, u32 length)
|
|
||||||
{
|
|
||||||
int ret = CartRetail::ImportSRAM(data, length);
|
|
||||||
BuildSRAMID();
|
|
||||||
return ret;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
int CartRetailNAND::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
int CartRetailNAND::ROMCommandStart(u8* cmd, u8* data, u32 len)
|
||||||
{
|
{
|
||||||
if (CmdEncMode != 2) return CartCommon::ROMCommandStart(cmd, data, len);
|
if (CmdEncMode != 2) return CartCommon::ROMCommandStart(cmd, data, len);
|
||||||
@ -1542,15 +1426,6 @@ void DeInit()
|
|||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
{
|
{
|
||||||
/*if (Cart) delete Cart;
|
|
||||||
Cart = nullptr;
|
|
||||||
|
|
||||||
CartInserted = false;
|
|
||||||
if (CartROM) delete[] CartROM;
|
|
||||||
CartROM = nullptr;
|
|
||||||
CartROMSize = 0;
|
|
||||||
CartID = 0;*/
|
|
||||||
|
|
||||||
ResetCart();
|
ResetCart();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1656,7 +1531,6 @@ void DecryptSecureArea(u8* out)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//bool LoadROMCommon(u32 filelength, const char *sram, bool direct)
|
|
||||||
bool LoadROM(const u8* romdata, u32 romlen)
|
bool LoadROM(const u8* romdata, u32 romlen)
|
||||||
{
|
{
|
||||||
if (CartInserted)
|
if (CartInserted)
|
||||||
@ -1780,22 +1654,7 @@ bool LoadROM(const u8* romdata, u32 romlen)
|
|||||||
|
|
||||||
if (Cart)
|
if (Cart)
|
||||||
Cart->Reset();
|
Cart->Reset();
|
||||||
/*{
|
|
||||||
Cart->Reset();
|
|
||||||
if (direct)
|
|
||||||
{
|
|
||||||
NDS::SetupDirectBoot();
|
|
||||||
Cart->SetupDirectBoot();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
// encryption
|
|
||||||
// needed????
|
|
||||||
//Key1_InitKeycode(false, gamecode, 2, 2);
|
|
||||||
|
|
||||||
// save
|
|
||||||
//printf("Save file: %s\n", sram);
|
|
||||||
//if (Cart) Cart->LoadSave(sram, romparams.SaveMemType);
|
|
||||||
if (Cart && romparams.SaveMemType > 0)
|
if (Cart && romparams.SaveMemType > 0)
|
||||||
Cart->SetupSave(romparams.SaveMemType);
|
Cart->SetupSave(romparams.SaveMemType);
|
||||||
|
|
||||||
@ -1808,88 +1667,12 @@ void LoadSave(const u8* savedata, u32 savelen)
|
|||||||
Cart->LoadSave(savedata, savelen);
|
Cart->LoadSave(savedata, savelen);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*bool LoadROM(const char* path, const char* sram, bool direct)
|
|
||||||
{
|
|
||||||
// TODO: streaming mode? for really big ROMs or systems with limited RAM
|
|
||||||
// for now we're lazy
|
|
||||||
// also TODO: validate what we're loading!!
|
|
||||||
|
|
||||||
FILE* f = Platform::OpenFile(path, "rb");
|
|
||||||
if (!f)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
NDS::Reset();
|
|
||||||
|
|
||||||
char* romname = strrchr((char*)path, '/');
|
|
||||||
if (!romname)
|
|
||||||
{
|
|
||||||
romname = strrchr((char*)path, '\\');
|
|
||||||
if (!romname)
|
|
||||||
romname = (char*)&path[-1];
|
|
||||||
}
|
|
||||||
romname++;
|
|
||||||
strncpy(CartName, romname, 255); CartName[255] = '\0';
|
|
||||||
|
|
||||||
fseek(f, 0, SEEK_END);
|
|
||||||
u32 len = (u32)ftell(f);
|
|
||||||
|
|
||||||
CartROMSize = 0x200;
|
|
||||||
while (CartROMSize < len)
|
|
||||||
CartROMSize <<= 1;
|
|
||||||
|
|
||||||
CartROM = new u8[CartROMSize];
|
|
||||||
memset(CartROM, 0, CartROMSize);
|
|
||||||
fseek(f, 0, SEEK_SET);
|
|
||||||
fread(CartROM, 1, len, f);
|
|
||||||
|
|
||||||
fclose(f);
|
|
||||||
|
|
||||||
return LoadROMCommon(len, sram, direct);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LoadROM(const u8* romdata, u32 filelength, const char *sram, bool direct)
|
|
||||||
{
|
|
||||||
NDS::Reset();
|
|
||||||
|
|
||||||
// TODO: make it more meaningful?
|
|
||||||
strncpy(CartName, "rom.nds", 256);
|
|
||||||
|
|
||||||
u32 len = filelength;
|
|
||||||
CartROMSize = 0x200;
|
|
||||||
while (CartROMSize < len)
|
|
||||||
CartROMSize <<= 1;
|
|
||||||
|
|
||||||
CartROM = new u8[CartROMSize];
|
|
||||||
memset(CartROM, 0, CartROMSize);
|
|
||||||
memcpy(CartROM, romdata, filelength);
|
|
||||||
|
|
||||||
return LoadROMCommon(filelength, sram, direct);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void SetupDirectBoot(std::string romname)
|
void SetupDirectBoot(std::string romname)
|
||||||
{
|
{
|
||||||
if (Cart)
|
if (Cart)
|
||||||
Cart->SetupDirectBoot(romname);
|
Cart->SetupDirectBoot(romname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void RelocateSave(const char* path, bool write)
|
|
||||||
{
|
|
||||||
if (Cart) Cart->RelocateSave(path, write);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FlushSRAMFile()
|
|
||||||
{
|
|
||||||
if (Cart) Cart->FlushSRAMFile();
|
|
||||||
}
|
|
||||||
|
|
||||||
int ImportSRAM(const u8* data, u32 length)
|
|
||||||
{
|
|
||||||
if (Cart) return Cart->ImportSRAM(data, length);
|
|
||||||
return 0;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void EjectCart()
|
void EjectCart()
|
||||||
{
|
{
|
||||||
if (!CartInserted) return;
|
if (!CartInserted) return;
|
||||||
|
@ -42,9 +42,6 @@ public:
|
|||||||
|
|
||||||
virtual void SetupSave(u32 type);
|
virtual void SetupSave(u32 type);
|
||||||
virtual void LoadSave(const u8* savedata, u32 savelen);
|
virtual void LoadSave(const u8* savedata, u32 savelen);
|
||||||
//virtual void RelocateSave(const char* path, bool write);
|
|
||||||
//virtual int ImportSRAM(const u8* data, u32 length);
|
|
||||||
//virtual void FlushSRAMFile();
|
|
||||||
|
|
||||||
virtual int ROMCommandStart(u8* cmd, u8* data, u32 len);
|
virtual int ROMCommandStart(u8* cmd, u8* data, u32 len);
|
||||||
virtual void ROMCommandFinish(u8* cmd, u8* data, u32 len);
|
virtual void ROMCommandFinish(u8* cmd, u8* data, u32 len);
|
||||||
@ -80,9 +77,6 @@ public:
|
|||||||
|
|
||||||
virtual void SetupSave(u32 type) override;
|
virtual void SetupSave(u32 type) override;
|
||||||
virtual void LoadSave(const u8* savedata, u32 savelen) override;
|
virtual void LoadSave(const u8* savedata, u32 savelen) override;
|
||||||
//virtual void RelocateSave(const char* path, bool write) override;
|
|
||||||
//virtual int ImportSRAM(const u8* data, u32 length) override;
|
|
||||||
//virtual void FlushSRAMFile() override;
|
|
||||||
|
|
||||||
virtual int ROMCommandStart(u8* cmd, u8* data, u32 len) override;
|
virtual int ROMCommandStart(u8* cmd, u8* data, u32 len) override;
|
||||||
|
|
||||||
@ -117,7 +111,6 @@ public:
|
|||||||
void DoSavestate(Savestate* file) override;
|
void DoSavestate(Savestate* file) override;
|
||||||
|
|
||||||
void LoadSave(const u8* savedata, u32 savelen) override;
|
void LoadSave(const u8* savedata, u32 savelen) override;
|
||||||
//int ImportSRAM(const u8* data, u32 length) override;
|
|
||||||
|
|
||||||
int ROMCommandStart(u8* cmd, u8* data, u32 len) override;
|
int ROMCommandStart(u8* cmd, u8* data, u32 len) override;
|
||||||
void ROMCommandFinish(u8* cmd, u8* data, u32 len) override;
|
void ROMCommandFinish(u8* cmd, u8* data, u32 len) override;
|
||||||
@ -210,8 +203,6 @@ void Reset();
|
|||||||
void DoSavestate(Savestate* file);
|
void DoSavestate(Savestate* file);
|
||||||
|
|
||||||
void DecryptSecureArea(u8* out);
|
void DecryptSecureArea(u8* out);
|
||||||
//bool LoadROM(const char* path, const char* sram, bool direct);
|
|
||||||
//bool LoadROM(const u8* romdata, u32 filelength, const char *sram, bool direct);
|
|
||||||
|
|
||||||
bool LoadROM(const u8* romdata, u32 romlen);
|
bool LoadROM(const u8* romdata, u32 romlen);
|
||||||
void LoadSave(const u8* savedata, u32 savelen);
|
void LoadSave(const u8* savedata, u32 savelen);
|
||||||
@ -219,12 +210,6 @@ void SetupDirectBoot(std::string romname);
|
|||||||
|
|
||||||
void EjectCart();
|
void EjectCart();
|
||||||
|
|
||||||
//void FlushSRAMFile();
|
|
||||||
|
|
||||||
//void RelocateSave(const char* path, bool write);
|
|
||||||
|
|
||||||
//int ImportSRAM(const u8* data, u32 length);
|
|
||||||
|
|
||||||
void ResetCart();
|
void ResetCart();
|
||||||
|
|
||||||
void WriteROMCnt(u32 val);
|
void WriteROMCnt(u32 val);
|
||||||
|
@ -1891,11 +1891,11 @@ bool MainWindow::verifySetup()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::preloadROMs(QString filename, QString gbafilename)
|
bool MainWindow::preloadROMs(QString filename, QString gbafilename)
|
||||||
{
|
{
|
||||||
if (!verifySetup())
|
if (!verifySetup())
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool gbaloaded = false;
|
bool gbaloaded = false;
|
||||||
@ -1906,7 +1906,7 @@ void MainWindow::preloadROMs(QString filename, QString gbafilename)
|
|||||||
{
|
{
|
||||||
// TODO: better error reporting?
|
// TODO: better error reporting?
|
||||||
QMessageBox::critical(this, "melonDS", "Failed to load the GBA ROM.");
|
QMessageBox::critical(this, "melonDS", "Failed to load the GBA ROM.");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
gbaloaded = true;
|
gbaloaded = true;
|
||||||
@ -1917,7 +1917,7 @@ void MainWindow::preloadROMs(QString filename, QString gbafilename)
|
|||||||
{
|
{
|
||||||
// TODO: better error reporting?
|
// TODO: better error reporting?
|
||||||
QMessageBox::critical(this, "melonDS", "Failed to load the ROM.");
|
QMessageBox::critical(this, "melonDS", "Failed to load the ROM.");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
recentFileList.removeAll(filename);
|
recentFileList.removeAll(filename);
|
||||||
@ -1935,6 +1935,8 @@ void MainWindow::preloadROMs(QString filename, QString gbafilename)
|
|||||||
actCurrentGBACart->setText("GBA slot: " + ROMManager::GBACartLabel());
|
actCurrentGBACart->setText("GBA slot: " + ROMManager::GBACartLabel());
|
||||||
actEjectGBACart->setEnabled(true);
|
actEjectGBACart->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MainWindow::pickFileFromArchive(QString archiveFileName)
|
QString MainWindow::pickFileFromArchive(QString archiveFileName)
|
||||||
@ -2071,60 +2073,6 @@ void MainWindow::onOpenFile()
|
|||||||
actEjectCart->setEnabled(true);
|
actEjectCart->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*QString MainWindow::pickAndExtractFileFromArchive(QString archiveFileName, QByteArray *romBuffer)
|
|
||||||
{
|
|
||||||
printf("Finding list of ROMs...\n");
|
|
||||||
QVector<QString> archiveROMList = Archive::ListArchive(archiveFileName.toUtf8().constData());
|
|
||||||
|
|
||||||
|
|
||||||
QString romFileName = ""; // file name inside archive
|
|
||||||
|
|
||||||
if (archiveROMList.size() > 2)
|
|
||||||
{
|
|
||||||
archiveROMList.removeFirst();
|
|
||||||
|
|
||||||
bool ok;
|
|
||||||
QString toLoad = QInputDialog::getItem(this, "melonDS",
|
|
||||||
"The archive was found to have multiple files. Select which ROM you want to load.", archiveROMList.toList(), 0, false, &ok);
|
|
||||||
if (!ok) // User clicked on cancel
|
|
||||||
return QString();
|
|
||||||
|
|
||||||
printf("Extracting '%s'\n", toLoad.toUtf8().constData());
|
|
||||||
QVector<QString> extractResult = Archive::ExtractFileFromArchive(archiveFileName.toUtf8().constData(), toLoad.toUtf8().constData(), romBuffer);
|
|
||||||
if (extractResult[0] != QString("Err"))
|
|
||||||
{
|
|
||||||
romFileName = extractResult[0];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QMessageBox::critical(this, "melonDS", QString("There was an error while trying to extract the ROM from the archive: ") + extractResult[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (archiveROMList.size() == 2)
|
|
||||||
{
|
|
||||||
printf("Extracting the only ROM in archive\n");
|
|
||||||
QVector<QString> extractResult = Archive::ExtractFileFromArchive(archiveFileName.toUtf8().constData(), archiveROMList.at(1).toUtf8().constData(), romBuffer);
|
|
||||||
if (extractResult[0] != QString("Err"))
|
|
||||||
{
|
|
||||||
romFileName = extractResult[0];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QMessageBox::critical(this, "melonDS", QString("There was an error while trying to extract the ROM from the archive: ") + extractResult[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if ((archiveROMList.size() == 1) && (archiveROMList[0] == QString("OK")))
|
|
||||||
{
|
|
||||||
QMessageBox::warning(this, "melonDS", "The archive is intact, but there are no files inside.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QMessageBox::critical(this, "melonDS", "The archive could not be read. It may be corrupt or you don't have the permissions.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return romFileName;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void MainWindow::onClearRecentFiles()
|
void MainWindow::onClearRecentFiles()
|
||||||
{
|
{
|
||||||
recentFileList.clear();
|
recentFileList.clear();
|
||||||
@ -2219,8 +2167,6 @@ void MainWindow::onClickRecentFile()
|
|||||||
|
|
||||||
void MainWindow::onBootFirmware()
|
void MainWindow::onBootFirmware()
|
||||||
{
|
{
|
||||||
// TODO: check the whole GBA cart shito
|
|
||||||
|
|
||||||
emuThread->emuPause();
|
emuThread->emuPause();
|
||||||
|
|
||||||
if (!verifySetup())
|
if (!verifySetup())
|
||||||
@ -2943,8 +2889,8 @@ bool MelonApplication::event(QEvent *event)
|
|||||||
QFileOpenEvent *openEvent = static_cast<QFileOpenEvent*>(event);
|
QFileOpenEvent *openEvent = static_cast<QFileOpenEvent*>(event);
|
||||||
|
|
||||||
emuThread->emuPause();
|
emuThread->emuPause();
|
||||||
//mainWindow->loadROM(openEvent->file());
|
if (!mainWindow->preloadROMs(openEvent->file(), ""))
|
||||||
printf("ASS EVENT???\n");
|
emuThread->emuUnpause();
|
||||||
}
|
}
|
||||||
|
|
||||||
return QApplication::event(event);
|
return QApplication::event(event);
|
||||||
|
@ -210,7 +210,7 @@ public:
|
|||||||
bool hasOGL;
|
bool hasOGL;
|
||||||
QOpenGLContext* getOGLContext();
|
QOpenGLContext* getOGLContext();
|
||||||
|
|
||||||
void preloadROMs(QString filename, QString gbafilename);
|
bool preloadROMs(QString filename, QString gbafilename);
|
||||||
|
|
||||||
void onAppStateChanged(Qt::ApplicationState state);
|
void onAppStateChanged(Qt::ApplicationState state);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user