make ROM path not be hardcoded.
This commit is contained in:
parent
5a061bc638
commit
59d107bfb0
14
src/NDS.cpp
14
src/NDS.cpp
|
@ -135,7 +135,6 @@ bool Init()
|
|||
if (!SPI::Init()) return false;
|
||||
if (!RTC::Init()) return false;
|
||||
|
||||
Reset();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -307,13 +306,14 @@ void Reset()
|
|||
KeyInput = 0x007F03FF;
|
||||
|
||||
_soundbias = 0;
|
||||
}
|
||||
|
||||
// test
|
||||
//LoadROM();
|
||||
//LoadFirmware();
|
||||
// a_interp2.nds a_rounding (10) (11) a_slope (5)
|
||||
if (NDSCart::LoadROM("rom/nsmb.nds"))
|
||||
Running = true; // hax
|
||||
void LoadROM(const char* path, bool direct)
|
||||
{
|
||||
Reset();
|
||||
|
||||
if (NDSCart::LoadROM(path, direct))
|
||||
Running = true;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -116,6 +116,7 @@ bool Init();
|
|||
void DeInit();
|
||||
void Reset();
|
||||
|
||||
void LoadROM(const char* path, bool direct);
|
||||
void SetupDirectBoot();
|
||||
|
||||
void RunFrame();
|
||||
|
|
|
@ -601,7 +601,7 @@ void Reset()
|
|||
}
|
||||
|
||||
|
||||
bool LoadROM(char* path)
|
||||
bool LoadROM(const char* path, bool direct)
|
||||
{
|
||||
// TODO: streaming mode? for really big ROMs or systems with limited RAM
|
||||
// for now we're lazy
|
||||
|
@ -632,10 +632,11 @@ bool LoadROM(char* path)
|
|||
fclose(f);
|
||||
//CartROM = f;
|
||||
|
||||
// temp. TODO: later make this user selectable
|
||||
// calling this sets up shit for booting from the cart directly.
|
||||
// normal behavior is booting from the BIOS.
|
||||
NDS::SetupDirectBoot();
|
||||
if (direct)
|
||||
{
|
||||
NDS::SetupDirectBoot();
|
||||
CmdEncMode = 2;
|
||||
}
|
||||
|
||||
CartInserted = true;
|
||||
|
||||
|
@ -650,7 +651,7 @@ bool LoadROM(char* path)
|
|||
if (arm9base >= 0x4000)
|
||||
{
|
||||
// reencrypt secure area if needed
|
||||
if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF)
|
||||
if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF && *(u32*)&CartROM[arm9base+0x10] != 0xE7FFDEFF)
|
||||
{
|
||||
printf("Re-encrypting cart secure area\n");
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ bool Init();
|
|||
void DeInit();
|
||||
void Reset();
|
||||
|
||||
bool LoadROM(char* path);
|
||||
bool LoadROM(const char* path, bool direct);
|
||||
|
||||
void WriteROMCnt(u32 val);
|
||||
u32 ReadROMData();
|
||||
|
|
|
@ -86,11 +86,18 @@ MainFrame::MainFrame()
|
|||
|
||||
sdlrend = SDL_CreateRenderer(sdlwin, -1, SDL_RENDERER_ACCELERATED); // SDL_RENDERER_PRESENTVSYNC
|
||||
sdltex = SDL_CreateTexture(sdlrend, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_STREAMING, 256, 384);
|
||||
|
||||
NDS::Init();
|
||||
}
|
||||
|
||||
void MainFrame::OnOpenROM(wxCommandEvent& event)
|
||||
{
|
||||
NDS::Init();
|
||||
wxFileDialog opener(this, _("Open ROM"), "", "", "DS ROM (*.nds)|*.nds;*.srl|Any file|*.*", wxFD_OPEN|wxFD_FILE_MUST_EXIST);
|
||||
if (opener.ShowModal() == wxID_CANCEL)
|
||||
return;
|
||||
|
||||
wxString filename = opener.GetPath();
|
||||
NDS::LoadROM(filename.mb_str(), true);
|
||||
|
||||
emuthread->EmuStatus = 1;
|
||||
emumutex->Lock();
|
||||
|
|
Loading…
Reference in New Issue